blob: 29a5668571de7cfccb85e6c5543185ad3fcec319 [file] [log] [blame]
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=<full|gadgets|social> -Djetty.port=<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/gadgets/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.