Apache Shindig > Index
Added by Guillaume Nodet, last edited by Jon Weygandt on Sep 30, 2009  (view change)

This is the home page for the Apache Shindig space.



Table of Contents


FAQs


What's the relationship between Shindig versions and OpenSocial spec versions?

There was a recent post on the mailing list that discussed this relationship. These will match what you would find in the SVN. For convenience, here's a quick table summary.

Shindig Version OpenSocial Spec Level SVN URL Notes
1.0.x-incubating 0.8.1 http://svn.apache.org/repos/asf/incubator/shindig/branches/1.0.x-incubating  
1.1.x (currently Trunk) 0.9 http://svn.apache.org/repos/asf/incubator/shindig/trunk  

How do I verify the OpenSocial compliance of Shindig?

Call mvn -Prun on the 1.0.x-incubating branch and open in your favourite browser http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.html.
Specify http://opensocial-resources.googlecode.com/svn/tests/trunk/suites/0.8/compliance/reference.xml to verify the compliance tests in Shindig.

How can I provide my own implementation of the data services?

First, it's helpful to have an overview of Shindig's architecture. Dave put a great post on his blog, so start by reviewing that. (Hey Dave, would you consider moving your post over to this wiki?) Notice in step 5, you get to the three data services, PersonService, ActivityService, and AppDataService. From there, you can check out Harry's instructions on Providing your own data service implementation.

What do I need to do to integrate shindig into my site?

See The rough guide to deploying shindig. It's very barebones right now, but hopefully can get you started.

How can I display a gadget in my web page?

This how to shows the integration of a gadget in a web page Display a gadget in a web page.

How do I generate the iframe urls manually?

See iframe url format

With Tomcat, how to use Shindig as a non-root application?

If you are using a non-root context like /shindig you want to edit your /java/common/conf/shindig.properties file.
Edit to equal to your new path
shindig.content-rewrite.concat-url=/shindig/gadgets/concat

How do I integrate a relational database with Shindig?

Chris Schalk did an article on data integration some time ago. On a recent mail exchange on shindig-dev, he recognized this probably needs to be updated. Hopefully, we can update that information on this wiki on the new Shindig Data Integration Development Guide page.

What are the inputs and outputs of the Shindig metadata call?

See Shindig's metadata call.

How to access the console for gadgets.log?

Firefox: Firebug: http://getfirebug.com/
IE7: CompanionJS: http://www.my-debugbar.com/wiki/CompanionJS/HomePage
IE8: Tools->Developer Tools, use the Script tab
Safari 3 & 4: Edit->Preferences; Advanced; Select "Show Develop menu in menu bar"; Develop->Show Error Console
Opera 9/10: Out of luck till Shindig gets fixed, seems window.opera.postError is the logging call


Security & Shindig


How do I enable OAuth in Shindig?

Rodrigo Gallardo has started a the Enabling OAuth support page. Check it out for details.

How do I enable secure tokens?

There's a mail thread that starts to describe how to do this.


Setting up an Eclipse Development Environment


How do I run Shindig on Tomcat6 under Eclipse ?

