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>