ant elder wrote:
Currently o.a.t.assembly.Implementation is extending
o.a.t.assembly.ComponentType, is there a reason for this, I guess I though an Implementation would have a ComponentType rather than be a ComponentType?

  ...ant


Yes there is a reason for this. The current assembly model is designed to be a logical model, a logical representation of the concepts of component, componentType, constrainingType, independent of any syntax used to describe them in XML, annotations or other artifacts. So in a logical model, IMO a Component is an instance of a ComponentType (in other words a Component has a ComponentType). An Implementation exposes Services, requires References, declares Properties, and is a (concrete) ComponentType.

The fact that aspects of the componentType are partly described in the implementation artifact itself and (sometimes) in a separate .componentType file does not change the Implementation -> ComponentType relationship to a has-a instead of an is-a relationship. Actually, if we were going to change the relationship to a has-a type relationship we would realize quickly that both ends of the relationship always have 1..1 cardinality, which shows that it wouldn't be right.

Is there a specific issue with the fact that Implementation extends ComponentType instead of pointing to it?

--
Jean-Sebastien


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

Reply via email to