InterfaceContract is not pushed down to an inner, promoted component reference 
only with Axis2 binding 
-------------------------------------------------------------------------------------------------------

                 Key: TUSCANY-2324
                 URL: https://issues.apache.org/jira/browse/TUSCANY-2324
             Project: Tuscany
          Issue Type: Bug
          Components: Java SCA Axis Binding Extension
            Reporter: Scott Kurz
            Priority: Minor


If we take the following example where an inner component reference is 
overridden in two ways by the outer component using the inner Composite as impl:
 1) a <binding.ws> is added
 2) a WSDL intf (compatible with the inner Java intf) is declared 

<composite ...   name="OuterComposite">
    <component name="OuterComponent">
        <implementation.composite name="blah:InnerComposite"/>
        <reference name="outerRef" target="MyTarget">
            <interface.wsdl interface="http://blah#wsdl.interface(HelloWorld)" 
/>
            <binding.ws/>
        </reference>
    </component>
</composite

<composite ....           name="InnerComposite">
        <component name="InnerComponent">
            <implementation.java .../>
            <reference name="helloWorldService">
                <interface.java 
interface="test.sca.w2j.ws.statc.exc.helloworld.HelloWorld"/>
            </reference>
        </component>
        <reference name="outerRef" promote="InnerComponent/helloWorldService"/>
</composite>

we have a problem.  

The CompositeActivatorImpl is going to start an Axis2ReferenceBindingProvider 
for the inner Composite ref.      The WS binding is propagated down or inwards, 
you could say.    But this WS binding has a null IC, so we're going to look at 
the component ref IC, but this will be the inner component ref IC, which is a 
Java IC.     This kicks off a Java2WSDL and the new WSDL IC becomes the Axis2 
ref binding IC.

So the generated WSDL may not match the actual WSDL, which is a problem.

Of course, if we had included a wsdlElement (e.g. wsdl.port ) on the outer 
component's <binding.ws/> we would not have had a problem;  it would have been 
propagated inwards along with the binding itself.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to