Reference with <binding.sca uri="targetService> may be resolved with another 
binding when target service is exposed over multiple bindings
------------------------------------------------------------------------------------------------------------------------------------------

                 Key: TUSCANY-3941
                 URL: https://issues.apache.org/jira/browse/TUSCANY-3941
             Project: Tuscany
          Issue Type: Bug
          Components: Java SCA Assembly Model
    Affects Versions: Java-SCA-2.x
            Reporter: Scott Kurz
            Priority: Minor


If I have a service exposed over multiple bindings (including binding.sca) and 
I target it from component reference:

 <reference name="xxx">
     <binding.sca uri="targetService"/>
 </reference>

then the runtime should use binding.sca to perform the invocation.     

However, I'm noticing this isn't always the case.    It seems that the runtime 
is treating this case similar to:

 <reference name="xxx" target="targetService"/>

in which case it is up to the runtime to pick the binding (if there are no 
other intents, etc.).  

In a couple tests I've run the runtime seems to pick the first binding in order 
listed in the target service SCDL, which is wrong when the 
resolution is done with binding child elements rather than the @target attr.

-----

One itest I happen to have just worked with which can be used to recreate this 
is the set of tests in testing/itest/data-copy.

If, starting from that directory, I change 
client/src/main/resources/helloworld-client.composite to: 
    ...
   <component name="ClientSCA">
      <implementation.java class="itest.client.impl.ClientImpl"/>
      <reference name="service">
          <binding.sca uri="Service"/>
       ...

then I will still get binding.sca on this invocation, since in 
service/src/main/resources/helloworld-service.composite I have:

    <component name="Service">
       <implementation.java class="itest.service.impl.ServiceImpl"/>
       <service name="ServiceIntf">
           <binding.sca name="sca"/>
           <binding.ws name="ws" 
uri="http://localhost:8085/Service/ServiceIntf"/>
            ....

However, if I switch the order of <binding.sca>, <binding.ws>  in the service 
SCDL, I will end up getting binding.ws on the invocation.

(Note you should need the debugger or some other method... I don't recall the 
test is designed to fail if the "wrong" binding is used). 



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to