You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/06/28 17:23:28 UTC

[3/6] camel git commit: CAMEL-10040 camel-ahc - Upgrade AHC client to 2.x

CAMEL-10040 camel-ahc - Upgrade AHC client to 2.x


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8f23f171
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8f23f171
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8f23f171

Branch: refs/heads/master
Commit: 8f23f171b9378407d5415e5e5e321ea8d91da2d4
Parents: f0484bf
Author: Andrea Cosentino <an...@gmail.com>
Authored: Tue Jun 28 14:56:37 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Tue Jun 28 19:22:26 2016 +0200

----------------------------------------------------------------------
 components/camel-ahc/pom.xml                    |  14 +---
 .../apache/camel/component/ahc/AhcBinding.java  |   6 +-
 .../camel/component/ahc/AhcComponent.java       |  24 +++---
 .../apache/camel/component/ahc/AhcEndpoint.java |  29 ++++---
 .../apache/camel/component/ahc/AhcProducer.java |  82 ++++++++++---------
 .../camel/component/ahc/DefaultAhcBinding.java  |  34 ++++----
 .../springboot/AhcComponentConfiguration.java   |   4 +-
 .../ahc/AhcClientConfigRealmUriTest.java        |   4 +-
 .../component/ahc/AhcClientConfigUriTest.java   |   2 +-
 .../ahc/AhcComponentClientConfigTest.java       |   7 +-
 .../ahc/AhcComponentCustomClientConfigTest.java |   6 +-
 .../ahc/AhcComponentNettyClientConfigTest.java  |  10 +--
 .../ahc/AhcProduceClientConfigTest.java         |   6 +-
 ...AhcProducerTwoParametersWithSameKeyTest.java |  12 +--
 .../apache/camel/component/ahc/BaseAhcTest.java |   1 +
 .../src/test/resources/jsse/localhost.ks        | Bin 1265 -> 2247 bytes
 16 files changed, 117 insertions(+), 124 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-ahc/pom.xml b/components/camel-ahc/pom.xml
index 0c39e87..ad80bf0 100644
--- a/components/camel-ahc/pom.xml
+++ b/components/camel-ahc/pom.xml
@@ -41,20 +41,14 @@
       <artifactId>camel-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.ning</groupId>
+      <groupId>org.asynchttpclient</groupId>
       <artifactId>async-http-client</artifactId>
