You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/11/01 11:41:21 UTC

[1/4] camel git commit: CAMEL-10427 - CXFRS client gets "Response timeout" exception when used with Camel transport

Repository: camel
Updated Branches:
  refs/heads/camel-2.18.x 31f1b4eb8 -> 6d68dac3d
  refs/heads/master 23f63cb09 -> 23fb42a9e


CAMEL-10427 - CXFRS client gets "Response timeout" exception when used with Camel transport


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0eb700a1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0eb700a1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0eb700a1

Branch: refs/heads/master
Commit: 0eb700a16bfec8ebd1513d0eeaa86b414abf8f80
Parents: 23f63cb
Author: Tadayoshi Sato <sa...@gmail.com>
Authored: Tue Nov 1 14:19:01 2016 +0900
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 1 12:29:07 2016 +0100

----------------------------------------------------------------------
 .../cxf/common/header/CxfHeaderHelper.java      |  5 +-
 .../cxf/common/header/CxfHeaderHelperTest.java  |  8 ++-
 .../cxf/transport/CxfRsCamelTransportTest.java  | 67 +++++++++++++++++
 .../cxf/transport/CxfRsCamelTransport.xml       | 75 ++++++++++++++++++++
 4 files changed, 151 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0eb700a1/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
index e7a2154..f5099ab 100644
--- a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
+++ b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
@@ -70,9 +70,10 @@ public final class CxfHeaderHelper {
                     message.put(Message.CONTENT_TYPE, entry.getValue());
                 }
                 if (Client.REQUEST_CONTEXT.equals(entry.getKey())
-                    || Client.RESPONSE_CONTEXT.equals(entry.getKey())
-                    || Message.RESPONSE_CODE.equals(entry.getKey())) {
+                    || Client.RESPONSE_CONTEXT.equals(entry.getKey())) {
                     message.put(entry.getKey(), entry.getValue());
+                } else if (Exchange.HTTP_RESPONSE_CODE.equals(entry.getKey())) {
+                    message.put(Message.RESPONSE_CODE, entry.getValue());
                 } else {
                     Object values = entry.getValue();
                     if (values instanceof List<?>) {

http://git-wip-us.apache.org/repos/asf/camel/blob/0eb700a1/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
index 81f2e1d..5c84f6b 100755
--- a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
+++ b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
@@ -45,10 +45,11 @@ public class CxfHeaderHelperTest extends Assert {
     @Test
     public void testPropagateCamelToCxf() {
         Exchange exchange = new DefaultExchange(context);
-        
+
         exchange.getIn().setHeader("soapAction", "urn:hello:world");
         exchange.getIn().setHeader("MyFruitHeader", "peach");
         exchange.getIn().setHeader("MyBrewHeader", Arrays.asList("cappuccino", "espresso"));
+        exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, "200");
         org.apache.cxf.message.Message cxfMessage = new org.apache.cxf.message.MessageImpl();
         
         CxfHeaderHelper.propagateCamelToCxf(new DefaultHeaderFilterStrategy(), 
@@ -59,7 +60,7 @@ public class CxfHeaderHelperTest extends Assert {
             CastUtils.cast((Map<?, ?>)cxfMessage.get(org.apache.cxf.message.Message.PROTOCOL_HEADERS));
         assertNotNull(cxfHeaders);
         assertTrue(cxfHeaders.size() == 3);
-        
+
         verifyHeader(cxfHeaders, "soapaction", "urn:hello:world");
         verifyHeader(cxfHeaders, "SoapAction", "urn:hello:world");
         verifyHeader(cxfHeaders, "SOAPAction", "urn:hello:world");
@@ -67,6 +68,7 @@ public class CxfHeaderHelperTest extends Assert {
         verifyHeader(cxfHeaders, "myFruitHeader", "peach");
         verifyHeader(cxfHeaders, "MYFRUITHEADER", "peach");
         verifyHeader(cxfHeaders, "MyBrewHeader", Arrays.asList("cappuccino", "espresso"));
+        assertEquals("200", cxfMessage.get(Message.RESPONSE_CODE));
     } 
 
     @Test
@@ -79,6 +81,7 @@ public class CxfHeaderHelperTest extends Assert {
         cxfHeaders.put("myfruitheader", Arrays.asList("peach"));
         cxfHeaders.put("mybrewheader", Arrays.asList("cappuccino", "espresso"));
         cxfMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, cxfHeaders);
+        cxfMessage.put(Message.RESPONSE_CODE, "200");
         
         Map<String, Object> camelHeaders = exchange.getIn().getHeaders();
         CxfHeaderHelper.propagateCxfToCamel(new DefaultHeaderFilterStrategy(), 
@@ -89,6 +92,7 @@ public class CxfHeaderHelperTest extends Assert {
         assertEquals("241", camelHeaders.get("content-length"));
         assertEquals("peach", camelHeaders.get("MyFruitHeader"));
         assertEquals(Arrays.asList("cappuccino", "espresso"), camelHeaders.get("MyBrewHeader"));
+        assertEquals("200", camelHeaders.get(Exchange.HTTP_RESPONSE_CODE));
     } 
 
     @Test

http://git-wip-us.apache.org/repos/asf/camel/blob/0eb700a1/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
new file mode 100644
index 0000000..acf295b
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
@@ -0,0 +1,67 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.transport;
+
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+
+public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
+
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml");
+    }
+
+    @Test
+    public void testCamelTransport() throws Exception {
+        MockEndpoint result = getMockEndpoint("mock:result");
+        result.expectedBodiesReceived("Hello, Test!");
+
+        template.sendBody("direct:input", "Test");
+        assertMockEndpointsSatisfied();
+    }
+
+    @Path("/greeting")
+    public interface GreetingResource {
+        @GET
+        @Path("/hello/{name}")
+        @Consumes("text/plain")
+        @Produces("text/plain")
+        String hello(@PathParam("name") String name);
+    }
+
+    @Path("/greeting")
+    public static class GreetingResourceBean implements GreetingResource {
+        @GET
+        @Path("/hello/{name}")
+        @Consumes("text/plain")
+        @Produces("text/plain")
+        public String hello(@PathParam("name") String name) {
+            return String.format("Hello, %s!", name);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/0eb700a1/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml
new file mode 100644
index 0000000..02b5027
--- /dev/null
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml
@@ -0,0 +1,75 @@
+<?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"
+       xmlns:camel="http://cxf.apache.org/transports/camel"
+       xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://cxf.apache.org/transports/camel http://cxf.apache.org/transports/camel.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
+       http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
+    ">
+
+    <jaxrs:server id="rsServer" address="camel://direct:cxf.out">
+        <jaxrs:serviceBeans>
+            <bean class="org.apache.camel.component.cxf.transport.CxfRsCamelTransportTest.GreetingResourceBean" />
+        </jaxrs:serviceBeans>
+    </jaxrs:server>
+    <cxf:rsClient id="rsClient" address="camel://direct:cxf.in"
+                  serviceClass="org.apache.camel.component.cxf.transport.CxfRsCamelTransportTest.GreetingResource"
+                  loggingFeatureEnabled="true" />
+
+    <camel:conduit name="*.camel-conduit" camelContextId="cxfrs-camel-transport" />
+    <camel:destination name="*.camel-destination" camelContextId="cxfrs-camel-transport" />
+
+    <camelContext id="cxfrs-camel-transport" xmlns="http://camel.apache.org/schema/spring">
+        <!-- CXFRS producer -->
+        <route>
+            <from uri="direct:input" />
+            <!-- using HttpClientAPI -->
+            <setHeader headerName="CamelHttpMethod">
+                <constant>GET</constant>
+            </setHeader>
+            <setHeader headerName="Content-Type">
+                <constant>text/plain</constant>
+            </setHeader>
+            <setHeader headerName="CamelHttpUri">
+                <simple>/greeting/hello/${body}</simple>
+            </setHeader>
+            <!-- doesn't work for Camel tranport
+            <setHeader headerName="CamelHttpPath">
+                <simple>/greeting/hello/${body}</simple>
+            </setHeader>
+            -->
+            <setHeader headerName="CamelHttpMethod">
+                <constant>GET</constant>
+            </setHeader>
+            <inOut uri="cxfrs:bean:rsClient" />
+            <to uri="mock:result" />
+        </route>
+        <!-- CXFRS consumer -->
+        <route>
+            <from uri="direct:cxf.in" />
+            <to uri="direct:cxf.out" />
+        </route>
+    </camelContext>
+
+</beans>


[4/4] camel git commit: Fixed CS. This closes #1240

Posted by da...@apache.org.
Fixed CS. This closes #1240


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6d68dac3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6d68dac3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6d68dac3

Branch: refs/heads/camel-2.18.x
Commit: 6d68dac3dd2d6c99d511e1bf2ab93c280800dbd3
Parents: 96b0494
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Nov 1 12:40:40 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 1 12:41:12 2016 +0100

----------------------------------------------------------------------
 .../cxf/transport/CxfRsCamelTransportTest.java  | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6d68dac3/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
index acf295b..070a490 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
@@ -5,9 +5,9 @@
  * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
+ *
+ *      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.
@@ -16,18 +16,18 @@
  */
 package org.apache.camel.component.cxf.transport;
 
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
 public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
 
     @Override
@@ -46,6 +46,7 @@ public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
 
     @Path("/greeting")
     public interface GreetingResource {
+
         @GET
         @Path("/hello/{name}")
         @Consumes("text/plain")
@@ -55,6 +56,7 @@ public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
 
     @Path("/greeting")
     public static class GreetingResourceBean implements GreetingResource {
+
         @GET
         @Path("/hello/{name}")
         @Consumes("text/plain")


[2/4] camel git commit: Fixed CS. This closes #1240

Posted by da...@apache.org.
Fixed CS. This closes #1240


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/23fb42a9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/23fb42a9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/23fb42a9

Branch: refs/heads/master
Commit: 23fb42a9e22a4e3dd4adc7dbafa2080f919a3acf
Parents: 0eb700a
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Nov 1 12:40:40 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 1 12:40:40 2016 +0100

----------------------------------------------------------------------
 .../cxf/transport/CxfRsCamelTransportTest.java  | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/23fb42a9/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
index acf295b..070a490 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
@@ -5,9 +5,9 @@
  * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
+ *
+ *      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.
@@ -16,18 +16,18 @@
  */
 package org.apache.camel.component.cxf.transport;
 
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
 public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
 
     @Override
@@ -46,6 +46,7 @@ public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
 
     @Path("/greeting")
     public interface GreetingResource {
+
         @GET
         @Path("/hello/{name}")
         @Consumes("text/plain")
@@ -55,6 +56,7 @@ public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
 
     @Path("/greeting")
     public static class GreetingResourceBean implements GreetingResource {
+
         @GET
         @Path("/hello/{name}")
         @Consumes("text/plain")


[3/4] camel git commit: CAMEL-10427 - CXFRS client gets "Response timeout" exception when used with Camel transport

Posted by da...@apache.org.
CAMEL-10427 - CXFRS client gets "Response timeout" exception when used with Camel transport


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/96b0494e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/96b0494e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/96b0494e

Branch: refs/heads/camel-2.18.x
Commit: 96b0494e67f2661b2040de8b5a87055dc17d9006
Parents: 31f1b4e
Author: Tadayoshi Sato <sa...@gmail.com>
Authored: Tue Nov 1 14:19:01 2016 +0900
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 1 12:41:04 2016 +0100

----------------------------------------------------------------------
 .../cxf/common/header/CxfHeaderHelper.java      |  5 +-
 .../cxf/common/header/CxfHeaderHelperTest.java  |  8 ++-
 .../cxf/transport/CxfRsCamelTransportTest.java  | 67 +++++++++++++++++
 .../cxf/transport/CxfRsCamelTransport.xml       | 75 ++++++++++++++++++++
 4 files changed, 151 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/96b0494e/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
index e7a2154..f5099ab 100644
--- a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
+++ b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelper.java
@@ -70,9 +70,10 @@ public final class CxfHeaderHelper {
                     message.put(Message.CONTENT_TYPE, entry.getValue());
                 }
                 if (Client.REQUEST_CONTEXT.equals(entry.getKey())
-                    || Client.RESPONSE_CONTEXT.equals(entry.getKey())
-                    || Message.RESPONSE_CODE.equals(entry.getKey())) {
+                    || Client.RESPONSE_CONTEXT.equals(entry.getKey())) {
                     message.put(entry.getKey(), entry.getValue());
+                } else if (Exchange.HTTP_RESPONSE_CODE.equals(entry.getKey())) {
+                    message.put(Message.RESPONSE_CODE, entry.getValue());
                 } else {
                     Object values = entry.getValue();
                     if (values instanceof List<?>) {

http://git-wip-us.apache.org/repos/asf/camel/blob/96b0494e/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
index 81f2e1d..5c84f6b 100755
--- a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
+++ b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/header/CxfHeaderHelperTest.java
@@ -45,10 +45,11 @@ public class CxfHeaderHelperTest extends Assert {
     @Test
     public void testPropagateCamelToCxf() {
         Exchange exchange = new DefaultExchange(context);
-        
+
         exchange.getIn().setHeader("soapAction", "urn:hello:world");
         exchange.getIn().setHeader("MyFruitHeader", "peach");
         exchange.getIn().setHeader("MyBrewHeader", Arrays.asList("cappuccino", "espresso"));
+        exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, "200");
         org.apache.cxf.message.Message cxfMessage = new org.apache.cxf.message.MessageImpl();
         
         CxfHeaderHelper.propagateCamelToCxf(new DefaultHeaderFilterStrategy(), 
@@ -59,7 +60,7 @@ public class CxfHeaderHelperTest extends Assert {
             CastUtils.cast((Map<?, ?>)cxfMessage.get(org.apache.cxf.message.Message.PROTOCOL_HEADERS));
         assertNotNull(cxfHeaders);
         assertTrue(cxfHeaders.size() == 3);
-        
+
         verifyHeader(cxfHeaders, "soapaction", "urn:hello:world");
         verifyHeader(cxfHeaders, "SoapAction", "urn:hello:world");
         verifyHeader(cxfHeaders, "SOAPAction", "urn:hello:world");
@@ -67,6 +68,7 @@ public class CxfHeaderHelperTest extends Assert {
         verifyHeader(cxfHeaders, "myFruitHeader", "peach");
         verifyHeader(cxfHeaders, "MYFRUITHEADER", "peach");
         verifyHeader(cxfHeaders, "MyBrewHeader", Arrays.asList("cappuccino", "espresso"));
+        assertEquals("200", cxfMessage.get(Message.RESPONSE_CODE));
     } 
 
     @Test
@@ -79,6 +81,7 @@ public class CxfHeaderHelperTest extends Assert {
         cxfHeaders.put("myfruitheader", Arrays.asList("peach"));
         cxfHeaders.put("mybrewheader", Arrays.asList("cappuccino", "espresso"));
         cxfMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, cxfHeaders);
+        cxfMessage.put(Message.RESPONSE_CODE, "200");
         
         Map<String, Object> camelHeaders = exchange.getIn().getHeaders();
         CxfHeaderHelper.propagateCxfToCamel(new DefaultHeaderFilterStrategy(), 
@@ -89,6 +92,7 @@ public class CxfHeaderHelperTest extends Assert {
         assertEquals("241", camelHeaders.get("content-length"));
         assertEquals("peach", camelHeaders.get("MyFruitHeader"));
         assertEquals(Arrays.asList("cappuccino", "espresso"), camelHeaders.get("MyBrewHeader"));
+        assertEquals("200", camelHeaders.get(Exchange.HTTP_RESPONSE_CODE));
     } 
 
     @Test

http://git-wip-us.apache.org/repos/asf/camel/blob/96b0494e/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
new file mode 100644
index 0000000..acf295b
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/transport/CxfRsCamelTransportTest.java
@@ -0,0 +1,67 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.transport;
+
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+
+public class CxfRsCamelTransportTest extends CamelSpringTestSupport {
+
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml");
+    }
+
+    @Test
+    public void testCamelTransport() throws Exception {
+        MockEndpoint result = getMockEndpoint("mock:result");
+        result.expectedBodiesReceived("Hello, Test!");
+
+        template.sendBody("direct:input", "Test");
+        assertMockEndpointsSatisfied();
+    }
+
+    @Path("/greeting")
+    public interface GreetingResource {
+        @GET
+        @Path("/hello/{name}")
+        @Consumes("text/plain")
+        @Produces("text/plain")
+        String hello(@PathParam("name") String name);
+    }
+
+    @Path("/greeting")
+    public static class GreetingResourceBean implements GreetingResource {
+        @GET
+        @Path("/hello/{name}")
+        @Consumes("text/plain")
+        @Produces("text/plain")
+        public String hello(@PathParam("name") String name) {
+            return String.format("Hello, %s!", name);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/96b0494e/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml
new file mode 100644
index 0000000..02b5027
--- /dev/null
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/transport/CxfRsCamelTransport.xml
@@ -0,0 +1,75 @@
+<?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"
+       xmlns:camel="http://cxf.apache.org/transports/camel"
+       xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://cxf.apache.org/transports/camel http://cxf.apache.org/transports/camel.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
+       http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
+    ">
+
+    <jaxrs:server id="rsServer" address="camel://direct:cxf.out">
+        <jaxrs:serviceBeans>
+            <bean class="org.apache.camel.component.cxf.transport.CxfRsCamelTransportTest.GreetingResourceBean" />
+        </jaxrs:serviceBeans>
+    </jaxrs:server>
+    <cxf:rsClient id="rsClient" address="camel://direct:cxf.in"
+                  serviceClass="org.apache.camel.component.cxf.transport.CxfRsCamelTransportTest.GreetingResource"
+                  loggingFeatureEnabled="true" />
+
+    <camel:conduit name="*.camel-conduit" camelContextId="cxfrs-camel-transport" />
+    <camel:destination name="*.camel-destination" camelContextId="cxfrs-camel-transport" />
+
+    <camelContext id="cxfrs-camel-transport" xmlns="http://camel.apache.org/schema/spring">
+        <!-- CXFRS producer -->
+        <route>
+            <from uri="direct:input" />
+            <!-- using HttpClientAPI -->
+            <setHeader headerName="CamelHttpMethod">
+                <constant>GET</constant>
+            </setHeader>
+            <setHeader headerName="Content-Type">
+                <constant>text/plain</constant>
+            </setHeader>
+            <setHeader headerName="CamelHttpUri">
+                <simple>/greeting/hello/${body}</simple>
+            </setHeader>
+            <!-- doesn't work for Camel tranport
+            <setHeader headerName="CamelHttpPath">
+                <simple>/greeting/hello/${body}</simple>
+            </setHeader>
+            -->
+            <setHeader headerName="CamelHttpMethod">
+                <constant>GET</constant>
+            </setHeader>
+            <inOut uri="cxfrs:bean:rsClient" />
+            <to uri="mock:result" />
+        </route>
+        <!-- CXFRS consumer -->
+        <route>
+            <from uri="direct:cxf.in" />
+            <to uri="direct:cxf.out" />
+        </route>
+    </camelContext>
+
+</beans>