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 2009/06/17 15:02:22 UTC
svn commit: r785579 - in /camel/trunk/components/camel-cxf/src:
main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
Author: ningjiang
Date: Wed Jun 17 13:02:22 2009
New Revision: 785579
URL: http://svn.apache.org/viewvc?rev=785579&view=rev
Log:
CAMEL-1700 Adding the verb and URI info on camel-cxfrs endpoint
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=785579&r1=785578&r2=785579&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 Jun 17 13:02:22 2009
@@ -39,13 +39,28 @@
public void populateExchangeFromCxfRsRequest(org.apache.cxf.message.Exchange cxfExchange,
Exchange camelExchange, Method method, Object[] paramArray) {
- Message inMessage = camelExchange.getIn();
- //TODO copy the message header into the inMessage
- inMessage.setHeader(CxfConstants.OPERATION_NAME, method.getName());
- inMessage.setBody(paramArray);
+ Message camelMessage = camelExchange.getIn();
+ //Copy the CXF message header into the Camel inMessage
+ org.apache.cxf.message.Message cxfMessage = cxfExchange.getInMessage();
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.REQUEST_URI, Exchange.HTTP_URI);
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, Exchange.HTTP_METHOD);
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.PATH_INFO, Exchange.HTTP_PATH);
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.CONTENT_TYPE, Exchange.CONTENT_TYPE);
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.ENCODING, Exchange.HTTP_CHARACTER_ENCODING);
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.QUERY_STRING, Exchange.HTTP_QUERY);
+
+ copyMessageHeader(cxfMessage, camelMessage, org.apache.cxf.message.Message.ACCEPT_CONTENT_TYPE, Exchange.ACCEPT_CONTENT_TYPE);
+
+ camelMessage.setHeader(CxfConstants.OPERATION_NAME, method.getName());
+ camelMessage.setBody(paramArray);
}
-
public HeaderFilterStrategy getHeaderFilterStrategy() {
return headerFilterStrategy;
}
@@ -54,5 +69,11 @@
public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
headerFilterStrategy = strategy;
}
+
+ private void copyMessageHeader(org.apache.cxf.message.Message cxfMessage, Message camelMessage, String cxfKey, String camelKey) {
+ if (cxfMessage.get(cxfKey) != null) {
+ camelMessage.setHeader(camelKey, cxfMessage.get(cxfKey));
+ }
+ }
}
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=785579&r1=785578&r2=785579&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 Jun 17 13:02:22 2009
@@ -41,12 +41,16 @@
from(CXF_RS_ENDPOINT_URI).process(new Processor() {
public void process(Exchange exchange) throws Exception {
- Message inMessage = exchange.getIn();
+ Message inMessage = exchange.getIn();
// Get the operation name from in message
String operationName = inMessage.getHeader(CxfConstants.OPERATION_NAME, String.class);
// The parameter of the invocation is stored in the body of in message
String id = (String) inMessage.getBody(Object[].class)[0];
if ("getCustomer".equals(operationName)) {
+ String httpMethod = inMessage.getHeader(Exchange.HTTP_METHOD, String.class);
+ assertEquals("Get a wrong http method", "GET", httpMethod);
+ String uri = inMessage.getHeader(Exchange.HTTP_URI, String.class);
+ assertEquals("Get a wrong http uri", "/customerservice/customers/126", uri);
Customer customer = new Customer();
customer.setId(Long.parseLong(id));
customer.setName("Willem");