From 9e1758a3e3c8fe9994712710546afa2513822e1e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 6 May 2025 17:51:50 +0100 Subject: [PATCH] Create spring-boot-http-client module See gh-46118 --- settings.gradle | 1 + .../build.gradle | 1 + ...tpClientObservationsAutoConfiguration.java | 9 +- .../zipkin/ZipkinAutoConfiguration.java | 3 +- ...FoundryActuatorAutoConfigurationTests.java | 2 +- ...oundryHealthEndpointWebExtensionTests.java | 2 +- ...dFoundryInfoEndpointWebExtensionTests.java | 2 +- .../metrics/test/MetricsIntegrationTests.java | 2 +- ...stClientObservationConfigurationTests.java | 2 +- ...ationConfigurationWithoutMetricsTests.java | 2 +- ...TemplateObservationConfigurationTests.java | 2 +- ...ationConfigurationWithoutMetricsTests.java | 2 +- .../client/AbstractHttpClientProperties.java | 102 ------------------ ...AbstractClientHttpConnectorProperties.java | 73 ++++++++++++- .../client/reactive/ClientHttpConnectors.java | 2 +- .../HttpReactiveClientProperties.java | 2 +- ...tPropertiesHttpServiceGroupConfigurer.java | 3 +- ...ot.autoconfigure.AutoConfiguration.imports | 4 - ...tpServiceClientAutoConfigurationTests.java | 6 +- .../spring-boot-dependencies/build.gradle | 1 + .../spring-boot-docs/build.gradle | 3 + .../reference/pages/io/rest-client.adoc | 4 +- .../restclient/restclient/ssl/MyService.java | 2 +- .../MyRestTemplateBuilderConfiguration.java | 2 +- .../io/restclient/restclient/ssl/MyService.kt | 2 +- .../MyRestTemplateBuilderConfiguration.kt | 2 +- .../spring-boot-http-client/build.gradle | 44 ++++++++ .../AbstractHttpRequestFactoryProperties.java | 76 ++++++++++++- .../ClientHttpRequestFactories.java | 6 +- ...ntHttpRequestFactoryBuilderCustomizer.java | 4 +- .../HttpClientAutoConfiguration.java | 4 +- .../autoconfigure}/HttpClientProperties.java | 2 +- .../NotReactiveWebApplicationCondition.java | 2 +- .../client/autoconfigure}/package-info.java | 2 +- .../AutoConfiguredRestClientSsl.java | 2 +- ...MessageConvertersRestClientCustomizer.java | 4 +- .../NotReactiveWebApplicationCondition.java | 2 +- ...irtualThreadsExecutorEnabledCondition.java | 2 +- .../RestClientAutoConfiguration.java | 6 +- .../RestClientBuilderConfigurer.java | 4 +- .../rest/autoconfigure}/RestClientSsl.java | 4 +- .../RestTemplateAutoConfiguration.java | 6 +- .../RestTemplateBuilderConfigurer.java | 4 +- .../rest/autoconfigure}/package-info.java | 2 +- .../AbstractHttpClientServiceProperties.java | 4 +- .../HttpClientServiceProperties.java | 2 +- .../HttpServiceClientAutoConfiguration.java | 8 +- .../NotReactiveWebApplicationCondition.java | 2 +- ...tCustomizerHttpServiceGroupConfigurer.java | 2 +- ...tPropertiesHttpServiceGroupConfigurer.java | 6 +- .../service/autoconfigure}/package-info.java | 2 +- ...itional-spring-configuration-metadata.json | 4 + ...ot.autoconfigure.AutoConfiguration.imports | 3 + .../ClientHttpRequestFactoriesTests.java | 4 +- .../HttpClientAutoConfigurationTests.java | 2 +- .../HttpClientPropertiesTests.java | 4 +- .../AutoConfiguredRestClientSslTests.java | 2 +- ...geConvertersRestClientCustomizerTests.java | 2 +- .../RestClientAutoConfigurationTests.java | 4 +- .../RestClientBuilderConfigurerTests.java | 2 +- .../RestTemplateAutoConfigurationTests.java | 4 +- .../HttpClientServicePropertiesTests.java | 6 +- ...tpServiceClientAutoConfigurationTests.java | 6 +- .../spring-boot-starter-test/build.gradle | 1 + .../build.gradle | 1 + ...ebClientRestTemplateAutoConfiguration.java | 3 +- ....web.client.AutoConfigureWebClient.imports | 8 +- .../spring-boot-sni-tests/build.gradle | 1 + .../spring-boot-sni-client-app/build.gradle | 1 + .../boot/sni/client/SniClientApplication.java | 2 +- 70 files changed, 295 insertions(+), 205 deletions(-) delete mode 100644 spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpClientProperties.java create mode 100644 spring-boot-project/spring-boot-http-client/build.gradle rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/AbstractHttpRequestFactoryProperties.java (61%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/ClientHttpRequestFactories.java (93%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/ClientHttpRequestFactoryBuilderCustomizer.java (93%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/HttpClientAutoConfiguration.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/HttpClientProperties.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/NotReactiveWebApplicationCondition.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure}/package-info.java (91%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/AutoConfiguredRestClientSsl.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/HttpMessageConvertersRestClientCustomizer.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/NotReactiveWebApplicationCondition.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/RestClientAutoConfiguration.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/RestClientBuilderConfigurer.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/RestClientSsl.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/RestTemplateAutoConfiguration.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/RestTemplateBuilderConfigurer.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure}/package-info.java (91%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/AbstractHttpClientServiceProperties.java (92%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/HttpClientServiceProperties.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/HttpServiceClientAutoConfiguration.java (92%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/NotReactiveWebApplicationCondition.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/RestClientCustomizerHttpServiceGroupConfigurer.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/RestClientPropertiesHttpServiceGroupConfigurer.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure}/package-info.java (91%) create mode 100644 spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json create mode 100644 spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure}/ClientHttpRequestFactoriesTests.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure}/HttpClientAutoConfigurationTests.java (99%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure}/HttpClientPropertiesTests.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure}/AutoConfiguredRestClientSslTests.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure}/HttpMessageConvertersRestClientCustomizerTests.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure}/RestClientAutoConfigurationTests.java (99%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure}/RestClientBuilderConfigurerTests.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure}/RestTemplateAutoConfigurationTests.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure}/HttpClientServicePropertiesTests.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure}/HttpServiceClientAutoConfigurationTests.java (97%) diff --git a/settings.gradle b/settings.gradle index b4d7bcfc551..1fee0f42f13 100644 --- a/settings.gradle +++ b/settings.gradle @@ -93,6 +93,7 @@ include "spring-boot-project:spring-boot-h2console" include "spring-boot-project:spring-boot-hateoas" include "spring-boot-project:spring-boot-hazelcast" include "spring-boot-project:spring-boot-http" +include "spring-boot-project:spring-boot-http-client" include "spring-boot-project:spring-boot-http-codec" include "spring-boot-project:spring-boot-integration" include "spring-boot-project:spring-boot-integration-tests" diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle index 0d2f05ae751..4579c2d490b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -57,6 +57,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-flyway")) optional(project(":spring-boot-project:spring-boot-hazelcast")) optional(project(":spring-boot-project:spring-boot-http")) + optional(project(":spring-boot-project:spring-boot-http-client")) optional(project(":spring-boot-project:spring-boot-http-codec")) optional(project(":spring-boot-project:spring-boot-integration")) optional(project(":spring-boot-project:spring-boot-jackson")) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java index e88de01e032..08b3452492f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java @@ -31,8 +31,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -52,8 +50,11 @@ import org.springframework.core.annotation.Order; * @author Moritz Halbritter * @since 3.0.0 */ -@AutoConfiguration(after = { ObservationAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class, - RestTemplateAutoConfiguration.class, WebClientAutoConfiguration.class, RestClientAutoConfiguration.class }) +@AutoConfiguration( + after = { ObservationAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class, + WebClientAutoConfiguration.class }, + afterName = { "org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration", + "org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration" }) @ConditionalOnClass(Observation.class) @ConditionalOnBean(ObservationRegistry.class) @Import({ RestTemplateObservationConfiguration.class, WebClientObservationConfiguration.class, diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java index b9adc9ce53b..eaefe5b92dd 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java @@ -25,7 +25,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; @@ -39,7 +38,7 @@ import org.springframework.context.annotation.Import; * @author Moritz Halbritter * @since 3.0.0 */ -@AutoConfiguration(after = RestTemplateAutoConfiguration.class) +@AutoConfiguration(afterName = "org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration") @ConditionalOnClass(Encoding.class) @Import({ SenderConfiguration.class, BraveConfiguration.class, OpenTelemetryConfiguration.class }) @EnableConfigurationProperties(ZipkinProperties.class) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java index 14eedb4f406..7a5b66a21d0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java @@ -40,8 +40,8 @@ import org.springframework.boot.actuate.endpoint.web.WebOperation; import org.springframework.boot.actuate.endpoint.web.WebOperationRequestPredicate; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java index 06e632dd76b..a6a2ab7036c 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java @@ -31,8 +31,8 @@ import org.springframework.boot.actuate.health.HealthComponent; import org.springframework.boot.actuate.health.HealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java index 3f1b1ccc42a..febf7899d11 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java @@ -30,8 +30,8 @@ import org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagem import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java index 8cc25b4f91c..ae58c299131 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java @@ -47,8 +47,8 @@ import org.springframework.boot.actuate.autoconfigure.observation.web.client.Htt import org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java index 98d99b3e139..2362473d351 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java @@ -27,7 +27,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; import org.springframework.boot.actuate.metrics.web.client.ObservationRestClientCustomizer; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.system.CapturedOutput; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationWithoutMetricsTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationWithoutMetricsTests.java index bb5b20845b8..49ada8a0d2d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationWithoutMetricsTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationWithoutMetricsTests.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.system.OutputCaptureExtension; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java index 752147c5479..9cc49a117d2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java @@ -27,7 +27,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; import org.springframework.boot.actuate.metrics.web.client.ObservationRestTemplateCustomizer; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.system.CapturedOutput; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationWithoutMetricsTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationWithoutMetricsTests.java index fff165f0c6d..293cc120a66 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationWithoutMetricsTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationWithoutMetricsTests.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.system.OutputCaptureExtension; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpClientProperties.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpClientProperties.java deleted file mode 100644 index d0ba8bae2c8..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpClientProperties.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.http.client; - -import java.time.Duration; - -import org.springframework.boot.http.client.HttpClientSettings; -import org.springframework.boot.http.client.HttpRedirects; - -/** - * Abstract base class for properties that directly or indirectly make use of a blocking - * or reactive HTTP client. - * - * @author Phillip Webb - * @since 3.5.0 - * @see HttpClientSettings - */ -public abstract class AbstractHttpClientProperties { - - /** - * Handling for HTTP redirects. - */ - private HttpRedirects redirects; - - /** - * Default connect timeout for a client HTTP request. - */ - private Duration connectTimeout; - - /** - * Default read timeout for a client HTTP request. - */ - private Duration readTimeout; - - /** - * Default SSL configuration for a client HTTP request. - */ - private final Ssl ssl = new Ssl(); - - public HttpRedirects getRedirects() { - return this.redirects; - } - - public void setRedirects(HttpRedirects redirects) { - this.redirects = redirects; - } - - public Duration getConnectTimeout() { - return this.connectTimeout; - } - - public void setConnectTimeout(Duration connectTimeout) { - this.connectTimeout = connectTimeout; - } - - public Duration getReadTimeout() { - return this.readTimeout; - } - - public void setReadTimeout(Duration readTimeout) { - this.readTimeout = readTimeout; - } - - public Ssl getSsl() { - return this.ssl; - } - - /** - * SSL configuration. - */ - public static class Ssl { - - /** - * SSL bundle to use. - */ - private String bundle; - - public String getBundle() { - return this.bundle; - } - - public void setBundle(String bundle) { - this.bundle = bundle; - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java index 3cad344c990..f546402bd7a 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java @@ -16,10 +16,11 @@ package org.springframework.boot.autoconfigure.http.client.reactive; +import java.time.Duration; import java.util.function.Supplier; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProperties; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.http.client.HttpRedirects; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; import org.springframework.http.client.reactive.ClientHttpConnector; @@ -32,13 +33,61 @@ import org.springframework.http.client.reactive.ClientHttpConnector; * @since 3.5.0 * @see ClientHttpConnectorSettings */ -public abstract class AbstractClientHttpConnectorProperties extends AbstractHttpClientProperties { +public abstract class AbstractClientHttpConnectorProperties { + + /** + * Handling for HTTP redirects. + */ + private HttpRedirects redirects; + + /** + * Default connect timeout for a client HTTP request. + */ + private Duration connectTimeout; + + /** + * Default read timeout for a client HTTP request. + */ + private Duration readTimeout; + + /** + * Default SSL configuration for a client HTTP request. + */ + private final Ssl ssl = new Ssl(); /** * Default connector used for a client HTTP request. */ private Connector connector; + public HttpRedirects getRedirects() { + return this.redirects; + } + + public void setRedirects(HttpRedirects redirects) { + this.redirects = redirects; + } + + public Duration getConnectTimeout() { + return this.connectTimeout; + } + + public void setConnectTimeout(Duration connectTimeout) { + this.connectTimeout = connectTimeout; + } + + public Duration getReadTimeout() { + return this.readTimeout; + } + + public void setReadTimeout(Duration readTimeout) { + this.readTimeout = readTimeout; + } + + public Ssl getSsl() { + return this.ssl; + } + public Connector getConnector() { return this.connector; } @@ -47,6 +96,26 @@ public abstract class AbstractClientHttpConnectorProperties extends AbstractHttp this.connector = connector; } + /** + * SSL configuration. + */ + public static class Ssl { + + /** + * SSL bundle to use. + */ + private String bundle; + + public String getBundle() { + return this.bundle; + } + + public void setBundle(String bundle) { + this.bundle = bundle; + } + + } + /** * Supported factory types. */ diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java index b99fef6c71f..76e33a16652 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java @@ -22,8 +22,8 @@ import java.util.function.Function; import java.util.function.Predicate; import org.springframework.beans.factory.ObjectFactory; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProperties.Ssl; import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties.Connector; +import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties.Ssl; import org.springframework.boot.http.client.HttpRedirects; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java index ece4cf609fd..bc0b1a203e0 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java @@ -24,7 +24,7 @@ import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings * apply to Spring's reactive client HTTP connectors. * * @author Phillip Webb - * @since 3.5.0 + * @since 4.0.0 * @see ClientHttpConnectorSettings */ @ConfigurationProperties("spring.http.reactiveclient") diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java index c1bfa53619c..4f08bea704e 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.function.Consumer; import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.http.client.HttpClientProperties; import org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectors; import org.springframework.boot.autoconfigure.http.client.reactive.HttpReactiveClientProperties; import org.springframework.boot.context.properties.PropertyMapper; @@ -39,7 +38,7 @@ import org.springframework.web.service.registry.HttpServiceGroup; /** * A {@link RestClientHttpServiceGroupConfigurer} that configures the group and its - * underlying {@link RestClient} using {@link HttpClientProperties}. + * underlying {@link RestClient} using {@link HttpReactiveClientProperties}. * * @author Olga Maciaszek-Sharma * @author Phillip Webb diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 38587bce9d3..ce38cee4f21 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,9 +1,5 @@ -org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration -org.springframework.boot.autoconfigure.http.client.service.HttpServiceClientAutoConfiguration org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration org.springframework.boot.autoconfigure.http.client.reactive.service.ReactiveHttpServiceClientAutoConfiguration -org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration -org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java index b61673e4f50..7b86be5851f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java @@ -29,7 +29,6 @@ import org.junit.jupiter.api.Test; import org.springframework.aop.Advisor; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration; -import org.springframework.boot.autoconfigure.http.client.service.HttpServiceClientAutoConfiguration; import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.http.client.HttpRedirects; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; @@ -59,9 +58,8 @@ import static org.assertj.core.api.Assertions.assertThat; class ReactiveHttpServiceClientAutoConfigurationTests { private final ReactiveWebApplicationContextRunner contextRunner = new ReactiveWebApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(HttpServiceClientAutoConfiguration.class, - ReactiveHttpServiceClientAutoConfiguration.class, ClientHttpConnectorAutoConfiguration.class, - WebClientAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ReactiveHttpServiceClientAutoConfiguration.class, + ClientHttpConnectorAutoConfiguration.class, WebClientAutoConfiguration.class)); @Test void configuresClientFromProperties() { diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f4abad11ee7..c7d95eee4a6 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2020,6 +2020,7 @@ bom { "spring-boot-hateoas", "spring-boot-hazelcast", "spring-boot-http", + "spring-boot-http-client", "spring-boot-http-codec", "spring-boot-integration", "spring-boot-jackson", diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 96bbc1187bc..4300d68a709 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -107,6 +107,7 @@ dependencies { autoConfiguration(project(path: ":spring-boot-project:spring-boot-hateoas", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-http", configuration: "autoConfigurationMetadata")) + autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-client", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-codec", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-integration", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "autoConfigurationMetadata")) @@ -187,6 +188,7 @@ dependencies { configurationProperties(project(path: ":spring-boot-project:spring-boot-hateoas", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-http", configuration: "configurationPropertiesMetadata")) + configurationProperties(project(path: ":spring-boot-project:spring-boot-http-client", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-http-codec", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-integration", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "configurationPropertiesMetadata")) @@ -243,6 +245,7 @@ dependencies { implementation(project(path: ":spring-boot-project:spring-boot-devtools")) implementation(project(path: ":spring-boot-project:spring-boot-docker-compose")) implementation(project(path: ":spring-boot-project:spring-boot-http")) + implementation(project(path: ":spring-boot-project:spring-boot-http-client")) implementation(project(path: ":spring-boot-project:spring-boot-http-codec")) implementation(project(path: ":spring-boot-project:spring-boot-integration")) implementation(project(path: ":spring-boot-project:spring-boot-jackson")) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/rest-client.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/rest-client.adoc index bed792c0134..d95d7d45b59 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/rest-client.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/rest-client.adoc @@ -156,9 +156,9 @@ TIP: You can also change the xref:io/rest-client.adoc#io.rest-client.clienthttpr [[io.rest-client.restclient.ssl]] === RestClient SSL Support -If you need custom SSL configuration on the javadoc:org.springframework.http.client.ClientHttpRequestFactory[] used by the javadoc:org.springframework.web.client.RestClient[], you can inject a javadoc:org.springframework.boot.autoconfigure.web.client.RestClientSsl[] instance that can be used with the builder's `apply` method. +If you need custom SSL configuration on the javadoc:org.springframework.http.client.ClientHttpRequestFactory[] used by the javadoc:org.springframework.web.client.RestClient[], you can inject a javadoc:org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl[] instance that can be used with the builder's `apply` method. -The javadoc:org.springframework.boot.autoconfigure.web.client.RestClientSsl[] interface provides access to any xref:features/ssl.adoc#features.ssl.bundles[SSL bundles] that you have defined in your `application.properties` or `application.yaml` file. +The javadoc:org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl[] interface provides access to any xref:features/ssl.adoc#features.ssl.bundles[SSL bundles] that you have defined in your `application.properties` or `application.yaml` file. The following code shows a typical example: diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.java index 305eee26220..159f88db3a5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.java @@ -16,7 +16,7 @@ package org.springframework.boot.docs.io.restclient.restclient.ssl; -import org.springframework.boot.autoconfigure.web.client.RestClientSsl; +import org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl; import org.springframework.stereotype.Service; import org.springframework.web.client.RestClient; diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.java index 7fea4f3ee87..2de919c53b9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.boot.docs.io.restclient.resttemplate.customization; import java.time.Duration; -import org.springframework.boot.autoconfigure.web.client.RestTemplateBuilderConfigurer; +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateBuilderConfigurer; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.kt index 9392e91033b..75603c52392 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.kt @@ -16,8 +16,8 @@ package org.springframework.boot.docs.io.restclient.restclient.ssl -import org.springframework.boot.autoconfigure.web.client.RestClientSsl import org.springframework.boot.docs.io.restclient.restclient.ssl.settings.Details +import org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl import org.springframework.stereotype.Service import org.springframework.web.client.RestClient diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.kt index 7b2bb7f8051..1d1b076d6c4 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.kt @@ -16,7 +16,7 @@ package org.springframework.boot.docs.io.restclient.resttemplate.customization -import org.springframework.boot.autoconfigure.web.client.RestTemplateBuilderConfigurer +import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateBuilderConfigurer import org.springframework.boot.web.client.RestTemplateBuilder import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration diff --git a/spring-boot-project/spring-boot-http-client/build.gradle b/spring-boot-project/spring-boot-http-client/build.gradle new file mode 100644 index 00000000000..e4066499ff1 --- /dev/null +++ b/spring-boot-project/spring-boot-http-client/build.gradle @@ -0,0 +1,44 @@ +/* + * Copyright 2012-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +plugins { + id "java-library" + id "org.springframework.boot.auto-configuration" + id "org.springframework.boot.configuration-properties" + id "org.springframework.boot.deployed" + id "org.springframework.boot.optional-dependencies" +} + +description = "Spring Boot HTTP Client" + +dependencies { + api(project(":spring-boot-project:spring-boot")) + + implementation(project(":spring-boot-project:spring-boot-http")) + + optional(project(":spring-boot-project:spring-boot-autoconfigure")) + optional("io.projectreactor.netty:reactor-netty-http") + optional("org.apache.httpcomponents.client5:httpclient5") + optional("org.eclipse.jetty:jetty-client") + + testImplementation(project(":spring-boot-project:spring-boot-test")) + testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + + testRuntimeOnly("ch.qos.logback:logback-classic") + testRuntimeOnly("jakarta.servlet:jakarta.servlet-api") + testRuntimeOnly("org.springframework:spring-webflux") +} diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpRequestFactoryProperties.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/AbstractHttpRequestFactoryProperties.java similarity index 61% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpRequestFactoryProperties.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/AbstractHttpRequestFactoryProperties.java index 2ed3a810d98..ec66226632f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpRequestFactoryProperties.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/AbstractHttpRequestFactoryProperties.java @@ -14,13 +14,15 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; +import java.time.Duration; import java.util.function.Supplier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; +import org.springframework.boot.http.client.HttpRedirects; import org.springframework.http.client.ClientHttpRequestFactory; /** @@ -28,16 +30,64 @@ import org.springframework.http.client.ClientHttpRequestFactory; * {@link ClientHttpRequestFactory}. * * @author Phillip Webb - * @since 3.5.0 + * @since 4.0.0 * @see ClientHttpRequestFactorySettings */ -public abstract class AbstractHttpRequestFactoryProperties extends AbstractHttpClientProperties { +public abstract class AbstractHttpRequestFactoryProperties { + + /** + * Handling for HTTP redirects. + */ + private HttpRedirects redirects; + + /** + * Default connect timeout for a client HTTP request. + */ + private Duration connectTimeout; + + /** + * Default read timeout for a client HTTP request. + */ + private Duration readTimeout; + + /** + * Default SSL configuration for a client HTTP request. + */ + private final Ssl ssl = new Ssl(); /** * Default factory used for a client HTTP request. */ private Factory factory; + public HttpRedirects getRedirects() { + return this.redirects; + } + + public void setRedirects(HttpRedirects redirects) { + this.redirects = redirects; + } + + public Duration getConnectTimeout() { + return this.connectTimeout; + } + + public void setConnectTimeout(Duration connectTimeout) { + this.connectTimeout = connectTimeout; + } + + public Duration getReadTimeout() { + return this.readTimeout; + } + + public void setReadTimeout(Duration readTimeout) { + this.readTimeout = readTimeout; + } + + public Ssl getSsl() { + return this.ssl; + } + public Factory getFactory() { return this.factory; } @@ -46,6 +96,26 @@ public abstract class AbstractHttpRequestFactoryProperties extends AbstractHttpC this.factory = factory; } + /** + * SSL configuration. + */ + public static class Ssl { + + /** + * SSL bundle to use. + */ + private String bundle; + + public String getBundle() { + return this.bundle; + } + + public void setBundle(String bundle) { + this.bundle = bundle; + } + + } + /** * Supported factory types. */ diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactories.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactories.java similarity index 93% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactories.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactories.java index fd260b35059..5b188cdd428 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactories.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactories.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import java.time.Duration; import java.util.Objects; @@ -22,11 +22,11 @@ import java.util.function.Function; import java.util.function.Predicate; import org.springframework.beans.factory.ObjectFactory; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProperties.Ssl; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; import org.springframework.boot.http.client.HttpRedirects; +import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory; +import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Ssl; import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.ssl.SslBundles; import org.springframework.util.StringUtils; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoryBuilderCustomizer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoryBuilderCustomizer.java similarity index 93% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoryBuilderCustomizer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoryBuilderCustomizer.java index 977bd7b8408..bc0bbb0d84a 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoryBuilderCustomizer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoryBuilderCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; @@ -24,7 +24,7 @@ import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; * * @param the builder type * @author Phillip Webb - * @since 3.5.0 + * @since 4.0.0 */ public interface ClientHttpRequestFactoryBuilderCustomizer> { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfiguration.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfiguration.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfiguration.java index b335dcd0f9f..cb78b816aa0 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import java.util.List; @@ -39,7 +39,7 @@ import org.springframework.http.client.ClientHttpRequestFactory; * {@link ClientHttpRequestFactoryBuilder} and {@link ClientHttpRequestFactorySettings}. * * @author Phillip Webb - * @since 3.4.0 + * @since 4.0.0 */ @SuppressWarnings("removal") @AutoConfiguration(after = SslAutoConfiguration.class) diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientProperties.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientProperties.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientProperties.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientProperties.java index 079fd372c7c..2030b33cf26 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientProperties.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/NotReactiveWebApplicationCondition.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/NotReactiveWebApplicationCondition.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/NotReactiveWebApplicationCondition.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/NotReactiveWebApplicationCondition.java index c3369362175..f0bcf1384e8 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/NotReactiveWebApplicationCondition.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/NotReactiveWebApplicationCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.NoneNestedConditions; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/package-info.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/package-info.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/package-info.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/package-info.java index a17ff86ba7f..761ff0b7489 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/package-info.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for client-side HTTP. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSsl.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSsl.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSsl.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSsl.java index b511b82e9e6..4db95546c7e 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSsl.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSsl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.function.Consumer; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizer.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizer.java index b5b3d06d452..e66dbc2959a 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.Arrays; import java.util.List; @@ -30,7 +30,7 @@ import org.springframework.web.client.RestClient; * HttpMessageConverters}. * * @author Phillip Webb - * @since 3.2.0 + * @since 4.0.0 */ public class HttpMessageConvertersRestClientCustomizer implements RestClientCustomizer { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationCondition.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationCondition.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationCondition.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationCondition.java index 647649a4e87..2067c32008f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationCondition.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.NoneNestedConditions; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java index dc8cbcbee2f..90ad6b79d0e 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfiguration.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfiguration.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfiguration.java index 778d8cc360f..9efaa16ea58 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.config.ConfigurableBeanFactory; @@ -23,12 +23,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration; import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConverters; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; +import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.web.client.RestClientCustomizer; import org.springframework.context.annotation.Bean; @@ -48,7 +48,7 @@ import org.springframework.web.client.RestClient.Builder; * * @author Arjen Poutsma * @author Moritz Halbritter - * @since 3.2.0 + * @since 4.0.0 */ @AutoConfiguration( after = { HttpClientAutoConfiguration.class, TaskExecutionAutoConfiguration.class, SslAutoConfiguration.class }) diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurer.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurer.java index a184e7cda92..ebf18cc4159 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.Collections; import java.util.List; @@ -33,7 +33,7 @@ import org.springframework.web.client.RestClient.Builder; * auto-configuration. * * @author Moritz Halbritter - * @since 3.2.0 + * @since 4.0.0 */ public class RestClientBuilderConfigurer { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientSsl.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientSsl.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientSsl.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientSsl.java index 2dc69212386..6e0d06254c4 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientSsl.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientSsl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.function.Consumer; @@ -44,7 +44,7 @@ import org.springframework.web.client.RestClient; * consider using a {@link ClientHttpRequestFactoryBuilder}. * * @author Phillip Webb - * @since 3.2.0 + * @since 4.0.0 */ public interface RestClientSsl { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfiguration.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfiguration.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfiguration.java index c5ea89001e0..a4d0d13014e 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfiguration.java @@ -14,17 +14,17 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConverters; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; +import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.boot.web.client.RestTemplateCustomizer; import org.springframework.boot.web.client.RestTemplateRequestCustomizer; @@ -39,7 +39,7 @@ import org.springframework.web.client.RestTemplate; * * @author Stephane Nicoll * @author Phillip Webb - * @since 1.4.0 + * @since 4.0.0 */ @AutoConfiguration(after = HttpClientAutoConfiguration.class) @ConditionalOnClass({ RestTemplate.class, HttpMessageConverters.class }) diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateBuilderConfigurer.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateBuilderConfigurer.java index 2024dea1d60..e873cf100e6 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateBuilderConfigurer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.Collection; import java.util.List; @@ -36,7 +36,7 @@ import org.springframework.util.ObjectUtils; * auto-configuration. * * @author Stephane Nicoll - * @since 2.4.0 + * @since 4.0.0 */ public final class RestTemplateBuilderConfigurer { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/package-info.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/package-info.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/package-info.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/package-info.java index f18fd767aae..86bf26a2833 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/package-info.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for web clients. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/AbstractHttpClientServiceProperties.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/AbstractHttpClientServiceProperties.java similarity index 92% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/AbstractHttpClientServiceProperties.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/AbstractHttpClientServiceProperties.java index cbcbec1fae2..6953c7f2bdb 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/AbstractHttpClientServiceProperties.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/AbstractHttpClientServiceProperties.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties; +import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties; /** * {@link AbstractHttpRequestFactoryProperties} for HTTP Service clients. diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServiceProperties.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServiceProperties.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServiceProperties.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServiceProperties.java index 17993f6db38..6cf0d4a13d9 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServiceProperties.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServiceProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import java.util.LinkedHashMap; import java.util.Map; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfiguration.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfiguration.java similarity index 92% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfiguration.java index 7701370c1fc..0ff2976462f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfiguration.java @@ -14,19 +14,19 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; -import org.springframework.boot.autoconfigure.http.client.HttpClientProperties; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; +import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; +import org.springframework.boot.http.client.autoconfigure.HttpClientProperties; +import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration; import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.web.client.RestClientCustomizer; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/NotReactiveWebApplicationCondition.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/NotReactiveWebApplicationCondition.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/NotReactiveWebApplicationCondition.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/NotReactiveWebApplicationCondition.java index b209f516665..4f686f38c38 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/NotReactiveWebApplicationCondition.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/NotReactiveWebApplicationCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.NoneNestedConditions; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientCustomizerHttpServiceGroupConfigurer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientCustomizerHttpServiceGroupConfigurer.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientCustomizerHttpServiceGroupConfigurer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientCustomizerHttpServiceGroupConfigurer.java index 9e0cb3985e1..ce55413b940 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientCustomizerHttpServiceGroupConfigurer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientCustomizerHttpServiceGroupConfigurer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.web.client.RestClientCustomizer; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientPropertiesHttpServiceGroupConfigurer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientPropertiesHttpServiceGroupConfigurer.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientPropertiesHttpServiceGroupConfigurer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientPropertiesHttpServiceGroupConfigurer.java index 472939bd605..dc5fd10b6e3 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientPropertiesHttpServiceGroupConfigurer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientPropertiesHttpServiceGroupConfigurer.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import java.util.List; import java.util.Map; import java.util.function.Consumer; import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.http.client.ClientHttpRequestFactories; -import org.springframework.boot.autoconfigure.http.client.HttpClientProperties; import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; +import org.springframework.boot.http.client.autoconfigure.ClientHttpRequestFactories; +import org.springframework.boot.http.client.autoconfigure.HttpClientProperties; import org.springframework.boot.ssl.SslBundles; import org.springframework.core.Ordered; import org.springframework.http.HttpHeaders; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/package-info.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/package-info.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/package-info.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/package-info.java index f0a4dff7a32..0ec978ab79b 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/package-info.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-Configuration for Spring's Blocking HTTP Service Interface Clients. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; diff --git a/spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 00000000000..671fd2520c2 --- /dev/null +++ b/spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,4 @@ +{ + "groups": [], + "properties": [] +} diff --git a/spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..beaa0a16da9 --- /dev/null +++ b/spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration +org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration +org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoriesTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoriesTests.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoriesTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoriesTests.java index 7d226a2ad5d..5e6070e79f0 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoriesTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoriesTests.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import java.time.Duration; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.ObjectFactory; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.HttpRedirects; import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder; +import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory; import org.springframework.boot.ssl.DefaultSslBundleRegistry; import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.ssl.SslBundles; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java similarity index 99% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java index ba6ceed93ac..d845d1728d1 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import java.time.Duration; import java.util.ArrayList; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientPropertiesTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientPropertiesTests.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientPropertiesTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientPropertiesTests.java index 6f739b31221..f7905b7d5a8 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientPropertiesTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientPropertiesTests.java @@ -14,17 +14,17 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client; +package org.springframework.boot.http.client.autoconfigure; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory; import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.JdkClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ReactorClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.SimpleClientHttpRequestFactoryBuilder; +import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSslTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSslTests.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSslTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSslTests.java index 275545c2452..8254b0035cd 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSslTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSslTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.time.Duration; import java.util.function.Consumer; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizerTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizerTests.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizerTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizerTests.java index 4093a0862c0..20353590ec6 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizerTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.ArrayList; import java.util.Arrays; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfigurationTests.java similarity index 99% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfigurationTests.java index 6c17b89dec7..18d0c74178a 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.time.Duration; import java.util.List; @@ -24,13 +24,13 @@ import org.junit.jupiter.api.condition.EnabledForJreRange; import org.junit.jupiter.api.condition.JRE; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConverters; import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; import org.springframework.boot.http.client.HttpRedirects; +import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.test.context.runner.ApplicationContextRunner; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurerTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurerTests.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurerTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurerTests.java index 47701acd482..7c17ca5bf5c 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurerTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.List; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfigurationTests.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfigurationTests.java index 4e1c9f4775b..162c96aed39 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.client; +package org.springframework.boot.http.client.rest.autoconfigure; import java.util.Collections; import java.util.List; @@ -23,9 +23,9 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.support.BeanDefinitionOverrideException; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; import org.springframework.boot.http.autoconfigure.HttpMessageConverters; import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration; +import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServicePropertiesTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServicePropertiesTests.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServicePropertiesTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServicePropertiesTests.java index 7c713ea3223..12368481328 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServicePropertiesTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServicePropertiesTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import java.time.Duration; import java.util.List; @@ -22,10 +22,10 @@ import java.util.Map; import org.junit.jupiter.api.Test; -import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory; -import org.springframework.boot.autoconfigure.http.client.service.HttpClientServiceProperties.Group; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.http.client.HttpRedirects; +import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory; +import org.springframework.boot.http.client.service.autoconfigure.HttpClientServiceProperties.Group; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Configuration; import org.springframework.mock.env.MockEnvironment; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfigurationTests.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfigurationTests.java index 87b6b0fe700..8e27976b713 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.service; +package org.springframework.boot.http.client.service.autoconfigure; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; @@ -28,11 +28,11 @@ import org.junit.jupiter.api.Test; import org.springframework.aop.Advisor; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; import org.springframework.boot.http.client.HttpRedirects; +import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; +import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.web.client.RestClientCustomizer; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle index 3d205478b2d..32dd435b0fa 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle @@ -21,6 +21,7 @@ plugins { description = "Starter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito" dependencies { + api(project(":spring-boot-project:spring-boot-http-client")) api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) api(project(":spring-boot-project:spring-boot-test")) api(project(":spring-boot-project:spring-boot-test-autoconfigure")) diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index 40fe2dc524f..0e0d7618ac2 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -78,6 +78,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-groovy-templates")) optional(project(":spring-boot-project:spring-boot-hateoas")) optional(project(":spring-boot-project:spring-boot-http")) + optional(project(":spring-boot-project:spring-boot-http-client")) optional(project(":spring-boot-project:spring-boot-http-codec")) optional(project(":spring-boot-project:spring-boot-jackson")) optional(project(":spring-boot-project:spring-boot-jdbc")) diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/WebClientRestTemplateAutoConfiguration.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/WebClientRestTemplateAutoConfiguration.java index 7ba14a5e7c5..b2e1a8911cb 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/WebClientRestTemplateAutoConfiguration.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/WebClientRestTemplateAutoConfiguration.java @@ -18,7 +18,6 @@ package org.springframework.boot.test.autoconfigure.web.client; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProperty; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @@ -31,7 +30,7 @@ import org.springframework.web.client.RestTemplate; * @since 1.4.0 * @see AutoConfigureMockRestServiceServer */ -@AutoConfiguration(after = RestTemplateAutoConfiguration.class) +@AutoConfiguration(afterName = "org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration") @ConditionalOnBooleanProperty("spring.test.webclient.register-rest-template") public class WebClientRestTemplateAutoConfiguration { diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient.imports b/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient.imports index 62d15e73808..e63983227b8 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient.imports +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient.imports @@ -1,7 +1,7 @@ # AutoConfigureWebClient auto-configuration imports -optional:org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration optional:org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration +optional:org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration +optional:org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration +optional:org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration +org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration org.springframework.boot.test.autoconfigure.web.client.WebClientRestTemplateAutoConfiguration -org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration -org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration -org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration \ No newline at end of file diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/build.gradle b/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/build.gradle index 35dfdfc4b21..c13e4aa7279 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/build.gradle +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/build.gradle @@ -27,6 +27,7 @@ configurations { dependencies { app project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "mavenRepository") + app project(path: ":spring-boot-project:spring-boot-http-client", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-tomcat", configuration: "mavenRepository") diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/build.gradle b/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/build.gradle index cb09f8a6b2b..7b45ad5a197 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/build.gradle +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/build.gradle @@ -33,5 +33,6 @@ repositories { dependencies { implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)) + implementation("org.springframework.boot:spring-boot-http-client") implementation("org.springframework.boot:spring-boot-starter-web") } diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/src/main/java/org/springframework/boot/sni/client/SniClientApplication.java b/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/src/main/java/org/springframework/boot/sni/client/SniClientApplication.java index d2a063ee934..b8ed860901e 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/src/main/java/org/springframework/boot/sni/client/SniClientApplication.java +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/src/main/java/org/springframework/boot/sni/client/SniClientApplication.java @@ -21,8 +21,8 @@ import java.util.Arrays; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.web.client.RestClientSsl; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl; import org.springframework.context.annotation.Bean; import org.springframework.http.ResponseEntity; import org.springframework.util.Assert;