You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/08/29 14:04:39 UTC

svn commit: r690198 - in /servicemix/components/shared-libraries/trunk/servicemix-soap2/src: main/java/org/apache/servicemix/soap/interceptors/jbi/JbiOutWsdl1Interceptor.java test/java/org/apache/servicemix/soap/HelloWorldSoapTest.java

Author: gnodet
Date: Fri Aug 29 05:04:38 2008
New Revision: 690198

URL: http://svn.apache.org/viewvc?rev=690198&view=rev
Log:
Fix a problem when using stream based sources

Modified:
    servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/interceptors/jbi/JbiOutWsdl1Interceptor.java
    servicemix/components/shared-libraries/trunk/servicemix-soap2/src/test/java/org/apache/servicemix/soap/HelloWorldSoapTest.java

Modified: servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/interceptors/jbi/JbiOutWsdl1Interceptor.java
URL: http://svn.apache.org/viewvc/servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/interceptors/jbi/JbiOutWsdl1Interceptor.java?rev=690198&r1=690197&r2=690198&view=diff
==============================================================================
--- servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/interceptors/jbi/JbiOutWsdl1Interceptor.java (original)
+++ servicemix/components/shared-libraries/trunk/servicemix-soap2/src/main/java/org/apache/servicemix/soap/interceptors/jbi/JbiOutWsdl1Interceptor.java Fri Aug 29 05:04:38 2008
@@ -96,8 +96,8 @@
                         DocumentFragment frag = e.getOwnerDocument().createDocumentFragment();
                         frag.appendChild(e.getOwnerDocument().importNode(e, true));
                         message.getSoapHeaders().put(p.getElement(), frag);
+                        r.nextTag();
                     }
-                    r.nextTag();
                 }
                 /*
                 r.nextTag();

Modified: servicemix/components/shared-libraries/trunk/servicemix-soap2/src/test/java/org/apache/servicemix/soap/HelloWorldSoapTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/shared-libraries/trunk/servicemix-soap2/src/test/java/org/apache/servicemix/soap/HelloWorldSoapTest.java?rev=690198&r1=690197&r2=690198&view=diff
==============================================================================
--- servicemix/components/shared-libraries/trunk/servicemix-soap2/src/test/java/org/apache/servicemix/soap/HelloWorldSoapTest.java (original)
+++ servicemix/components/shared-libraries/trunk/servicemix-soap2/src/test/java/org/apache/servicemix/soap/HelloWorldSoapTest.java Fri Aug 29 05:04:38 2008
@@ -30,6 +30,7 @@
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
 import javax.xml.transform.dom.DOMSource;
 
 import org.w3c.dom.Document;
@@ -67,13 +68,21 @@
 //        }
 //    }
     
-    public void testDocLitInput() throws Exception {
+    public void testDocLitInputWithDOMSource() throws Exception {
+        testDocLitInput(true);
+    }
+
+    public void testDocLitInputWithStreamSource() throws Exception {
+        testDocLitInput(false);
+    }
+
+    protected void testDocLitInput(boolean useDom) throws Exception {
         ByteArrayOutputStream baos;
 
         Binding<?> binding = getBinding("HelloWorld-DOC.wsdl");
         PhaseInterceptorChain phaseIn = new PhaseInterceptorChain();
         phaseIn.add(binding.getInterceptors(Phase.ServerIn));
-        
+
         Message msg = new MessageImpl();
         msg.put(Binding.class, binding);
         msg.setContent(InputStream.class, getClass().getResourceAsStream("HelloWorld-DOC-Input.xml"));
@@ -85,12 +94,16 @@
         baos = new ByteArrayOutputStream();
         DomUtil.getTransformerFactory().newTransformer().transform(new DOMSource(doc), new StreamResult(baos));
         log.info(baos.toString());
-        nm.setContent(new DOMSource(doc));
-        
+        if (useDom) {
+            nm.setContent(new DOMSource(doc));
+        } else {
+            nm.setContent(new StreamSource(new ByteArrayInputStream(baos.toByteArray())));
+        }
+
         // check jbi message element
         Element root = DomUtil.getFirstChildElement(doc);
         assertNotNull(root);
-        assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, root.getNamespaceURI()); 
+        assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, root.getNamespaceURI());
         assertEquals("message", root.getLocalName());
         assertEquals("Hello", root.getAttribute("name"));
 
@@ -116,19 +129,19 @@
         // check body part
         Element part = DomUtil.getNextSiblingElement(part2);
         assertNotNull(part);
-        assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, part.getNamespaceURI()); 
+        assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, part.getNamespaceURI());
         assertEquals("part", part.getLocalName());
 
         // check body element
         Element hello = DomUtil.getFirstChildElement(part);
         assertNotNull(hello);
-        assertEquals("uri:HelloWorld", hello.getNamespaceURI()); 
+        assertEquals("uri:HelloWorld", hello.getNamespaceURI());
         assertEquals("HelloRequest", hello.getLocalName());
-        
+
         // check body content
         e = DomUtil.getFirstChildElement(hello);
         assertNotNull(e);
-        assertEquals("uri:HelloWorld", e.getNamespaceURI()); 
+        assertEquals("uri:HelloWorld", e.getNamespaceURI());
         assertEquals("text", e.getLocalName());
         assertEquals("hello", e.getTextContent());
 
@@ -144,37 +157,37 @@
         msgOut.put(SoapVersion.class, msg.get(SoapVersion.class));
         phaseOut.doIntercept(msgOut);
         log.info(baos.toString());
-        
+
         Document node = DomUtil.parse(new ByteArrayInputStream(baos.toByteArray()));
-        
+
         Element envelope = DomUtil.getFirstChildElement(node);
         Element headers = DomUtil.getFirstChildElement(envelope);
         Element body = DomUtil.getNextSiblingElement(headers);
-        
+
         // check body element
         hello = DomUtil.getFirstChildElement(body);
         assertNotNull(hello);
-        assertEquals("uri:HelloWorld", hello.getNamespaceURI()); 
+        assertEquals("uri:HelloWorld", hello.getNamespaceURI());
         assertEquals("HelloRequest", hello.getLocalName());
-        
+
         // check body content
         e = DomUtil.getFirstChildElement(hello);
         assertNotNull(e);
-        assertEquals("uri:HelloWorld", e.getNamespaceURI()); 
+        assertEquals("uri:HelloWorld", e.getNamespaceURI());
         assertEquals("text", e.getLocalName());
         assertEquals("hello", e.getTextContent());
-        
+
         // check header
         header = DomUtil.getFirstChildElement(headers);
         assertNotNull(header);
         assertNull(DomUtil.getNextSiblingElement(header));
-        assertEquals("uri:HelloWorld", header.getNamespaceURI()); 
+        assertEquals("uri:HelloWorld", header.getNamespaceURI());
         assertEquals("HelloHeader", header.getLocalName());
-        
+
         // check header content
         e = DomUtil.getFirstChildElement(header);
         assertNotNull(e);
-        assertEquals("uri:HelloWorld", e.getNamespaceURI()); 
+        assertEquals("uri:HelloWorld", e.getNamespaceURI());
         assertEquals("id", e.getLocalName());
         assertEquals("1234567890", e.getTextContent());
     }