Ara, As you know from our private conversation, I agree with you that session should have _some_ way to depend on request. Joe pointed out that the biggest problem with that is thread safety (two requests on the same session). I think the best way around this is to use a dynamic proxy that forwards method calls through to the right object in the right request. Should be easy to build upon the ThreadLocal ActionContext.
-Pat ----- Original Message ----- From: "Ara Abrahamian" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 25, 2003 9:07 AM Subject: RE: [OS-webwork] How do you define a component ? > Yeah I was also in favor of enabler interfaces, but now I like pico's > approach more. When you have a big app and a big hierarchy and this > hierarchy needs some components then you realize with the old approach > you just have to define lots of enablers, you can't use a base enabler > because of the way it's defined in the xml file. So for example if you > have a hierarchy of Exporters (HtmlExporter, PdfExporter, etc) then with > xwork's current approach you can't say "implements ExporterAware" and be > done. That ExporterAware is only mapped to one Exporter concrete > instance in components.xml. With pico it's just plain easy. Just pass > the correct type to a specific component in its constructor! > > But scopes are still an issue imho. I don't agree with Joe that a > components depending on narrower scoped component is a design smell. So > you have a GroceryStore component, it needs a PersistenceManager > component. In first thought you make GroceryStore app scoped, but then > realize it needs PM and PM is request scoped because it needs to open > and close sessions/transactions. So basically to scope a component you > look at the dependencies of that component and use the narrowest scope > of its dependencies for the first component. It's very easy to make > mistakes and I'm not sure scope of another component, an implementation > detail of another component, should dictate the way to choose scope for > your own component. On the other hand I understand that you can't depend > on narrower scoped components. That's very logical. What I think we need > is some help from the ComponentFactory for deciding scopes. So if I set > GroceryStore.scope=app and it needs PM and PM.scope=request then > probably ComponentFactory should dynamically tweak the scope of > GroceryStore to request (?). Another possibility if a diagramming tool > like the one Joe showed me. It visiually shows dependencies. I think we > can tune it to show scope of a dependency hierarchy. Thoughts? > > Ara. > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > BOGAERT Mathias > Sent: Wednesday, June 25, 2003 5:54 PM > To: '[EMAIL PROTECTED]' > Subject: RE: [OS-webwork] How do you define a component ? > > Hi, > > This also demonstrates one of the reasons I would like to go for > picocontainer and type 3 IOC. > When I started with IOC, I wasn't fully convinced yet, and it was more > like 'hey this is cool'. More experimentation like. > Now, after 2 weeks converting most of my components to use IOC, I am > beginning to hate all those enabler interfaces since I know they can be > made redundant. > > I hope we migrate to pico soon. > > Cheers, > Mathias > -----Original Message----- > From: Jason Carreira [mailto:[EMAIL PROTECTED] > Sent: woensdag 25 juni 2003 16:19 > To: [EMAIL PROTECTED] > Subject: RE: [OS-webwork] How do you define a component ? > Think of them as services... your persistence manager might be a good > candidate. You could bind a Hibernate implementation, for instance, into > the persistence manager spot in the registry. It could declare that it > depends on a ConnectionProvider (another component) so it would be > provided one when it is instantiated. You could also have a ShoppingCart > component / service which depends on the PersistenceManager, etc... > -----Original Message----- > From: Christian Meunier [mailto:[EMAIL PROTECTED] > Sent: Wednesday, June 25, 2003 7:37 AM > To: [EMAIL PROTECTED] > Subject: Re: [OS-webwork] How do you define a component ? > Refining a little bit my question, what does make a good candidate for a > component ? Obvious examples we see everywhere is bridge component ( > Trade component to query a trade engine etc...) but beside this ? Many > things can be done with interceptors and you can always re use your > business layer or part of it in another applications, guess i dont get > it :) > > Chris > > ----- Original Message ----- > From: Christian Meunier > To: [EMAIL PROTECTED] > Sent: Wednesday, June 25, 2003 12:20 PM > Subject: [OS-webwork] How do you define a component ? > > Hi everyone, while reading the topic about nano/pico container, few > questions keep coming to my mind, what exactly is a component, which > purpose does it have ? How exactly is it different from an aspect in AOP > ? How do you choose to code something as a component rather than as a > 'module' in your business logic ? > > Thanks in advance for any though you can share on this topic. > Christian Meunier > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: INetU > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork