Author: ningjiang
Date: Wed Aug 27 19:13:56 2008
New Revision: 689699

URL: http://svn.apache.org/viewvc?rev=689699&view=rev
Log:
CAMEL-867 Added a test to show how to handle the holder parameters for the 
camel-cxf producer

Modified:
    
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
    
activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml

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=689699&r1=689698&r2=689699&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
 Wed Aug 27 19:13:56 2008
@@ -17,12 +17,16 @@
 package org.apache.camel.component.cxf;
 
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.xml.namespace.QName;
 import javax.xml.ws.Endpoint;
 import javax.xml.ws.Holder;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.SpringTestSupport;
 import org.apache.camel.wsdl_first.Person;
@@ -97,6 +101,41 @@
         }
     }
 
+    @SuppressWarnings("unchecked")
+    public void testInvokingServiceWithCamelProducer() throws Exception {
+        Exchange exchange = sendJaxWsMessageWithHolders("hello");
+        assertEquals("The request should be handled sucessfully ", 
exchange.isFailed(), false);
+        org.apache.camel.Message out = exchange.getOut();
+        List result =  out.getBody(List.class);
+        assertEquals("The result list should not be empty", result.size(), 4);
+        Holder<String> name = (Holder<String>) result.get(3);
+        assertEquals("we should get the right answer from router", "Bonjour", 
name.value);
+
+        exchange = sendJaxWsMessageWithHolders("");
+        assertEquals("We should get a fault here", exchange.isFailed(), true);
+        Exception ex = exchange.getFault().getBody(Exception.class);
+        assertTrue("We should get the UnknowPersonFault here", ex instanceof 
UnknownPersonFault);
+    }
+
+    protected Exchange sendJaxWsMessageWithHolders(final String 
personIdString) {
+        Exchange exchange = template.send("direct:producer", new Processor() {
+            @SuppressWarnings("unchecked")
+            public void process(final Exchange exchange) {
+                final List params = new ArrayList();
+                Holder<String> personId = new Holder<String>();
+                personId.value = personIdString;
+                params.add(personId);
+                Holder<String> ssn = new Holder<String>();
+                Holder<String> name = new Holder<String>();
+                params.add(ssn);
+                params.add(name);
+                exchange.getIn().setBody(params);
+                exchange.getIn().setHeader(CxfConstants.OPERATION_NAME, 
"GetPerson");
+            }
+        });
+        return exchange;
+    }
+
 
 
 }

Modified: 
activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml?rev=689699&r1=689698&r2=689699&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
 Wed Aug 27 19:13:56 2008
@@ -25,18 +25,19 @@
        http://activemq.apache.org/camel/schema/spring 
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
     ">
 
-  
-  <cxf:cxfEndpoint id="routerEndpoint" 
address="http://localhost:8092/PersonService/"; 
+
+  <cxf:cxfEndpoint id="routerEndpoint" 
address="http://localhost:8092/PersonService/";
                    serviceClass="org.apache.camel.wsdl_first.Person"
                    endpointName="person:soap"
                    serviceName="person:PersonService"
                    xmlns:person="http://camel.apache.org/wsdl-first"/>
-  
-    
-  <cxf:cxfEndpoint id="serviceEndpoint" 
address="http://localhost:9000/PersonService/"; 
+
+
+  <cxf:cxfEndpoint id="serviceEndpoint" 
address="http://localhost:9000/PersonService/";
                    serviceClass="org.apache.camel.wsdl_first.Person"
                    endpointName="person:soap"
                    serviceName="person:PersonService"
+                   wsdlURL="person.wsdl"
                    xmlns:person="http://camel.apache.org/wsdl-first"/>
 
    <camelContext xmlns="http://activemq.apache.org/camel/schema/spring";>
@@ -45,6 +46,11 @@
             <to uri="cxf:bean:serviceEndpoint?dataFormat=MESSAGE"/>
       </route>
 
+      <route>
+         <from uri="direct:producer" />
+         <to uri="cxf:bean:serviceEndpoint" />
+      </route>
+
     </camelContext>
 
 


Reply via email to