So the context we are discussing is actually the context of the
component? Rather than a context being handed to the component, a la
Contextualizable.contextualize(Context)?

I thought we were discussing the later.

Corey

On Wed, 2002-07-03 at 23:18, Stephen McConnell wrote:
> 
> 
> Corey Jewett wrote:
> 
> >Trying to follow what's going on here it seems to me that Stephen wants
> >an ObjectConfiguration under the name Context. 
> >  
> >
> Nope!
> 
> What Stephen wants is to provide support for any component consitent 
> with the component model.  I'm not concerned with what the component 
> does with infortantion supplied to it.  
> 
> I am concerned about a fault in the containerkit architecture which if 
> not corrected will result in continued non-portability of components.
> 
> I'll try and explain.  I working on a container - basically an 
> application that automates the creation, deployment and decommissioning 
> of one or more components (without concern for an component implementers 
> idea of what is good, bad, appropriate or otherwise). A container that 
> has an objective of running any component has to be able to provide the 
> information that the component declares that it needs.  But this 
> requires synchronizing three different viewpoints - the *component* 
> model itself (stable and something that represents a fixed point in this 
> equation), the specifications and implementations of resources through 
> which a component can declare *constraints* (this is the content of the 
> containerkit metainfo model), and thirdly - the *criteria* within a 
> metadata model that is used to describe how information to be passed 
> between a container and a component is created.  Typically, the approach 
> to metadata creation is container specific - however, container kit 
> provides some basic structures on which different contains can share 
> common foundations.
> 
> If your look at the component model in Avalon it is defined though a set 
> of patterns and interfaces. Six of these interface actually declare 
> state that maybe required by a component - these include the LogEnabled, 
> Configurable, Parameterizable, Contextulizable and the 
> Serviceable/Composable interfaces. Of these, the Contextualizable and 
> Serviceable/Composable interfaces present a significantly higher level 
> of container/component interaction than the rest. In the case of the 
> Composable/Serviceable interfaces the metainfo model appears reasonably 
> complete in both metainfo and metadata.  The model provides support for 
> declaration of the association of types services that are keyed relative 
> to the container scoped names.  The model does not dictate how the 
> associations are derived (that's a container concern). In general is a 
> level of abstraction I'm very comfortable with.  However, if we look at 
> the same picture from the point of view of managing Contextualization of 
> a component - the containerkit framework is either (a) incomplete or (b) 
> inconsistent.  What we have in containerkit is the full definition of 
> the metainfo (ability to describe the context constraints), but nothing 
> on the metadata side.
> 
> Some suggestions have been put forward stating that validation of 
> component metadata is impossible.  Other information has been provided 
> that shown that this is possible, already available, and has been in use 
> for some time.  However, much of the discussion on this thread has 
> focussed on discussing that mechanisms to deal with a broader set of 
> context requirements based on existing and current cases of context 
> usage (which is primary reference point). An important consideration 
> here is that the containerkit framework does not need to include the 
> mechanisms for context directives, directive validation or even creation 
> - all of those things can be handled by a container implementation.  
> 
> The issue is that the current definition of the metadata type that 
> effectively represents the set of information to be used in establishing 
> the state of a component does not include an operation to get the 
> context instance.  If you look at the component ComponentMetaData class 
> in containerkit you will find operations enabling access to instances of 
> Parameters, Configuration but nothing for Context.  
> 
> The solution is to add a single method to ComponentMetaData:
> 
>   /**
>    * Returns the context object for the component.
>    * @param parent the parent context
>    * @return the context object to be supplied
>    */
>    public Context getContext( Context parent )
>    {
>        return context;
>    }
> 
> Simple!
> 
> But the impact is significant.  It means that services that I develop 
> that extend ComponentMetaData can override this method to provide 
> complete support for the standard component model and metainfo 
> constraints.  This means I can say to customers that the container I 
> provide is capable of delivering complete support for the component 
> contact.  Beyond this, we will be able to deliver a validation tool that 
> checks component integrity - its then the obligation for the container 
> authors to provide nothing less that 100% compliance with a component 
> contract or document non-compliance.
> 
> One last point - why is this important?  If Context is not provided 
> through the ComponentMetaData class, then the ComponentMetaData clas is 
> not a reference point for portability (because container developers will 
> handle the context issue in different ways).  This simply means that a 
> lot of potential for component reusability disappears and the value of 
> containerkit diminishes.
> 
> Hope that clarifies things.
> 
> 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]>
> 



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

Reply via email to