On Wed, Jan 07, 2004 at 11:56:28PM +0100, Jens Riboe wrote:
> What was the design rationale for putting it in thread local storage?
> 
> This works for servlets, but it may cause mysterious bugs in Swing
> applications, every time one uses a worker thread for a time consuming
> UI event.
> 
> How about putting state info, like actionCtx, config, etc into
> a single XWork object and then let the impl choose to store it 
> appropriately. The ctx can then be created from that object.
> 
> For a servlet one can use thread-based singleton, like above
> or put it into the servletCtx, and the actionCtx can be created and stored
> into the request.
> 
> For a Swing app, it generally suffice to go for a classloader singleton,
> aka static variable, for both config and actionCtx.

I like the way that PicoContainer has done it:

public interface ObjectReference {
    Object get();

    void set(Object item);
}

Then there can be a ThreadLocalObjectReference, or a
SingletonObjectReference as needed.

I've needed to change the way that things are stored in Pico, and it was
a 5 line change due to this abstraction.

So you have the ActionContext take an ObjectReference of where to store
itself?

Cheers,
Scott


-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to