Stephen McConnell wrote:

>
>
>>>> Interface Proposal
>>>> ------------------
>>>>
>>>> The following two interfaces are proposed as a common replacement 
>>>> of the Merlin Extension interface and Fortress LifecycleExtension 
>>>> interface.
>>>>
>>>>    interface Creator
>>>>    {
>>>>         void create( Object object, Context context )           
>>>> throws Exception;
>>>>         void destroy( Object );
>>>>    }
>>>>
>>>>    interface Accessor
>>>>    {
>>>>         void access( Object object ) throws Exception;
>>>>         void release( Object object );
>>>>    }
>>>>   
>>>
>>>
>>>
>>> :/
>>>
>>> I would add the Context to each of the methods, but your exception
>>> handling is correct.  See above for examples that require the existence
>>> of the Context obejct.
>>>
>>
>> I'm still maintaining my position that this is not needed, but in the 
>> meantime, some questions - Is it correct to asume that the context 
>> instance is the same imutable instance for each invocation?  If this 
>> isn not true, a lot more complexity is needed in the meta-info and 
>> meta-data model (a.k.a. lets' not go in that direction).  Secondly, 
>> assuming it's the same instances, then if the container has to cache 
>> this value (as opposed to the extension) - (which is what your 
>> suggesting), then basically your saying that for every component 
>> instance, the container must maintain the context state for all of 
>> the extensions the component is dependent on (eeek).  I'm reasonably 
>> confident that you don't want to imply that, but as far as I can see 
>> - that's the implication. Can you enlighten me? 
>
>
>
> If the context is imutable for the lifetime of the profile (as opposed 
> to an instance of the type), then maintaining the set of context vales 
> under a map keyed by extension stage may be possible within the scope 
> of the AbstractLifestyleHandler - I'm looking into it further - inital 
> thoughts are that this may not be as problamatic as I'm suggesting above. 


OK

After seperation of profile deployment from instance instantiation I can
now provide context to all stages.

I'll go ahead and update Merlin's extension framework to the following:

   interface Creator
   {
        void create( Object object, Context context )
           throws Exception;
        void destroy( Object object, Context context );
   }

   interface Accessor
   {
        void access( Object object, Context context ) throws Exception;
        void release( Object object, Context context );
   }

Cheers, Steve.


-- 

Stephen J. McConnell

OSM SARL
digital products for a global economy
mailto:[EMAIL PROTECTED]
http://www.osm.net




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to