Support Joomla!
From Partuza to Joomla!
User Rating: / 2
PoorBest 
OpenSocial
Written by Shannon Quinn   

Since my last update, I have heard back from not one, but TWO Shindig developers regarding integration.  Brad, a Shindig developer who made the mistake of telling me he was familiar with the Joomla! architecture, responded to me by way of email today, starting the ball rolling with how to go about tying an external library into the Joomla! framework.  Chris Chabot, one of the head Shindig developers and probably the lone Partuza dev, stumbled across this blog and he and I have since been in touch, the latest regarding the down-and-dirty specifics of the Shindig architecture.

Today I began the process of tracing Shindig's path of execution from beginning to end, to further familiarize myself with how it handles particular data requests.  The URL redirects I mentioned and had a screenshot of in a previous post is the single point of entry for all requests that are routed through Shindig, as summed up in the architectural overview of Shindig.  These redirects reference specific classes, which Shindig dynamically calls and loads based on the URL.

Now.  Each of these handler classes, or "servlets" in Shindig terminology, have identical first-layer handler method: namely, doPost(), doGet(), doPut(), and doDelete().  These methods are also formed and called dynamically by way of how the request reaches the Shindig server.  More technically, what the value of $_SERVER['REQUEST_METHOD'] happens to be.

Clear as mud so far?  Excellent.

Depending on the method of the request, and the URL the request accessed, this determines both the specific servlet and the particular method invoked in that servlet.  Which then allows Shindig to take over entirely from that point, taking care of the entire OpenSocial implementation on its own.

The way Partuza works its magic through Shindig (and the way Joomla! is just starting to as well...) is by overriding some default data handlers - specifically, abstract classes built intentionally to be overridden and extended - to tailor the data handling and processing to the specific web application.

Case in point, Joomla!.  Again, as mentioned in a previous post, these data handling classes are called "JoomlaAppDataService", "JoomlaPeopleService", and "JoomlaActivitiesService", overriding their respective abstract classes and implmenting the necessary functions within the Joomla! context.

Shindig takes care of everything else.  Seriously.  It's kind of ridiculous how powerful this application is.

What I am currently waiting on (and also actively investigating) is whether Joomla! can successfully survive by overriding only those three data handlers, or whether further integration will be necessary for these two apps to coexist peacefully.  I have already begun work rewriting and implementing these three abstract data handlers within the Joomla! environment.  It's pretty cool how this is working. :)

Oh, and the capstone project is proceeding pretty well.  The confrontation with my group member wasn't pleasant...but it accomplished what it needed to.  We have settled in a new direction and are poised to complete our project on time this Friday.  From them on out, it's allllll GSoC.  w00t

Annnnnd bedtime!

 

Show other articles of this author