Skip to content

Commit a0735eb

Browse files
committed
Migrate remaining usage of httpclient API
This commit migrates our remaining usage of the httpclient 4.x to use instead httpclient5, now that the 4.x support has been removed in `RestTemplate`. Closes gh-32461
1 parent cc169e7 commit a0735eb

File tree

12 files changed

+116
-121
lines changed

12 files changed

+116
-121
lines changed

spring-boot-project/spring-boot-devtools/src/intTest/java/org/springframework/boot/devtools/tests/DevToolsIntegrationTests.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
package org.springframework.boot.devtools.tests;
1818

1919
import java.io.File;
20+
import java.util.concurrent.TimeUnit;
2021

21-
import org.apache.http.impl.client.HttpClients;
22-
import org.apache.http.impl.client.StandardHttpRequestRetryHandler;
22+
import org.apache.hc.client5.http.impl.DefaultHttpRequestRetryStrategy;
23+
import org.apache.hc.client5.http.impl.classic.HttpClients;
24+
import org.apache.hc.core5.util.TimeValue;
2325
import org.junit.jupiter.params.ParameterizedTest;
2426
import org.junit.jupiter.params.provider.MethodSource;
2527

@@ -37,9 +39,10 @@
3739
*/
3840
class DevToolsIntegrationTests extends AbstractDevToolsIntegrationTests {
3941

40-
private final TestRestTemplate template = new TestRestTemplate(
41-
new RestTemplateBuilder().requestFactory(() -> new HttpComponentsClientHttpRequestFactory(
42-
HttpClients.custom().setRetryHandler(new StandardHttpRequestRetryHandler(10, false)).build())));
42+
private final TestRestTemplate template = new TestRestTemplate(new RestTemplateBuilder()
43+
.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(HttpClients.custom()
44+
.setRetryStrategy(new DefaultHttpRequestRetryStrategy(10, TimeValue.of(1, TimeUnit.SECONDS)))
45+
.build())));
4346

4447
@ParameterizedTest(name = "{0}")
4548
@MethodSource("parameters")

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateCustomizer.java

+9-10
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@
1616

1717
package org.springframework.boot.docs.io.restclient.resttemplate.customization;
1818

19-
import org.apache.http.HttpException;
20-
import org.apache.http.HttpHost;
21-
import org.apache.http.HttpRequest;
22-
import org.apache.http.client.HttpClient;
23-
import org.apache.http.conn.routing.HttpRoutePlanner;
24-
import org.apache.http.impl.client.HttpClientBuilder;
25-
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
26-
import org.apache.http.protocol.HttpContext;
19+
import org.apache.hc.client5.http.classic.HttpClient;
20+
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
21+
import org.apache.hc.client5.http.impl.routing.DefaultProxyRoutePlanner;
22+
import org.apache.hc.client5.http.routing.HttpRoutePlanner;
23+
import org.apache.hc.core5.http.HttpException;
24+
import org.apache.hc.core5.http.HttpHost;
25+
import org.apache.hc.core5.http.protocol.HttpContext;
2726

2827
import org.springframework.boot.web.client.RestTemplateCustomizer;
2928
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
@@ -45,11 +44,11 @@ static class CustomRoutePlanner extends DefaultProxyRoutePlanner {
4544
}
4645

4746
@Override
48-
public HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException {
47+
protected HttpHost determineProxy(HttpHost target, HttpContext context) throws HttpException {
4948
if (target.getHostName().equals("192.168.0.5")) {
5049
return null;
5150
}
52-
return super.determineProxy(target, request, context);
51+
return super.determineProxy(target, context);
5352
}
5453

5554
}

spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateCustomizer.kt

+9-10
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@
1616

1717
package org.springframework.boot.docs.io.restclient.resttemplate.customization
1818

