Author: ningjiang Date: Sun Mar 25 11:30:13 2012 New Revision: 1305007 URL: http://svn.apache.org/viewvc?rev=1305007&view=rev Log: CAMEL-5115 CxfBeanDestination should copy the in message header to the out message
Modified: camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/message/DefaultCxfMesssageMapper.java camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml Modified: camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/message/DefaultCxfMesssageMapper.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/message/DefaultCxfMesssageMapper.java?rev=1305007&r1=1305006&r2=1305007&view=diff ============================================================================== --- camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/message/DefaultCxfMesssageMapper.java (original) +++ camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/message/DefaultCxfMesssageMapper.java Sun Mar 25 11:30:13 2012 @@ -80,6 +80,8 @@ public class DefaultCxfMesssageMapper im } Map<String, Object> camelHeaders = exchange.getOut().getHeaders(); + // copy the in message header to out message + camelHeaders.putAll(exchange.getIn().getHeaders()); Map<String, List<String>> cxfHeaders = CastUtils.cast((Map<?, ?>)cxfMessage.get(Message.PROTOCOL_HEADERS)); Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java?rev=1305007&r1=1305006&r2=1305007&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java (original) +++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java Sun Mar 25 11:30:13 2012 @@ -26,6 +26,7 @@ import javax.xml.ws.Holder; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.component.cxf.CXFTestSupport; +import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.wsdl_first.Person; import org.apache.camel.wsdl_first.PersonService; import org.apache.http.HttpResponse; @@ -80,9 +81,21 @@ public class CxfBeanTest extends Abstrac assertTrue(testedEndpointWithProviders); } + @Test + public void testMessageHeadersAfterCxfBeanEndpoint() throws Exception { + MockEndpoint endpoint = (MockEndpoint)camelContext.getEndpoint("mock:endpointA"); + endpoint.reset(); + invokeRsService("http://localhost:" + PORT1 + "/customerservice/customers/123", + "{\"Customer\":{\"id\":123,\"name\":\"John\"}}"); + endpoint.expectedMessageCount(1); + endpoint.expectedHeaderReceived("key", "customer"); + endpoint.assertIsSatisfied(); + } + private void invokeRsService(String getUrl, String expected) throws Exception { HttpGet get = new HttpGet(getUrl); get.addHeader("Accept" , "application/json"); + get.addHeader("key", "customer"); HttpClient httpclient = new DefaultHttpClient(); try { Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml?rev=1305007&r1=1305006&r2=1305007&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml (original) +++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml Sun Mar 25 11:30:13 2012 @@ -75,6 +75,7 @@ <route> <from ref="ep1" /> <to uri="cxfbean:customerServiceBean" /> + <to uri="mock:endpointA" /> </route> <!-- END SNIPPET: routeDefinition --> <route>