You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Peizhao Hu <pe...@itee.uq.edu.au> on 2007/07/12 07:28:02 UTC
Any requirement for making a reference name
Hi,
I have a composite file like the following:
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
name="SensorProcess">
<component name="SensorProcessServiceComponent">
<implementation.java
class="sensorprocess.SensorProcessServiceImpl"/>
<reference name="ADC2KelvinService"
target="ADC2KelvinServiceComponent" />
<reference name="kelvin2CelsiusService"
target="Kelvin2CelsiusServiceComponent" />
<reference name="celsius2FahrenheitService"
target="Celsius2FahrenheitServiceComponent" />
</component>
<component name="ADC2KelvinServiceComponent">
<implementation.java class="sensorprocess.ADC2KelvinServiceImpl"/>
</component>
<component name="Kelvin2CelsiusServiceComponent">
<implementation.java
class="sensorprocess.Kelvin2CelsiusServiceImpl"/>
</component>
<component name="Celsius2FahrenheitServiceComponent">
<implementation.java
class="sensorprocess.Celsius2FahrenheitServiceImpl"/>
</component>
</composite>
I found that if I put the reference name of each service to a slightly different name. it will not find the reference object. so is there any requirement on reference name definition?
in my example, I have two different naming problems. for example: if I use ADC2KelvinService, it will work, but not aDC2KelvinService
, and in second case, if I use Kelvin2CelsiusService, it won't work.
--
regards;
Peizhao
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-user-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-user-help@ws.apache.org
Re: Any requirement for making a reference name
Posted by Raymond Feng <en...@gmail.com>.
Hi,
The reference is defined on the componentType and it can then be configured
at the component level. For example, a java component implementation can use
@Reference annotation to declare a reference for the componentType.
package xyz;
public class MyServiceImpl {
@Reference(name="myRef1")
protected Service1 myRef1;
or
@Reference // the reference name is default to the property name, i.e.,
myRef2
void setMyRef2(Service2 myRef2);
...
}
Then you can have more than one components using the same impl class but
with different configurations:
<component name="C1">
<implementation.java class="xyz.myServiceImpl">
<reference name="myRef1" target="C3/S1"/>
</component>
<component name="C2">
<implementation.java class="xyz.myServiceImpl">
<reference name="myRef1" target="C4/S1"/>
</component>
For more information about the componentType and component, please see the
SCA assembly spec @
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pdf?version=1.
(Around line 428).
Thanks,
Raymond
----- Original Message -----
From: "Peizhao Hu" <pe...@itee.uq.edu.au>
To: <tu...@ws.apache.org>
Sent: Wednesday, July 11, 2007 10:28 PM
Subject: Any requirement for making a reference name
> Hi,
>
> I have a composite file like the following:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> name="SensorProcess">
>
> <component name="SensorProcessServiceComponent">
> <implementation.java
> class="sensorprocess.SensorProcessServiceImpl"/>
> <reference name="ADC2KelvinService"
> target="ADC2KelvinServiceComponent" />
> <reference name="kelvin2CelsiusService"
> target="Kelvin2CelsiusServiceComponent" />
> <reference name="celsius2FahrenheitService"
> target="Celsius2FahrenheitServiceComponent" />
> </component>
>
> <component name="ADC2KelvinServiceComponent">
> <implementation.java class="sensorprocess.ADC2KelvinServiceImpl"/>
> </component>
>
> <component name="Kelvin2CelsiusServiceComponent">
> <implementation.java
> class="sensorprocess.Kelvin2CelsiusServiceImpl"/>
> </component>
>
> <component name="Celsius2FahrenheitServiceComponent">
> <implementation.java
> class="sensorprocess.Celsius2FahrenheitServiceImpl"/>
> </component>
>
> </composite>
>
> I found that if I put the reference name of each service to a slightly
> different name. it will not find the reference object. so is there any
> requirement on reference name definition?
>
> in my example, I have two different naming problems. for example: if I use
> ADC2KelvinService, it will work, but not aDC2KelvinService
> , and in second case, if I use Kelvin2CelsiusService, it won't work.
> --
> regards;
>
> Peizhao
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-user-help@ws.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-user-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-user-help@ws.apache.org