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;