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