Checking out the source code from SVN ============================================ 1) A Subversion client installed in order to checkout the code. * Instructions for downloading and installing Subversion can be found here: http://subversion.tigris.org/ 2) Create a subdirectory and checkout the Apache Shindig code from its Subversion repository * mkdir ~/src/shindig (or wherever you'd like to put it) * cd ~/src/shindig 3) svn co http://svn.apache.org/repos/asf/shindig/trunk/ . Installing and running the various java servers ============================================ 1) Install Maven 2.0.8 or higher (see http://maven.apache.org) 2) Make sure the JAVA_HOME environment variable is set to the location of your JDK/JRE, and that the maven executable is in your PATH. 3) From the base source directory ( eg cd .. ) * mvn - Cleans the source tree and then builds all the java classes, packages them into jars and installs them in your local repository also adds source jars ( by default ~/.m2/repository on Unix/OSX) * mvn install - does the above but does not clean first * mvn -Psocial - builds only the social parts * mvn -Pgadgets - builds only the gadget parts You must perform at least a "mvn" to place build all the artifacts and place them in you local maven repository. 4) To Run, using a embedded Jetty Webapp container, in the base project directory (eg cd .. ) * First do a full build as in step 3 * mvn -Prun - to run Jetty with both social and gadgets * mvn -Prun -DrunType=gadgets - to run Jetty with only the gadgets server * mvn -Prun -DrunType=social - to run Jetty with only the social server 5) To Run with a different port * cd java/server * mvn clean install jetty:run -DrunType= -Djetty.port= 6) Once running, you can test the gadget rendering server by hitting this url: http://localhost:8080/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml Or you can take a look at the sample container here: http://localhost:8080/samplecontainer/samplecontainer.html Editing the Shindig code with Eclipse --------------------------------------------- * Install the Maven Eclipse plugin * Create and import the Eclipse Project files * Clean up some Build Path errors. 1 - Install the Maven Eclipse plugin from http://m2eclipse.sonatype.org/update/ * There is an optional dependency on Sublipse which you can get from http://subclipse.tigris.org/ If not installing this dependency then select only the Maven Integration plug-in. 2 - Creating and Importing the Eclipse Projects * In the project base directory (same level as this file) run mvn eclipse:m2eclipse * In Eclipse, import the new projects in the File->Import->Existing Project menu. Choose "Select Root Directory" and select the project base directory that this file is in. This should find five Eclipse projects (common, features, gadgets, server and social-api). Click "Finish". * In each project, you will have a section called "Maven Dependencies", where you can find all your jars and sources. Use options in the plugin for downloading or source jars and updating dependencies. 3 - A Necessary Clean-up Step You should have 6 errors when you start Eclipse until you clean up: At the moment, you will have to edit the source dependencies to remove nested folders. On each project, edit properties > Build Path > Source and remove missing Source folders of "config", and "javascript". Do this for each of "gadgets", and "server" projects. There is a maven-eclipse-plugin bug tracking this issue in MECLIPSE-444. To remove all eclipse-related metadata from your shindig source tree, run: mvn eclipse:clean Generating Code Coverage in Eclipse ---------------------------------- To generate code coverage statistics inside of Eclipse, install the EclEmma plugin * http://www.eclemma.org/ * Open org.apache.shindig.gadgets.AllTests * Right-click in the class, and select Coverage as -> JUnit Test Building a Maven Site with Reports ---------------------------------- To build a Maven based site with reports Run: mvn clean install site:site site:deploy -Dsite.localurl=file:///Users/ieb/public_html/shindig -Dproject.url=/~ieb/shindig Where file:///Users/ieb/public_html/shindig is the final directory where you want to deploy the site to /~ieb/shindig is absolute site URL where you want the site to be hosted from. Running with Caja ---------------------------------- Caja is an important part of OpenSocial that greatly enhances JavaScript security. Caja is managed in a separate open source project hosted by Google code projects. For more information on Caja, see: http://code.google.com/p/google-caja/wiki/GettingStarted 1) Load this page: http://localhost:8080/samplecontainer/samplecontainer.html 2) Point it to this gadget: http://localhost:8080/samplecontainer/examples/SocialHelloWorld.xml To see the cajoled code (Firefox only), right-click inside the iframe and do "This Frame -> View Frame Source" Additional Reading ---------------------------------- For more information, see http://shindig.apache.org/ Read javascript/README for instructions for using the Apache Shindig Gadget Container JavaScript to enable your page to render Gadgets using gmodules.com or a server started up as described above.