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>