You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by co...@apache.org on 2019/08/08 11:21:08 UTC

[camel] 01/02: CAMEL-13563: Fix AHC tests after Jetty upgrade

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 <is...@gmail.com>
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");