On Apr 12, 2008, at 2:05 PM, Pascal Voitot wrote:

> After looking at the code, I see what you mean and the model seems  
> quite
> generic and on the good way!

The only problem is that I haven't found a way to inject the correct  
implementation of Container in the components that need it.

Thus for now the only solution I have is by passing it to every  
method.... It's the calling code that knows which implementation to  
pass...

Any idea?

Thanks
-Vincent

> Excuse me for my stupid ideas... wouldn't it be possible to do the  
> same for
> the context? The idea is not to be forced to pass it to every  
> call... Could
> it be possible to create an abstract and generic mechanism that passes
> context and one implementation would be ThreadLocal... And if later,  
> we
> discover a strong problem, we could have another implementation...
>
> regards
> Pascal
>
>
> On 4/12/08, Vincent Massol <[EMAIL PROTECTED]> wrote:
>>
>> Hi Pascal,
>>
>> On Apr 12, 2008, at 12:35 PM, Pascal Voitot wrote:
>>
>>> Even if I can't say I'm an expert of XWiki yet, let me give my point
>>> of
>>> view...
>>> The ThreadLocal is interesting but can bring lots of design
>>> constraints
>>> also...
>>> Moreover, I think the stateless approach would be an insurance for
>>> future
>>> evolutions and passing the context seems better for that...
>>> For example, I have been thinking about an XWiki engine using  
>>> service
>>> oriented approach... without the Servlet model... A raw XWiki  
>>> service
>>> provider without knowledge of its communication and presentation
>>> layers...
>>> Like this, it would be easy to imagine P2P, balancing, grid
>>> computing etc...
>>> To my mind, the component model goes in this way...
>>
>> Actually we're not bound to the Servlet model at all. If you check  
>> the
>> container component in SNV you'll see that it's made to be generic
>> with a first implementation for Servlet (in component-servlet).
>>
>> The only constraint is that whatever your development model you must
>> provide an implementation of the Container API, i.e. implement the
>> notion of request, response, session and application context. This is
>> what we'll do for example in the scheduler or XMLRPC module.
>>
>> To be honest, I still need to finish this container component since I
>> don't fully know yet how the correct implementation can be passed to
>> the component needing the Container object.
>>
>> Thanks
>> -Vincent
>>
>>>
>>> ThreadLocal and stateless approach may be compliant but I'm sure
>>> about this
>>> :)
>>>
>>> Pascal
>>>
>>>
>>> On 4/12/08, rssh <[EMAIL PROTECTED]> wrote:
>>>>
>>>> On Sat, 12 Apr 2008 11:25:29 +0200, Vincent Massol wrote
>>>>> Hi,
>>>>>
>>>>
>>>> Sorry, may be this is not my question, but: I can imagine
>>>> situation, where
>>>> ThreadLocal approach will fail:  it's when we do asynchronics call
>>>> to some
>>>> external entity with callback. In such case callback will not  
>>>> receive
>>>> context in
>>>> ThreadLocal.  And it is possible (and very common approach) to do
>>>> this
>>>> from
>>>> groovy scripts (as groovy has closures).
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to