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/11/09 14:55:11 UTC
svn commit: r1032983 - in /camel/trunk/components/camel-cxf/src:
main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java
test/java/org/apache/camel/component/cxf/CxfProducerProtocalHeaderTest.java
Author: ningjiang
Date: Tue Nov 9 13:55:11 2010
New Revision: 1032983
URL: http://svn.apache.org/viewvc?rev=1032983&view=rev
Log:
CAMEL-3306 Fixed the issue of Transfer-Encoding header
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerProtocalHeaderTest.java
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java?rev=1032983&r1=1032982&r2=1032983&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java Tue Nov 9 13:55:11 2010
@@ -50,33 +50,47 @@ public class CxfHeaderFilterStrategy ext
}
protected void initialize() {
- getOutFilter().add(CxfConstants.OPERATION_NAME);
- getOutFilter().add(CxfConstants.OPERATION_NAMESPACE);
+ //filter the operationName and operationName
+ getOutFilter().add(CxfConstants.OPERATION_NAME.toLowerCase());
+ getOutFilter().add(CxfConstants.OPERATION_NAMESPACE.toLowerCase());
// Request and response context Maps will be passed to CXF Client APIs
- getOutFilter().add(Client.REQUEST_CONTEXT);
- getOutFilter().add(Client.RESPONSE_CONTEXT);
+ getOutFilter().add(Client.REQUEST_CONTEXT.toLowerCase());
+ getOutFilter().add(Client.RESPONSE_CONTEXT.toLowerCase());
// protocol headers are stored as a Map. DefaultCxfBinding
// read the Map and send each entry to the filter. Therefore,
// we need to filter the header of this name.
- getOutFilter().add(Message.PROTOCOL_HEADERS);
- getInFilter().add(Message.PROTOCOL_HEADERS);
+ getOutFilter().add(Message.PROTOCOL_HEADERS.toLowerCase());
+ getInFilter().add(Message.PROTOCOL_HEADERS.toLowerCase());
+
+ // Add the filter for the Generic Message header
+ // http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5
+ getOutFilter().add("cache-control");
+ getOutFilter().add("connection");
+ getOutFilter().add("date");
+ getOutFilter().add("pragma");
+ getOutFilter().add("trailer");
+ getOutFilter().add("transfer-encoding");
+ getOutFilter().add("upgrade");
+ getOutFilter().add("via");
+ getOutFilter().add("warning");
// Since CXF can take the content-type from the protocol header
// we need to filter this header of this name.
- getOutFilter().add("content-type");
- getOutFilter().add("Content-Type");
+ getOutFilter().add("Content-Type".toLowerCase());
// Filter out Content-Length since it can fool Jetty (HttpGenerator) to
// close response output stream prematurely. (It occurs when the
// message size (e.g. with attachment) is large and response content length
// is bigger than request content length.)
- getOutFilter().add("Content-Length");
+ getOutFilter().add("Content-Length".toLowerCase());
// Filter Content-Length as it will cause some trouble when the message
// is passed to the other endpoint
- getInFilter().add("Content-Length");
+ getInFilter().add("content-length".toLowerCase());
+
+ setLowerCase(true);
// initialize message header filter map with default SOAP filter
messageHeaderFiltersMap = new HashMap<String, MessageHeaderFilter>();
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerProtocalHeaderTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerProtocalHeaderTest.java?rev=1032983&r1=1032982&r2=1032983&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerProtocalHeaderTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerProtocalHeaderTest.java Tue Nov 9 13:55:11 2010
@@ -40,7 +40,8 @@ public class CxfProducerProtocalHeaderTe
from("jetty:http://localhost:9008/user").process(new Processor() {
public void process(Exchange exchange) throws Exception {
- assertNull("We should not get the this header", exchange.getOut().getHeader("CamelCxfTest"));
+ assertNull("We should not get this header", exchange.getIn().getHeader("CamelCxfTest"));
+ assertNull("We should not get this header", exchange.getIn().getHeader("Transfer-Encoding"));
// check the headers
exchange.getOut().setHeader("Content-Type", "text/xml");
exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 200);
@@ -62,6 +63,7 @@ public class CxfProducerProtocalHeaderTe
exchange.getIn().setHeader(CxfConstants.OPERATION_NAME, "echo");
// Test the CxfHeaderFilterStrategy
exchange.getIn().setHeader("CamelCxfTest", "test");
+ exchange.getIn().setHeader("Transfer-Encoding", "chunked");
}
});
return exchange;