On 29 Jul 2008, at 00:28, Kevin Brown wrote:
On Mon, Jul 28, 2008 at 11:08 AM, Ben Laurie <[EMAIL PROTECTED]> wrote:
So, I'm supposed to be constructing a how-to for container authors on
running Shindig and Caja.
I presume one is not expected to run Maven for a production system.
So, what does one do for that?
Maven is a build system. You use it to build the artifacts (JAR or WAR
files) for deployment on an appropriate servlet container (jetty,
tomcat,
jboss, etc.) If you're using a J2EE container, you can probably
just drop
the WAR in and it'll work. For other setups, using the jars with some
wrapper logic is probably more appropriate.
Similarly, are there any instructions on integrating with my own
systems or running my own opensocial javascript? Or do I have to work
that out by poking?
For social data, you have to implement the primary social data
interfaces
(people, activities, and app data). Christian Schalk has an excellent
writeup on the process, though it's a bit dated now. Cassie, Ian,
and Louis
might be able to offer assistance here.
yes, the maven build will generate a usable war, but if you want to
connect it to your own back end or customize the front end there are
a couple of integration points.
org.apache.shindig.social.opensocial.service.*
and
org.apache.shindig.social.opensocial.spi.*
---------------------------------------------------
The Front End Service Implementation
----------------------------------------------------
org.apache.shindig.social.opensocial.service.*
On the front (ie towards http) you may want to extend the
social.service API
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/service/package-summary.html
to be precise DataServiceServlet
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/service/DataServiceServlet.html
However this can be used as is.
--------------------------------------------
The back end SPI
--------------------------------------------
On the back end you will want to implement your own versions of the
Service Provider Interfaces
org.apache.shindig.social.opensocial.spi.*
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/spi/package-summary.html
again, to be precise
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/spi/ActivityService.html
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/spi/AppDataService.html
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/spi/PersonService.html
Shindig comes with a default JSONDB implementation of these services,
these services should emit objects implementing the interfaces in the
model api
http://people.apache.org/~ieb/shindig/apidocs/org/apache/shindig/
social/opensocial/model/package-summary.html
Although, if the service implementation wants to use the shindig
internal implementations of these, the Guice injector has them
registered as default implementations. (@ImplementedBy)
------------------------------------------------
Having created your own service implementations you will need to add
your GuiceModule to the list of modules in the web.xml of the the
deployed webapp. Your module should contain bindings for the SPI and
Model classes that you are providing as well as anything else you
need to perform the integration.
There is a Cache SPI in SHINDIG-279 which might become available soon
for those that have caching infrastructure they want to re-use.
Sorry thats all a bit rough but I hope it helps.
Ian