Joel Pearson created CXF-5665:
---------------------------------

             Summary: Java First WS-Policy duplicate PolicyReferences when 
using annotations and no separate Java Interface
                 Key: CXF-5665
                 URL: https://issues.apache.org/jira/browse/CXF-5665
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.7.10, 3.0.0-milestone2
            Reporter: Joel Pearson
         Attachments: duplicate-policyreference-test.patch

In CXF 2.7.10 when using Java First WS-Policy Annotations such as: 

{code:java}
@Policies({ 
        @Policy(uri = "annotationpolicies/TestOperationPolicy.xml"), 
        @Policy(uri = "annotationpolicies/TestOperationInputPolicy.xml", 
                        placement = Policy.Placement.BINDING_OPERATION_INPUT), 
        @Policy(uri = "annotationpolicies/TestOperationOutputPolicy.xml", 
                        placement = Policy.Placement.BINDING_OPERATION_OUTPUT), 
        @Policy(uri = "annotationpolicies/TestOperationPTPolicy.xml", 
                        placement = Policy.Placement.PORT_TYPE_OPERATION), 
        @Policy(uri = "annotationpolicies/TestOperationPTInputPolicy.xml", 
                        placement = 
Policy.Placement.PORT_TYPE_OPERATION_INPUT), 
        @Policy(uri = "annotationpolicies/TestOperationPTOutputPolicy.xml", 
                        placement = 
Policy.Placement.PORT_TYPE_OPERATION_OUTPUT) 
}) 
{code}

The resulting WSDL ends up generating multiple PolicyReference elements when 
there is no separate Java Interface for example: 

{code:xml}
<wsdl:operation name="echoInt">
                <soap:operation soapAction="" style="document"/>
                <wsp:PolicyReference URI="#echoIntBindingOpPolicy"/>
                <wsp:PolicyReference URI="#echoIntBindingOpPolicy"/>
                <wsdl:input name="echoInt">
                                <soap:body use="literal"/>
                                <wsp:PolicyReference 
URI="#echoIntBindingOpInputPolicy"/>
                                <wsp:PolicyReference 
URI="#echoIntBindingOpInputPolicy"/>
                </wsdl:input>
                <wsdl:output name="echoIntResponse">
                                <soap:body use="literal"/>
                                <wsp:PolicyReference 
URI="#echoIntBindingOpOutputPolicy"/>
                                <wsp:PolicyReference 
URI="#echoIntBindingOpOutputPolicy"/>
                </wsdl:output>
</wsdl:operation>
{code}

This problem can be reproduced by modifying the 
_rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ws/PolicyAnnotationTest.java_
 test so that it counts the number PolicyReference's

This problem affects both the 2.7.x series and master/trunk at the present 
time, 2.6.x does not have this problem.

A patch to the above mention test is attached.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to