Niclas Hedhman wrote:

On Thursday 18 March 2004 20:39, Niclas Hedhman wrote:

Because more than one component can be of the same Type.


And in that lies a problem... Gut feeling says something is wrong here.

If more than one component can be of the same Type (natural associations), then the Type descriptor should be decoupled from the component completely, and the component just reference which Type it is adhering to.

Theoretically yes - but in practice no.


When you combine all of the information about a component type into a Type instance you end up with something that is aligned and reflective of the implementation logic (lifestyle assumptions), structural associations (dependencies), deployment dependencies (stage dependencies), and capabilities (services and extension handling abilities).

The Type instance is not something used to describe a potential solution - that what services do. Instead the information contained in a Type allows structural validation - i.e. can all of the rules be respected - is the component type's class available in the classloader? Are the services that it depends on known and available in the classloader? If these basic fundamentals cannot be fulfilled - you know your not even going to bother with subject like instantiation, deployment, etc. Moving on - assuming you have a valid type, you available to you sufficient information to determine if the a component instance can (in principal) be wired to run. If yes - then and only then - you can start playing with the profile for deployment (configurations, context, parameterization, etc.).

There is also another benefit form the separation of type and component. A Type is an immutable data model that can be exchanged between systems. It does not reference classes or resources outside of the meta-info api - which means you can do a lot of things in a system to create the environment that a type requires. We aren't doing this sort of thing yet but were getting real close.

Cheers, Stephen.

Niclas


--

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/merlin/distributions/latest    |
|------------------------------------------------|

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



Reply via email to