Author: ningjiang
Date: Wed Dec 28 03:06:36 2011
New Revision: 1225078

URL: http://svn.apache.org/viewvc?rev=1225078&view=rev
Log:
CAMEL-4835 camel-cxfrs should support to look up the CXF message from the camel 
message header

Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java?rev=1225078&r1=1225077&r2=1225078&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
 Wed Dec 28 03:06:36 2011
@@ -120,6 +120,8 @@ public class DefaultCxfRsBinding impleme
         
         camelMessage.setHeader(CxfConstants.OPERATION_NAME, method.getName());
         
+        camelMessage.setHeader(CxfConstants.CAMEL_CXF_MESSAGE, cxfMessage);
+        
         camelMessage.setBody(new MessageContentsList(paramArray));        
     }
 

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java?rev=1225078&r1=1225077&r2=1225078&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
 Wed Dec 28 03:06:36 2011
@@ -20,6 +20,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URL;
 
+import javax.servlet.ServletRequest;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
 
@@ -72,6 +73,15 @@ public class CxfRsConsumerTest extends C
                                 // We just put the response Object into the 
out message body
                                 exchange.getOut().setBody(customer);
                             } else {
+                                if 
("/customerservice/customers/400".equals(path)) {
+                                    // We return the remote client IP address 
this time
+                                    org.apache.cxf.message.Message cxfMessage 
= inMessage.getHeader(CxfConstants.CAMEL_CXF_MESSAGE, 
org.apache.cxf.message.Message.class);
+                                    ServletRequest request = (ServletRequest) 
cxfMessage.get("HTTP.REQUEST");
+                                    String remoteAddress = 
request.getRemoteAddr();
+                                    Response r = 
Response.status(200).entity("The remoteAddress is " + remoteAddress).build();
+                                    exchange.getOut().setBody(r);
+                                    return;
+                                }
                                 if 
("/customerservice/customers/123".equals(path)) {
                                     // send a customer response back
                                     Response r = 
Response.status(200).entity("customer response back!").build();
@@ -127,6 +137,8 @@ public class CxfRsConsumerTest extends C
                           "{\"Customer\":{\"id\":126,\"name\":\"Willem\"}}");
         invokeGetCustomer("http://localhost:"; + CXT + 
"/rest/customerservice/customers/123",
                           "customer response back!");
+        invokeGetCustomer("http://localhost:"; + CXT + 
"/rest/customerservice/customers/400",
+            "The remoteAddress is 127.0.0.1");
         
     }
     


Reply via email to