| Apache Shindig > Index |
This is the home page for the Apache Shindig space.
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 |
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.
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.
See The rough guide to deploying shindig. It's very barebones right now, but hopefully can get you started.
This how to shows the integration of a gadget in a web page Display a gadget in a web page.
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
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.
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
Rodrigo Gallardo has started a the Enabling OAuth support page. Check it out for details.
There's a mail thread that starts to describe how to do this.
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.
With Jetty, you need to set MAVEN_OPTS=-Dcom.sun.management.jmxremote and call mvn -Prun. After this, you could use jconsole as usually.
Here is the list of OpenSocial external links:
Here is the list of other OpenSocial container implementations: