So here's my question that I am struggling with. If Picocontainer determines component 
dependencies based on constructor parameters, how am I going to make my Actions depend 
on components? Actions need to be JavaBeans, which means a no-arg constructor. I 
really think it would be a bad idea to make Action instantiation use Picocontainer by 
default. This needs to be pluggable as an Interceptor and have no effect otherwise. 

> -----Original Message-----
> From: Ara Abrahamian [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, June 25, 2003 12:07 PM
> To: [EMAIL PROTECTED]
> 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 sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to