Stephen McConnell wrote:
>
<snip/>
>>
>> which can be ported to:
>>
>> public void service( ServiceManager manager )
>> {
>> if( this.mainManager == null )
>> {
>> this.mainManager = manager;
>> }
>> this.manager = manager;
>> }
>>
>>
>
> This is the correct approach.
>
> When preparing the service package I excluded the Recomposable notion on
> the grounds that (a) it was insufficiently documented and insufficiently
> understood at the time, and (b) in terms of an interface - you can do
> exactly what you propose above - i.e. re-apply an invocation of service(
> manager ).
>
That is a distinct break from the Composable contracts. One of the main
reasons that the Recomposable interface was originally introduced (i.e.
back in the A3.0 days) was because you needed a different contract.
Composable was purely a creation-time contract. Recomposable was a
run/use-time contract. I think it is fundamentally wrong to mix the
two.
It is true, though--Recomposable was not very well thought out as far
as implications go. Essentially, we would need to proxy *every*
component looked up to ensure none of the re*** interfaces were exposed.
It imposes a security risk where a peer component can look up your
one component, and reassign the ComponentManager at will. That is
*bad*.
--
"They that give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety."
- Benjamin Franklin
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]