Note: these instructions were probably made obsolete by shindig revision r772382. (http://svn.apache.org/viewvc?view=rev&revision=772382). If you're using tomcat, please update these instructions as appropriate.

Shindig uses Juel as the implementation of Unified Expression Language, this clashes with tomcat 6 el-api.jar, and sometimes produces weird error messages (UnsatisfiedLinkError), you need to:
-Change SHINDIG_ROOT/pom.xml and comment the maven plugin 'maven-remote-resources-plugin', otherwise when Eclipse tries to jar the classes under several shindig subprojects, the META-INF/{DEPENDENCIES,NOTICE,LICENSE...} files clash with one another and Eclipse throws an error.
-Add a dependency in SHINDIG_ROOT/pom.xml, SHINDIG_ROOT/java/common/pom.xml and SHINDIG_ROOT/java/gadgets/pom.xml on :
<dependency><groupId>javax.el</groupId><artifactId>el-api</artifactId><scope>provided</scope><version>1.0</version></dependency>
since we're going to replace the full JUEL (that includes the el-api) with a stripped down JUEL (without the el-api).
You need to scope it with 'provided' so that Eclipse will not add this jar to the WEB-INF/lib directory (el-api.jar is found on tomcat6/lib) or it will clash with the tomcat6 provided el-api.jar and produce an UnsatisfiedLinkError exception.
-Create a juel-2.1.0-nojavax.jar with the same classes as they were in juel-2.1.0.jar but removing the javax directory from the jar.
-Install your juel-2.1.0-nojavax.jar in your local Maven repository with:
mvn install:install-file -Dfile=juel-2.1.0-nojavax.jar -DgroupId=de.odysseus.juel -DartifactId=juel -Dversion=2.1.0-nojavax -Dpackaging=jar
-Change the dependency version of JUEL from "2.1.0" to "2.1.0-nojavax" in SHINDIG_ROOT/pom.xml, SHINDIG_ROOT/java/common/pom.xml and SHINDIG_ROOT/java/gadgets/pom.xml.

Now on Eclipse create 3 Java projects: shindig-common, shindig-gadgets and shindig-social-api with source folder=src/main/java, and one "Dynamic Web Project" (shindig-server) with WebApp folder == src/main/webapp. Then import the sources from your SHINDIG_ROOT/java/{common,gadgets,social-api,server} to each of these projects. On each of the projects, add the src/main/java and src/main/resources and src/test/resources as a source folder (right-click on the folder and select "Add as Source Folder").
Now right-click on each of the projects and select "Enable Dependency Management" under Maven menu.
Right-click on shindig-server and select "Properties", and under "Java EE Module Dependencies", select "Maven Dependencies", "shindig-common", "shindig-gadgets" and "shindig-social-api".

You're ready to go ! right click on shindig-server, "Run As"->"Run on Server" and select your Tomcat6 server instance.
in case you run on any error, make sure all the 'jar's needed are in .metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/shindig-server/ and that the el-api.jar is not present in that directory.


How do I manage Shindig?


How do I use JMX with Shindig?

With Jetty, you need to set MAVEN_OPTS=-Dcom.sun.management.jmxremote and call mvn -Prun. After this, you could use jconsole as usually.


Additional Resources


OpenSocial external resources

Here is the list of OpenSocial external links:

  • Partuza: A Shindig based example social network site
  • Socialsite: socialsite: Open Source Social Networking Server with OpenSocial Support
  • raya: .NET port of Partuza

Other OpenSocial implementations

Here is the list of other OpenSocial container implementations:

Articles on Shindig

Title Publisher Author Published
Thesis about implementing the OpenSocial API into an existing social network. Written in German N/A Harry Hübner June 2009
Shindig for Blogs & Wikis ASF Dave Johnson March 2009
OpenSocial a Standard for the social web slideshare PDF Google Patrick Chanezon March 2009
Google Gadgets & Shindig RPC Enlightment N/A Arnaud Bailly Feb. 2009
SocialSite - Architectural Overview Google Rajdeep Dua Jan. 2009
Empowering the social web with Apache Shindig ASF Henning Schmiedehausen Nov. 2008
Shindig Architectural Overview ? Rajdeep Dua Nov. 2008
Apache Shindig Pushes Social Envelope Article Alley Kevin Burbank Oct. 2008
Setting up Shindig on Windows N/A Chris Chabot Oct. 2008
How the Shindig REST API works (Java version) N/A Dave Johnson Sept. 2008
Shindig : An Architectural Overview (PHP Version) N/A Rajdeep Dua Aug. 2008
Overview of REST Implementation in Shindig - (Java Version) Google Sites Rajdeep Dua June 2008
Architectural Overview of Shindig , an OpenSocial Reference Implementation Google Sites Anash P. Oommen June 2008
Shindig on PHP - Setting up a Debug Environment Google Sites Anash P. Oommen June 2008
Google I/O 2008 - Apache Shindig GoogleDevelopers Dan Peterson, Paul Lindner and Chris Chabot June 2008
OpenSocial: The Power of Social Networks in Your Applications N/A Riccardo Govoni May 2008
Architectural Overview of Shindig , an OpenSocial Reference Implementation N/A Rajdeep Dua May 2008
Shindig Data Integration Development Guide N/A Chris Schalk May 2008
Make Your Site an OpenSocial Container Using Shindig N/A Chris Schalk Chris Chabot May 2008
How to create and run your own Shindig N/A ? March 2008
Shindig Architecture: Java Gadget Classes
Shindig Architecture: Java Gadget Server 2 - Servlets
Shindig Architecture: Java gadget Server 3 - Util
N/A Michael Mahemoff Feb. 2008

Shindig Examples

Design Documents


OAuth Proxy compatibility with fix for OAuth session fixation attack