Page tree
Skip to end of metadata
Go to start of metadata

Your Rating: Results: PatheticBadOKGoodOutstanding! 83 rates

This Magnolia module provides an OpenSocial container as well as a basic gadget editor within Magnolia CMS.

Status

The module is still in beta. Its biggest issues are currently

Checkout all known issues in MGNLOPENSOCIAL@jira.

1.0-branch is for use with Magnolia 4.4.x - trunk (1.1-SNAPSHOT) is in progress of being adapted for use with Magnolia 4.5.x

Short intro to OpenSocial

OpenSocial is a combination of a pluggable gadget architecture (evolved out of Google Gaget API donated by Google) and Social API's.
The initiative was started in November 2007 and evolved out of the Google Gadget spec (contributed by Google).

It is used by almost all major social networks (Xing, Yahoo, MySpace, LinkedIn,... - the exception is facebook). Despite its name it is evolving into the enterprise direction and will likely be used in many less social apps quite soon. Today there's already quite an impressive list of enterprise users like Atlassian, Cisco, Google, IBM or SAP.

Nearly all container implementations are based on Apache Shindig - the reference implementation of the OpenSocial API.

High-Level Architecture

The Magnolia module wraps Apache Shindig v2.0.2 and configures it to be ready to be used from within Magnolia.
In addition it adds a few Magnolia Templates and paragraphs.

Sub modules

OpenSocial Container (magnolia-module-opensocial-container)


Use this template to place an OpenSocial Container somewhere on your website.

Current features:

  • add any OpenSocial compliant gadget by providing a title and a url
    • when adding gadgets hosted on your site you might have to add permissions in AdminCentral's security
  • when editing content, move gadgets around within container (works just like any other Magnolia paragraph)
    • no drag & drop support for swapping gadgets at runtime yet
  • render you container and the contained gadgets in preview mode

OpenSocial Gadget (magnolia-opensocial-sample)

This is a simple editor to create Gadgets within Magnolia

  • provided general data about the gadget (e.g. author, description)
  • add several views to the gadget
  • add separate html, js includes, js & css for each view

OpenSocial Sample Webapp (magnolia-opensocial-sample-webapp)

Sample webapp hosting a web.xml containing all entries required by OpenSocial.

JCR-bases Social-API implementations

JCR-based Person-API

This implementation currently covers the Person's attributes like gender, displayName, activities & quotes.

Here's how you can test it. Using the JCR-Browser under the tools menu, you can see all currently saved people data (of course you can add you own stuff here).

And here's how the data can be retrieved using OpenSocial's REST-API (http://localhost:8080/magnolia-opensocial-sample-webapp/social/rest/people/jamesgosling/@self)

Check it out

Easiest way to get started is using the OpenSocial Sample-Project along with the proper webapp. Like that you'll immediately get a running example of an OpenSocial container as it's web.xml contains contains all required modifications.

If you prefer to use an existing web-app make sure you add the following param-name and value

<param-name>guice-modules</param-name>
<!-- List of Guice modules to be initialized upon startup -->
<param-value>
  info.magnolia.opensocialcontainer.OpenSocialGuiceModule:
  org.apache.shindig.gadgets.DefaultGuiceModule:
  org.apache.shindig.gadgets.oauth.OAuthModule
</param-value>

as well as the following context listener

<listener>
  <listener-class>org.apache.shindig.common.servlet.GuiceServletContextListener</listener-class>
</listener>

Both of these additions are required in order to properly initialize guice.

Resources