19-
import org.apache.http.HttpException
20-
import org.apache.http.HttpHost
21-
import org.apache.http.HttpRequest
22-
import org.apache.http.client.HttpClient
23-
import org.apache.http.conn.routing.HttpRoutePlanner
24-
import org.apache.http.impl.client.HttpClientBuilder
25-
import org.apache.http.impl.conn.DefaultProxyRoutePlanner
26-
import org.apache.http.protocol.HttpContext
19+
import org.apache.hc.client5.http.classic.HttpClient
20+
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder
21+
import org.apache.hc.client5.http.impl.routing.DefaultProxyRoutePlanner
22+
import org.apache.hc.client5.http.routing.HttpRoutePlanner
23+
import org.apache.hc.core5.http.HttpException
24+
import org.apache.hc.core5.http.HttpHost
25+
import org.apache.hc.core5.http.protocol.HttpContext
2726
import org.springframework.boot.web.client.RestTemplateCustomizer
2827
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory
2928
import org.springframework.web.client.RestTemplate
@@ -39,11 +38,11 @@ class MyRestTemplateCustomizer : RestTemplateCustomizer {
3938
internal class CustomRoutePlanner(proxy: HttpHost?) : DefaultProxyRoutePlanner(proxy) {
4039

4140
@Throws(HttpException::class)
42-
public override fun determineProxy(target: HttpHost, request: HttpRequest, context: HttpContext): HttpHost? {
41+
public override fun determineProxy(target: HttpHost, context: HttpContext): HttpHost? {
4342
if (target.hostName == "192.168.0.5") {
4443
return null
4544
}
46-
return super.determineProxy(target, request, context)
45+
return super.determineProxy(target, context)
4746
}
4847

4948
}

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactoryTests.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@
3333
import jakarta.servlet.ServletContextEvent;
3434
import jakarta.servlet.ServletContextListener;
3535
import jakarta.servlet.ServletRegistration.Dynamic;
36-
import org.apache.http.Header;
37-
import org.apache.http.HttpResponse;
38-
import org.apache.http.client.HttpClient;
39-
import org.apache.http.conn.HttpHostConnectException;
40-
import org.apache.http.impl.client.HttpClients;
36+
import org.apache.hc.client5.http.HttpHostConnectException;
37+
import org.apache.hc.client5.http.classic.HttpClient;
38+
import org.apache.hc.client5.http.impl.classic.HttpClients;
39+
import org.apache.hc.core5.http.Header;
40+
import org.apache.hc.core5.http.HttpResponse;
4141
import org.apache.jasper.servlet.JspServlet;
4242
import org.awaitility.Awaitility;
4343
import org.eclipse.jetty.server.Connector;
@@ -319,7 +319,7 @@ void whenServerIsShuttingDownGracefullyThenResponseToRequestOnIdleConnectionWill
319319
blockingServlet.admitOne();
320320
Object response = request.get();
321321
assertThat(response).isInstanceOf(HttpResponse.class);
322-
assertThat(((HttpResponse) response).getStatusLine().getStatusCode()).isEqualTo(200);
322+
assertThat(((HttpResponse) response).getCode()).isEqualTo(200);
323323
assertThat(((HttpResponse) response).getFirstHeader("Connection")).isNull();
324324
this.webServer.shutDownGracefully((result) -> {
325325
});
@@ -328,7 +328,7 @@ void whenServerIsShuttingDownGracefullyThenResponseToRequestOnIdleConnectionWill
328328
blockingServlet.admitOne();
329329
response = request.get();
330330
assertThat(response).isInstanceOf(HttpResponse.class);
331-
assertThat(((HttpResponse) response).getStatusLine().getStatusCode()).isEqualTo(200);
331+
assertThat(((HttpResponse) response).getCode()).isEqualTo(200);
332332
assertThat(((HttpResponse) response).getFirstHeader("Connection")).isNotNull().extracting(Header::getValue)
333333
.isEqualTo("close");
334334
this.webServer.stop();

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@
5757
import org.apache.catalina.valves.RemoteIpValve;
5858
import org.apache.coyote.ProtocolHandler;
5959
import org.apache.coyote.http11.AbstractHttp11Protocol;
60-
import org.apache.http.HttpResponse;
61-
import org.apache.http.NoHttpResponseException;
62-
import org.apache.http.client.HttpClient;
63-
import org.apache.http.conn.HttpHostConnectException;
64-
import org.apache.http.impl.client.HttpClients;
60+
import org.apache.hc.client5.http.HttpHostConnectException;
61+
import org.apache.hc.client5.http.classic.HttpClient;
62+
import org.apache.hc.client5.http.impl.classic.HttpClients;
63+
import org.apache.hc.core5.http.HttpResponse;
64+
import org.apache.hc.core5.http.NoHttpResponseException;
6565
import org.apache.jasper.servlet.JspServlet;
6666
import org.apache.tomcat.JarScanFilter;
6767
import org.apache.tomcat.JarScanType;

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServerFactoryTests.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import io.undertow.servlet.api.DeploymentInfo;
3737
import io.undertow.servlet.api.ServletContainer;
3838
import jakarta.servlet.ServletRegistration.Dynamic;
39-
import org.apache.http.HttpResponse;
39+
import org.apache.hc.core5.http.HttpResponse;
4040
import org.apache.jasper.servlet.JspServlet;
4141
import org.awaitility.Awaitility;
4242
import org.junit.jupiter.api.AfterEach;
@@ -207,8 +207,7 @@ void whenServerIsShuttingDownGracefullyThenRequestsAreRejectedWithServiceUnavail
207207
assertThat(request.get()).isInstanceOf(HttpResponse.class);
208208
Object rejectedResult = initiateGetRequest(port, "/").get();
209209
assertThat(rejectedResult).isInstanceOf(HttpResponse.class);
210-
assertThat(((HttpResponse) rejectedResult).getStatusLine().getStatusCode())
211-
.isEqualTo(HttpStatus.SERVICE_UNAVAILABLE.value());
210+
assertThat(((HttpResponse) rejectedResult).getCode()).isEqualTo(HttpStatus.SERVICE_UNAVAILABLE.value());
212211
this.webServer.stop();
213212
}
214213

0 commit comments

Comments
 (0)