You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/04/10 11:41:42 UTC

[1/2] git commit: CAMEL-7357 support jax-rs exception mappers in camel-cxf

Repository: camel
Updated Branches:
  refs/heads/camel-2.12.x eb9ccf421 -> 94c01b98d
  refs/heads/camel-2.13.x 68d3f233b -> 956b2d2b6


CAMEL-7357 support jax-rs exception mappers in camel-cxf


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

Branch: refs/heads/camel-2.13.x
Commit: 956b2d2b6a01b63b60b90f268bb614de14ab930e
Parents: 68d3f23
Author: Willem Jiang <wi...@gmail.com>
Authored: Thu Apr 10 17:35:40 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Apr 10 17:41:01 2014 +0800

----------------------------------------------------------------------
 .../camel/component/cxf/jaxrs/CxfRsInvoker.java |  9 +--
 .../cxf/jaxrs/CustomExceptionMapper.java        | 33 +++++++++
 .../cxf/jaxrs/CxfRsSpringConsumerTest.java      | 75 ++++++++++++++++++++
 .../cxf/jaxrs/testbean/CustomException.java     | 27 +++++++
 .../component/cxf/jaxrs/CxfRsSpringConsumer.xml | 45 ++++++++++++
 5 files changed, 182 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/956b2d2b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
index 3e2c0fd..4f617a7 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
@@ -19,7 +19,6 @@ package org.apache.camel.component.cxf.jaxrs;
 import java.lang.reflect.Method;
 
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
 
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.ExchangePattern;
@@ -156,12 +155,8 @@ public class CxfRsInvoker extends JAXRSInvoker {
                 } else {
                     throw (WebApplicationException)exception;
                 }
-            } else {
-                // Send the exception message back 
-                WebApplicationException webApplicationException = new WebApplicationException(exception, Response.serverError().entity(exception.toString()).build());
-                throw webApplicationException;
-            }
-            
+            } 
+            //CAMEL-7357 throw out other exception to make sure the ExceptionMapper work
         }
         return endpoint.getBinding().populateCxfRsResponseFromExchange(camelExchange, cxfExchange);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/956b2d2b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java
