Jon, Ahh yes - that's exactly the model we use too :)
My point below was that mixing 'scoped components' together in an IOC framework (specifically narrowing the scope) is a thread nightmare. This is exactly the reason you can't do it (xwork won't let you) and the reason that a ThreadLocal + IoC approach is the way to go. Sorry if I wasn't clear. Cheers, Mike On 24/9/03 5:46 PM, "Jon Lipsky" ([EMAIL PROTECTED]) penned the words: > Hi... > > I do this exact same thing with WebWork2 right now, however I use a > ServletFilter and ThreadLocal variables to solve it. > > I have an app scoped component called PersistanceManager (PM) > > When a request comes in (A) it calls PM.getSession() and puts thes the > session (SA) in the request and into a ThreadLocal variable. > > When a request comes in (B) it calls PM.getSession() and puts thes the > session (SB) in the request and into a ThreadLocal variable. > > Similary, the request is finished the ServletFilter takes care of closing > the session when the request is done. > > During the course of the request, the the code can just call methods like > > PM.create(theObject); > PM.delete(theObject); > > What this really does is get this: > > public create(Object aObject) > { > // Get the session from the Thread Local variable > Object vSession = threadLocalSession.get(); > > create(vSession,aObject); > } > > public create(Object aSession, Object aObject) > { > ... Insert create code here ... > } > > What this gives me is the abilitiy to have fine control over the session > usage if I want, but for 99% of the time I can just assume the Session is > already created in a ThreadLocal variable and happily go on my way. I can > think of only 1 case that I have ever needed to open/close/manage the > session manually once this version of the PersistanceManager and the > ServletFilter were in place. > > Jon... > > BTW - I've used this pattern with Hibernate, JDBC and Prevayler with out any > problems. (That is the reason the Session object is typed as an Object, > because when I used this pattern with JDBC, then the session object is > really a Connection object). > > ----- Original Message ----- > From: "Mike Cannon-Brookes" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, September 24, 2003 8:34 AM > Subject: Re: [OS-webwork] Issue with component lifecycle dependencies > > >> Uhm - please explain how it would be done? (could be done?) >> >> App scoped component : PersistenceManager (PM) >> >> There is therefore only one PM. >> >> Request scoped component: HibernateSession (HS) >> >> Two requests come in A and B, each with a request scoped component (HS A > and >> HS B) >> >> A calls PM.setSession(HS A); >> B calls PM.sesSession(HS B); >> A calls PM.save(); >> >> Now you're f'ked because request A is using HS B? :) >> >> This causes no end of pain as far as I can see. I'm not even sure how you >> could possibly string them together? >> >> Mike >> >> On 24/9/03 2:24 PM, "Pat Lightbody" ([EMAIL PROTECTED]) penned the > words: >> >>> I'd actually like to support this eventually (maybe 2.1). The reason for >>> this is that most DB-based resources need to be request-scoped, but > really >>> only the DB (ie: Hibernate session) needs to. No reason why everything > else >>> must get dragged down to that level as well. Since WebWork (read: NOT > XWork) >>> can assume that a request scope can map directly to a single session > scope, >>> then this is totally possible (albeit hard). >>> >>> -Pat >>> >>> ----- Original Message ----- >>> From: "Jason Carreira" <[EMAIL PROTECTED]> >>> To: <[EMAIL PROTECTED]> >>> Sent: Tuesday, September 23, 2003 8:20 PM >>> Subject: RE: [OS-webwork] Issue with component lifecycle dependencies >>> >>> >>> Umm... Because it's hard? :-) >>> >>> You'd have to have things stored in ThreadLocals and re-bound for every >>> request, I think... >>> >>>> -----Original Message----- >>>> From: Christian Meunier [mailto:[EMAIL PROTECTED] >>>> Sent: Tuesday, September 23, 2003 11:14 PM >>>> To: [EMAIL PROTECTED] >>>> Subject: [OS-webwork] Issue with component lifecycle dependencies >>>> >>>> >>>> Hi, >>>> >>>> looking at the doc i see "Note that while components are >>>> allowed to have >>>> dependencies on other components they must not depend on another >>>> component that is of a narrower scope" , is there a good >>>> reason why we >>>> have this limitation, there are many good cases where an application >>>> scoped components could depend on a session scoped/request scoped >>>> component and it does not look like it's supported at the moment. >>>> >>>> Regards >>>> Christian Meunier >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------- >>>> This sf.net email is sponsored by:ThinkGeek >>>> Welcome to geek heaven. >>>> http://thinkgeek.com/sf >>>> _______________________________________________ >>>> Opensymphony-webwork mailing list >>>> [EMAIL PROTECTED] >>>> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork >>>> >>> >>> >>> ------------------------------------------------------- >>> This sf.net email is sponsored by:ThinkGeek >>> Welcome to geek heaven. >>> http://thinkgeek.com/sf >>> _______________________________________________ >>> Opensymphony-webwork mailing list >>> [EMAIL PROTECTED] >>> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork >>> >>> >>> ------------------------------------------------------- >>> This sf.net email is sponsored by:ThinkGeek >>> Welcome to geek heaven. >>> http://thinkgeek.com/sf >>> _______________________________________________ >>> Opensymphony-webwork mailing list >>> [EMAIL PROTECTED] >>> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork >> >> >> >> ------------------------------------------------------- >> This sf.net email is sponsored by:ThinkGeek >> Welcome to geek heaven. >> http://thinkgeek.com/sf >> _______________________________________________ >> Opensymphony-webwork mailing list >> [EMAIL PROTECTED] >> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork >> > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork