Leo Simons wrote:

>On Wed, 2002-08-28 at 09:35, Stephen McConnell wrote:
>  
>
>> >> In the list below I don't see why we need component, partition and
>> >> application seperation - these notions are container specific.
>> >
>> >
>> > That 's what I thought, but...
>> >
>> >> I would prefer to the subset :
>> >>
>> >>    avalon:home.dir
>> >>    avalon.work.dir
>> >>    avalon::common.classloader <-- but question on this
>> >>    avalon::name
>> >
>> >
>> > The question is: how can we differentiate between component, partition
>> > and application - level - stuff?
>> >
>> > What about:
>> >
>> >     avalon:home.dir
>> >     avalon.work.dir
>> >     avalon:common.classloader
>> >     avalon:context:name
>> >
>> > and
>> >
>> >     avalon:app.context
>> >     avalon:partition.context
>> >
>> > ?
>>
>>
>>The issue is - what does it mean?
>>
>>If we look at the core requirements, what we need are the primitive
>>values that a container must be able to provide to a component.
>>    
>>
>
>I think what we need to do first is decide the primitive key names and
>value types a container must use to provide a certain piece of
>information to a component.
>
>For example, if a container has a notion of "home directory" at the
>"application level" and exposes it to components, it should do so by
>providing it to components as an instance of File with the key
>"avalon.application:home.dir" inside the Context passed in.
>
>It is too early to specify the "minimum context". For example, we do
>*not* specify "all containers should provide components with a
>classloader in the context using key "blah"".
>

OK.

>
>> But
>>before doing this we must fully understand what these things mean.
>>
>>The distinction between a component and an application is something that
>>exists as an implementation artifact.
>>
>>   * What should containers provide in a situation where we
>>     don't have a formal definition of an application.
>>    
>>
>
>nothing or a default (more coarse or less coarse as appropriate)
>
>  
>
>>   * What should a container provide in respect to a partition
>>     without a specification of a partition.
>>    
>>
>
>nothing or a default (more coarse or less coarse as appropriate)
>
>  
>
>>Putting in place specifications of the notions of application and
>>partition go further that the framework specification - as distinct from 
>>the home, work and classloader keys which are much operational aspects 
>>relative to the framework spec.
>>
>>As more concrete ideas on things like "what is an application" emerge, 
>>we can address extensions to a common keys and attributes specification. 
>>  There is no need to declare them before that.
>>    
>>
>
>I think the concepts of application and partition are generally clear
>enough to be part of the specification on this level. I do agree that
>the definition of both in this context (no pun intended) should be part
>of the proposal.
>

Given a structure:

    <domain>.<scope>:<key>

Where domain is "avalon", scope something like "common", "application", 
"partition", etc. and the key is string following convensions such as 
directories container is ".dir" suffix.

Here is a breakdown of different scopes and my understanding of them:

   Scope             Description
   
   system            relative to a single JVM - resolution is
                     strait forward because thare is only one
                     system

                     Example: avalon.system:implementation or
                     avalon.system: version

   application       a logical association of a family of
                     components - multiple application scopes
                     may exist within a single system and values
                     assigned to keys within this scope may
                     be different from one application to another

                     Example: avalon.application:home.dir is an
                     instance of java.io.File created by a container
                     for a specific instance of an application.
                     
                     Implications: containers must provide at least
                     an implicit single application scope.  
                     Implementation may provide support for multiple
                     application scopes.

   container         a scope covering a manageble collection of
                     components
                     
                     Example: avalon.container:classloader - the
                     classloader assigned to the container

                     Implications: containers must provide at least
                     an implicit single container scope.  
                     Implementation may provide support for multiple
                     container scopes.

   component         a scope dealing with information about a specific
                     instance of a component

                     Example: avalon.component:name is a name assigned
                     by the container to the component

   partition         ?

   common            ?

I think that there is a difference between application and container 
scopes (which is why I have included it above).  Application scope is 
much more about a familiy of components wheras container scope is about 
unit of seperation.

My impression is that the "common" scope is falling out because the list 
is looking more complete.  The partition scope bothers me because I 
don't have any immediate examples of the sort of information that a 
component would/could be requesting.

Thoughts?

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