Author: dkulp
Date: Tue Dec 15 22:39:42 2009
New Revision: 891052

URL: http://svn.apache.org/viewvc?rev=891052&view=rev
Log:
Merged revisions 891044 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.2.x-fixes

................
  r891044 | dkulp | 2009-12-15 17:32:33 -0500 (Tue, 15 Dec 2009) | 9 lines
  
  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.1.x-fixes/   (props changed)
    
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
    
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java
    
cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl
    
cxf/branches/2.1.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.1.x-fixes/
            ('svn:mergeinfo' removed)

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

Modified: 
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java?rev=891052&r1=891051&r2=891052&view=diff
==============================================================================
--- 
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
 (original)
+++ 
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
 Tue Dec 15 22:39:42 2009
@@ -790,6 +790,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.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java?rev=891052&r1=891051&r2=891052&view=diff
==============================================================================
--- 
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java
 (original)
+++ 
cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/Names.java
 Tue Dec 15 22:39:42 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.1.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl?rev=891052&r1=891051&r2=891052&view=diff
==============================================================================
--- 
cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl
 (original)
+++ 
cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers.wsdl
 Tue Dec 15 22:39:42 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.1.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.1.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WSActionAnnotator.java?rev=891052&r1=891051&r2=891052&view=diff
==============================================================================
--- 
cxf/branches/2.1.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.1.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:39:42 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;
                 }


Reply via email to