You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by eg...@apache.org on 2009/04/08 17:10:10 UTC

svn commit: r763272 - in /cxf/trunk/rt/ws/addr/src: main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java

Author: eglynn
Date: Wed Apr  8 15:10:10 2009
New Revision: 763272

URL: http://svn.apache.org/viewvc?rev=763272&view=rev
Log:
Commited patch for CXF-2161 on behalf of Andrew Dinn. Added unit test coverage also.

Modified:
    cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
    cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java

Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java?rev=763272&r1=763271&r2=763272&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java Wed Apr  8 15:10:10 2009
@@ -211,22 +211,6 @@
                 }
                 encodeAsExposed(maps,
                                 message,
-                                maps.getFrom(), 
-                                Names.WSA_FROM_QNAME,
-                                EndpointReferenceType.class,  
-                                hdr, 
-                                marshaller);
-                if (Names.WSA_FROM_QNAME.equals(duplicate)) {
-                    encodeAsExposed(maps,
-                                    message,
-                                    maps.getFrom(), 
-                                    Names.WSA_FROM_QNAME,
-                                    EndpointReferenceType.class,  
-                                    hdr, 
-                                    marshaller);
-                }
-                encodeAsExposed(maps,
-                                message,
                                 maps.getReplyTo(), 
                                 Names.WSA_REPLYTO_QNAME, 
                                 EndpointReferenceType.class,
@@ -258,6 +242,22 @@
                                     hdr,
                                     marshaller);
                 }
+                encodeAsExposed(maps,
+                                message,
+                                maps.getFrom(), 
+                                Names.WSA_FROM_QNAME,
+                                EndpointReferenceType.class,  
+                                hdr, 
+                                marshaller);
+                if (Names.WSA_FROM_QNAME.equals(duplicate)) {
+                    encodeAsExposed(maps,
+                                    message,
+                                    maps.getFrom(), 
+                                    Names.WSA_FROM_QNAME,
+                                    EndpointReferenceType.class,  
+                                    hdr, 
+                                    marshaller);
+                }
                 if (maps.getFaultTo() != null
                     && maps.getFaultTo().getAddress() != null
                     && maps.getFaultTo().getAddress().getValue() != null
@@ -476,6 +476,12 @@
                                                        headerElement, 
                                                        unmarshaller);
                                 maps.setTo(EndpointReferenceUtils.getEndpointReference(addr));
+                            } else if (Names.WSA_FROM_NAME.equals(localName)) {
+                                maps.setFrom(decodeAsNative(
+                                                       headerURI,
+                                                       EndpointReferenceType.class,
+                                                       headerElement, 
+                                                       unmarshaller));
                             } else if (Names.WSA_REPLYTO_NAME.equals(localName)) {
                                 maps.setReplyTo(decodeAsNative(
                                                        headerURI,

Modified: cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java?rev=763272&r1=763271&r2=763272&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java (original)
+++ cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java Wed Apr  8 15:10:10 2009
@@ -372,6 +372,10 @@
             ? EndpointReferenceType.class : exposedAs200408
                 ? VersionTransformer.Names200408.EPR_TYPE : exposedAs200403
                     ? VersionTransformer.Names200403.EPR_TYPE : null, 5, unmarshaller);
+        setUpHeaderDecode(headers, uri, Names.WSA_FROM_NAME, exposedAsNative
+            ? EndpointReferenceType.class : exposedAs200408
+                ? VersionTransformer.Names200408.EPR_TYPE : exposedAs200403
+                    ? VersionTransformer.Names200403.EPR_TYPE : null, 6, unmarshaller);
     }
 
     private <T> void setUpHeaderDecode(List<Header> headers, String uri, String name, Class<T> clz,
@@ -417,6 +421,8 @@
             : VersionTransformer.Names200403.WSA_ANONYMOUS_ADDRESS;
         replyTo.setAddress(ContextUtils.getAttributedURI(anonymous));
         maps.setReplyTo(replyTo);
+        EndpointReferenceType from = EndpointReferenceUtils.getEndpointReference("snafu");
+        maps.setFrom(from);
         EndpointReferenceType faultTo = new EndpointReferenceType();
         anonymous = exposeAsNative ? Names.WSA_ANONYMOUS_ADDRESS : exposeAs200408
             ? VersionTransformer.Names200408.WSA_ANONYMOUS_ADDRESS
@@ -443,16 +449,18 @@
             new QName(uri, Names.WSA_TO_NAME),
             new QName(uri, Names.WSA_REPLYTO_NAME),
             new QName(uri, Names.WSA_RELATESTO_NAME),
+            new QName(uri, Names.WSA_FROM_NAME),
             new QName(uri, Names.WSA_FAULTTO_NAME),
         };
         if (exposeAsNative) {
             expectedValues = new Object[] {
-                action, id, to, replyTo, relatesTo, faultTo
+                action, id, to, replyTo, relatesTo, from, faultTo
             };
             expectedDeclaredTypes = new Class<?>[] {
                 AttributedURIType.class, 
-                AttributedURIType.class, AttributedURIType.class, EndpointReferenceType.class,
-                RelatesToType.class, EndpointReferenceType.class,  
+                AttributedURIType.class, AttributedURIType.class, 
+                EndpointReferenceType.class, RelatesToType.class,
+                EndpointReferenceType.class, EndpointReferenceType.class 
             };
         } else if (exposeAs200408) {
             expectedValues = new Object[] {
@@ -461,6 +469,7 @@
                 VersionTransformer.convert(to),
                 VersionTransformer.convert(replyTo),
                 VersionTransformer.convert(relatesTo),
+                VersionTransformer.convert(from),
                 VersionTransformer.convert(faultTo),
             };
             if (!outbound) {
@@ -474,7 +483,8 @@
             expectedDeclaredTypes = new Class<?>[] {
                 AttributedURI.class, AttributedURI.class, AttributedURI.class,
                 VersionTransformer.Names200408.EPR_TYPE, Relationship.class,
-                VersionTransformer.Names200408.EPR_TYPE,
+                VersionTransformer.Names200408.EPR_TYPE, 
+                VersionTransformer.Names200408.EPR_TYPE
             };
         } else if (exposeAs200403) {
             expectedValues = new Object[] {
@@ -483,6 +493,7 @@
                 VersionTransformer.convertTo200403(to),
                 VersionTransformer.convertTo200403(replyTo),
                 VersionTransformer.convertTo200403(relatesTo), 
+                VersionTransformer.convertTo200403(from),
                 VersionTransformer.convertTo200403(faultTo),
             };
             if (!outbound) {
@@ -500,6 +511,7 @@
                 VersionTransformer.Names200403.EPR_TYPE,
                 org.apache.cxf.ws.addressing.v200403.Relationship.class,
                 VersionTransformer.Names200403.EPR_TYPE,
+                VersionTransformer.Names200403.EPR_TYPE
             };
         } else {
             fail("unexpected namespace URI: " + uri);