Author: ningjiang Date: Fri Nov 2 07:37:43 2012 New Revision: 1404887 URL: http://svn.apache.org/viewvc?rev=1404887&view=rev Log: CAMEL-5757 fix the host setting issue on the camel-http producer when the bridgeEndpoint option is true
Merged revisions 1404558 via svnmerge from https://svn.apache.org/repos/asf/camel/branches/camel-2.10.x ................ r1404558 | ningjiang | 2012-11-01 20:29:10 +0800 (Thu, 01 Nov 2012) | 14 lines CAMEL-5757 fix the host setting issue on the camel-http producer when the bridgeEndpoint option is true Merged revisions 1404508,1404510 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk ........ r1404508 | ningjiang | 2012-11-01 17:04:37 +0800 (Thu, 01 Nov 2012) | 1 line CAMEL-5757 fix the host setting issue on the camel-http producer when the bridgeEndpoint option is true ........ r1404510 | ningjiang | 2012-11-01 17:05:26 +0800 (Thu, 01 Nov 2012) | 1 line CAMEL-5757 updated the code of camel-ahc ........ ................ Modified: camel/branches/camel-2.9.x/ (props changed) camel/branches/camel-2.9.x/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java camel/branches/camel-2.9.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProxyRouteTest.java camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyRouteTest.java Propchange: camel/branches/camel-2.9.x/ ------------------------------------------------------------------------------ Merged /camel/trunk:r1404508-1404510 Merged /camel/branches/camel-2.10.x:r1404558 Propchange: camel/branches/camel-2.9.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.9.x/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java (original) +++ camel/branches/camel-2.9.x/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java Fri Nov 2 07:37:43 2012 @@ -55,6 +55,8 @@ public class DefaultAhcBinding implement public Request prepareRequest(AhcEndpoint endpoint, Exchange exchange) throws CamelExchangeException { if (endpoint.isBridgeEndpoint()) { exchange.setProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.TRUE); + // Need to remove the Host key as it should be not used + exchange.getIn().getHeaders().remove("host"); } RequestBuilder builder = new RequestBuilder(); Modified: camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java (original) +++ camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java Fri Nov 2 07:37:43 2012 @@ -85,6 +85,8 @@ public class HttpProducer extends Defaul if (queryString != null) { skipRequestHeaders = URISupport.parseQuery(queryString); } + // Need to remove the Host key as it should be not used + exchange.getIn().getHeaders().remove("host"); } HttpMethod method = createMethod(exchange); Message in = exchange.getIn(); Modified: camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java (original) +++ camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java Fri Nov 2 07:37:43 2012 @@ -90,6 +90,8 @@ public class HttpProducer extends Defaul if (queryString != null) { skipRequestHeaders = URISupport.parseQuery(queryString); } + // Need to remove the Host key as it should be not used + exchange.getIn().getHeaders().remove("host"); } HttpRequestBase httpRequest = createMethod(exchange); Message in = exchange.getIn(); Modified: camel/branches/camel-2.9.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java (original) +++ camel/branches/camel-2.9.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java Fri Nov 2 07:37:43 2012 @@ -147,6 +147,8 @@ public class JettyHttpProducer extends D if (queryString != null) { skipRequestHeaders = URISupport.parseQuery(queryString); } + // Need to remove the Host key as it should be not used + exchange.getIn().getHeaders().remove("host"); } // propagate headers as HTTP headers Modified: camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java (original) +++ camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java Fri Nov 2 07:37:43 2012 @@ -33,6 +33,8 @@ import org.junit.BeforeClass; public abstract class BaseJettyTest extends CamelTestSupport { private static volatile int port; + + private static volatile int port2; private final AtomicInteger counter = new AtomicInteger(1); @@ -52,6 +54,8 @@ public abstract class BaseJettyTest exte port++; } + // find another ports for proxy route test + port2 = AvailablePortFinder.getNextAvailable(24000); } @AfterClass @@ -81,8 +85,8 @@ public abstract class BaseJettyTest exte Properties prop = new Properties(); prop.setProperty("port", "" + getPort()); + prop.setProperty("port2", "" + getPort2()); jndi.bind("prop", prop); - return jndi; } @@ -97,5 +101,10 @@ public abstract class BaseJettyTest exte protected int getPort() { return port; } + + protected static int getPort2() { + return port2; + } + } Modified: camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProxyRouteTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProxyRouteTest.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProxyRouteTest.java (original) +++ camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProxyRouteTest.java Fri Nov 2 07:37:43 2012 @@ -47,6 +47,12 @@ public class HttpProxyRouteTest extends out = template.requestBody("http://localhost:{{port}}/proxy/path", null, String.class); assertEquals("/otherEndpoint/path", out); } + + @Test + public void testHttpProxyHostHeader() throws Exception { + String out = template.requestBody("http://localhost:{{port}}/proxyServer", null, String.class); + assertEquals("Get a wrong host header", "localhost:" + getPort2(), out); + } protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @@ -60,6 +66,11 @@ public class HttpProxyRouteTest extends from("jetty://http://localhost:{{port}}/bye").transform(header("foo").prepend("Bye ")); from("jetty://http://localhost:{{port}}/otherEndpoint?matchOnUriPrefix=true").transform(header(Exchange.HTTP_PATH)); + + from("jetty://http://localhost:{{port}}/proxyServer") + .to("http://localhost:{{port2}}/host?bridgeEndpoint=true"); + + from("jetty://http://localhost:{{port2}}/host").transform(header("host")); } }; } Modified: camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyRouteTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyRouteTest.java?rev=1404887&r1=1404886&r2=1404887&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyRouteTest.java (original) +++ camel/branches/camel-2.9.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyRouteTest.java Fri Nov 2 07:37:43 2012 @@ -35,6 +35,12 @@ public class JettyRouteTest extends Base String body = context.getTypeConverter().convertTo(String.class, response); assertEquals("<html><body>Book 123 is Camel in Action</body></html>", body); } + + @Test + public void testHttpProxyHostHeader() throws Exception { + String out = template.requestBody("http://localhost:{{port}}/proxyServer", null, String.class); + assertEquals("Get a wrong host header", "localhost:" + getPort2(), out); + } @Override protected RouteBuilder createRouteBuilder() throws Exception { @@ -43,6 +49,11 @@ public class JettyRouteTest extends Base // START SNIPPET: e1 from("jetty:http://localhost:{{port}}/myapp/myservice").process(new MyBookService()); // END SNIPPET: e1 + + from("jetty://http://localhost:{{port}}/proxyServer") + .to("http://localhost:{{port2}}/host?bridgeEndpoint=true"); + + from("jetty://http://localhost:{{port2}}/host").transform(header("host")); } }; }
