I based mine on the existing struts2 plugin, and it's much more
complicated :)  There is a lot of code in there to ensure that an
interceptor only gets created once (at least that is what I think it's
doing).  Is all that code unnecessary?  I suppose I could test if it's
an interceptor and use the singleton scope from guice, and that might
solve the problem as well.

I guess based on your example that binding the classes isn't necessary
either, we can just use the implicit bindings, which makes total sense
once you see it.  That was part of my biggest disconnect, was trying
to bind all the struts2 classes when that wasn't necessary.

Thanks again Dhanji!

Brian

On Jan 22, 11:51 pm, "Dhanji R. Prasanna" <[email protected]> wrote:
> I'd say just write your own ObjectFactory. It's trivially simple (you only
> need to override one method) and lookup the injector from there. I wrote
> something like this for 
> warp-servlet:http://code.google.com/p/warp-datagrid/source/browse/trunk/warp-servl...
>
> Good luck!
> Dhanji.
>
> On Fri, Jan 23, 2009 at 3:05 PM, Brian Yarger <[email protected]> wrote:
>
> > Thanks for the quick reply Dhanji.  Of course, you're right warp-
> > persist in no way tries to create an injector, I didn't mean to lump
> > it in with struts in that regard.  Something just feels wrong about
> > letting struts create the injector to me.  I think I'm going to
> > continue down the path of sharing the injector from my ContextListener
> > and see where that takes me.
>
> > With that approach is there any way other than sharing the binder
> > instance passed into my module to allow my ObjectFactory to create
> > it's bindings after the module has been configured?  Is this a safe
> > thing to do (exposing a reference to the binder)?  Can you get a
> > Binder from an Injector somehow?  I didn't see any obvious ways to do
> > that, but I'm only hours into guice at this point.
>
> > Brian
>
> > On Jan 22, 6:04 pm, "Dhanji R. Prasanna" <[email protected]> wrote:
> > > On Fri, Jan 23, 2009 at 11:22 AM, Brian Yarger <[email protected]>
> > wrote:
>
> > > > I'm working on a little experiment trying to ditch spring in a struts2
> > > > project.  We are using spring primarily for 3 things; DI, annotations
> > > > based Transaction support with hibernate/JPA, and authentication/
> > > > authorization.
>
> > > > I've identified guice, warp-persist, and jsecurity to replace our
> > > > usage of spring.  Now, comes the hard part.  Each of these frameworks
> > > > seems to want to be the creator of the guice injector.
>
> > > warp-persist does not create any injector. The problem as you point out,
> > is
> > > really in the struts2 plugin. You should be able to use Guice Servlet 2.0
> > > (currently trunk) to achieve what you want.
>
> > > - Put warp-persist's PersistenceFilter in your ServletModule, rather than
> > > web.xml.
>
> > > - Then install it in your struts module (you will have to put struts
> > filter
> > > in web.xml *below* GuiceFilter).
>
> > > - The first request, GuiceFilter will not be configured, so it passes
> > > through to struts, which creates the injector and runs. On subsequent
> > > requests, GuiceFilter will intercede with warp-persist, security, etc.
>
> > > This is a bit hacky, but it gets you there if you don't want to write
> > your
> > > own trivial ObjectFactory to look up the injector from your
> > > ServletContextListener.
>
> > > Dhanji.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to