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]

Reply via email to