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>