You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/12/15 23:32:33 UTC

svn commit: r891044 - in /cxf/branches/2.2.x-fixes: ./ rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ systests/ws-specs/src/test/resources/wsdl_systest_wsspec/ tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws...

Author: dkulp
Date: Tue Dec 15 22:32:33 2009
New Revision: 891044

URL: http://svn.apache.org/viewvc?rev=891044&view=rev
Log:
Merged revisions 891036 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r891036 | dkulp | 2009-12-15 17:27:25 -0500 (Tue, 15 Dec 2009) | 1 line
  
  [CXF-2546] Support for new ws-a metadata namespace
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
    cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl
    cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WSActionAnnotator.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Dec 15 22:32:33 2009
@@ -1 +1 @@
-/cxf/trunk:890614,890633-890756,890819,890957
+/cxf/trunk:890614,890633-890756,890819,890957,891036

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java?rev=891044&r1=891043&r2=891044&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java (original)
+++ cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java Tue Dec 15 22:32:33 2009
@@ -794,6 +794,10 @@
     public static String getAction(Extensible ext) {
         Object o = ext.getExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME);
         if (o == null) {
+            o = ext.getExtensionAttributes().get(new QName(Names.WSA_NAMESPACE_WSDL_METADATA,
+                                                           Names.WSAW_ACTION_NAME));
+        }
+        if (o == null) {
             o = ext.getExtensionAttributes().get(new QName(Names.WSA_NAMESPACE_WSDL_NAME_OLD,
                                                    Names.WSAW_ACTION_NAME));
         }

Modified: cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java?rev=891044&r1=891043&r2=891044&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java (original)
+++ cxf/branches/2.2.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java Tue Dec 15 22:32:33 2009
@@ -40,6 +40,8 @@
 
     public static final String WSA_NAMESPACE_WSDL_NAME_OLD = 
         "http://www.w3.org/2005/02/addressing/wsdl";
+    public static final String WSA_NAMESPACE_WSDL_METADATA = 
+        "http://www.w3.org/2007/05/addressing/metadata";
     public static final String WSA_NAMESPACE_PATTERN = "/addressing";
 
     public static final String WSA_REFERENCE_PARAMETERS_NAME = 

Modified: cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl?rev=891044&r1=891043&r2=891044&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl (original)
+++ cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl Tue Dec 15 22:32:33 2009
@@ -24,7 +24,8 @@
 	     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 	     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
 	     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
-	     xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl">
+	     xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
+	     xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
     <types>
 	<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" 
 		    elementFormDefault="qualified" 
@@ -90,9 +91,9 @@
 <!-- 	    <fault name="addNumbersFault" message="tns:addNumbersFault"/> -->
 	</operation>
 	<operation name="addNumbers3">
-	    <input message="tns:addNumbers3" wsaw:Action="3in"/>
-	    <output message="tns:addNumbers3Response" wsaw:Action="3out"/>
-	    <fault name="addNumbersFault" message="tns:addNumbersFault" wsaw:Action="3fault"/>
+	    <input message="tns:addNumbers3" wsam:Action="3in"/>
+	    <output message="tns:addNumbers3Response" wsam:Action="3out"/>
+	    <fault name="addNumbersFault" message="tns:addNumbersFault" wsam:Action="3fault"/>
 	</operation>
     </portType>
     <binding name="AddNumbersBinding" type="tns:AddNumbersPortType">

Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WSActionAnnotator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WSActionAnnotator.java?rev=891044&r1=891043&r2=891044&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WSActionAnnotator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WSActionAnnotator.java Tue Dec 15 22:32:33 2009
@@ -27,6 +27,7 @@
 import javax.xml.ws.FaultAction;
 
 import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.service.model.AbstractMessageContainer;
 import org.apache.cxf.service.model.FaultInfo;
 import org.apache.cxf.service.model.MessageInfo;
 import org.apache.cxf.service.model.OperationInfo;
@@ -41,18 +42,36 @@
 public final class WSActionAnnotator implements Annotator {
     private static final QName WSAW_ACTION_QNAME = new QName("http://www.w3.org/2006/05/addressing/wsdl", 
                                                              "Action");    
+    private static final QName WSAM_ACTION_QNAME = new QName("http://www.w3.org/2007/05/addressing/metadata", 
+                                                             "Action");    
+    private static final QName WSAW_OLD_ACTION_QNAME 
+        = new QName("http://www.w3.org/2005/02/addressing/wsdl", "Action");    
     private OperationInfo operation;
 
     public WSActionAnnotator(final OperationInfo op) {
         this.operation = op;
     }
     
+    private String getAction(AbstractMessageContainer mi) {
+        QName action = (QName)mi.getExtensionAttribute(WSAW_ACTION_QNAME);
+        if (action == null) {
+            action = (QName)mi.getExtensionAttribute(WSAM_ACTION_QNAME);
+        }
+        if (action == null) {
+            action = (QName)mi.getExtensionAttribute(WSAW_OLD_ACTION_QNAME);
+        }
+        if (action != null) {
+            return action.getLocalPart();
+        } 
+        return null;
+    }
+    
     public void annotate(JavaAnnotatable ja) {
         JavaMethod method;
         if (ja instanceof JavaMethod) {
             method = (JavaMethod) ja;
         } else {
-            throw new RuntimeException("RequestWrapper and ResponseWrapper can only annotate JavaMethod");
+            throw new RuntimeException("Action can only annotate JavaMethod");
         }
 
         boolean required = false;
@@ -64,19 +83,19 @@
 
         JAnnotation actionAnnotation = new JAnnotation(Action.class);
         if (inputMessage.getExtensionAttributes() != null) {
-            QName inputAction = (QName)inputMessage.getExtensionAttribute(WSAW_ACTION_QNAME);
+            String inputAction = getAction(inputMessage);
             if (inputAction != null) {
                 actionAnnotation.addElement(new JAnnotationElement("input", 
-                                                                          inputAction.getLocalPart()));
+                                                                   inputAction));
                 required = true;
             }
         }
 
         if (outputMessage != null && outputMessage.getExtensionAttributes() != null) {
-            QName outputAction = (QName)outputMessage.getExtensionAttribute(WSAW_ACTION_QNAME);
+            String outputAction = getAction(outputMessage);
             if (outputAction != null) {
                 actionAnnotation.addElement(new JAnnotationElement("output", 
-                                                                          outputAction.getLocalPart()));
+                                                                   outputAction));
                 required = true;
             }
         }
@@ -84,7 +103,7 @@
             List<JAnnotation> faultAnnotations = new ArrayList<JAnnotation>();
             for (FaultInfo faultInfo : operation.getFaults()) {
                 if (faultInfo.getExtensionAttributes() != null) {
-                    QName faultAction = (QName)faultInfo.getExtensionAttribute(WSAW_ACTION_QNAME);
+                    String faultAction = getAction(faultInfo);
                     if (faultAction == null) {
                         continue;
                     }
@@ -98,7 +117,7 @@
                     JAnnotation faultAnnotation = new JAnnotation(FaultAction.class);
                     faultAnnotation.addElement(new JAnnotationElement("className", exceptionClass));
                     faultAnnotation.addElement(new JAnnotationElement("value", 
-                                                                             faultAction.getLocalPart()));
+                                                                      faultAction));
                     faultAnnotations.add(faultAnnotation);
                     required = true;
                 }