Repository: cxf
Updated Branches:
  refs/heads/3.1.x-fixes 0ceb6a1d9 -> 01bf5f841


[CXF-6900] Get Colm's tests working....


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/a1e4b880
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/a1e4b880
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/a1e4b880

Branch: refs/heads/3.1.x-fixes
Commit: a1e4b88063404e25e75db25d1022a484300a8ca1
Parents: 0ceb6a1
Author: Daniel Kulp <dk...@apache.org>
Authored: Tue May 17 12:13:14 2016 -0400
Committer: Alessio Soldano <asold...@redhat.com>
Committed: Wed May 18 14:35:52 2016 +0200

----------------------------------------------------------------------
 .../cxf/binding/soap/saaj/SAAJStreamWriter.java       |  4 ++++
 .../apache/cxf/binding/soap/saaj/ParseBodyTest.java   | 14 ++++++++++----
 2 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/a1e4b880/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
----------------------------------------------------------------------
diff --git 
a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
 
b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
index 14b5c2e..d29276c 100644
--- 
a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
+++ 
b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
@@ -52,6 +52,9 @@ public final class SAAJStreamWriter extends 
OverlayW3CDOMStreamWriter {
             if (namespace != null 
                 && 
namespace.equals(part.getEnvelope().getElementName().getURI())) {
                 adjustPrefix((SOAPElement)nd2, pfx);
+                if ("Envelope".equals(nd2.getLocalName())) {
+                    adjustPrefix(part.getEnvelope().getHeader(), pfx);
+                }
             }
         } catch (SOAPException e) {
             //ignore, fallback
@@ -146,6 +149,7 @@ public final class SAAJStreamWriter extends 
OverlayW3CDOMStreamWriter {
                     el = ((SOAPElement)cur).addChildElement(local, "", "");
                 } else {
                     el = ((SOAPElement)cur).addChildElement(local, pfx == null 
? "" : pfx, ns);
+                    adjustPrefix((SOAPElement)el, pfx);
                 }
                 cur.removeChild(el);
                 return el;

http://git-wip-us.apache.org/repos/asf/cxf/blob/a1e4b880/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/saaj/ParseBodyTest.java
----------------------------------------------------------------------
diff --git 
a/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/saaj/ParseBodyTest.java
 
b/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/saaj/ParseBodyTest.java
index bcdb6f9..1f6eeb4 100644
--- 
a/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/saaj/ParseBodyTest.java
+++ 
b/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/saaj/ParseBodyTest.java
@@ -30,6 +30,7 @@ import javax.xml.soap.SOAPMessage;
 import javax.xml.soap.SOAPPart;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
+import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMSource;
 
 import org.w3c.dom.Document;
@@ -39,6 +40,7 @@ import org.apache.cxf.helpers.DOMUtils.NullResolver;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.MessageImpl;
+import org.apache.cxf.staxutils.StaxSource;
 import org.apache.cxf.staxutils.StaxUtils;
 import org.junit.Assert;
 import org.junit.Test;
@@ -87,26 +89,30 @@ public class ParseBodyTest extends Assert {
     
     // TODO - See CXF-6900
     @Test
-    @org.junit.Ignore
     public void testReadSOAPFault() throws Exception {
         InputStream inStream = 
getClass().getResourceAsStream("soap12-fault.xml");
         Document doc = StaxUtils.read(inStream);
-
+        
         SoapMessage msg = new SoapMessage(new MessageImpl());
         Exchange ex = new ExchangeImpl();
         ex.setInMessage(msg);
         
         SOAPMessage saajMsg = 
MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
         SOAPPart part = saajMsg.getSOAPPart();
-        part.setContent(new DOMSource(doc));
+        SAAJStreamWriter writer = new SAAJStreamWriter(part);
+        StaxUtils.copy(doc, writer);
+        //Source s = new StaxSource(StaxUtils.createXMLStreamReader(doc));
+        //part.setContent(s);
         saajMsg.saveChanges();
-
+        
         msg.setContent(SOAPMessage.class, saajMsg);
         doc = part;
         
         // System.out.println("OUTPUT: " + StaxUtils.toString(doc));
         
         byte[] docbytes = getMessageBytes(doc);
+        
+        // System.out.println("OUTPUT: " + new String(docbytes));
         XMLStreamReader reader = StaxUtils.createXMLStreamReader(new 
ByteArrayInputStream(docbytes));
 
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

Reply via email to