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 2006/02/02 11:02:45 UTC

svn commit: r374336 - in /incubator/servicemix/trunk/servicemix-components/src: main/java/org/apache/servicemix/components/http/ test/java/org/apache/servicemix/components/http/ test/resources/org/apache/servicemix/components/http/

Author: gnodet
Date: Thu Feb  2 02:02:37 2006
New Revision: 374336

URL: http://svn.apache.org/viewcvs?rev=374336&view=rev
Log:
Add a spring base test for HttpSoapConnector
Fix a CCE in HttpSoapClientMarshaler.java

Added:
    incubator/servicemix/trunk/servicemix-components/src/test/java/org/apache/servicemix/components/http/HttpSoapWsTest.java
    incubator/servicemix/trunk/servicemix-components/src/test/resources/org/apache/servicemix/components/http/ws-example.xml
Modified:
    incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/http/HttpSoapClientMarshaler.java

Modified: incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/http/HttpSoapClientMarshaler.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/http/HttpSoapClientMarshaler.java?rev=374336&r1=374335&r2=374336&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/http/HttpSoapClientMarshaler.java (original)
+++ incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/http/HttpSoapClientMarshaler.java Thu Feb  2 02:02:37 2006
@@ -73,14 +73,22 @@
 
     public void fromNMS(PostMethod method, MessageExchange exchange, NormalizedMessage normalizedMessage) throws Exception {
         addHttpHeaders(method, exchange);
-        Document node = (Document) sourceTransformer.toDOMNode(normalizedMessage.getContent());
+        Node node = sourceTransformer.toDOMNode(normalizedMessage.getContent());
+        Element elem;
+        if (node instanceof Document) {
+            elem = ((Document) node).getDocumentElement();
+        } else if (node instanceof Element) {
+            elem = (Element) node;
+        } else {
+            throw new UnsupportedOperationException();
+        }
         Document document = sourceTransformer.createDocument();
         Element env = document.createElementNS("http://schemas.xmlsoap.org/soap/envelope/", "env:Envelope");
         document.appendChild(env);
         env.setAttribute("xmlns:env", "http://schemas.xmlsoap.org/soap/envelope/");
         Element body = document.createElementNS("http://schemas.xmlsoap.org/soap/envelope/", "env:Body");
         env.appendChild(body);
-        body.appendChild(document.importNode(node.getDocumentElement(), true));
+        body.appendChild(document.importNode(elem, true));
         String text = sourceTransformer.toString(document);
         method.setRequestEntity(new StringRequestEntity(text));
     }

Added: incubator/servicemix/trunk/servicemix-components/src/test/java/org/apache/servicemix/components/http/HttpSoapWsTest.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-components/src/test/java/org/apache/servicemix/components/http/HttpSoapWsTest.java?rev=374336&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-components/src/test/java/org/apache/servicemix/components/http/HttpSoapWsTest.java (added)
+++ incubator/servicemix/trunk/servicemix-components/src/test/java/org/apache/servicemix/components/http/HttpSoapWsTest.java Thu Feb  2 02:02:37 2006
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.components.http;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLConnection;
+
+import javax.xml.namespace.QName;
+
+import org.apache.servicemix.tck.TestSupport;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.w3c.dom.Node;
+import org.xbean.spring.context.ClassPathXmlApplicationContext;
+
+/**
+ * @version $Revision: 359186 $
+ */
+public class HttpSoapWsTest extends TestSupport {
+
+    protected String quote = "SUNW";
+
+    public void testWithURLConnection() throws Exception {
+        URLConnection connection = new URL("http://localhost:8912").openConnection();
+        connection.setDoOutput(true);
+        connection.setDoInput(true);
+        OutputStream os = connection.getOutputStream();
+
+        // Post the request file.
+        InputStream fis = getClass().getResourceAsStream("soap-request.xml");
+        int c;
+        while ((c = fis.read()) >= 0) {
+            os.write(c);
+        }
+        os.flush();
+        os.close();
+        fis.close();
+
+        // Read the response.
+        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+        String inputLine;
+        while ((inputLine = in.readLine()) != null) {
+            System.out.println(inputLine);
+        }
+        in.close();
+    }
+
+    protected AbstractXmlApplicationContext createBeanFactory() {
+        return new ClassPathXmlApplicationContext("org/apache/servicemix/components/http/ws-example.xml");
+    }
+}

Added: incubator/servicemix/trunk/servicemix-components/src/test/resources/org/apache/servicemix/components/http/ws-example.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-components/src/test/resources/org/apache/servicemix/components/http/ws-example.xml?rev=374336&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-components/src/test/resources/org/apache/servicemix/components/http/ws-example.xml (added)
+++ incubator/servicemix/trunk/servicemix-components/src/test/resources/org/apache/servicemix/components/http/ws-example.xml Thu Feb  2 02:02:37 2006
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns:sm="http://servicemix.apache.org/config/1.0" 
+	   xmlns:foo="http://servicemix.org/cheese/">
+
+  <!-- the JBI container -->
+  <sm:container id="jbi" embedded="true">
+    <sm:activationSpecs>
+
+      <!-- START SNIPPET: binding -->
+      <sm:activationSpec componentName="httpReceiver" service="foo:httpBinding" destinationService="foo:httpSender2">
+        <sm:component><bean class="org.apache.servicemix.components.http.HttpSoapConnector">
+          <property name="host" value="localhost"/>
+          <property name="port" value="8912"/>
+        </bean></sm:component>
+      </sm:activationSpec>
+      <!-- END SNIPPET: binding -->
+
+      <sm:activationSpec componentName="httpSender2" service="foo:httpSender2">
+        <sm:component><bean class="org.apache.servicemix.components.http.HttpSoapInvoker">
+          <property name="url" value="http://localhost:8913"/>
+        </bean></sm:component>
+      </sm:activationSpec>
+      
+      <sm:activationSpec componentName="httpReceiver2" service="foo:httpBinding2" destinationService="foo:stockQuote">
+        <sm:component><bean class="org.apache.servicemix.components.http.HttpSoapConnector">
+          <property name="host" value="localhost"/>
+          <property name="port" value="8913"/>
+        </bean></sm:component>
+      </sm:activationSpec>
+      
+      <sm:activationSpec componentName="stockQuote" service="foo:stockQuote">
+        <sm:component><bean class="org.apache.servicemix.components.util.EchoComponent">
+        </bean></sm:component>
+      </sm:activationSpec>
+    </sm:activationSpecs>
+  </sm:container>
+
+  <bean id="client" class="org.apache.servicemix.client.DefaultServiceMixClient">
+    <constructor-arg ref="jbi"/>
+  </bean>
+
+</beans>