Author: ningjiang
Date: Tue Oct 20 03:43:29 2009
New Revision: 826942
URL: http://svn.apache.org/viewvc?rev=826942&view=rev
Log:
MR-189 added more unit tests on camel-cxf
Added:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java
(with props)
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
(with props)
Removed:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/FaultOutInterceptor.java
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSimpleRouterTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/HelloService.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CamelJBIClientProxyTest.java
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java
(original)
+++
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java
Tue Oct 20 03:43:29 2009
@@ -19,7 +19,6 @@
import java.util.logging.Logger;
-import org.apache.camel.component.cxf.interceptors.FaultOutInterceptor;
import
org.apache.camel.component.cxf.interceptors.RawMessageContentRedirectInterceptor;
import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
@@ -61,8 +60,6 @@
removeInterceptorWhichIsOutThePhases(client.getEndpoint().getOutInterceptors(),
REMAINING_OUT_PHASES);
client.getEndpoint().getBinding().getOutInterceptors().clear();
client.getEndpoint().getOutInterceptors().add(new
RawMessageContentRedirectInterceptor());
-
- client.getEndpoint().getBinding().getOutFaultInterceptors().add(new
FaultOutInterceptor());
}
@Override
@@ -79,8 +76,7 @@
removeInterceptorWhichIsOutThePhases(server.getEndpoint().getOutInterceptors(),
REMAINING_OUT_PHASES);
// Do not use the binding interceptor any more
- server.getEndpoint().getBinding().getOutInterceptors().clear();
- server.getEndpoint().getBinding().getOutFaultInterceptors().add(new
FaultOutInterceptor());
+ server.getEndpoint().getBinding().getOutInterceptors().clear();
server.getEndpoint().getOutInterceptors().add(new
RawMessageContentRedirectInterceptor());
}
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
(original)
+++
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
Tue Oct 20 03:43:29 2009
@@ -20,7 +20,6 @@
import org.apache.camel.component.cxf.interceptors.DOMInInterceptor;
import org.apache.camel.component.cxf.interceptors.DOMOutInterceptor;
-import org.apache.camel.component.cxf.interceptors.FaultOutInterceptor;
import
org.apache.camel.component.cxf.interceptors.PayloadContentRedirectInterceptor;
import org.apache.cxf.Bus;
import org.apache.cxf.binding.Binding;
@@ -60,8 +59,7 @@
removeInterceptorWhichIsInThePhases(client.getEndpoint().getOutInterceptors(),
REMOVING_OUT_PHASES);
removeInterceptorWhichIsInThePhases(client.getEndpoint().getBinding().getOutInterceptors(),
REMOVING_OUT_PHASES);
- addDataHandlingInterceptors(client.getEndpoint().getBinding());
- client.getEndpoint().getBinding().getOutFaultInterceptors().add(new
FaultOutInterceptor());
+ addDataHandlingInterceptors(client.getEndpoint().getBinding());
}
@Override
@@ -75,8 +73,7 @@
removeInterceptorWhichIsInThePhases(server.getEndpoint().getOutInterceptors(),
REMOVING_OUT_PHASES);
removeInterceptorWhichIsInThePhases(server.getEndpoint().getBinding().getOutInterceptors(),
REMOVING_OUT_PHASES);
- addDataHandlingInterceptors(server.getEndpoint().getBinding());
- server.getEndpoint().getBinding().getOutFaultInterceptors().add(new
FaultOutInterceptor());
+ addDataHandlingInterceptors(server.getEndpoint().getBinding());
}
private void addDataHandlingInterceptors(Binding binding) {
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
(original)
+++
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
Tue Oct 20 03:43:29 2009
@@ -84,7 +84,7 @@
if (bi == null) {
Endpoint ep = ex.get(Endpoint.class);
bi = ep.getEndpointInfo().getBinding();
- ex.put(BindingInfo.class, bi);
+ ex.put(BindingInfo.class, bi);
}
BindingOperationInfo boi = ex.get(BindingOperationInfo.class);
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java
(original)
+++
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java
Tue Oct 20 03:43:29 2009
@@ -63,17 +63,7 @@
}
if (bmi != null) {
- Element header = message.get(Element.class);
- if (header != null) {
- //Headers -represent as -Element,
- //Body -represent as StaxStream in CXF Runtime.
- //Copy inbound Header parts to outbound payload
- if (LOG.isLoggable(Level.INFO)) {
- LOG.info("DOMOutInterceptor Copy Message Part related
Headers to Payload.");
- }
- moveHeaderPartToPayload(bmi, header, payload);
- }
-
+
XMLBindingMessageFormat msgFormat =
bmi.getExtensor(XMLBindingMessageFormat.class);
QName rootName = msgFormat != null ? msgFormat.getRootNode() :
null;
@@ -97,24 +87,4 @@
}
}
- private void moveHeaderPartToPayload(BindingMessageInfo bmi,
- Element header,
- List<Element> payload) {
- Collection<MessagePartInfo> bodyParts = bmi.getMessageParts();
- NodeList nodes = header.getChildNodes();
-
- for (int idx = 0; idx < nodes.getLength(); idx++) {
- Node node = nodes.item(idx);
- int index = 0;
- for (MessagePartInfo mpi : bodyParts) {
- QName name = mpi.getConcreteName();
- if (name.getLocalPart().equals(node.getLocalName())
- && name.getNamespaceURI().equals(node.getNamespaceURI())) {
- payload.add(index, (Element)node);
- break;
- }
- ++index;
- }
- }
- }
}
Added:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java?rev=826942&view=auto
==============================================================================
---
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java
(added)
+++
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java
Tue Oct 20 03:43:29 2009
@@ -0,0 +1,134 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.camel.component.cxf;
+
+import java.util.List;
+
+import org.w3c.dom.Element;
+
+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.SpringCamelContext;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.frontend.ClientFactoryBean;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
+import org.apache.cxf.frontend.ServerFactoryBean;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+
+public class CxfPayLoadMessageXmlBindingRouterTest extends CamelTestSupport {
+
+ protected static final String ROUTER_ADDRESS =
"http://localhost:9000/router";
+ protected static final String SERVICE_ADDRESS =
"http://localhost:9002/helloworld";
+
+ protected AbstractXmlApplicationContext applicationContext;
+
+ protected static String getBindingId() {
+ return "http://cxf.apache.org/bindings/xformat";
+ }
+
+ @BeforeClass
+ public static void startService() {
+ //start a service
+ ServerFactoryBean svrBean = new ServerFactoryBean();
+
+ svrBean.setAddress(SERVICE_ADDRESS);
+ svrBean.setServiceClass(HelloService.class);
+ svrBean.setServiceBean(new HelloServiceImpl());
+ svrBean.setBindingId(getBindingId());
+
+ Server server = svrBean.create();
+ server.start();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ applicationContext = createApplicationContext();
+ super.setUp();
+ assertNotNull("Should have created a valid spring context",
applicationContext);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+
+ if (applicationContext != null) {
+ applicationContext.destroy();
+ }
+ super.tearDown();
+ }
+
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ return SpringCamelContext.springCamelContext(applicationContext);
+ }
+
+
+ protected ClassPathXmlApplicationContext createApplicationContext() {
+ return new
ClassPathXmlApplicationContext("org/apache/camel/component/cxf/XmlBindingRouterContext.xml");
+ }
+
+ protected HelloService getCXFClient() throws Exception {
+ ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean();
+ ClientFactoryBean clientBean = proxyFactory.getClientFactoryBean();
+ clientBean.setAddress(ROUTER_ADDRESS);
+ clientBean.setServiceClass(HelloService.class);
+ clientBean.setBindingId(getBindingId());
+
+ HelloService client = (HelloService) proxyFactory.create();
+ return client;
+ }
+
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ public void configure() {
+ from("cxf:bean:routerEndpoint?dataFormat=PAYLOAD").process(new
Processor() {
+ public void process(Exchange exchange) throws Exception {
+ CxfPayload<?> payload =
exchange.getIn().getBody(CxfPayload.class);
+ List<Element> elements = payload.getBody();
+ assertNotNull("We should get the elements here" ,
elements);
+ assertEquals("Get the wrong elements size" ,
elements.size(), 1);
+ assertEquals("Get the wrong namespace URI" ,
elements.get(0).getNamespaceURI(), "http://cxf.component.camel.apache.org/");
+ }
+
+ })
+ .to("cxf:bean:serviceEndpoint?dataFormat=PAYLOAD");
+
+ }
+ };
+ }
+ @Test
+ public void testInvokingServiceFromCXFClient() throws Exception {
+ HelloService client = getCXFClient();
+ String result = client.echo("hello world");
+ assertEquals("we should get the right answer from router", result,
"echo hello world");
+
+ int count = client.getInvocationCount();
+ client.ping();
+ //oneway ping invoked, so invocationCount ++
+ assertEquals("The ping should be invocated",
client.getInvocationCount(), ++count);
+ }
+
+}
Propchange:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageXmlBindingRouterTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
(original)
+++
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
Tue Oct 20 03:43:29 2009
@@ -47,11 +47,12 @@
public class CxfPayLoadSoapHeaderTest extends CamelTestSupport {
protected AbstractXmlApplicationContext applicationContext;
- private final QName serviceName = new
QName("http://camel.apache.org/pizza", "PizzaService");
+
+ protected String routerEndpointURI =
"cxf:bean:routerEndpoint?dataFormat=PAYLOAD";
+ protected String serviceEndpointURI =
"cxf:bean:serviceEndpoint?dataFormat=PAYLOAD";
+ private final QName serviceName = new
QName("http://camel.apache.org/pizza", "PizzaService");
- private String routerEndpointURI =
"cxf:bean:routerEndpoint?dataFormat=PAYLOAD";
- private String serviceEndpointURI =
"cxf:bean:serviceEndpoint?dataFormat=PAYLOAD";
@Override
protected RouteBuilder createRouteBuilder() {
Modified:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSimpleRouterTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSimpleRouterTest.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSimpleRouterTest.java
(original)
+++
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSimpleRouterTest.java
Tue Oct 20 03:43:29 2009
@@ -44,7 +44,7 @@
svrBean.setAddress(SERVICE_ADDRESS);
svrBean.setServiceClass(HelloService.class);
- svrBean.setServiceBean(new HelloServiceImpl());
+ svrBean.setServiceBean(new HelloServiceImpl());
Server server = svrBean.create();
server.start();
@@ -67,8 +67,8 @@
ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean();
ClientFactoryBean clientBean = proxyFactory.getClientFactoryBean();
clientBean.setAddress(ROUTER_ADDRESS);
- clientBean.setServiceClass(HelloService.class);
-
+ clientBean.setServiceClass(HelloService.class);
+
HelloService client = (HelloService) proxyFactory.create();
return client;
}
Modified:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/HelloService.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/HelloService.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/HelloService.java
(original)
+++
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/HelloService.java
Tue Oct 20 03:43:29 2009
@@ -23,7 +23,8 @@
int getInvocationCount();
- String echo(String text);
+ String echo(String text) throws Exception;
Boolean echoBoolean(Boolean bool);
+
}
\ No newline at end of file
Modified:
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CamelJBIClientProxyTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CamelJBIClientProxyTest.java?rev=826942&r1=826941&r2=826942&view=diff
==============================================================================
---
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CamelJBIClientProxyTest.java
(original)
+++
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CamelJBIClientProxyTest.java
Tue Oct 20 03:43:29 2009
@@ -42,7 +42,7 @@
@Test
- public void testCallFromProxy() {
+ public void testCallFromProxy() throws Exception {
// The echo parameter will be ignore, since the service has the fix
response
String response = proxy.echo("Hello World!");
assertEquals("Get a wrong response ", "echo Hello World!", response);
Added:
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml?rev=826942&view=auto
==============================================================================
---
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
(added)
+++
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
Tue Oct 20 03:43:29 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:cxf="http://camel.apache.org/schema/cxf"
+
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://camel.apache.org/schema/cxf
http://camel.apache.org/schema/cxf/camel-cxf.xsd
+ http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
+ ">
+ <import resource="classpath:META-INF/cxf/cxf.xml"/>
+ <import resource="classpath:META-INF/cxf/cxf-extension-xml.xml" />
+ <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" />
+
+ <cxf:cxfEndpoint id="routerEndpoint" address="http://localhost:9000/router"
+ serviceClass="org.apache.camel.component.cxf.HelloService"
+ bindingId="http://cxf.apache.org/bindings/xformat"/>
+
+ <cxf:cxfEndpoint id="serviceEndpoint"
address="http://localhost:9002/helloworld"
+ serviceClass="org.apache.camel.component.cxf.HelloService"
+ bindingId="http://cxf.apache.org/bindings/xformat" />
+
+ <camelContext errorHandlerRef="noErrorHandler" id="camel"
xmlns="http://camel.apache.org/schema/spring">
+
+ </camelContext>
+
+ <bean id="noErrorHandler"
class="org.apache.camel.builder.NoErrorHandlerBuilder"/>
+
+</beans>
\ No newline at end of file
Propchange:
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/XmlBindingRouterContext.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml