From f458fea5ad1158c6739cc5c5ccbcca6f550e4635 Mon Sep 17 00:00:00 2001 From: Arturo Bernal Date: Fri, 18 Sep 2026 10:24:17 +0200 Subject: [PATCH] HTTPCLIENT-2434 Deprecate idle connection eviction Recommend connection keep-alive management and expired connection eviction instead. --- .../hc/client5/http/impl/async/H2AsyncClientBuilder.java | 4 ++++ .../hc/client5/http/impl/async/HttpAsyncClientBuilder.java | 4 ++++ .../hc/client5/http/impl/classic/HttpClientBuilder.java | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/H2AsyncClientBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/H2AsyncClientBuilder.java index a2b3f476f6..c439bc89c8 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/H2AsyncClientBuilder.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/H2AsyncClientBuilder.java @@ -734,7 +734,11 @@ public final H2AsyncClientBuilder disableAuthCaching() { * get closed and evicted from the pool. * * @return this instance. + * @deprecated Configure connection keep-alive settings appropriately and use + * {@link #evictExpiredConnections()} instead. + * @see RequestConfig#getConnectionKeepAlive() */ + @Deprecated public final H2AsyncClientBuilder evictIdleConnections(final TimeValue maxIdleTime) { this.evictIdleConnections = true; this.maxIdleTime = maxIdleTime; diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java index d010ac8617..026e2da288 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java @@ -857,7 +857,11 @@ public final HttpAsyncClientBuilder evictExpiredConnections() { * get closed and evicted from the pool. * * @return this instance. + * @deprecated Configure connection keep-alive settings appropriately and use + * {@link #evictExpiredConnections()} instead. + * @see RequestConfig#getConnectionKeepAlive() */ + @Deprecated public final HttpAsyncClientBuilder evictIdleConnections(final TimeValue maxIdleTime) { this.evictIdleConnections = true; this.maxIdleTime = Args.notNull(maxIdleTime, "Max idle time"); diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.java index 6639349323..d2d70ed7d4 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.java @@ -765,7 +765,11 @@ public final HttpClientBuilder evictExpiredConnections() { * * @return this instance. * @since 4.4 + * @deprecated Configure connection keep-alive settings appropriately and use + * {@link #evictExpiredConnections()} instead. + * @see RequestConfig#getConnectionKeepAlive() */ + @Deprecated public final HttpClientBuilder evictIdleConnections(final TimeValue maxIdleTime) { this.evictIdleConnections = true; this.maxIdleTime = Args.notNull(maxIdleTime, "Max idle time");