Author: ningjiang
Date: Tue Jun  3 23:56:34 2008
New Revision: 663010

URL: http://svn.apache.org/viewvc?rev=663010&view=rev
Log:
CAMEL-576 Put the InputStream object into the camel message body when the 
camel-cxf producer get response in MESSAGE date format

Modified:
    
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
    
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
    
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java

Modified: 
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java?rev=663010&r1=663009&r2=663010&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
 Tue Jun  3 23:56:34 2008
@@ -89,7 +89,10 @@
         if (response != null) {
             out.setMessage(response);
             DataFormat dataFormat = (DataFormat) 
exchange.getProperty(CxfExchange.DATA_FORMAT);
-            if (!dataFormat.equals(DataFormat.POJO)) {
+            if (dataFormat.equals(DataFormat.MESSAGE)) {
+                out.setBody(response.getContent(InputStream.class));
+            }
+            if (dataFormat.equals(DataFormat.PAYLOAD)) {
                 out.setBody(response);
             }
         }

Modified: 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java?rev=663010&r1=663009&r2=663010&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
 Tue Jun  3 23:56:34 2008
@@ -35,7 +35,11 @@
 
 public class CxfProducerRouterTest extends ContextTestSupport {
     private static final transient Log LOG = 
LogFactory.getLog(CxfProducerRouterTest.class);
-    private static final  String SIMPLE_SERVER_ADDRESS = 
"http://localhost:28080/test";;
+    private static final String SIMPLE_SERVER_ADDRESS = 
"http://localhost:28080/test";;
+    private static final String REQUEST_MESSAGE = "<soap:Envelope 
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\";>"
+            + "<soap:Body><ns1:echo 
xmlns:ns1=\"http://cxf.component.camel.apache.org/\";>"
+            + "<arg0 xmlns=\"http://cxf.component.camel.apache.org/\";>Hello 
World!</arg0>"
+            + "</ns1:echo></soap:Body></soap:Envelope>";
 
     private static final String ECHO_OPERATION = "echo";
     private static final String TEST_MESSAGE = "Hello World!";
@@ -68,6 +72,7 @@
         return new RouteBuilder() {
             public void configure() {
                 from("direct:EndpointA").to(getSimpleEndpointUri());
+                from("direct:EndpointB").to(getSimpleEndpointUri() + 
"&dataFormat=MESSAGE");
             }
         };
     }
@@ -91,6 +96,17 @@
         assertEquals("Reply body on Camel is wrong", "echo " + TEST_MESSAGE, 
output[0]);
     }
 
+    public void testInvokingSimpleServerWithMessageDataFormat() throws 
Exception {
+        Exchange senderExchange = new DefaultExchange(context, 
ExchangePattern.InOut);
+        senderExchange.getIn().setBody(REQUEST_MESSAGE);
+        Exchange exchange = template.send("direct:EndpointB", senderExchange);
+
+        org.apache.camel.Message out = exchange.getOut();
+        String response = out.getBody(String.class);
+        assertTrue("It should has the echo message", response.indexOf("echo " 
+ TEST_MESSAGE) > 0);
+        assertTrue("It should has the echoResponse tag", 
response.indexOf("echoResponse") > 0);
+
+    }
 
     private String getSimpleEndpointUri() {
         return "cxf://" + SIMPLE_SERVER_ADDRESS

Modified: 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java?rev=663010&r1=663009&r2=663010&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
 Tue Jun  3 23:56:34 2008
@@ -55,7 +55,7 @@
     }
 
     protected void startService() {
-         Object implementor = new PersonImpl();
+        Object implementor = new PersonImpl();
         String address = "http://localhost:9000/PersonService/";;
         Endpoint.publish(address, implementor);
     }


Reply via email to