The shindig plugin we developed works as a fire and forget app in all
the app server/servlet containers/RDBMS combinations that we support
(which is extensive, literally hundreds of combinations).

What we're missing is that "injectable" datasource backend.

Right now I'm flat out replacing the implementation of 

org.apache.shindig.social.opensocial.OpenSocialDataHandler

overriding the implementations of the Basic*Services.

But that's not a very nice way of working with it. At the very least we
need some way to wire in an implementation. This way you could have X
backends bundled to handle the different possible scenarios, direct
JDBC, DAO Service Tier, RPC implementation, etc, while still allowing
for custom implementations.

In our case, we're plugging in directly to our generated DAO service
tier, so as to leverage existing caching infrastructure, cluster
support, etc..., which means we'd want to implement the backend as a
custom code anyway.

The question is "which is the most accepted way of building out these
plug-able backend implementations?"

You can go anywhere from 
- classNames as servlet init-params in the web.xml file
- classpath properties files specifying implementation classes
... all the way to ...
- a Dependency Injection container like Spring...

What would be the solution of choice?

Ray

On Wed, 2008-04-02 at 21:34 -0400, Karim Jouini wrote:

> Hi,
> 
> Very good idea, I'm actually waiting for a doc like that :-) (planning to
> start integrating OpenSocial in a couple of months from now).
> 
> Thanks !
> 
> Karim
> 
> 2008/4/2, Vasu Nori <[EMAIL PROTECTED]>:
> >
> > On Wed, Apr 2, 2008 at 5:59 PM, Dan Peterson <[EMAIL PROTECTED]> wrote:
> >
> > > On Wed, Apr 2, 2008 at 5:53 PM, Kevin Brown <[EMAIL PROTECTED]> wrote:
> > >
> > > > On Wed, Apr 2, 2008 at 5:49 PM, Vasudeva Nori <[EMAIL PROTECTED]>
> > > wrote:
> > > >
> > > > > On Wed, Apr 2, 2008 at 4:50 PM, Christian Schalk <[EMAIL PROTECTED]
> > >
> > > > > wrote:
> > > > >
> > > > > > Hello shindig-dev,
> > > > > >
> > > > > > It seems like a lot of the questions on shindig-dev are around how
> > > to
> > > > > wire
> > > > > > the OpenSocal API to a real backend. Given that, I'm in the
> > process
> > > of
> > > > > > putting together a guide on how to attach your local version of
> > > > Shindig
> > > > > to
> > > > > > a
> > > > > > native datasource.
> > > > >
> > > > >
> > > > > I don't understand meaning of "wiring to a native datasource" here.
> > > > > do you mean
> > > > >
> > > > >   - how does one connect Shindig to some data source (like database)
> > > > >   that is local to wherever Shindig is running in?
> > > > >
> > > > > If so, I don't think there is any magic to it at all.
> > > > > Shindig is a java application that could be hosted on any Java
> > > > application
> > > > > server such as JBoss, WebSphere etc using frameworks such Spring
> > > (i.e.,
> > > > > not
> > > > > just on servlet container such as Jetty, Tomcat).
> > > > > Java Application Servers have dealt with this problem of connecting
> > to
> > > > any
> > > > > datasource - be it a database or file system or another application
> > or
> > > > > just
> > > > > about anything else.
> > > > >
> > > > > Right now, I don't see anything in Shindig that precludes me from
> > > > hosting
> > > > > it
> > > > > on a Java App Server. Or, just add JDBC connectivity to talk to my
> > > > > database.
> > > > >
> > > > > As long as Shindig can play nicely with Java Application Servers,
> > > > Servlet
> > > > > Containers or any Java Framework, Shindig doesn't HAVE to worry
> > about
> > > > such
> > > > > details at all.
> > > >
> > >
> > > While Shindig doesn't have to worry about it, I imagine documentation
> > > would
> > > be useful for folks looking to implement and get running in production.
> > >
> >
> > that makes sense.
> > plus, I forgot all about php.
> >
> > in that case, would be nice to include documentation on how to get it
> > hosted
> > on JBoss/WebSphere/WebLogic etc and what to watch out for. I am planning
> > on
> > doing this. I will contribute as soon as I have the details. I imagine
> > others on this mailing list may already have done that.
> >
> >
> >
> > > Thanks for taking the lead on this, Chris!
> > >
> > > -Dan
> > >
> > >
> > > >
> > > > This is true for people using Shindig Java server in an existing Java
> > > > environment, but it's not true for people who want to deploy Shindig
> > in
> > > a
> > > > non-Java (and non-PHP) environment. Right now the only answers we have
> > > for
> > > > these people are:
> > > >
> > > > - Port Shindig to your language of choice
> > > >
> > > > or
> > > >
> > > > - Use Java or PHP
> > > >
> > > > The answer we want is:
> > > >
> > > > - Wire up some RPC calls (in a config file) to your back end and
> > respond
> > > > to
> > > > those calls appropriately.
> > > >
> > > >
> > > > >
> > > > > thanks
> > > > >
> > > > >
> > > > > >
> > > > > > Here's a draft set of items that I'm planning to cover in the
> > guide:
> > > > > >
> > > > > > Basics
> > > > > >
> > > > > >
> > > > > >   1. Quick review on how to install Shindig on your server.
> > > > > >      - Testing some simple (non-OpenSocial) Gadgets on your
> > server.
> > > > > >      2. Testing an OpenSocial app within your Shindig environment
> > > > > >      - Trying out the SampleContainer.
> > > > > >      - Trying out some other simple OpenSocial apps with the
> > > > > >      SampleContainer
> > > > > >      - Playing around with simple XML based state data within the
> > > > > >      SampleContainer
> > > > > >
> > > > > >
> > > > > > Intermediate-Advanced
> > > > > >
> > > > > >
> > > > > >   1. State Data access concepts
> > > > > >   - Reviewing concepts on how to access data
> > > > > >         - The all Java approach - implementing interfaces
> > > > > >         - The RPC approach - creating http based response
> > > > > >         mechanisms
> > > > > >      2. Building your own data access using either
> > > > > >      - Java approach
> > > > > >         - Getting familiar with the classes and interfaces in
> > > > > >         org.apache.shindig.social.*.
> > > > > >         - Implement the provided interfaces to access custom data.
> > > > > >         - Language neutral RPC approach
> > > > > >         - How to build your own http mechanism in PHP to serve
> > > > > >         social data
> > > > > >
> > > > > >
> > > > > > Let me know if you any suggestions or additions, and we'll
> > continue
> > > to
> > > > > > flesh
> > > > > > this out and publish it.
> > > > > >
> > > > > > Thanks,
> > > > > > -Chris
> > > > > >
> > > > > > --
> > > > > > Chris Schalk, Google Developer Advocate
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > ~Kevin
> > > >
> > >
> >

Raymond Augé
Software Engineer
Liferay, Inc.
Enterprise. Open Source. For Life.

Reply via email to