From 0291064cea931cd43daac07fc3d2cc1a14f55e78 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 7 May 2025 11:31:34 +0100 Subject: [PATCH] Create spring-boot-http-client-reactive module See gh-46118 --- settings.gradle | 1 + .../build.gradle | 1 + ...tpClientObservationsAutoConfiguration.java | 8 +- ...activeHealthEndpointWebExtensionTests.java | 2 +- ...FoundryActuatorAutoConfigurationTests.java | 2 +- ...ebClientObservationConfigurationTests.java | 2 +- .../ClientHttpConnectorAutoConfiguration.java | 79 -------------- .../client/ReactorNettyHttpClientMapper.java | 77 -------------- ...ot.autoconfigure.AutoConfiguration.imports | 4 - ...ntHttpConnectorAutoConfigurationTests.java | 62 ----------- .../ReactorNettyHttpClientMapperTests.java | 100 ------------------ .../spring-boot-dependencies/build.gradle | 1 + .../spring-boot-docs/build.gradle | 3 + .../restclient/webclient/ssl/MyService.java | 2 +- .../io/restclient/webclient/ssl/MyService.kt | 2 +- .../build.gradle | 46 ++++++++ .../AbstractClientHttpConnectorBuilder.java | 0 .../reactive/ClientHttpConnectorBuilder.java | 0 .../reactive/ClientHttpConnectorSettings.java | 0 ...pComponentsClientHttpConnectorBuilder.java | 0 .../JdkClientHttpConnectorBuilder.java | 0 .../JettyClientHttpConnectorBuilder.java | 0 .../ReactorClientHttpConnectorBuilder.java | 0 ...AbstractClientHttpConnectorProperties.java | 2 +- .../ClientHttpConnectorAutoConfiguration.java | 6 +- .../ClientHttpConnectorBuilderCustomizer.java | 2 +- .../autoconfigure}/ClientHttpConnectors.java | 6 +- ...OnClientHttpConnectorBuilderDetection.java | 2 +- .../HttpReactiveClientProperties.java | 2 +- .../reactive/autoconfigure}/package-info.java | 2 +- .../http/client/reactive/package-info.java | 0 ...ctHttpReactiveClientServiceProperties.java | 4 +- .../ReactiveHttpClientServiceProperties.java | 2 +- ...iveHttpServiceClientAutoConfiguration.java | 8 +- ...tCustomizerHttpServiceGroupConfigurer.java | 2 +- ...tPropertiesHttpServiceGroupConfigurer.java | 6 +- .../service/autoconfigure}/package-info.java | 2 +- .../AutoConfiguredWebClientSsl.java | 2 +- .../WebClientAutoConfiguration.java | 8 +- .../WebClientCodecCustomizer.java | 2 +- .../web/autoconfigure}/WebClientSsl.java | 2 +- .../web/autoconfigure}/package-info.java | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 3 + ...stractClientHttpConnectorBuilderTests.java | 2 - ...onentsClientHttpConnectorBuilderTests.java | 0 .../JdkClientHttpConnectorBuilderTests.java | 0 .../JettyClientHttpConnectorBuilderTests.java | 0 ...eactorClientHttpConnectorBuilderTests.java | 0 .../http/client/reactive/TestCustomizer.java | 0 ...ntHttpConnectorAutoConfigurationTests.java | 2 +- .../ClientHttpConnectorsTests.java | 4 +- ...ReactiveClientSettingsPropertiesTests.java | 4 +- ...ctiveHttpClientServicePropertiesTests.java | 6 +- ...tpServiceClientAutoConfigurationTests.java | 6 +- .../WebClientAutoConfigurationTests.java | 4 +- .../boot/http/client/reactive/test.jks | Bin .../reactive/web/autoconfigure}/test.jks | Bin .../spring-boot-http-codec/build.gradle | 3 +- .../spring-boot-starter-test/build.gradle | 1 + .../build.gradle | 1 + ....web.client.AutoConfigureWebClient.imports | 4 +- 61 files changed, 112 insertions(+), 382 deletions(-) delete mode 100644 spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfiguration.java delete mode 100644 spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapper.java delete mode 100644 spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfigurationTests.java delete mode 100644 spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapperTests.java create mode 100644 spring-boot-project/spring-boot-http-client-reactive/build.gradle rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java (100%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java (100%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorSettings.java (100%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java (100%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilder.java (100%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilder.java (100%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilder.java (100%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/AbstractClientHttpConnectorProperties.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/ClientHttpConnectorAutoConfiguration.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/ClientHttpConnectorBuilderCustomizer.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/ClientHttpConnectors.java (91%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/ConditionalOnClientHttpConnectorBuilderDetection.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/HttpReactiveClientProperties.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure}/package-info.java (90%) rename spring-boot-project/{spring-boot => spring-boot-http-client-reactive}/src/main/java/org/springframework/boot/http/client/reactive/package-info.java (100%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/AbstractHttpReactiveClientServiceProperties.java (90%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/ReactiveHttpClientServiceProperties.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/ReactiveHttpServiceClientAutoConfiguration.java (89%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/WebClientCustomizerHttpServiceGroupConfigurer.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/WebClientPropertiesHttpServiceGroupConfigurer.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/package-info.java (90%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure}/AutoConfiguredWebClientSsl.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure}/WebClientAutoConfiguration.java (91%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure}/WebClientCodecCustomizer.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure}/WebClientSsl.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure}/package-info.java (90%) create mode 100644 spring-boot-project/spring-boot-http-client-reactive/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java (99%) rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java (100%) rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java (100%) rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java (100%) rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java (100%) rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/java/org/springframework/boot/http/client/reactive/TestCustomizer.java (100%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure}/ClientHttpConnectorAutoConfigurationTests.java (99%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure}/ClientHttpConnectorsTests.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive => spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure}/HttpReactiveClientSettingsPropertiesTests.java (90%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/ReactiveHttpClientServicePropertiesTests.java (94%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service => spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure}/ReactiveHttpServiceClientAutoConfigurationTests.java (96%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/web/autoconfigure}/WebClientAutoConfigurationTests.java (97%) rename spring-boot-project/{spring-boot-integration-tests => spring-boot-http-client-reactive}/src/test/resources/org/springframework/boot/http/client/reactive/test.jks (100%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/resources/org/springframework/boot/autoconfigure/web/reactive/function/client => spring-boot-http-client-reactive/src/test/resources/org/springframework/boot/http/client/reactive/web/autoconfigure}/test.jks (100%) diff --git a/settings.gradle b/settings.gradle index 7b7de23a471..841b4d05e05 100644 --- a/settings.gradle +++ b/settings.gradle @@ -95,6 +95,7 @@ include "spring-boot-project:spring-boot-hateoas" include "spring-boot-project:spring-boot-hazelcast" include "spring-boot-project:spring-boot-http-converter" include "spring-boot-project:spring-boot-http-client" +include "spring-boot-project:spring-boot-http-client-reactive" 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 8b0fc1c72c2..9bf8c25de17 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -58,6 +58,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-hazelcast")) optional(project(":spring-boot-project:spring-boot-http-converter")) optional(project(":spring-boot-project:spring-boot-http-client")) + optional(project(":spring-boot-project:spring-boot-http-client-reactive")) 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 08b3452492f..e54eb7807be 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,7 +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.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -50,10 +49,9 @@ import org.springframework.core.annotation.Order; * @author Moritz Halbritter * @since 3.0.0 */ -@AutoConfiguration( - after = { ObservationAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class, - WebClientAutoConfiguration.class }, - afterName = { "org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration", +@AutoConfiguration(after = { ObservationAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class }, + afterName = { "org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration", + "org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration", "org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration" }) @ConditionalOnClass(Observation.class) @ConditionalOnBean(ObservationRegistry.class) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java index 5dddf1916de..cc800c54fb4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java @@ -32,7 +32,7 @@ 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.reactive.function.client.WebClientAutoConfiguration; +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration; import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java index b1a96b77666..6779124e8b2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java @@ -50,7 +50,7 @@ import org.springframework.boot.actuate.endpoint.web.WebOperationRequestPredicat 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.reactive.function.client.WebClientAutoConfiguration; +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration; import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/WebClientObservationConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/WebClientObservationConfigurationTests.java index d2805aa7cc4..81b333f0ad0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/WebClientObservationConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/WebClientObservationConfigurationTests.java @@ -30,7 +30,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.reactive.client.ObservationWebClientCustomizer; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration; 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-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfiguration.java deleted file mode 100644 index f2ea1ebd212..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfiguration.java +++ /dev/null @@ -1,79 +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.web.reactive.function.client; - -import java.util.List; - -import reactor.netty.http.client.HttpClient; - -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.http.client.reactive.ClientHttpConnectorBuilderCustomizer; -import org.springframework.boot.http.client.reactive.ReactorClientHttpConnectorBuilder; -import org.springframework.boot.reactor.netty.autoconfigure.ReactorNettyConfigurations.ReactorResourceFactoryConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.core.annotation.Order; -import org.springframework.http.client.ReactorResourceFactory; -import org.springframework.web.reactive.function.client.WebClient; - -/** - * Deprecated {@link EnableAutoConfiguration Auto-configuration} for - * {@link ReactorNettyHttpClientMapper}. - * - * @author Brian Clozel - * @author Phillip Webb - * @since 2.1.0 - * @deprecated since 3.5.0 for removal in 4.0.0 in favor of - * {@link org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration} - * and to align with the deprecation of {@link ReactorNettyHttpClientMapper} - */ -@AutoConfiguration -@ConditionalOnClass(WebClient.class) -@Deprecated(since = "3.5.0", forRemoval = true) -public class ClientHttpConnectorAutoConfiguration { - - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(HttpClient.class) - @Import(ReactorResourceFactoryConfiguration.class) - @SuppressWarnings("removal") - static class ReactorNetty { - - @Bean - @Order(0) - ClientHttpConnectorBuilderCustomizer reactorNettyHttpClientMapperClientHttpConnectorBuilderCustomizer( - ReactorResourceFactory reactorResourceFactory, - ObjectProvider mapperProvider) { - return applyMappers(mapperProvider.orderedStream().toList()); - } - - private ClientHttpConnectorBuilderCustomizer applyMappers( - List mappers) { - return (builder) -> { - for (ReactorNettyHttpClientMapper mapper : mappers) { - builder = builder.withHttpClientCustomizer(mapper::configure); - } - return builder; - }; - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapper.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapper.java deleted file mode 100644 index 2cdb0419912..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapper.java +++ /dev/null @@ -1,77 +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.web.reactive.function.client; - -import java.util.Collection; - -import reactor.netty.http.client.HttpClient; - -import org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorBuilderCustomizer; -import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; -import org.springframework.http.client.reactive.ReactorClientHttpConnector; -import org.springframework.util.Assert; - -/** - * Mapper that allows for custom modification of a {@link HttpClient} before it is used as - * the basis for a {@link ReactorClientHttpConnector}. - * - * @author Brian Clozel - * @author Phillip Webb - * @since 2.3.0 - * @deprecated since 3.5.0 for removal in 4.0.0 in favor of - * {@link ClientHttpConnectorBuilderCustomizer} or declaring a pre-configured - * {@link ClientHttpConnectorBuilder} bean - */ -@FunctionalInterface -@Deprecated(since = "3.5.0", forRemoval = true) -public interface ReactorNettyHttpClientMapper { - - /** - * Configure the given {@link HttpClient} and return the newly created instance. - * @param httpClient the client to configure - * @return the new client instance - */ - HttpClient configure(HttpClient httpClient); - - /** - * Return a new {@link ReactorNettyHttpClientMapper} composed of the given mappers. - * @param mappers the mappers to compose - * @return a composed {@link ReactorNettyHttpClientMapper} instance - * @since 3.1.1 - */ - static ReactorNettyHttpClientMapper of(Collection mappers) { - Assert.notNull(mappers, "'mappers' must not be null"); - return of(mappers.toArray(ReactorNettyHttpClientMapper[]::new)); - } - - /** - * Return a new {@link ReactorNettyHttpClientMapper} composed of the given mappers. - * @param mappers the mappers to compose - * @return a composed {@link ReactorNettyHttpClientMapper} instance - * @since 3.1.1 - */ - static ReactorNettyHttpClientMapper of(ReactorNettyHttpClientMapper... mappers) { - Assert.notNull(mappers, "'mappers' must not be null"); - return (httpClient) -> { - for (ReactorNettyHttpClientMapper mapper : mappers) { - httpClient = mapper.configure(httpClient); - } - return httpClient; - }; - } - -} 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 ce38cee4f21..666a3390252 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,6 +1,2 @@ -org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration -org.springframework.boot.autoconfigure.http.client.reactive.service.ReactiveHttpServiceClientAutoConfiguration -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 org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfigurationTests.java deleted file mode 100644 index 46d029bef46..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfigurationTests.java +++ /dev/null @@ -1,62 +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.web.reactive.function.client; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.http.client.reactive.ClientHttpConnector; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link ClientHttpConnectorAutoConfiguration} - * - * @author Brian Clozel - */ -@SuppressWarnings("removal") -class ClientHttpConnectorAutoConfigurationTests { - - @Test - void shouldApplyReactorNettyHttpClientMapper() { - new ReactiveWebApplicationContextRunner().withConfiguration(AutoConfigurations.of( - ClientHttpConnectorAutoConfiguration.class, - org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration.class)) - .withUserConfiguration(CustomReactorNettyHttpClientMapper.class) - .run((context) -> { - context.getBean(ClientHttpConnector.class); - assertThat(CustomReactorNettyHttpClientMapper.called).isTrue(); - }); - } - - static class CustomReactorNettyHttpClientMapper { - - static boolean called = false; - - @Bean - ReactorNettyHttpClientMapper clientMapper() { - return (client) -> { - called = true; - return client.baseUrl("/test"); - }; - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapperTests.java b/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapperTests.java deleted file mode 100644 index 43a1e4c3553..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ReactorNettyHttpClientMapperTests.java +++ /dev/null @@ -1,100 +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.web.reactive.function.client; - -import java.util.Collection; -import java.util.List; - -import org.junit.jupiter.api.Test; -import reactor.netty.http.client.HttpClient; -import reactor.netty.http.client.HttpClientConfig; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; - -/** - * Tests for {@link ReactorNettyHttpClientMapper}. - * - * @author Phillip Webb - */ -@SuppressWarnings("removal") -class ReactorNettyHttpClientMapperTests { - - @Test - void ofWithCollectionCreatesComposite() { - ReactorNettyHttpClientMapper one = (httpClient) -> new TestHttpClient(httpClient, "1"); - ReactorNettyHttpClientMapper two = (httpClient) -> new TestHttpClient(httpClient, "2"); - ReactorNettyHttpClientMapper three = (httpClient) -> new TestHttpClient(httpClient, "3"); - ReactorNettyHttpClientMapper compose = ReactorNettyHttpClientMapper.of(List.of(one, two, three)); - TestHttpClient httpClient = (TestHttpClient) compose.configure(new TestHttpClient()); - assertThat(httpClient.getContent()).isEqualTo("123"); - } - - @Test - void ofWhenCollectionIsNullThrowsException() { - Collection mappers = null; - assertThatIllegalArgumentException().isThrownBy(() -> ReactorNettyHttpClientMapper.of(mappers)) - .withMessage("'mappers' must not be null"); - } - - @Test - void ofWithArrayCreatesComposite() { - ReactorNettyHttpClientMapper one = (httpClient) -> new TestHttpClient(httpClient, "1"); - ReactorNettyHttpClientMapper two = (httpClient) -> new TestHttpClient(httpClient, "2"); - ReactorNettyHttpClientMapper three = (httpClient) -> new TestHttpClient(httpClient, "3"); - ReactorNettyHttpClientMapper compose = ReactorNettyHttpClientMapper.of(one, two, three); - TestHttpClient httpClient = (TestHttpClient) compose.configure(new TestHttpClient()); - assertThat(httpClient.getContent()).isEqualTo("123"); - } - - @Test - void ofWhenArrayIsNullThrowsException() { - ReactorNettyHttpClientMapper[] mappers = null; - assertThatIllegalArgumentException().isThrownBy(() -> ReactorNettyHttpClientMapper.of(mappers)) - .withMessage("'mappers' must not be null"); - } - - private static class TestHttpClient extends HttpClient { - - private final String content; - - TestHttpClient() { - this.content = ""; - } - - TestHttpClient(HttpClient httpClient, String content) { - this.content = (httpClient instanceof TestHttpClient testHttpClient) ? testHttpClient.content + content - : content; - } - - @Override - public HttpClientConfig configuration() { - throw new UnsupportedOperationException("Auto-generated method stub"); - } - - @Override - protected HttpClient duplicate() { - throw new UnsupportedOperationException("Auto-generated method stub"); - } - - String getContent() { - return this.content; - } - - } - -} diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 167bb320899..03e9e78d4a3 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2024,6 +2024,7 @@ bom { "spring-boot-http-codec", "spring-boot-http-converter", "spring-boot-http-client", + "spring-boot-http-client-reactive", "spring-boot-integration", "spring-boot-jackson", "spring-boot-jarmode-tools", diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 0cac54cfa05..487a643aa4d 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -108,6 +108,7 @@ dependencies { autoConfiguration(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-converter", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-client", configuration: "autoConfigurationMetadata")) + autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-client-reactive", 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")) @@ -189,6 +190,7 @@ dependencies { configurationProperties(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-http-converter", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-http-client", configuration: "configurationPropertiesMetadata")) + configurationProperties(project(path: ":spring-boot-project:spring-boot-http-client-reactive", 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")) @@ -247,6 +249,7 @@ dependencies { implementation(project(path: ":spring-boot-project:spring-boot-docker-compose")) implementation(project(path: ":spring-boot-project:spring-boot-http-converter")) implementation(project(path: ":spring-boot-project:spring-boot-http-client")) + implementation(project(path: ":spring-boot-project:spring-boot-http-client-reactive")) 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/main/java/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.java index 8fb3c38ea3f..828b0358815 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.java @@ -18,7 +18,7 @@ package org.springframework.boot.docs.io.restclient.webclient.ssl; import reactor.core.publisher.Mono; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientSsl; +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientSsl; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.kt index 74149c637d1..0ca01e807b5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/webclient/ssl/MyService.kt @@ -16,7 +16,7 @@ package org.springframework.boot.docs.io.restclient.webclient.ssl -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientSsl +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientSsl import org.springframework.stereotype.Service import org.springframework.web.reactive.function.client.WebClient import reactor.core.publisher.Mono diff --git a/spring-boot-project/spring-boot-http-client-reactive/build.gradle b/spring-boot-project/spring-boot-http-client-reactive/build.gradle new file mode 100644 index 00000000000..dbe81c74e53 --- /dev/null +++ b/spring-boot-project/spring-boot-http-client-reactive/build.gradle @@ -0,0 +1,46 @@ +/* + * 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 Reactive HTTP Client" + +dependencies { + api(project(":spring-boot-project:spring-boot")) + api("org.springframework:spring-web") + + implementation(project(":spring-boot-project:spring-boot-http-codec")) + + optional(project(":spring-boot-project:spring-boot-autoconfigure")) + optional(project(":spring-boot-project:spring-boot-reactor-netty")) + optional("org.apache.httpcomponents.client5:httpclient5") + optional("org.apache.httpcomponents.core5:httpcore5-reactive") + optional("org.eclipse.jetty:jetty-reactive-httpclient") + optional("org.springframework:spring-webflux") + + testImplementation(project(":spring-boot-project:spring-boot-test")) + testImplementation(project(":spring-boot-project:spring-boot-tomcat")) + testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + + testRuntimeOnly("ch.qos.logback:logback-classic") +} diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorSettings.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorSettings.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorSettings.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorSettings.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilder.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilder.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilder.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilder.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilder.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilder.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilder.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilder.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilder.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilder.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilder.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilder.java 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/AbstractClientHttpConnectorProperties.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/AbstractClientHttpConnectorProperties.java index f546402bd7a..4a8c466b925 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/AbstractClientHttpConnectorProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import java.time.Duration; import java.util.function.Supplier; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorAutoConfiguration.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorAutoConfiguration.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorAutoConfiguration.java index a8dee648a86..ac86a91ec10 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import java.util.List; @@ -45,7 +45,7 @@ import org.springframework.http.client.reactive.ClientHttpConnector; * {@link ClientHttpConnectorBuilder} and {@link ClientHttpConnectorSettings}. * * @author Phillip Webb - * @since 3.5.0 + * @since 4.0.0 */ @AutoConfiguration(after = SslAutoConfiguration.class) @ConditionalOnClass({ ClientHttpConnector.class, Mono.class }) @@ -99,7 +99,7 @@ public class ClientHttpConnectorAutoConfiguration implements BeanClassLoaderAwar } @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(reactor.netty.http.client.HttpClient.class) + @ConditionalOnClass({ reactor.netty.http.client.HttpClient.class, ReactorNettyConfigurations.class }) @Import(ReactorNettyConfigurations.ReactorResourceFactoryConfiguration.class) static class ReactorNetty { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorBuilderCustomizer.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorBuilderCustomizer.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorBuilderCustomizer.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorBuilderCustomizer.java index 5157921564d..b54b0428f17 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorBuilderCustomizer.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorBuilderCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectors.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectors.java index 76e33a16652..9d6aad7f649 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectors.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.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.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; +import org.springframework.boot.http.client.reactive.autoconfigure.AbstractClientHttpConnectorProperties.Connector; +import org.springframework.boot.http.client.reactive.autoconfigure.AbstractClientHttpConnectorProperties.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/reactive/ConditionalOnClientHttpConnectorBuilderDetection.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ConditionalOnClientHttpConnectorBuilderDetection.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ConditionalOnClientHttpConnectorBuilderDetection.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ConditionalOnClientHttpConnectorBuilderDetection.java index 44e949d72eb..36c63749e90 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ConditionalOnClientHttpConnectorBuilderDetection.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/ConditionalOnClientHttpConnectorBuilderDetection.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import org.springframework.boot.autoconfigure.condition.ConditionOutcome; import org.springframework.boot.autoconfigure.condition.SpringBootCondition; 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/HttpReactiveClientProperties.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/HttpReactiveClientProperties.java index bc0b1a203e0..7256913f3a8 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/HttpReactiveClientProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import org.springframework.boot.context.properties.ConfigurationProperties; 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/package-info.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/package-info.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/package-info.java index 762e5cc4b14..b2259358714 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/package-info.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for client-side reactive HTTP. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/package-info.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/package-info.java similarity index 100% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/reactive/package-info.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/package-info.java diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/AbstractHttpReactiveClientServiceProperties.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/AbstractHttpReactiveClientServiceProperties.java similarity index 90% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/AbstractHttpReactiveClientServiceProperties.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/AbstractHttpReactiveClientServiceProperties.java index de2a182af87..913a5d506a9 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/AbstractHttpReactiveClientServiceProperties.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/AbstractHttpReactiveClientServiceProperties.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.service.autoconfigure; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties; +import org.springframework.boot.http.client.reactive.autoconfigure.AbstractClientHttpConnectorProperties; /** * {@link AbstractClientHttpConnectorProperties} for reactive HTTP Service clients. diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpClientServiceProperties.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpClientServiceProperties.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpClientServiceProperties.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpClientServiceProperties.java index 266e7cbd249..daf02b47b8a 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpClientServiceProperties.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpClientServiceProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.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/reactive/service/ReactiveHttpServiceClientAutoConfiguration.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpServiceClientAutoConfiguration.java similarity index 89% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpServiceClientAutoConfiguration.java index e77fbba2558..dfe4c47ebe0 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpServiceClientAutoConfiguration.java @@ -14,19 +14,19 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.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.reactive.ClientHttpConnectorAutoConfiguration; -import org.springframework.boot.autoconfigure.http.client.reactive.HttpReactiveClientProperties; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; +import org.springframework.boot.http.client.reactive.autoconfigure.ClientHttpConnectorAutoConfiguration; +import org.springframework.boot.http.client.reactive.autoconfigure.HttpReactiveClientProperties; +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration; import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.web.reactive.function.client.WebClientCustomizer; 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/reactive/service/WebClientCustomizerHttpServiceGroupConfigurer.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/WebClientCustomizerHttpServiceGroupConfigurer.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientCustomizerHttpServiceGroupConfigurer.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/WebClientCustomizerHttpServiceGroupConfigurer.java index b5b3f3ef799..0dac8c1d0ce 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientCustomizerHttpServiceGroupConfigurer.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/WebClientCustomizerHttpServiceGroupConfigurer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.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/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/WebClientPropertiesHttpServiceGroupConfigurer.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/WebClientPropertiesHttpServiceGroupConfigurer.java index 4f08bea704e..a6e9e3d5d37 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-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/WebClientPropertiesHttpServiceGroupConfigurer.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.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.reactive.ClientHttpConnectors; -import org.springframework.boot.autoconfigure.http.client.reactive.HttpReactiveClientProperties; import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; +import org.springframework.boot.http.client.reactive.autoconfigure.ClientHttpConnectors; +import org.springframework.boot.http.client.reactive.autoconfigure.HttpReactiveClientProperties; 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/reactive/service/package-info.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/package-info.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/package-info.java index 20df40a9f00..953d7735384 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/package-info.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/service/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-Configuration for Spring's Reactive HTTP Service Interface Clients. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.service.autoconfigure; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AutoConfiguredWebClientSsl.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/AutoConfiguredWebClientSsl.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AutoConfiguredWebClientSsl.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/AutoConfiguredWebClientSsl.java index 6cfc1441539..d530d7bc85b 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AutoConfiguredWebClientSsl.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/AutoConfiguredWebClientSsl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.reactive.function.client; +package org.springframework.boot.http.client.reactive.web.autoconfigure; import java.util.function.Consumer; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfiguration.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientAutoConfiguration.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfiguration.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientAutoConfiguration.java index c5e8dc84c33..88c4087b260 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.reactive.function.client; +package org.springframework.boot.http.client.reactive.web.autoconfigure; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.config.ConfigurableBeanFactory; @@ -23,10 +23,11 @@ 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.reactive.ClientHttpConnectorAutoConfiguration; import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; +import org.springframework.boot.http.client.reactive.autoconfigure.ClientHttpConnectorAutoConfiguration; import org.springframework.boot.http.codec.CodecCustomizer; +import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration; import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.web.reactive.function.client.WebClientCustomizer; import org.springframework.context.annotation.Bean; @@ -49,8 +50,7 @@ import org.springframework.web.reactive.function.client.WebClient; * @author Phillip Webb * @since 2.0.0 */ -@AutoConfiguration(after = ClientHttpConnectorAutoConfiguration.class, - afterName = "org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration") +@AutoConfiguration(after = { ClientHttpConnectorAutoConfiguration.class, CodecsAutoConfiguration.class }) @ConditionalOnClass(WebClient.class) public class WebClientAutoConfiguration { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientCodecCustomizer.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientCodecCustomizer.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientCodecCustomizer.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientCodecCustomizer.java index 4488c24b753..9e8e5342e69 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientCodecCustomizer.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientCodecCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.reactive.function.client; +package org.springframework.boot.http.client.reactive.web.autoconfigure; import java.util.List; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientSsl.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientSsl.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientSsl.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientSsl.java index daab430cf28..428eedd715d 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientSsl.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientSsl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.reactive.function.client; +package org.springframework.boot.http.client.reactive.web.autoconfigure; import java.util.function.Consumer; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/package-info.java b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/package-info.java rename to spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/package-info.java index 0db79b1d63b..54762976bc4 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/package-info.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/java/org/springframework/boot/http/client/reactive/web/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for Spring Framework's functional web client. */ -package org.springframework.boot.autoconfigure.web.reactive.function.client; +package org.springframework.boot.http.client.reactive.web.autoconfigure; diff --git a/spring-boot-project/spring-boot-http-client-reactive/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-http-client-reactive/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..b0b3a71ba79 --- /dev/null +++ b/spring-boot-project/spring-boot-http-client-reactive/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +org.springframework.boot.http.client.reactive.autoconfigure.ClientHttpConnectorAutoConfiguration +org.springframework.boot.http.client.reactive.service.autoconfigure.ReactiveHttpServiceClientAutoConfiguration +org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java similarity index 99% rename from spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java index 53d1c6b14c0..3fbc886cfe9 100644 --- a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java @@ -40,7 +40,6 @@ import org.springframework.boot.ssl.SslOptions; import org.springframework.boot.ssl.jks.JksSslStoreBundle; import org.springframework.boot.ssl.jks.JksSslStoreDetails; import org.springframework.boot.testsupport.classpath.resources.WithPackageResources; -import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories; import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory; import org.springframework.boot.web.server.Ssl; import org.springframework.boot.web.server.Ssl.ClientAuth; @@ -63,7 +62,6 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; * @author Phillip Webb * @author Andy Wilkinson */ -@DirtiesUrlFactories abstract class AbstractClientHttpConnectorBuilderTests { private static final Function ALWAYS_FOUND = (method) -> HttpStatus.FOUND; diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java similarity index 100% rename from spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java similarity index 100% rename from spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java similarity index 100% rename from spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java similarity index 100% rename from spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/TestCustomizer.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/TestCustomizer.java similarity index 100% rename from spring-boot-project/spring-boot-integration-tests/src/test/java/org/springframework/boot/http/client/reactive/TestCustomizer.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/TestCustomizer.java diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorAutoConfigurationTests.java similarity index 99% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorAutoConfigurationTests.java index a3af3b6cfe6..aa1941df01f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.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/reactive/ClientHttpConnectorsTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorsTests.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorsTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorsTests.java index 05cf03de1bd..59d8ee7a903 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectorsTests.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/ClientHttpConnectorsTests.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import java.time.Duration; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.ObjectFactory; -import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties.Connector; import org.springframework.boot.http.client.HttpRedirects; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; import org.springframework.boot.http.client.reactive.JettyClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ReactorClientHttpConnectorBuilder; +import org.springframework.boot.http.client.reactive.autoconfigure.AbstractClientHttpConnectorProperties.Connector; 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/reactive/HttpReactiveClientSettingsPropertiesTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/HttpReactiveClientSettingsPropertiesTests.java similarity index 90% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientSettingsPropertiesTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/HttpReactiveClientSettingsPropertiesTests.java index 6ad379ba83e..0e4e39cf035 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientSettingsPropertiesTests.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/autoconfigure/HttpReactiveClientSettingsPropertiesTests.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive; +package org.springframework.boot.http.client.reactive.autoconfigure; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties.Connector; import org.springframework.boot.http.client.reactive.HttpComponentsClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.JdkClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.JettyClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ReactorClientHttpConnectorBuilder; +import org.springframework.boot.http.client.reactive.autoconfigure.AbstractClientHttpConnectorProperties.Connector; 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/http/client/reactive/service/ReactiveHttpClientServicePropertiesTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpClientServicePropertiesTests.java similarity index 94% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpClientServicePropertiesTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpClientServicePropertiesTests.java index d0b19b8b0b1..20659e355b4 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpClientServicePropertiesTests.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpClientServicePropertiesTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.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.reactive.AbstractClientHttpConnectorProperties.Connector; -import org.springframework.boot.autoconfigure.http.client.reactive.service.ReactiveHttpClientServiceProperties.Group; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.http.client.HttpRedirects; +import org.springframework.boot.http.client.reactive.autoconfigure.AbstractClientHttpConnectorProperties.Connector; +import org.springframework.boot.http.client.reactive.service.autoconfigure.ReactiveHttpClientServiceProperties.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/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpServiceClientAutoConfigurationTests.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpServiceClientAutoConfigurationTests.java index 7b86be5851f..63c1d991396 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-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/service/autoconfigure/ReactiveHttpServiceClientAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.http.client.reactive.service; +package org.springframework.boot.http.client.reactive.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.reactive.ClientHttpConnectorAutoConfiguration; -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; import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; +import org.springframework.boot.http.client.reactive.autoconfigure.ClientHttpConnectorAutoConfiguration; +import org.springframework.boot.http.client.reactive.web.autoconfigure.WebClientAutoConfiguration; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.web.reactive.function.client.WebClientCustomizer; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientAutoConfigurationTests.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfigurationTests.java rename to spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientAutoConfigurationTests.java index 65cf7546007..844add4ff49 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-client-reactive/src/test/java/org/springframework/boot/http/client/reactive/web/autoconfigure/WebClientAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.web.reactive.function.client; +package org.springframework.boot.http.client.reactive.web.autoconfigure; import org.junit.jupiter.api.Test; @@ -42,7 +42,7 @@ class WebClientAutoConfigurationTests { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of( - org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration.class, + org.springframework.boot.http.client.reactive.autoconfigure.ClientHttpConnectorAutoConfiguration.class, WebClientAutoConfiguration.class, SslAutoConfiguration.class)); @Test diff --git a/spring-boot-project/spring-boot-integration-tests/src/test/resources/org/springframework/boot/http/client/reactive/test.jks b/spring-boot-project/spring-boot-http-client-reactive/src/test/resources/org/springframework/boot/http/client/reactive/test.jks similarity index 100% rename from spring-boot-project/spring-boot-integration-tests/src/test/resources/org/springframework/boot/http/client/reactive/test.jks rename to spring-boot-project/spring-boot-http-client-reactive/src/test/resources/org/springframework/boot/http/client/reactive/test.jks diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/resources/org/springframework/boot/autoconfigure/web/reactive/function/client/test.jks b/spring-boot-project/spring-boot-http-client-reactive/src/test/resources/org/springframework/boot/http/client/reactive/web/autoconfigure/test.jks similarity index 100% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/resources/org/springframework/boot/autoconfigure/web/reactive/function/client/test.jks rename to spring-boot-project/spring-boot-http-client-reactive/src/test/resources/org/springframework/boot/http/client/reactive/web/autoconfigure/test.jks diff --git a/spring-boot-project/spring-boot-http-codec/build.gradle b/spring-boot-project/spring-boot-http-codec/build.gradle index 8f1b87cca06..ec2b858e7df 100644 --- a/spring-boot-project/spring-boot-http-codec/build.gradle +++ b/spring-boot-project/spring-boot-http-codec/build.gradle @@ -29,10 +29,9 @@ dependencies { api(project(":spring-boot-project:spring-boot")) api("org.springframework:spring-web") - implementation("org.springframework:spring-webflux") - optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional(project(":spring-boot-project:spring-boot-jackson")) + optional("org.springframework:spring-webflux") testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) 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 32dd435b0fa..87ace22bd29 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 @@ -22,6 +22,7 @@ description = "Starter for testing Spring Boot applications with libraries inclu dependencies { api(project(":spring-boot-project:spring-boot-http-client")) + api(project(":spring-boot-project:spring-boot-http-client-reactive")) 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 09cafbc8146..5fee6ca15a1 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -79,6 +79,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-hateoas")) optional(project(":spring-boot-project:spring-boot-http-converter")) optional(project(":spring-boot-project:spring-boot-http-client")) + optional(project(":spring-boot-project:spring-boot-http-client-reactive")) 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/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 3816884f62e..083ac41a92e 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.converter.autoconfigure.HttpMessageConvertersAutoConfiguration +optional:org.springframework.boot.http.client.reactive.web.WebClientAutoConfiguration 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 +optional:org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration org.springframework.boot.test.autoconfigure.web.client.WebClientRestTemplateAutoConfiguration