Author: ningjiang Date: Fri Sep 7 08:13:23 2012 New Revision: 1381928 URL: http://svn.apache.org/viewvc?rev=1381928&view=rev Log: CAMEL-5575 added "headerFilterStrategy" option on camel-http
Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpEndpointOptionsNotChangeComponentTest.java Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java?rev=1381928&r1=1381927&r2=1381928&view=diff ============================================================================== --- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java (original) +++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java Fri Sep 7 08:13:23 2012 @@ -25,6 +25,7 @@ import java.util.Set; import org.apache.camel.Endpoint; import org.apache.camel.ResolveEndpointFailedException; import org.apache.camel.impl.HeaderFilterStrategyComponent; +import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.camel.util.CollectionHelper; import org.apache.camel.util.IntrospectionSupport; import org.apache.camel.util.ObjectHelper; @@ -209,6 +210,7 @@ public class HttpComponent extends Heade String proxyHost = getAndRemoveParameter(parameters, "proxyHost", String.class); Integer proxyPort = getAndRemoveParameter(parameters, "proxyPort", Integer.class); String authMethodPriority = getAndRemoveParameter(parameters, "authMethodPriority", String.class); + HeaderFilterStrategy headerFilterStrategy = resolveAndRemoveReferenceParameter(parameters, "headerFilterStrategy", HeaderFilterStrategy.class); // http client can be configured from URI options HttpClientParams clientParams = new HttpClientParams(); IntrospectionSupport.setProperties(clientParams, parameters, "httpClient."); @@ -222,7 +224,11 @@ public class HttpComponent extends Heade // create the endpoint HttpEndpoint endpoint = new HttpEndpoint(endpointUri.toString(), this, clientParams, httpConnectionManager, configurer); - setEndpointHeaderFilterStrategy(endpoint); + if (headerFilterStrategy != null) { + endpoint.setHeaderFilterStrategy(headerFilterStrategy); + } else { + setEndpointHeaderFilterStrategy(endpoint); + } // prefer to use endpoint configured over component configured if (binding == null) { Modified: camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpEndpointOptionsNotChangeComponentTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpEndpointOptionsNotChangeComponentTest.java?rev=1381928&r1=1381927&r2=1381928&view=diff ============================================================================== --- camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpEndpointOptionsNotChangeComponentTest.java (original) +++ camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpEndpointOptionsNotChangeComponentTest.java Fri Sep 7 08:13:23 2012 @@ -47,6 +47,7 @@ public class HttpEndpointOptionsNotChang protected JndiRegistry createRegistry() throws Exception { JndiRegistry jndi = super.createRegistry(); jndi.bind("other", new MyOtherBinding()); + jndi.bind("myStrategy", new MyHeaderFilterStrategy()); return jndi; } @@ -63,6 +64,10 @@ public class HttpEndpointOptionsNotChang // and the default option has not been messed with HttpEndpoint end3 = context.getEndpoint("http://www.google.com", HttpEndpoint.class); assertIsInstanceOf(MyBinding.class, end3.getBinding()); + + // test the headerFilterStrategy + HttpEndpoint end4 = context.getEndpoint("http://www.google.com?headerFilterStrategy=#myStrategy", HttpEndpoint.class); + assertIsInstanceOf(MyHeaderFilterStrategy.class, end4.getHeaderFilterStrategy()); } private static class MyBinding extends DefaultHttpBinding { @@ -76,5 +81,11 @@ public class HttpEndpointOptionsNotChang super(new HttpEndpoint()); } } + + private static class MyHeaderFilterStrategy extends HttpHeaderFilterStrategy { + MyHeaderFilterStrategy() { + super(); + } + } }