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 2012/04/10 17:41:37 UTC
svn commit: r1311795 - in /camel/branches/camel-2.8.x: ./
components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/
components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/
components/camel-cxf/src/test/java/org/apache/ca...
Author: ningjiang
Date: Tue Apr 10 15:41:36 2012
New Revision: 1311795
URL: http://svn.apache.org/viewvc?rev=1311795&view=rev
Log:
Merged revisions 1311771 via svnmerge from
https://svn.apache.org/repos/asf/camel/branches/camel-2.9.x
................
r1311771 | ningjiang | 2012-04-10 22:57:37 +0800 (Tue, 10 Apr 2012) | 9 lines
Merged revisions 1311732 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r1311732 | ningjiang | 2012-04-10 22:06:21 +0800 (Tue, 10 Apr 2012) | 1 line
CAMEL-5158 camel-cxfrs producer should keep the reponse detail when the exception is thrown
........
................
Modified:
camel/branches/camel-2.8.x/ (props changed)
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java
camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomerService.java
Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue Apr 10 15:41:36 2012
@@ -0,0 +1,2 @@
+/camel/branches/camel-2.9.x:1311771
+/camel/trunk:1311732
Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java?rev=1311795&r1=1311794&r2=1311795&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java Tue Apr 10 15:41:36 2012
@@ -301,7 +301,8 @@ public class CxfRsProducer extends Defau
String uri = exchange.getFromEndpoint().getEndpointUri();
String statusText = Response.Status.fromStatusCode(responseCode).toString();
Map<String, String> headers = parseResponseHeaders(response, exchange);
- String copy = response.toString();
+ //Get the response detail string
+ String copy = exchange.getContext().getTypeConverter().convertTo(String.class, response.getEntity());
if (responseCode >= 300 && responseCode < 400) {
String redirectLocation;
if (response.getMetadata().getFirst("Location") != null) {
Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java?rev=1311795&r1=1311794&r2=1311795&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java Tue Apr 10 15:41:36 2012
@@ -27,6 +27,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.Message;
import org.apache.camel.Processor;
+import org.apache.camel.component.cxf.CxfOperationException;
import org.apache.camel.component.cxf.common.message.CxfConstants;
import org.apache.camel.component.cxf.jaxrs.testbean.Customer;
import org.apache.camel.test.AvailablePortFinder;
@@ -164,11 +165,38 @@ public class CxfRsProducerTest extends C
}
@Test
- public void testGetConstumerWithCxfRsEndpoint() {
+ public void testGetCustomerExceptionWithCxfRsEndpoint() {
Exchange exchange
= template.send("cxfrs://http://localhost:" + getPort1() + "?httpClientAPI=true", new Processor() {
public void process(Exchange exchange) throws Exception {
exchange.setPattern(ExchangePattern.InOut);
+ Message message = exchange.getIn();
+ // set the Http method
+ message.setHeader(Exchange.HTTP_METHOD, "PUT");
+ // set the relative path
+ message.setHeader(Exchange.HTTP_PATH, "/customerservice/customers");
+ // we just setup the customer with a wrong id
+ Customer customer = new Customer();
+ customer.setId(222);
+ customer.setName("user");
+ message.setBody(customer);
+ }
+ });
+
+ // we should get the exception here
+ assertNotNull("Expect the exception here", exchange.getException());
+ CxfOperationException exception = (CxfOperationException)exchange.getException();
+
+ assertEquals("Get a wrong response body", "Cannot find the customer!", exception.getResponseBody());
+
+ }
+
+ @Test
+ public void testGetCustumerWithCxfRsEndpoint() {
+ Exchange exchange
+ = template.send("cxfrs://http://localhost:" + getPort1() + "/?httpClientAPI=true", new Processor() {
+ public void process(Exchange exchange) throws Exception {
+ exchange.setPattern(ExchangePattern.InOut);
Message inMessage = exchange.getIn();
// set the Http method
inMessage.setHeader(Exchange.HTTP_METHOD, "GET");
Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomerService.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomerService.java?rev=1311795&r1=1311794&r2=1311795&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomerService.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomerService.java Tue Apr 10 15:41:36 2012
@@ -81,7 +81,7 @@ public class CustomerService {
customers.put(customer.getId(), customer);
r = Response.ok().build();
} else {
- r = Response.notModified().build();
+ r = Response.status(406).entity("Cannot find the customer!").build();
}
return r;