diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java index 65e0b19144e..cc7ebcc776c 100644 --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java @@ -38,7 +38,6 @@ import org.apache.hc.client5.http.impl.classic.HttpClients; import org.apache.hc.client5.http.io.HttpClientConnectionManager; import org.apache.hc.client5.http.protocol.HttpClientContext; import org.apache.hc.core5.http.ClassicHttpRequest; -import org.apache.hc.core5.http.io.SocketConfig; import org.apache.hc.core5.http.protocol.HttpContext; import org.jspecify.annotations.Nullable; @@ -68,8 +67,6 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest private @Nullable BiFunction httpContextFactory; - private long connectTimeout = -1; - private long connectionRequestTimeout = -1; private long readTimeout = -1; @@ -110,44 +107,6 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest return this.httpClient; } - /** - * Set the connection timeout for the underlying {@link RequestConfig}. - * A timeout value of 0 specifies an infinite timeout. - *

Additional properties can be configured by specifying a - * {@link RequestConfig} instance on a custom {@link HttpClient}. - *

This options does not affect connection timeouts for SSL - * handshakes or CONNECT requests; for that, it is required to - * use the {@link SocketConfig} on the - * {@link HttpClient} itself. - * @param connectTimeout the timeout value in milliseconds - * @see RequestConfig#getConnectTimeout() - * @see SocketConfig#getSoTimeout - */ - public void setConnectTimeout(int connectTimeout) { - Assert.isTrue(connectTimeout >= 0, "Timeout must be a non-negative value"); - this.connectTimeout = connectTimeout; - } - - /** - * Set the connection timeout for the underlying {@link RequestConfig}. - * A timeout value of 0 specifies an infinite timeout. - *

Additional properties can be configured by specifying a - * {@link RequestConfig} instance on a custom {@link HttpClient}. - *

This options does not affect connection timeouts for SSL - * handshakes or CONNECT requests; for that, it is required to - * use the {@link SocketConfig} on the - * {@link HttpClient} itself. - * @param connectTimeout the timeout as a {@code Duration}. - * @since 6.1 - * @see RequestConfig#getConnectTimeout() - * @see SocketConfig#getSoTimeout - */ - public void setConnectTimeout(Duration connectTimeout) { - Assert.notNull(connectTimeout, "ConnectTimeout must not be null"); - Assert.isTrue(!connectTimeout.isNegative(), "Timeout must be a non-negative value"); - this.connectTimeout = connectTimeout.toMillis(); - } - /** * Set the timeout in milliseconds used when requesting a connection * from the connection manager using the underlying {@link RequestConfig}. @@ -295,16 +254,12 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest * @return the merged request config * @since 4.2 */ - @SuppressWarnings("deprecation") // setConnectTimeout protected RequestConfig mergeRequestConfig(RequestConfig clientConfig) { - if (this.connectTimeout == -1 && this.connectionRequestTimeout == -1 && this.readTimeout == -1) { // nothing to merge + if (this.connectionRequestTimeout == -1 && this.readTimeout == -1) { // nothing to merge return clientConfig; } RequestConfig.Builder builder = RequestConfig.copy(clientConfig); - if (this.connectTimeout >= 0) { - builder.setConnectTimeout(this.connectTimeout, TimeUnit.MILLISECONDS); - } if (this.connectionRequestTimeout >= 0) { builder.setConnectionRequestTimeout(this.connectionRequestTimeout, TimeUnit.MILLISECONDS); } diff --git a/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java index 95ca49ed43a..f5a041ec1fa 100644 --- a/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java @@ -61,11 +61,9 @@ class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpRequestFac } @Test - @SuppressWarnings("deprecation") void assertCustomConfig() throws Exception { HttpClient httpClient = HttpClientBuilder.create().build(); HttpComponentsClientHttpRequestFactory hrf = new HttpComponentsClientHttpRequestFactory(httpClient); - hrf.setConnectTimeout(1234); hrf.setConnectionRequestTimeout(4321); hrf.setReadTimeout(5678); @@ -76,7 +74,6 @@ class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpRequestFac assertThat(config).as("Request config should be set").isNotNull(); assertThat(config).as("Wrong request config type " + config.getClass().getName()).isInstanceOf(RequestConfig.class); RequestConfig requestConfig = (RequestConfig) config; - assertThat(requestConfig.getConnectTimeout()).as("Wrong custom connection timeout").isEqualTo(Timeout.of(1234, MILLISECONDS)); assertThat(requestConfig.getConnectionRequestTimeout()).as("Wrong custom connection request timeout").isEqualTo(Timeout.of(4321, MILLISECONDS)); assertThat(requestConfig.getResponseTimeout()).as("Wrong custom response timeout").isEqualTo(Timeout.of(5678, MILLISECONDS)); } @@ -103,10 +100,8 @@ class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpRequestFac } @Test - @SuppressWarnings("deprecation") void localSettingsOverrideClientDefaultSettings() throws Exception { RequestConfig defaultConfig = RequestConfig.custom() - .setConnectTimeout(1234, MILLISECONDS) .setConnectionRequestTimeout(6789, MILLISECONDS) .setResponseTimeout(4321, MILLISECONDS) .build(); @@ -116,11 +111,9 @@ class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpRequestFac given(configurable.getConfig()).willReturn(defaultConfig); HttpComponentsClientHttpRequestFactory hrf = new HttpComponentsClientHttpRequestFactory(client); - hrf.setConnectTimeout(5000); hrf.setReadTimeout(Duration.ofMillis(4000)); RequestConfig requestConfig = retrieveRequestConfig(hrf); - assertThat(requestConfig.getConnectTimeout()).isEqualTo(Timeout.of(5000, MILLISECONDS)); assertThat(requestConfig.getConnectionRequestTimeout()).isEqualTo(Timeout.of(6789, MILLISECONDS)); assertThat(requestConfig.getResponseTimeout()).isEqualTo(Timeout.of(4000, MILLISECONDS)); }