Mate,

Great email - thoughts below:
 
> Several people have been asking about replacing the clazz.newInstance() calls
> in XWork with object factories which can be replaced, to allow integration
> with Spring/Pico/etc... While I'm all for this, I think there are some issues
> that need to be thought through so we can get a design that really works and
> meets everyone's needs...
> 
> 1) Lifecycle / Scope : Some object instances, like Actions, are request
> scoped, and can depend on request scoped components. Some, like Interceptors,
> can only depend on application scoped components. I can't think of any that
> are session scoped right now...

So? :) Perhaps I'm missing something, but how does the scope really affect
the use of a factory to create the object? I'd assume the default factories
would just use clazz.newInstance() anyway - so the overhead is a single
method call no?
 
> 2) The internals of XWork are filled with static singletons which can be
> replaced at system initialization... Should we tackle replacing these with
> making all of the internal components of XWork be wired together by the object
> factory at runtime?

I'm not sure that's really needed - if it works it works. I would like to
reduce the number of statics over time though.
 
> 3) XWork IoC... How much do we want to put into this? Should we deprecate this
> in favor of an integration with a dedicated IoC container?

It's simple, it works, it's tested. Leave it IMHO?
 
> 4) IoC container support: Do we want to create a generic Interface for these
> integrations, and provide different implementations, or do we want to choose
> one and make it the heart of the framework, such that it weaves together all
> of the other pieces, which become components (which Actions, Interceptors,
> Results, etc could depend on)? Or, do we want to do this 2+ times, defining
> the dependencies and letting either Spring or Pico, etc. pull it together at
> runtime? This is dependent on #2, obviously...

It's very tricky to do this, because Spring and Pico operate so differently
(in their optimal, recommended modes). I think there will need to be a
number of 'plugin' points to make it work as people want - for example the
object factories, the external reference resolver that's already there etc.
 
> One question I had about these frameworks... Is it possible for me to define a
> default configuration, and allow the users of the framework to just
> selectively replace individual components, or would they have to reconfigure
> the whole thing? 

Uhm, not sure what you mean here - could you extrapolate?

Cheers,
Mike

PS We're a good test case for frameworks - currently JIRA 2.6 is using more
and more Pico, and Confluence 1.0 is completely built with Spring IOC :)

--
ATLASSIAN - http://www.atlassian.com/
 
Confluence - the professional J2EE wiki - tried it yet?
http://www.atlassian.com/confluence/ 



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to