From 401d74c124f7691ffacf86197bc7cf061b818707 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 6 May 2025 10:18:23 +0100 Subject: [PATCH] Move CodecCustomizer into spring-boot-http-codec Closes gh-46119 --- .../client/WebClientAutoConfiguration.java | 2 +- .../client/WebClientCodecCustomizer.java | 2 +- .../WebClientAutoConfigurationTests.java | 2 +- .../httpcodecs/MyCodecsConfiguration.java | 2 +- .../httpcodecs/MyCodecsConfiguration.kt | 2 +- .../boot/http}/codec/CodecCustomizer.java | 4 +-- .../CodecsAutoConfiguration.java | 2 +- .../boot/http}/codec/package-info.java | 2 +- .../CodecsAutoConfigurationTests.java | 2 +- ...ingBootWebTestClientBuilderCustomizer.java | 2 +- .../WebTestClientAutoConfiguration.java | 2 +- .../WebTestClientAutoConfigurationTests.java | 2 +- .../spring-boot-web-server-test/build.gradle | 1 + .../WebTestClientContextCustomizer.java | 32 +++++++++++++------ .../ReactiveMultipartAutoConfiguration.java | 2 +- .../WebFluxAutoConfiguration.java | 2 +- ...activeMultipartAutoConfigurationTests.java | 2 +- .../WebFluxAutoConfigurationTests.java | 2 +- 18 files changed, 41 insertions(+), 26 deletions(-) rename spring-boot-project/{spring-boot/src/main/java/org/springframework/boot/web => spring-boot-http-codec/src/main/java/org/springframework/boot/http}/codec/CodecCustomizer.java (94%) rename spring-boot-project/{spring-boot/src/main/java/org/springframework/boot/web => spring-boot-http-codec/src/main/java/org/springframework/boot/http}/codec/package-info.java (93%) 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-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfiguration.java index d6b11ff74c5..c5e8dc84c33 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-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfiguration.java @@ -26,8 +26,8 @@ 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.codec.CodecCustomizer; import org.springframework.boot.ssl.SslBundles; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.boot.web.reactive.function.client.WebClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientCodecCustomizer.java index e725ceb865c..4488c24b753 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-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientCodecCustomizer.java @@ -18,7 +18,7 @@ package org.springframework.boot.autoconfigure.web.reactive.function.client; import java.util.List; -import org.springframework.boot.web.codec.CodecCustomizer; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.web.reactive.function.client.WebClientCustomizer; import org.springframework.web.reactive.function.client.WebClient; 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-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfigurationTests.java index a11dcb70c35..65cf7546007 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-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfigurationTests.java @@ -20,8 +20,8 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.boot.web.reactive.function.client.WebClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.java index df6eb1ee4b2..1f62500cc4d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.boot.docs.web.reactive.webflux.httpcodecs; -import org.springframework.boot.web.codec.CodecCustomizer; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.codec.ServerSentEventHttpMessageReader; diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt index b30142e8052..857bd7d7e49 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt @@ -16,7 +16,7 @@ package org.springframework.boot.docs.web.reactive.webflux.httpcodecs -import org.springframework.boot.web.codec.CodecCustomizer +import org.springframework.boot.http.codec.CodecCustomizer import org.springframework.context.annotation.Bean import org.springframework.http.codec.CodecConfigurer import org.springframework.http.codec.ServerSentEventHttpMessageReader diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java b/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/CodecCustomizer.java similarity index 94% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java rename to spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/CodecCustomizer.java index a96e3682117..5d60dbf3895 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java +++ b/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/CodecCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.web.codec; +package org.springframework.boot.http.codec; import org.springframework.http.codec.CodecConfigurer; @@ -23,7 +23,7 @@ import org.springframework.http.codec.CodecConfigurer; * client and/or server with a {@link CodecConfigurer}. * * @author Brian Clozel - * @since 2.0.0 + * @since 4.0.0 */ @FunctionalInterface public interface CodecCustomizer { diff --git a/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfiguration.java b/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfiguration.java index 66068ec09c0..c2a294025b9 100644 --- a/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfiguration.java @@ -24,7 +24,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.PropertyMapper; -import org.springframework.boot.web.codec.CodecCustomizer; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/package-info.java b/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/package-info.java similarity index 93% rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/package-info.java rename to spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/package-info.java index ce303cf5dd2..d6b8bdfa7ee 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/package-info.java +++ b/spring-boot-project/spring-boot-http-codec/src/main/java/org/springframework/boot/http/codec/package-info.java @@ -17,4 +17,4 @@ /** * Support for web-based codecs. */ -package org.springframework.boot.web.codec; +package org.springframework.boot.http.codec; diff --git a/spring-boot-project/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java b/spring-boot-project/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java index 0f592b21c1a..d43c0bc6bd3 100644 --- a/spring-boot-project/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java @@ -22,9 +22,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/SpringBootWebTestClientBuilderCustomizer.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/SpringBootWebTestClientBuilderCustomizer.java index 4c9560a991b..0f9bbc4f1cf 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/SpringBootWebTestClientBuilderCustomizer.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/SpringBootWebTestClientBuilderCustomizer.java @@ -20,7 +20,7 @@ import java.time.Duration; import java.util.Collection; import java.util.function.Consumer; -import org.springframework.boot.web.codec.CodecCustomizer; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.web.server.test.client.reactive.WebTestClientBuilderCustomizer; import org.springframework.http.codec.ClientCodecConfigurer; import org.springframework.test.web.reactive.server.WebTestClient; diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java index 8904ba24ae2..bff5a96b89b 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java @@ -25,7 +25,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.codec.CodecCustomizer; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.web.server.test.client.reactive.WebTestClientBuilderCustomizer; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java index ad68bc587ae..d8cfed8cff7 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java @@ -22,9 +22,9 @@ import java.util.List; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; diff --git a/spring-boot-project/spring-boot-web-server-test/build.gradle b/spring-boot-project/spring-boot-web-server-test/build.gradle index df19c5e53ad..535cb27a2d1 100644 --- a/spring-boot-project/spring-boot-web-server-test/build.gradle +++ b/spring-boot-project/spring-boot-web-server-test/build.gradle @@ -30,6 +30,7 @@ dependencies { implementation(project(":spring-boot-project:spring-boot-test")) + optional(project(":spring-boot-project:spring-boot-http-codec")) optional(project(":spring-boot-project:spring-boot-web-server")) optional("jakarta.servlet:jakarta.servlet-api") optional("org.apache.httpcomponents.client5:httpclient5") diff --git a/spring-boot-project/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/client/reactive/WebTestClientContextCustomizer.java b/spring-boot-project/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/client/reactive/WebTestClientContextCustomizer.java index 7a2893a2ff3..0cbae1ed6c4 100644 --- a/spring-boot-project/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/client/reactive/WebTestClientContextCustomizer.java +++ b/spring-boot-project/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/client/reactive/WebTestClientContextCustomizer.java @@ -32,8 +32,8 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.boot.WebApplicationType; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.boot.web.server.reactive.AbstractReactiveWebServerFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -57,6 +57,13 @@ import org.springframework.web.reactive.function.client.ExchangeStrategies; */ class WebTestClientContextCustomizer implements ContextCustomizer { + private static final boolean codecCustomizerPresent; + + static { + ClassLoader loader = WebTestClientContextCustomizerFactory.class.getClassLoader(); + codecCustomizerPresent = ClassUtils.isPresent("org.springframework.boot.http.codec.CodecCustomizer", loader); + } + @Override public void customizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) { if (AotDetector.useGeneratedArtifacts()) { @@ -172,7 +179,9 @@ class WebTestClientContextCustomizer implements ContextCustomizer { String baseUrl = getBaseUrl(sslEnabled, port); WebTestClient.Builder builder = WebTestClient.bindToServer(); customizeWebTestClientBuilder(builder, this.applicationContext); - customizeWebTestClientCodecs(builder, this.applicationContext); + if (codecCustomizerPresent) { + WebTestClientCodecCustomizer.customizeWebTestClientCodecs(builder, this.applicationContext); + } return builder.baseUrl(baseUrl).build(); } @@ -231,14 +240,19 @@ class WebTestClientContextCustomizer implements ContextCustomizer { } } - private void customizeWebTestClientCodecs(WebTestClient.Builder clientBuilder, ApplicationContext context) { - Collection codecCustomizers = context.getBeansOfType(CodecCustomizer.class).values(); - if (!CollectionUtils.isEmpty(codecCustomizers)) { - clientBuilder.exchangeStrategies(ExchangeStrategies.builder() - .codecs((codecs) -> codecCustomizers - .forEach((codecCustomizer) -> codecCustomizer.customize(codecs))) - .build()); + private static final class WebTestClientCodecCustomizer { + + private static void customizeWebTestClientCodecs(WebTestClient.Builder clientBuilder, + ApplicationContext context) { + Collection codecCustomizers = context.getBeansOfType(CodecCustomizer.class).values(); + if (!CollectionUtils.isEmpty(codecCustomizers)) { + clientBuilder.exchangeStrategies(ExchangeStrategies.builder() + .codecs((codecs) -> codecCustomizers + .forEach((codecCustomizer) -> codecCustomizer.customize(codecs))) + .build()); + } } + } } diff --git a/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfiguration.java b/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfiguration.java index e0748fd292b..34e3c841c4d 100644 --- a/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfiguration.java +++ b/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfiguration.java @@ -27,7 +27,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplicat import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.PropertyMapper; -import org.springframework.boot.web.codec.CodecCustomizer; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.core.annotation.Order; import org.springframework.http.codec.multipart.DefaultPartHttpMessageReader; diff --git a/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfiguration.java b/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfiguration.java index 4095cdd1d2f..8c6236f430c 100644 --- a/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfiguration.java +++ b/spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfiguration.java @@ -44,9 +44,9 @@ import org.springframework.boot.autoconfigure.web.format.DateTimeFormatters; import org.springframework.boot.autoconfigure.web.format.WebConversionService; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.convert.ApplicationConversionService; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration; import org.springframework.boot.validation.autoconfigure.ValidatorAdapter; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.boot.webflux.autoconfigure.WebFluxProperties.Format; import org.springframework.boot.webflux.filter.OrderedHiddenHttpMethodFilter; import org.springframework.context.ApplicationContext; diff --git a/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfigurationTests.java b/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfigurationTests.java index 0dadf0900bc..6d95c34939b 100644 --- a/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/ReactiveMultipartAutoConfigurationTests.java @@ -21,10 +21,10 @@ import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.http.codec.multipart.DefaultPartHttpMessageReader; import org.springframework.http.codec.multipart.PartEventHttpMessageReader; import org.springframework.http.codec.support.DefaultServerCodecConfigurer; diff --git a/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfigurationTests.java b/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfigurationTests.java index b95ad756de6..760f27be371 100644 --- a/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/WebFluxAutoConfigurationTests.java @@ -48,13 +48,13 @@ import org.springframework.aop.support.AopUtils; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.http.codec.CodecCustomizer; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ContextConsumer; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.testsupport.classpath.resources.WithResource; import org.springframework.boot.validation.autoconfigure.ValidationAutoConfiguration; import org.springframework.boot.validation.autoconfigure.ValidatorAdapter; -import org.springframework.boot.web.codec.CodecCustomizer; import org.springframework.boot.web.context.reactive.ReactiveWebApplicationContext; import org.springframework.boot.web.server.reactive.MockReactiveWebServerFactory; import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration.WebFluxConfig;