new file mode 100644
index 0000000..475b047
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java
@@ -0,0 +1,33 @@
+/**
+ * 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.jaxrs;
+
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.ExceptionMapper;
+
+import org.apache.camel.component.cxf.jaxrs.testbean.CustomException;
+
+public class CustomExceptionMapper implements ExceptionMapper<CustomException> {
+
+    @Override 
+    public Response toResponse(CustomException exception) {
+        Response.Status status;
+        status = Response.Status.INTERNAL_SERVER_ERROR;
+        return Response.status(status).header("exception", exception.getMessage()).build();
+    } 
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/956b2d2b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java
new file mode 100644
index 0000000..d149905
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java
@@ -0,0 +1,75 @@
+/**
+ * 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.jaxrs;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.NoErrorHandlerBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.cxf.CXFTestSupport;
+import org.apache.camel.component.cxf.jaxrs.testbean.CustomException;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class CxfRsSpringConsumerTest extends CamelSpringTestSupport {
+    private static int port1 = CXFTestSupport.getPort1(); 
+    
+    
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() {
+                errorHandler(new NoErrorHandlerBuilder());
+                from("cxfrs://bean://rsServer").process(new Processor() {
+                    public void process(Exchange exchange) throws Exception {
+                        // just throw the CustomException here
+                        throw new CustomException("Here is the exception");
+                    }  
+                });
+            }
+        };
+    }
+    
+    
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml");
+    }
+    
+    @Test
+    public void testMappingException() throws Exception {
+        HttpGet get = new HttpGet("http://localhost:" + port1 + "/CxfRsSpringConsumerTest/customerservice/customers/126");
+        get.addHeader("Accept" , "application/json");
+        CloseableHttpClient httpclient = HttpClientBuilder.create().build();
+
+        try {
+            HttpResponse response = httpclient.execute(get);
+            assertEquals("Get a wrong status code", 500, response.getStatusLine().getStatusCode());
+            assertEquals("Get a worng message header", "exception: Here is the exception", response.getHeaders("exception")[0].toString());
+        } finally {
+            httpclient.close();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/956b2d2b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java
new file mode 100644
index 0000000..69033b8
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java
@@ -0,0 +1,27 @@
+/**
+ * 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.jaxrs.testbean;
+
+public class CustomException extends Exception {
+
+    private static final long serialVersionUID = 1L;
+    
+    public CustomException(String message) {
+        super(message);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/956b2d2b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml
new file mode 100644
index 0000000..99b708c
--- /dev/null
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml
@@ -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.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
+    ">
+
+  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
+
+  <cxf:rsServer id="rsServer" address="http://localhost:${CXFTestSupport.port1}/CxfRsSpringConsumerTest/"
+    serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService">
+    <cxf:providers>
+       <ref bean="exceptionMapper"/>
+       <ref bean="jsonProvider"/>
+    </cxf:providers>
+  </cxf:rsServer>
+
+  <bean id="exceptionMapper" class="org.apache.camel.component.cxf.jaxrs.CustomExceptionMapper"/>
+  <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider"/>
+
+  <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+  </camelContext>
+  
+  
+
+</beans>


[2/2] git commit: CAMEL-7357 support jax-rs exception mappers in camel-cxf

Posted by ni...@apache.org.
CAMEL-7357 support jax-rs exception mappers in camel-cxf


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

Branch: refs/heads/camel-2.12.x
Commit: 94c01b98dfd0b4140a7ff51c47222b1f728ce45e
Parents: eb9ccf4
Author: Willem Jiang <wi...@gmail.com>
Authored: Thu Apr 10 17:35:40 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Apr 10 17:41:21 2014 +0800

----------------------------------------------------------------------
 .../camel/component/cxf/jaxrs/CxfRsInvoker.java |  9 +--
 .../cxf/jaxrs/CustomExceptionMapper.java        | 33 +++++++++
 .../cxf/jaxrs/CxfRsSpringConsumerTest.java      | 75 ++++++++++++++++++++
 .../cxf/jaxrs/testbean/CustomException.java     | 27 +++++++
 .../component/cxf/jaxrs/CxfRsSpringConsumer.xml | 45 ++++++++++++
 5 files changed, 182 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/94c01b98/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
index 3e2c0fd..4f617a7 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
@@ -19,7 +19,6 @@ package org.apache.camel.component.cxf.jaxrs;
 import java.lang.reflect.Method;
 
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
 
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.ExchangePattern;
@@ -156,12 +155,8 @@ public class CxfRsInvoker extends JAXRSInvoker {
                 } else {
                     throw (WebApplicationException)exception;
                 }
-            } else {
-                // Send the exception message back 
-                WebApplicationException webApplicationException = new WebApplicationException(exception, Response.serverError().entity(exception.toString()).build());
-                throw webApplicationException;
-            }
-            
+            } 
+            //CAMEL-7357 throw out other exception to make sure the ExceptionMapper work
         }
         return endpoint.getBinding().populateCxfRsResponseFromExchange(camelExchange, cxfExchange);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/94c01b98/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java
new file mode 100644
index 0000000..475b047
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CustomExceptionMapper.java
@@ -0,0 +1,33 @@
+/**
+ * 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.jaxrs;
+
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.ExceptionMapper;
+
+import org.apache.camel.component.cxf.jaxrs.testbean.CustomException;
+
+public class CustomExceptionMapper implements ExceptionMapper<CustomException> {
+
+    @Override 
+    public Response toResponse(CustomException exception) {
+        Response.Status status;
+        status = Response.Status.INTERNAL_SERVER_ERROR;
+        return Response.status(status).header("exception", exception.getMessage()).build();
+    } 
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/94c01b98/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java
new file mode 100644
index 0000000..d149905
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java
@@ -0,0 +1,75 @@
+/**
+ * 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.jaxrs;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.NoErrorHandlerBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.cxf.CXFTestSupport;
+import org.apache.camel.component.cxf.jaxrs.testbean.CustomException;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class CxfRsSpringConsumerTest extends CamelSpringTestSupport {
+    private static int port1 = CXFTestSupport.getPort1(); 
+    
+    
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() {
+                errorHandler(new NoErrorHandlerBuilder());
+                from("cxfrs://bean://rsServer").process(new Processor() {
+                    public void process(Exchange exchange) throws Exception {
+                        // just throw the CustomException here
+                        throw new CustomException("Here is the exception");
+                    }  
+                });
+            }
+        };
+    }
+    
+    
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml");
+    }
+    
+    @Test
+    public void testMappingException() throws Exception {
+        HttpGet get = new HttpGet("http://localhost:" + port1 + "/CxfRsSpringConsumerTest/customerservice/customers/126");
+        get.addHeader("Accept" , "application/json");
+        CloseableHttpClient httpclient = HttpClientBuilder.create().build();
+
+        try {
+            HttpResponse response = httpclient.execute(get);
+            assertEquals("Get a wrong status code", 500, response.getStatusLine().getStatusCode());
+            assertEquals("Get a worng message header", "exception: Here is the exception", response.getHeaders("exception")[0].toString());
+        } finally {
+            httpclient.close();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/94c01b98/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java
new file mode 100644
index 0000000..69033b8
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomException.java
@@ -0,0 +1,27 @@
+/**
+ * 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.jaxrs.testbean;
+
+public class CustomException extends Exception {
+
+    private static final long serialVersionUID = 1L;
+    
+    public CustomException(String message) {
+        super(message);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/94c01b98/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml
new file mode 100644
index 0000000..99b708c
--- /dev/null
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumer.xml
@@ -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.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
+    ">
+
+  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
+
+  <cxf:rsServer id="rsServer" address="http://localhost:${CXFTestSupport.port1}/CxfRsSpringConsumerTest/"
+    serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService">
+    <cxf:providers>
+       <ref bean="exceptionMapper"/>
+       <ref bean="jsonProvider"/>
+    </cxf:providers>
+  </cxf:rsServer>
+
+  <bean id="exceptionMapper" class="org.apache.camel.component.cxf.jaxrs.CustomExceptionMapper"/>
+  <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider"/>
+
+  <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+  </camelContext>
+  
+  
+
+</beans>