This is an automated email from the ASF dual-hosted git repository. coheigea pushed a commit to branch camel-2.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit fb69e85d05ce9be18124d596c6bd208f52aa5507 Author: Denis Istomin <[email protected]> AuthorDate: Fri Aug 2 18:38:47 2019 +0500 CAMEL-13563: Fix AHC tests after Jetty upgrade --- .../camel/component/ahc/DefaultAhcBinding.java | 28 ++++++++++++---------- .../component/ahc/AhcProducerSessionTest.java | 2 -- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java index 94ae301..ffea5f7 100644 --- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java +++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java @@ -25,6 +25,7 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URI; import java.nio.charset.Charset; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -82,8 +83,7 @@ public class DefaultAhcBinding implements AhcBinding { log.trace("Setting method {}", method); builder.setMethod(method); - populateHeaders(builder, endpoint, exchange); - populateCookieHeaders(builder, endpoint, exchange, uri); + populateHeaders(builder, endpoint, exchange, uri); populateBody(builder, endpoint, exchange); return builder.build(); @@ -101,9 +101,10 @@ public class DefaultAhcBinding implements AhcBinding { return hasBody ? "POST" : "GET"; } - protected void populateHeaders(RequestBuilder builder, AhcEndpoint endpoint, Exchange exchange) { - HeaderFilterStrategy strategy = endpoint.getHeaderFilterStrategy(); + protected void populateHeaders(RequestBuilder builder, AhcEndpoint endpoint, Exchange exchange, URI uri) throws CamelExchangeException { + Map<String, Object> headers = new HashMap<>(); + HeaderFilterStrategy strategy = endpoint.getHeaderFilterStrategy(); // propagate headers as HTTP headers for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) { String headerValue = exchange.getIn().getHeader(entry.getKey(), String.class); @@ -111,16 +112,11 @@ public class DefaultAhcBinding implements AhcBinding { if (log.isTraceEnabled()) { log.trace("Adding header {} = {}", entry.getKey(), headerValue); } - builder.addHeader(entry.getKey(), headerValue); + + headers.put(entry.getKey(), headerValue); } } - - if (endpoint.isConnectionClose()) { - builder.addHeader("Connection", "close"); - } - } - private void populateCookieHeaders(RequestBuilder builder, AhcEndpoint endpoint, Exchange exchange, URI uri) throws CamelExchangeException { if (endpoint.getCookieHandler() != null) { try { Map<String, List<String>> cookieHeaders = endpoint.getCookieHandler().loadCookies(exchange, uri); @@ -133,12 +129,18 @@ public class DefaultAhcBinding implements AhcBinding { if (log.isTraceEnabled()) { log.trace("Adding header {} = {}", key, joiner.toString()); } - builder.addHeader(key, joiner.toString()); + headers.put(key, joiner.toString()); } } catch (IOException e) { throw new CamelExchangeException("Error loading cookies", exchange, e); } } + + if (endpoint.isConnectionClose()) { + builder.addHeader("Connection", "close"); + } + + headers.forEach(builder::addHeader); } protected void populateBody(RequestBuilder builder, AhcEndpoint endpoint, Exchange exchange) throws CamelExchangeException { @@ -278,7 +280,7 @@ public class DefaultAhcBinding implements AhcBinding { Object body = is; // if content type is a serialized java object then de-serialize it back to a Java object but only if its allowed - // an exception can also be transffered as java object + // an exception can also be transferred as java object if (contentType != null && contentType.equals(AhcConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT)) { if (endpoint.getComponent().isAllowJavaSerializedObject() || endpoint.isTransferException()) { body = AhcHelper.deserializeJavaObjectFromStream(is); diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerSessionTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerSessionTest.java index 79e149e..d94db24 100644 --- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerSessionTest.java +++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerSessionTest.java @@ -57,7 +57,6 @@ public class AhcProducerSessionTest extends BaseAhcTest { } @Test - @org.junit.Ignore("Failing cookie test with Jetty 9.4") public void testProducerInstanceSession() throws Exception { getMockEndpoint("mock:result").expectedBodiesReceived("Old New World", "Old Old World"); template.sendBody("direct:instance", "World"); @@ -66,7 +65,6 @@ public class AhcProducerSessionTest extends BaseAhcTest { } @Test - @org.junit.Ignore("Failing cookie test with Jetty 9.4") public void testProducerExchangeSession() throws Exception { getMockEndpoint("mock:result").expectedBodiesReceived("Old New World", "Old New World"); template.sendBody("direct:exchange", "World");
