You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Simon Laws <si...@googlemail.com> on 2008/08/27 12:03:58 UTC
Re: if two composite contribut to same scaDomain, both contain a component whose name is same, how could I choice the differnent component's service?
On Wed, Aug 27, 2008 at 8:06 AM, xuhongbo <xu...@tongtech.com> wrote:
> Hello,
> The sca assembly model v100 defined the component's name should be
> unique across all the components in the composite. But different composite
> may occasionally contain component whose name is same;
> So if I contribute such two different composite to one scaDomain,
> how could I choice the two different component whose name is same, but
> reside in two different composite?
>
> ScaDomain.getService() is not applicable, yet, as it's only required
> component name ,and doesn't require any argument to distinguish composite
>
> Etc:
> ScaDomain.newInstance(domainUri, contextRoot,
> "CompositeA.composite", "CompositeB.composite");
> ScaDomain.getService(UniqueService.class, "Unique") //which
> composite's "unique" component?
>
> CompositeA.composite:
>
> <composite name="CompositeA" .>
> <component name="Unique" .>
> </component>
> ..
> </composite>
>
> CompositeB.composite:
>
> <composite name="CompositeA" .>
> <component name="Unique" .>
> </component>
> ..
> </composite>
>
>
>
>
>
You should consider that in order to enable 2 separate composites they need
to be contributed to the domain in some way. For example,
1 - composites contributed as deployable
2 - included in other composites that are included as deployable composites
3 - named as component implementations using implementation.composite
In cases 1 and 2 the composite is flattened out and become part of another
composite (in case 1 this other composite is the virtual domain composite).
The component name must be unique in this context.
Simon