So, as I understand, once a <component> element is defined in a composite file,
this component is treated as service by default.
If one can access service just by getService("componentName/serviceName"),
there will be no need to define <service> for service exposed by component ?
And there's no way to hide a component in composite from being accessed, even
this component is used solely for reference?
----- Original Message -----
From: "Jean-Sebastien Delfino" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, June 01, 2007 12:15 AM
Subject: Re: (SCA)How can get the service by composite service name
> [snip]
> Raymond Feng wrote:
>> Hi,
>>
>> By the SCA spec, when a deployable composite is added to the SCA
>> domain, it's "included" by the logical SCA domain composite. As a
>> result, all top-level components must have unique names.
>>
>> Thanks,
>> Raymond
>>
>> ----- Original Message ----- From: "Huang Kai" <[EMAIL PROTECTED]>
>> To: <[email protected]>
>> Cc: "???" <[EMAIL PROTECTED]>; "jiaoly" <[EMAIL PROTECTED]>; "??"
>> <[EMAIL PROTECTED]>
>> Sent: Thursday, May 31, 2007 2:03 AM
>> Subject: Re: (SCA)How can get the service by composite service name
>>
>>
>>> I understood. It seems so.
>>>
>>> While this raise another question: Tuscany seemed skipped the
>>> 'composite' layer and direct access component service, then how to
>>> access services in two composites within same domain?
>>>
>>> like this:
>>>
>>> --------------------------------------------------------------------
>>>
>>> CompositeA.composite:
>>>
>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>> targetNamespace=http://www.globalfinance.com/NASDAQ"
>>> name="NASDAQ">
>>>
>>> <component name="StockQuoteServiceComponent">
>>>
>>> <implementation.java class="com.ibm.stock.StockQuoteServiceImpl"/>
>>>
>>> </component>
>>>
>>> </composite>
>>>
>>> --------------------------------------------------------------------
>>>
>>> CompositeB.composite:
>>>
>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>> targetNamespace=http://www.globalfinance.com/HongKong"
>>> name="HongKong">
>>>
>>> <component name="StockQuoteServiceComponent">
>>>
>>> <implementation.java class="com.lenovo.stock.StockQuoteServiceImpl"/>
>>>
>>> </component>
>>>
>>> </composite>
>>>
>>> -------------------------------------------------------------------------------
>>>
>>>
>>>
>>> When these two composite all loaded in one SCADomain.
>>>
>>> How do I get StockQuoteService supplied by CompositeB or CompositeA?
>>>
>>> How can SCADomain.getService(Class, String) handle such name conflict?
>>>
>>>
>>>
>
> Adding composites to a domain is described in section 1.10.6.1.
>
> 3075 1.10.6.1 add To Domain-Level Composite
> 3076 This functionality adds the composite identified by a supplied URI
> to the Domain Level
> 3077 Composite. The supplied composite URI must refer to a composite
> within a installed contribution.
> 3078 The composite's installed contribution determines how the
> composite’s artifacts are resolved
> 3079 (directly and indirectly). The supplied composite is added to the
> domain composite with
> 3080 semantics that correspond to the domain-level composite having an
> <include> statement that
> 3081 references the supplied composite. All of the composite’s
> components become top-level
> 3082 components and the services become externally visible services (eg.
> they would be present in a
> 3083 WSDL description of the domain).
>
> So in your example you could do:
>
> CompositeA.composite:
>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> targetNamespace=http://www.globalfinance.com/NASDAQ"
> name="NASDAQ">
>
> <component name="NasdaqStockQuoteServiceComponent">
>
> <implementation.java class="com.ibm.stock.StockQuoteServiceImpl"/>
>
> </component>
>
> </composite>
>
> --------------------------------------------------------------------
>
> CompositeB.composite:
>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> targetNamespace=http://www.globalfinance.com/HongKong"
> name="HongKong">
>
> <component name="HongKongStockQuoteServiceComponent">
>
> <implementation.java class="com.lenovo.stock.StockQuoteServiceImpl"/>
>
> </component>
>
> </composite>
>
>
> Then call domain.getService(StockQuote.class,
> "NasdaqStockQuoteServiceComponent") and
> domain.getService(StockQuote.class, "HongKongStockQuoteServiceComponent").
>
>
> Hope this helps.
>
> --
> Jean-Sebastien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>