I'm not a huge fan of fully absolute variables but as long as we can 
guarantee that we have always access to ThreadLocal, I'm fine since it's 
a bad idea anyway to share a context from one thread to another (we need 
a generic method to clean it up when we do like in the Lucene or 
Scheduler plugins).

Now does every case allow ThreadLocal ? Do clustering solutions like 
TeraCotta allow it ?

I would prefer if we kept all request specific in one context object 
(request, response, etc..)

Ludovic

Vincent Massol wrote:
> Hi,
>
> In the new xwiki architecture we need to take a call for passing the  
> request, response and session around (what is currently called the  
> XWikiContext). We have 2 solutions:
> 1) we pass it around for all method calls as it's currently done
> 2) we use ThreadLocal(s). If you don't know what it is see for ex: 
> http://crazybob.org/2006/07/hard-core-java-threadlocal.html 
> .
>
> The advantage of solution 2) is that any component in the new  
> architecture can decide to have the Container component injected (see 
> http://svn.xwiki.org/svnroot/xwiki/xwiki-platform/core/trunk/xwiki-containers/)
>  
>   and thus be allowed to access the request, response and session  
> objects without having all its method add a Container object passed to  
> it.
>
> The downside of solution 2) is simply that we associate Unit Of Work  
> with Threads. But since we use a Servlet model and since I don't see  
> any foreseeable future where we would want to use several threads for  
> the same unit of work, I don't think this is limitating for us. See 
> http://blog.objectmentor.com/articles/2007/09/04/thread-local-a-convenient-abomination
>  
>   for some explanation on this.
>
> So right now and even though ThreadLocal sound a little bit "hackish",  
> I think this is still my preference as it'll save us from having to  
> pass Container objects everywhere.
>
> Since this is an important architecture decision I wanted to have a  
> vote for it.
>
> Thanks
> -Vincent
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
>   


-- 
Ludovic Dubost
Blog: http://blog.ludovic.org/
XWiki: http://www.xwiki.com
Skype: ldubost GTalk: ldubost

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to