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]>