You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2019/12/07 10:22:09 UTC
svn commit: r1870971 -
/httpcomponents/httpasyncclient/branches/4.1.x/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpAsyncClientBuilder.java
Author: olegk
Date: Sat Dec 7 10:22:09 2019
New Revision: 1870971
URL: http://svn.apache.org/viewvc?rev=1870971&view=rev
Log:
Added connection time to live parameter to HttpAsyncClientBuilder
Modified:
httpcomponents/httpasyncclient/branches/4.1.x/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpAsyncClientBuilder.java
Modified: httpcomponents/httpasyncclient/branches/4.1.x/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpAsyncClientBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/branches/4.1.x/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpAsyncClientBuilder.java?rev=1870971&r1=1870970&r2=1870971&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/branches/4.1.x/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpAsyncClientBuilder.java (original)
+++ httpcomponents/httpasyncclient/branches/4.1.x/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/HttpAsyncClientBuilder.java Sat Dec 7 10:22:09 2019
@@ -32,6 +32,7 @@ import java.util.Collection;
import java.util.LinkedList;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
@@ -85,11 +86,13 @@ import org.apache.http.impl.client.Targe
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
import org.apache.http.impl.conn.DefaultRoutePlanner;
import org.apache.http.impl.conn.DefaultSchemePortResolver;
+import org.apache.http.impl.conn.SystemDefaultDnsResolver;
import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
import org.apache.http.impl.cookie.DefaultCookieSpecProvider;
import org.apache.http.impl.cookie.IgnoreSpecProvider;
import org.apache.http.impl.cookie.NetscapeDraftSpecProvider;
import org.apache.http.impl.cookie.RFC6265CookieSpecProvider;
+import org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory;
import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
import org.apache.http.impl.nio.reactor.IOReactorConfig;
import org.apache.http.nio.NHttpClientEventHandler;
@@ -187,6 +190,8 @@ public class HttpAsyncClientBuilder {
private int maxConnTotal = 0;
private int maxConnPerRoute = 0;
+ private long connTimeToLive = -1;
+ private TimeUnit connTimeToLiveTimeUnit = TimeUnit.MILLISECONDS;
public static HttpAsyncClientBuilder create() {
return new HttpAsyncClientBuilder();
@@ -270,6 +275,20 @@ public class HttpAsyncClientBuilder {
}
/**
+ * Sets maximum time to live for persistent connections
+ * <p>
+ * Please note this value can be overridden by the {@link #setConnectionManager(
+ * org.apache.http.nio.conn.NHttpClientConnectionManager)} method.
+ *
+ * @since 4.1
+ */
+ public final HttpAsyncClientBuilder setConnectionTimeToLive(final long connTimeToLive, final TimeUnit connTimeToLiveTimeUnit) {
+ this.connTimeToLive = connTimeToLive;
+ this.connTimeToLiveTimeUnit = connTimeToLiveTimeUnit;
+ return this;
+ }
+
+ /**
* Assigns {@link ConnectionReuseStrategy} instance.
*/
public final HttpAsyncClientBuilder setConnectionReuseStrategy(
@@ -668,10 +687,15 @@ public class HttpAsyncClientBuilder {
defaultIOReactorConfig != null ? defaultIOReactorConfig : IOReactorConfig.DEFAULT, threadFactory);
final PoolingNHttpClientConnectionManager poolingmgr = new PoolingNHttpClientConnectionManager(
ioReactor,
+ ManagedNHttpClientConnectionFactory.INSTANCE,
RegistryBuilder.<SchemeIOSessionStrategy>create()
.register("http", NoopIOSessionStrategy.INSTANCE)
.register("https", sslStrategy)
- .build());
+ .build(),
+ DefaultSchemePortResolver.INSTANCE,
+ SystemDefaultDnsResolver.INSTANCE,
+ connTimeToLive,
+ connTimeToLiveTimeUnit);
if (defaultConnectionConfig != null) {
poolingmgr.setDefaultConnectionConfig(defaultConnectionConfig);
}