+1 on making Lift work with OSGi
+1 on ripping the logic out of both the Servlet and ServletFilter
implementations and moving them elsewhere.  This will be necessary to do
portlets anyway.

On Thu, Mar 19, 2009 at 1:45 PM, marius d. <marius.dan...@gmail.com> wrote:

>
> Hi Chad,
>
> On Mar 19, 9:45 pm, chad skinner <chadwskin...@gmail.com> wrote:
> > I am trying to redesign our web applications into a more services /
> > component based system that would allow us to add features without
> > having to worry about breaking other components. I have been
> > investigating OSGi as a framework utilizing EJB3 and JPA. So far I
> > have (at least I believe) all of my EJBs and Entities deploying in the
> > OSGi container. The primary issue I have to address now is how to
> > handle authentication and the User Interface (we are currently using
> > JSF, but it has not been a good fit for our applications) and during
> > some reading I ran across the Lift Framework and am impressed so far,
> > but was wondering if anyone has any ideas on how it could be
> > integrated into OSGi applications?
>
> Personally I'm not experienced with OSGi but Lift is exposed to the
> JEE web container using a Servlet filter, not a servlet per se and
> AFAIK to the OSGi HttpService one can only register a
> servlet.LiftServlet class is A HttpServlet but I don;t think that this
> would help you much as critical operations are done in the LiftFilter
> class.
>
> >
> > Would it be possible to create a servlet that would register itself
> > with OSGi as handling all http requests. Then have a bundle that
> > implements a service interface containing methods that determine if
> > the bundle can handle a requested URI, and a method that the
> > controller can call to delegate the request. This delegation process I
> > believe to be entirely possible however I am not certain how this
> > would play well with the Lift Framework.
>
> Well Lit's controllers are essentially functions and partial
> functions.I think that in order to have a Lift Servlet usable in this
> context would require a bit of changes in Lift. In fact OSGi
> integration has been discussed before if I remember correctly but
> never materialized mostly due to other priorities.
>
> >For this to work, I would
> > need to have an OSGi activator that could initialize and destroy the
> > Lift configuration when the bundle is activated or deactivated (I
> > believe this would be similar to the initialization and destruction
> > processes in the Lift Filter.
> >
> > One issue is whether or not it is possible to have multiple lift
> > instances running as you will have multiple bundles each with its own
> > snippets and templates and these may need to be able to access the
> > templates from other services.
>
> If and only if each registered servlet is loaded by a separate class-
> loader (unrelated in the delegation chain) that should be possible
> otherwise because Lift is using Scala objects such as LiftRules there
> are no boundaries so there can not be separate LiftRules etc.AFAIK
> each OSGi bundle is loaded by its own classloader. Am I wrong ?
>
> >
> > Our system uses a series of nested services and I am trying to figure
> > out how I can register the servlets in a hierarchal fashion without
> > knowing what context the parent bundle’s servlets are registered. For
> > example, The profile may register is servlets under /profile, but the
> > blog that adds functionality to the profile would register itself with
> > the profile under /blog. The issue is that profile injects a couple of
> > elements into the path so that /profile/private/blog shows the owner/
> > administrator view of the blog, but /profile/<username>/blog shows the
> > public representation of the blog. The only way I can figure out how
> > to make this work is to use delegation.
> >
> > Does anyone know if it is possible to setup lift in an OSGi bundle
> > activator and then have another servlet delegate the calls to the Lift
> > framework? Also, does anyone have any thoughts on how security could
> > be implemented in a dynamic situation like this? Lastly, if this is
> > possible, is this a good approach or if there are better solutions?
>
> IMHO Lift's integration in OSGi needs some work that is definitely
> worthwhile.
>
> >
> > I have been trying to get my thoughts down in words for a few days and
> > am not certain that I have done a good job of explaining what I am
> > thinking, but any thoughts or questions would be appreciated.
>
> All these are very interested things but to make it happen I think:
>
> 1. Make proper isolation for Lift to be properly initialized without a
> Lift Filter (not sure if OSGi will support registering filters any
> time soon). Thus one can have different context paths ... essentially
> different Lift apps registered
> 2. Test, test, test ...
>
> One thought though .. you mentioned that you'd want to use different
> context /profile, /blog etc. For that you don't actually need
> different LiftServlet .. just a single Lift servlet registered to the
> ROOT "/" context and let Lift manage the other paths /profile, /
> blog, ... etc.
>
> >
> > Thanks,
> > Chad
> >
>


-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to