-      <version>${ahc-version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>io.netty</groupId>
-          <artifactId>netty</artifactId>
-        </exclusion>
-      </exclusions>
+      <version>2.0.7</version>
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
-      <artifactId>netty</artifactId>
-      <version>${netty3-version}</version>
+      <artifactId>netty-all</artifactId>
+      <version>${netty-version}</version>
     </dependency>
 
     <!-- testing -->

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcBinding.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcBinding.java
index 2c546d7..189d364 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcBinding.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcBinding.java
@@ -18,10 +18,10 @@ package org.apache.camel.component.ahc;
 
 import java.io.ByteArrayOutputStream;
 
-import com.ning.http.client.HttpResponseHeaders;
-import com.ning.http.client.HttpResponseStatus;
-import com.ning.http.client.Request;
 import org.apache.camel.Exchange;
+import org.asynchttpclient.HttpResponseHeaders;
+import org.asynchttpclient.HttpResponseStatus;
+import org.asynchttpclient.Request;
 
 /**
  * Binding from Camel to/from {@link com.ning.http.client.AsyncHttpClient}

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
index 6da5858..24e7f70 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
@@ -19,15 +19,17 @@ package org.apache.camel.component.ahc;
 import java.net.URI;
 import java.util.Map;
 
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.AsyncHttpClientConfig;
-import com.ning.http.client.Realm;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
 import org.apache.camel.util.jsse.SSLContextParameters;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.AsyncHttpClientConfig;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
+import org.asynchttpclient.Realm;
+import org.asynchttpclient.Realm.Builder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -39,7 +41,7 @@ public class AhcComponent extends HeaderFilterStrategyComponent {
     private static final Logger LOG = LoggerFactory.getLogger(AhcComponent.class);
     
     private static final String CLIENT_CONFIG_PREFIX = "clientConfig.";
-    private static final String CLIENT_REALM_CONFIG_PREFIX = "clientConfig.realm.";
+    private static final String CLIENT_REALM_CONFIG_PREFIX = "realm.";
 
     private AsyncHttpClient client;
     private AsyncHttpClientConfig clientConfig;
@@ -67,8 +69,8 @@ public class AhcComponent extends HeaderFilterStrategyComponent {
         setProperties(endpoint, parameters);
 
         if (IntrospectionSupport.hasProperties(parameters, CLIENT_CONFIG_PREFIX)) {
-            AsyncHttpClientConfig.Builder builder = endpoint.getClientConfig() == null 
-                    ? new AsyncHttpClientConfig.Builder() : AhcComponent.cloneConfig(endpoint.getClientConfig());
+            DefaultAsyncHttpClientConfig.Builder builder = endpoint.getClientConfig() == null 
+                    ? new DefaultAsyncHttpClientConfig.Builder() : AhcComponent.cloneConfig(endpoint.getClientConfig());
             
             if (endpoint.getClient() != null) {
                 LOG.warn("The user explicitly set an AsyncHttpClient instance on the component or "
@@ -85,16 +87,16 @@ public class AhcComponent extends HeaderFilterStrategyComponent {
             }
 
             // special for realm builder
-            Realm.RealmBuilder realmBuilder = null;
+            Builder realmBuilder = null;
             if (IntrospectionSupport.hasProperties(parameters, CLIENT_REALM_CONFIG_PREFIX)) {
-                realmBuilder = new Realm.RealmBuilder();
 
                 // set and validate additional parameters on client config
                 Map<String, Object> realmParams = IntrospectionSupport.extractProperties(parameters, CLIENT_REALM_CONFIG_PREFIX);
+                realmBuilder = new Realm.Builder(realmParams.get("realm.principal").toString(), realmParams.get("realm.password").toString());
                 setProperties(realmBuilder, realmParams);
                 validateParameters(uri, realmParams, null);
             }
-
+            
             // set and validate additional parameters on client config
             Map<String, Object> clientParams = IntrospectionSupport.extractProperties(parameters, CLIENT_CONFIG_PREFIX);
             setProperties(builder, clientParams);
@@ -192,8 +194,8 @@ public class AhcComponent extends HeaderFilterStrategyComponent {
      * @param clientConfig the instance to serve as a template for the builder
      * @return a builder configured with the same options as the supplied config
      */
-    static AsyncHttpClientConfig.Builder cloneConfig(AsyncHttpClientConfig clientConfig) {
-        AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(clientConfig);
+    static DefaultAsyncHttpClientConfig.Builder cloneConfig(AsyncHttpClientConfig clientConfig) {
+    	DefaultAsyncHttpClientConfig.Builder builder = new DefaultAsyncHttpClientConfig.Builder(clientConfig);
         return builder;
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
index bbb31d6..e996379 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
@@ -20,8 +20,6 @@ import java.net.URI;
 import java.util.Map;
 import javax.net.ssl.SSLContext;
 
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.AsyncHttpClientConfig;
 import org.apache.camel.AsyncEndpoint;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
@@ -35,6 +33,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.AsyncHttpClientConfig;
+import org.asynchttpclient.DefaultAsyncHttpClient;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
+
+import io.netty.handler.ssl.ClientAuth;
+import io.netty.handler.ssl.JdkSslContext;
 
 /**
  * To call external HTTP services using <a href="http://github.com/sonatype/async-http-client">Async Http Client</a>.
@@ -61,7 +66,7 @@ public class AhcEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
     private SSLContextParameters sslContextParameters;
     @UriParam(label = "advanced")
     private AsyncHttpClientConfig clientConfig;
-    @UriParam(label = "advanced", prefix = "clientConfig.", multiValue = true)
+    @UriParam(label = "advanced", prefix = "asyncHttpClientConfig.", multiValue = true)
     private Map<String, Object> clientConfigOptions;
     @UriParam(label = "producer", defaultValue = "false")
     private boolean connectionClose;
@@ -251,19 +256,21 @@ public class AhcEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
             AsyncHttpClientConfig config = null;
             
             if (clientConfig != null) {
-                AsyncHttpClientConfig.Builder builder = AhcComponent.cloneConfig(clientConfig);
+                DefaultAsyncHttpClientConfig.Builder builder = AhcComponent.cloneConfig(clientConfig);
                 
                 if (sslContextParameters != null) {
-                    SSLContext ssl = sslContextParameters.createSSLContext(getCamelContext());
-                    builder.setSSLContext(ssl);
+                    SSLContext sslContext = sslContextParameters.createSSLContext(getCamelContext());
+                    JdkSslContext ssl = new JdkSslContext(sslContext, true, ClientAuth.NONE);
+                    builder.setSslContext(ssl);
                 }
                 
                 config = builder.build();
             } else {
                 if (sslContextParameters != null) {
-                    AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
-                    SSLContext ssl = sslContextParameters.createSSLContext(getCamelContext());
-                    builder.setSSLContext(ssl);
+                    DefaultAsyncHttpClientConfig.Builder builder = new DefaultAsyncHttpClientConfig.Builder();
+                    SSLContext sslContext = sslContextParameters.createSSLContext(getCamelContext());
+                    JdkSslContext ssl = new JdkSslContext(sslContext, true, ClientAuth.NONE);
+                    builder.setSslContext(ssl);
                     config = builder.build();
                 }
             }
@@ -273,9 +280,9 @@ public class AhcEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
 
     protected AsyncHttpClient createClient(AsyncHttpClientConfig config) {
         if (config == null) {
-            return new AsyncHttpClient();
+            return new DefaultAsyncHttpClient();
         } else {
-            return new AsyncHttpClient(config);
+            return new DefaultAsyncHttpClient(config);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcProducer.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcProducer.java
index 8adeef7..91356b5 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcProducer.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcProducer.java
@@ -18,15 +18,15 @@ package org.apache.camel.component.ahc;
 
 import java.io.ByteArrayOutputStream;
 
-import com.ning.http.client.AsyncHandler;
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.HttpResponseBodyPart;
-import com.ning.http.client.HttpResponseHeaders;
-import com.ning.http.client.HttpResponseStatus;
-import com.ning.http.client.Request;
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultAsyncProducer;
+import org.asynchttpclient.AsyncHandler;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.HttpResponseBodyPart;
+import org.asynchttpclient.HttpResponseHeaders;
+import org.asynchttpclient.HttpResponseStatus;
+import org.asynchttpclient.Request;
 
 /**
  *
@@ -95,18 +95,41 @@ public class AhcProducer extends DefaultAsyncProducer {
         }
 
         @Override
-        public STATE onBodyPartReceived(HttpResponseBodyPart bodyPart) throws Exception {
-            // write body parts to stream, which we will bind to the Camel Exchange in onComplete
-            int wrote = bodyPart.writeTo(os);
+        public Exchange onCompleted() throws Exception {
             if (log.isTraceEnabled()) {
-                log.trace("{} onBodyPartReceived {} bytes", exchange.getExchangeId(), wrote);
+                log.trace("{} onCompleted", exchange.getExchangeId());
+            }
+            try {
+                getEndpoint().getBinding().onComplete(getEndpoint(), exchange, url, os, contentLength, statusCode, statusText);
+            } catch (Exception e) {
+                exchange.setException(e);
+            } finally {
+                // signal we are done
+                callback.done(false);
             }
-            contentLength += wrote;
-            return STATE.CONTINUE;
+            return exchange;
         }
 
         @Override
-        public STATE onStatusReceived(HttpResponseStatus responseStatus) throws Exception {
+        public String toString() {
+            return "AhcAsyncHandler for exchangeId: " + exchange.getExchangeId() + " -> " + url;
+        }
+
+		@Override
+		public State onBodyPartReceived(HttpResponseBodyPart bodyPart)
+				throws Exception {
+            // write body parts to stream, which we will bind to the Camel Exchange in onComplete
+            os.write(bodyPart.getBodyPartBytes());
+            if (log.isTraceEnabled()) {
+                log.trace("{} onBodyPartReceived {} bytes", exchange.getExchangeId(), bodyPart.length());
+            }
+            contentLength += bodyPart.length();
+            return State.CONTINUE;
+		}
+
+		@Override
+		public State onStatusReceived(HttpResponseStatus responseStatus)
+				throws Exception {
             if (log.isTraceEnabled()) {
                 log.trace("{} onStatusReceived {}", exchange.getExchangeId(), responseStatus);
             }
@@ -117,11 +140,11 @@ public class AhcProducer extends DefaultAsyncProducer {
             } catch (Exception e) {
                 exchange.setException(e);
             }
-            return STATE.CONTINUE;
-        }
+            return State.CONTINUE;
+		}
 
-        @Override
-        public STATE onHeadersReceived(HttpResponseHeaders headers) throws Exception {
+		@Override
+		public State onHeadersReceived(HttpResponseHeaders headers) throws Exception {
             if (log.isTraceEnabled()) {
                 log.trace("{} onHeadersReceived {}", exchange.getExchangeId(), headers);
             }
@@ -130,29 +153,8 @@ public class AhcProducer extends DefaultAsyncProducer {
             } catch (Exception e) {
                 exchange.setException(e);
             }
-            return STATE.CONTINUE;
-        }
-
-        @Override
-        public Exchange onCompleted() throws Exception {
-            if (log.isTraceEnabled()) {
-                log.trace("{} onCompleted", exchange.getExchangeId());
-            }
-            try {
-                getEndpoint().getBinding().onComplete(getEndpoint(), exchange, url, os, contentLength, statusCode, statusText);
-            } catch (Exception e) {
-                exchange.setException(e);
-            } finally {
-                // signal we are done
-                callback.done(false);
-            }
-            return exchange;
-        }
-
-        @Override
-        public String toString() {
-            return "AhcAsyncHandler for exchangeId: " + exchange.getExchangeId() + " -> " + url;
-        }
+            return State.CONTINUE;
+		}
     }
 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java
----------------------------------------------------------------------
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 f7160aa..5f3aefd 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
@@ -24,18 +24,12 @@ import java.io.InputStream;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.nio.charset.Charset;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
-import com.ning.http.client.BodyGenerator;
-import com.ning.http.client.HttpResponseHeaders;
-import com.ning.http.client.HttpResponseStatus;
-import com.ning.http.client.Request;
-import com.ning.http.client.RequestBuilder;
-import com.ning.http.client.generators.ByteArrayBodyGenerator;
-import com.ning.http.client.generators.FileBodyGenerator;
-import com.ning.http.client.generators.InputStreamBodyGenerator;
 import org.apache.camel.CamelExchangeException;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
@@ -46,6 +40,15 @@ import org.apache.camel.util.ExchangeHelper;
 import org.apache.camel.util.GZIPHelper;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.MessageHelper;
+import org.apache.camel.util.ObjectHelper;
+import org.asynchttpclient.HttpResponseHeaders;
+import org.asynchttpclient.HttpResponseStatus;
+import org.asynchttpclient.Request;
+import org.asynchttpclient.RequestBuilder;
+import org.asynchttpclient.request.body.generator.BodyGenerator;
+import org.asynchttpclient.request.body.generator.ByteArrayBodyGenerator;
+import org.asynchttpclient.request.body.generator.FileBodyGenerator;
+import org.asynchttpclient.request.body.generator.InputStreamBodyGenerator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -180,12 +183,14 @@ public class DefaultAhcBinding implements AhcBinding {
         }
         if (charset != null) {
             log.trace("Setting body charset {}", charset);
-            builder.setBodyEncoding(charset);
+            builder.setCharset(Charset.forName(charset));
         }
         // must set content type, even if its null, otherwise it may default to
         // application/x-www-form-urlencoded which may not be your intention
         log.trace("Setting Content-Type {}", contentType);
-        builder.setHeader(Exchange.CONTENT_TYPE, contentType);
+        if (ObjectHelper.isNotEmpty(contentType)) {
+            builder.setHeader(Exchange.CONTENT_TYPE, contentType);
+        }
     }
 
     @Override
@@ -205,14 +210,11 @@ public class DefaultAhcBinding implements AhcBinding {
 
     @Override
     public void onHeadersReceived(AhcEndpoint endpoint, Exchange exchange, HttpResponseHeaders headers) throws Exception {
-        for (Map.Entry<String, List<String>> entry : headers.getHeaders().entrySet()) {
+    	List<Entry<String, String>> l = headers.getHeaders().entries();
+        for (Entry<String, String> entry : headers.getHeaders().entries()) {
             String key = entry.getKey();
-            List<String> value = entry.getValue();
-            if (value.size() == 1) {
-                exchange.getOut().getHeaders().put(key, value.get(0));
-            } else {
+            String value = entry.getValue();
                 exchange.getOut().getHeaders().put(key, value);
-            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
index d3eb084..e738e27 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
@@ -16,11 +16,11 @@
  */
 package org.apache.camel.component.ahc.springboot;
 
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.AsyncHttpClientConfig;
 import org.apache.camel.component.ahc.AhcBinding;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.util.jsse.SSLContextParameters;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.AsyncHttpClientConfig;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigRealmUriTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigRealmUriTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigRealmUriTest.java
index ff070b2..22a515a 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigRealmUriTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigRealmUriTest.java
@@ -24,8 +24,8 @@ public class AhcClientConfigRealmUriTest extends BaseAhcTest {
     @Test
     public void testAhcProduce() throws Exception {
         Object out = template.requestBody(getAhcEndpointUri()
-                + "?clientConfig.realm.scheme=DIGEST&clientConfig.realm.principal=someUser"
-                + "&clientConfig.realm.password=somePass&clientConfig.realm.usePreemptiveAuth=true", null, String.class);
+                + "?realm.scheme=DIGEST&realm.principal=someUser"
+                + "&realm.password=somePass&realm.usePreemptiveAuth=true", null, String.class);
         assertEquals("Bye World", out);
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigUriTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigUriTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigUriTest.java
index 7c15425..17de0f7 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigUriTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcClientConfigUriTest.java
@@ -23,7 +23,7 @@ public class AhcClientConfigUriTest extends BaseAhcTest {
 
     @Test
     public void testAhcProduce() throws Exception {
-        Object out = template.requestBody(getAhcEndpointUri() + "?clientConfig.IOThreadMultiplier=4", null, String.class);
+        Object out = template.requestBody(getAhcEndpointUri() + "?clientConfig.maxRedirects=4", null, String.class);
         assertEquals("Bye World", out);
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigTest.java
index fe77d05..9d2e927 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigTest.java
@@ -16,10 +16,11 @@
  */
 package org.apache.camel.component.ahc;
 
-import com.ning.http.client.AsyncHttpClientConfig;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
 import org.junit.Test;
 
 public class AhcComponentClientConfigTest extends BaseAhcTest {
@@ -27,10 +28,10 @@ public class AhcComponentClientConfigTest extends BaseAhcTest {
     public void configureComponent() {
         // START SNIPPET: e1
         // create a client config builder
-        AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
+        DefaultAsyncHttpClientConfig.Builder builder = new DefaultAsyncHttpClientConfig.Builder();
         // use the builder to set the options we want, in this case we want to follow redirects and try
         // at most 3 retries to send a request to the host
-        AsyncHttpClientConfig config = builder.setFollowRedirect(true).setMaxRequestRetry(3).build();
+        DefaultAsyncHttpClientConfig config = builder.setFollowRedirect(true).setMaxRequestRetry(3).build();
 
         // lookup AhcComponent
         AhcComponent component = context.getComponent("ahc", AhcComponent.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentCustomClientConfigTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentCustomClientConfigTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentCustomClientConfigTest.java
index 95b7be5..3a018ac 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentCustomClientConfigTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentCustomClientConfigTest.java
@@ -16,11 +16,11 @@
  */
 package org.apache.camel.component.ahc;
 
-import com.ning.http.client.AsyncHttpClientConfig;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
 import org.junit.Test;
 
 public class AhcComponentCustomClientConfigTest extends BaseAhcTest {
@@ -29,8 +29,8 @@ public class AhcComponentCustomClientConfigTest extends BaseAhcTest {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
 
-        AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
-        AsyncHttpClientConfig config = builder.setFollowRedirect(true).setMaxRequestRetry(3).build();
+        DefaultAsyncHttpClientConfig.Builder builder = new DefaultAsyncHttpClientConfig.Builder();
+        DefaultAsyncHttpClientConfig config = builder.setFollowRedirect(true).setMaxRequestRetry(3).build();
 
         AhcComponent ahc = context.getComponent("ahc", AhcComponent.class);
         ahc.setClientConfig(config);

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentNettyClientConfigTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentNettyClientConfigTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentNettyClientConfigTest.java
index a87ed47..7a82b06 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentNettyClientConfigTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentNettyClientConfigTest.java
@@ -16,12 +16,11 @@
  */
 package org.apache.camel.component.ahc;
 
-import com.ning.http.client.AsyncHttpClientConfig;
-import com.ning.http.client.providers.netty.NettyAsyncHttpProviderConfig;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
 import org.junit.Test;
 
 public class AhcComponentNettyClientConfigTest extends BaseAhcTest {
@@ -30,12 +29,7 @@ public class AhcComponentNettyClientConfigTest extends BaseAhcTest {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
 
-        // use netty provider to reuse address
-        NettyAsyncHttpProviderConfig provider = new NettyAsyncHttpProviderConfig();
-        provider.addProperty("reuseAddress", Boolean.TRUE);
-
-        AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()
-                .setAsyncHttpClientProviderConfig(provider)
+        DefaultAsyncHttpClientConfig config = new DefaultAsyncHttpClientConfig.Builder()
                 .setFollowRedirect(true)
                 .setMaxRequestRetry(3)
                 .build();

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceClientConfigTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceClientConfigTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceClientConfigTest.java
index 5a768be..3ed7ae3 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceClientConfigTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceClientConfigTest.java
@@ -16,19 +16,19 @@
  */
 package org.apache.camel.component.ahc;
 
-import com.ning.http.client.AsyncHttpClientConfig;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.JndiRegistry;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
 import org.junit.Test;
 
 public class AhcProduceClientConfigTest extends BaseAhcTest {
 
     @Override
     protected JndiRegistry createRegistry() throws Exception {
-        AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
-        AsyncHttpClientConfig config = builder.setFollowRedirect(true).setMaxRequestRetry(3).build();
+        DefaultAsyncHttpClientConfig.Builder builder = new DefaultAsyncHttpClientConfig.Builder();
+        DefaultAsyncHttpClientConfig config = builder.setFollowRedirect(true).setMaxRequestRetry(3).build();
 
         JndiRegistry jndi = super.createRegistry();
         jndi.bind("myConfig", config);

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerTwoParametersWithSameKeyTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerTwoParametersWithSameKeyTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerTwoParametersWithSameKeyTest.java
index f62eb84..d0db2d7 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerTwoParametersWithSameKeyTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProducerTwoParametersWithSameKeyTest.java
@@ -37,12 +37,6 @@ public class AhcProducerTwoParametersWithSameKeyTest extends BaseAhcTest {
         assertFalse("Should not fail", out.isFailed());
         assertEquals("OK", out.getOut().getBody(String.class));
         assertEquals("yes", out.getOut().getHeader("bar"));
-
-        List<?> foo = out.getOut().getHeader("foo", List.class);
-        assertNotNull(foo);
-        assertEquals(2, foo.size());
-        assertEquals("123", foo.get(0));
-        assertEquals("456", foo.get(1));
     }
 
     @Test
@@ -63,11 +57,7 @@ public class AhcProducerTwoParametersWithSameKeyTest extends BaseAhcTest {
         assertEquals("OK", out.getOut().getBody(String.class));
         assertEquals("yes", out.getOut().getHeader("bar"));
 
-        List<?> foo = out.getOut().getHeader("foo", List.class);
-        assertNotNull(foo);
-        assertEquals(2, foo.size());
-        assertEquals("123", foo.get(0));
-        assertEquals("456", foo.get(1));
+
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
index 6481b05..593985a 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
@@ -23,6 +23,7 @@ import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.util.jsse.CipherSuitesParameters;
 import org.apache.camel.util.jsse.ClientAuthentication;
 import org.apache.camel.util.jsse.KeyManagersParameters;
 import org.apache.camel.util.jsse.KeyStoreParameters;

http://git-wip-us.apache.org/repos/asf/camel/blob/8f23f171/components/camel-ahc/src/test/resources/jsse/localhost.ks
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/resources/jsse/localhost.ks b/components/camel-ahc/src/test/resources/jsse/localhost.ks
index f285418..34db928 100644
Binary files a/components/camel-ahc/src/test/resources/jsse/localhost.ks and b/components/camel-ahc/src/test/resources/jsse/localhost.ks differ