Couldn't some sync() blocks around the higher scoped item solve that? Most session-scoped things should be sync'd anyway.
-Pat ----- Original Message ----- From: "Jon Lipsky" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, September 24, 2003 4:45 AM Subject: Re: [OS-webwork] Issue with component lifecycle dependencies > Mike, > > Yeah, I was trying to make that point as well that scoped components and IOC > don't work well together. I realized after I sent the message that didn't > state that anywhere. Thanks for putting it in clear english. :-) > > Cheers, > Jon... > > ----- Original Message ----- > From: "Mike Cannon-Brookes" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, September 24, 2003 12:03 PM > Subject: Re: [OS-webwork] Issue with component lifecycle dependencies > > > > 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 > > > > > > > ------------------------------------------------------- > 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