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 2010/12/24 10:12:33 UTC

svn commit: r1052466 - in /camel/trunk/components/camel-cxf/src: main/java/org/apache/camel/component/cxf/CxfConstants.java main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java test/java/org/apache/camel/component/cxf/CxfConsumerTest.java

Author: ningjiang
Date: Fri Dec 24 09:12:32 2010
New Revision: 1052466

URL: http://svn.apache.org/viewvc?rev=1052466&view=rev
Log:
CAMEL-3461 Put the CamelCxfMessage into Camel Message Header

Modified:
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
    camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java?rev=1052466&r1=1052465&r2=1052466&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java Fri Dec 24 09:12:32 2010
@@ -43,6 +43,7 @@ public interface CxfConstants {
     String JAXWS_CONTEXT = "jaxwsContext";
     String CXF_EXCHANGE = "org.apache.cxf.message.exchange";
     String CAMEL_EXCHANGE = "org.apache.camel.exchange";
+    String CAMEL_CXF_MESSAGE = "CamelCxfMessage";
     String CAMEL_CXF_RS_USING_HTTP_API = "CamelCxfRsUsingHttpAPI";
     String CAMEL_CXF_RS_VAR_VALUES = "CamelCxfRsVarValues";
     String CAMEL_CXF_RS_RESPONSE_CLASS = "CamelCxfRsResponseClass";

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java?rev=1052466&r1=1052465&r2=1052466&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java Fri Dec 24 09:12:32 2010
@@ -31,9 +31,6 @@ import javax.xml.namespace.QName;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.ws.Holder;
 
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.spi.HeaderFilterStrategy;
@@ -60,6 +57,9 @@ import org.apache.cxf.service.model.Bind
 import org.apache.cxf.service.model.MessagePartInfo;
 import org.apache.cxf.service.model.OperationInfo;
 
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
 /**
  * The Default CXF binding implementation.
  * 
@@ -448,9 +448,9 @@ public class DefaultCxfBinding implement
     @SuppressWarnings("unchecked")
     protected void propagateHeadersFromCxfToCamel(Message cxfMessage,
             org.apache.camel.Message camelMessage, Exchange exchange) {
-        
         Map<String, List<String>> cxfHeaders = (Map)cxfMessage.get(Message.PROTOCOL_HEADERS);
         Map<String, Object> camelHeaders = camelMessage.getHeaders();
+        camelHeaders.put(CxfConstants.CAMEL_CXF_MESSAGE, cxfMessage);
 
         if (cxfHeaders != null) {
             for (Map.Entry<String, List<String>> entry : cxfHeaders.entrySet()) {

Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java?rev=1052466&r1=1052465&r2=1052466&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java Fri Dec 24 09:12:32 2010
@@ -21,6 +21,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.servlet.ServletRequest;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
@@ -55,6 +57,12 @@ public class CxfConsumerTest extends Cam
                     public void process(final Exchange exchange) {
                         assertEquals(DataFormat.POJO, exchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.class));
                         Message in = exchange.getIn();
+                        // check the remote IP from the cxfMessage
+                        org.apache.cxf.message.Message cxfMessage = in.getHeader(CxfConstants.CAMEL_CXF_MESSAGE, org.apache.cxf.message.Message.class);
+                        assertNotNull("Should get the cxfMessage instance from message header", cxfMessage);
+                        ServletRequest request = (ServletRequest)cxfMessage.get("HTTP.REQUEST");
+                        assertNotNull("Should get the ServletRequest", request);
+                        assertNotNull("Should get the RemoteAddress" + request.getRemoteAddr());
                         // Get the parameter list
                         List<?> parameter = in.getBody(List.class);
                         // Get the operation name