Skip to content

Commit f1dd548

Browse files
committed
Create spring-boot-http-codec module
1 parent 9734328 commit f1dd548

File tree

31 files changed

+70
-170
lines changed

31 files changed

+70
-170
lines changed

Diff for: settings.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ include "spring-boot-project:spring-boot-h2console"
7878
include "spring-boot-project:spring-boot-hateoas"
7979
include "spring-boot-project:spring-boot-hazelcast"
8080
include "spring-boot-project:spring-boot-http"
81+
include "spring-boot-project:spring-boot-http-codec"
8182
include "spring-boot-project:spring-boot-integration"
8283
include "spring-boot-project:spring-boot-jackson"
8384
include "spring-boot-project:spring-boot-jdbc"

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ dependencies {
4242
optional(project(":spring-boot-project:spring-boot-flyway"))
4343
optional(project(":spring-boot-project:spring-boot-hazelcast"))
4444
optional(project(":spring-boot-project:spring-boot-http"))
45+
optional(project(":spring-boot-project:spring-boot-http-codec"))
4546
optional(project(":spring-boot-project:spring-boot-integration"))
4647
optional(project(":spring-boot-project:spring-boot-jackson"))
4748
optional(project(":spring-boot-project:spring-boot-jdbc"))

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebFluxEndpointAccessIntegrationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration;
2525
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration;
2626
import org.springframework.boot.autoconfigure.AutoConfigurations;
27-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
2827
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
2928
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
29+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
3030
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
3131
import org.springframework.boot.reactor.netty.autoconfigure.NettyReactiveWebServerAutoConfiguration;
3232
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebFluxEndpointCorsIntegrationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -26,9 +26,9 @@
2626
import org.springframework.boot.actuate.autoconfigure.endpoint.web.reactive.WebFluxEndpointManagementContextConfiguration;
2727
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration;
2828
import org.springframework.boot.autoconfigure.AutoConfigurations;
29-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
3029
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
3130
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
31+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
3232
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
3333
import org.springframework.boot.test.context.runner.ContextConsumer;
3434
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebFluxEndpointIntegrationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -25,9 +25,9 @@
2525
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration;
2626
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration;
2727
import org.springframework.boot.autoconfigure.AutoConfigurations;
28-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
2928
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
3029
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
30+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
3131
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
3232
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
3333
import org.springframework.context.ApplicationContext;

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebFluxHealthEndpointAdditionalPathIntegrationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration;
2525
import org.springframework.boot.actuate.autoconfigure.web.server.netty.NettyReactiveManagementContextAutoConfiguration;
2626
import org.springframework.boot.autoconfigure.AutoConfigurations;
27-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
2827
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
2928
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
29+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
3030
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
3131
import org.springframework.boot.reactor.netty.autoconfigure.NettyReactiveWebServerAutoConfiguration;
3232
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;

Diff for: spring-boot-project/spring-boot-actuator/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ dependencies {
114114
testImplementation("org.glassfish.jersey.media:jersey-media-json-jackson")
115115
testImplementation("com.squareup.okhttp3:mockwebserver")
116116

117+
testRuntimeOnly(project(":spring-boot-project:spring-boot-http-codec"))
117118
testRuntimeOnly("ch.qos.logback:logback-classic")
118119
testRuntimeOnly("io.projectreactor.netty:reactor-netty-http")
119120
testRuntimeOnly("jakarta.xml.bind:jakarta.xml.bind-api")

Diff for: spring-boot-project/spring-boot-autoconfigure-all/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ dependencies {
4747
optional(project(":spring-boot-project:spring-boot-h2console"))
4848
optional(project(":spring-boot-project:spring-boot-hazelcast"))
4949
optional(project(":spring-boot-project:spring-boot-http"))
50+
optional(project(":spring-boot-project:spring-boot-http-codec"))
5051
optional(project(":spring-boot-project:spring-boot-jackson"))
5152
optional(project(":spring-boot-project:spring-boot-jdbc"))
5253
optional(project(":spring-boot-project:spring-boot-jsonb"))

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/codec/CodecProperties.java

-66
This file was deleted.

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/codec/package-info.java

-20
This file was deleted.

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/WebFluxAutoConfiguration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3333
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3434
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
35-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
3635
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
3736
import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProviders;
3837
import org.springframework.boot.autoconfigure.thread.Threading;
@@ -46,6 +45,7 @@
4645
import org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.Format;
4746
import org.springframework.boot.context.properties.EnableConfigurationProperties;
4847
import org.springframework.boot.convert.ApplicationConversionService;
48+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
4949
import org.springframework.boot.validation.autoconfigure.ValidatorAdapter;
5050
import org.springframework.boot.web.codec.CodecCustomizer;
5151
import org.springframework.boot.web.reactive.filter.OrderedHiddenHttpMethodFilter;

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/WebClientAutoConfiguration.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -23,7 +23,7 @@
2323
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2424
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
26-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
26+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
2727
import org.springframework.boot.ssl.SslBundles;
2828
import org.springframework.boot.web.codec.CodecCustomizer;
2929
import org.springframework.boot.web.reactive.function.client.WebClientCustomizer;

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ org.springframework.boot.autoconfigure.graphql.security.GraphQlWebFluxSecurityAu
1212
org.springframework.boot.autoconfigure.graphql.security.GraphQlWebMvcSecurityAutoConfiguration
1313
org.springframework.boot.autoconfigure.graphql.servlet.GraphQlWebMvcAutoConfiguration
1414
org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration
15-
org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration
1615
org.springframework.boot.autoconfigure.netty.NettyAutoConfiguration
1716
org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration
1817
org.springframework.boot.autoconfigure.session.SessionAutoConfiguration

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/graphql/reactive/GraphQlWebFluxAutoConfigurationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
import org.springframework.boot.autoconfigure.AutoConfigurations;
3030
import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration;
3131
import org.springframework.boot.autoconfigure.graphql.GraphQlTestDataFetchers;
32-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
3332
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
3433
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
34+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
3535
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
3636
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
3737
import org.springframework.boot.testsupport.classpath.resources.WithResource;

Diff for: spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebFluxSecurityAutoConfigurationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration;
2929
import org.springframework.boot.autoconfigure.graphql.GraphQlTestDataFetchers;
3030
import org.springframework.boot.autoconfigure.graphql.reactive.GraphQlWebFluxAutoConfiguration;
31-
import org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration;
3231
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
3332
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
33+
import org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration;
3434
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
3535
import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration;
3636
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;

Diff for: spring-boot-project/spring-boot-dependencies/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -2021,6 +2021,7 @@ bom {
20212021
"spring-boot-hateoas",
20222022
"spring-boot-hazelcast",
20232023
"spring-boot-http",
2024+
"spring-boot-http-codec",
20242025
"spring-boot-integration",
20252026
"spring-boot-jackson",
20262027
"spring-boot-jarmode-tools",

Diff for: spring-boot-project/spring-boot-docs/build.gradle

+3
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ dependencies {
8484
autoConfiguration(project(path: ":spring-boot-project:spring-boot-hateoas", configuration: "autoConfigurationMetadata"))
8585
autoConfiguration(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "autoConfigurationMetadata"))
8686
autoConfiguration(project(path: ":spring-boot-project:spring-boot-http", configuration: "autoConfigurationMetadata"))
87+
autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-codec", configuration: "autoConfigurationMetadata"))
8788
autoConfiguration(project(path: ":spring-boot-project:spring-boot-integration", configuration: "autoConfigurationMetadata"))
8889
autoConfiguration(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "autoConfigurationMetadata"))
8990
autoConfiguration(project(path: ":spring-boot-project:spring-boot-jdbc", configuration: "autoConfigurationMetadata"))
@@ -153,6 +154,7 @@ dependencies {
153154
configurationProperties(project(path: ":spring-boot-project:spring-boot-hateoas", configuration: "configurationPropertiesMetadata"))
154155
configurationProperties(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "configurationPropertiesMetadata"))
155156
configurationProperties(project(path: ":spring-boot-project:spring-boot-http", configuration: "configurationPropertiesMetadata"))
157+
configurationProperties(project(path: ":spring-boot-project:spring-boot-http-codec", configuration: "configurationPropertiesMetadata"))
156158
configurationProperties(project(path: ":spring-boot-project:spring-boot-integration", configuration: "configurationPropertiesMetadata"))
157159
configurationProperties(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "configurationPropertiesMetadata"))
158160
configurationProperties(project(path: ":spring-boot-project:spring-boot-jdbc", configuration: "configurationPropertiesMetadata"))
@@ -202,6 +204,7 @@ dependencies {
202204
implementation(project(path: ":spring-boot-project:spring-boot-devtools"))
203205
implementation(project(path: ":spring-boot-project:spring-boot-docker-compose"))
204206
implementation(project(path: ":spring-boot-project:spring-boot-http"))
207+
implementation(project(path: ":spring-boot-project:spring-boot-http-codec"))
205208
implementation(project(path: ":spring-boot-project:spring-boot-integration"))
206209
implementation(project(path: ":spring-boot-project:spring-boot-jackson"))
207210
implementation(project(path: ":spring-boot-project:spring-boot-jdbc"))
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
plugins {
2+
id "java-library"
3+
id "org.springframework.boot.auto-configuration"
4+
id "org.springframework.boot.configuration-properties"
5+
id "org.springframework.boot.deployed"
6+
id "org.springframework.boot.optional-dependencies"
7+
}
8+
9+
description = "Spring Boot HTTP Codec"
10+
11+
dependencies {
12+
api(project(":spring-boot-project:spring-boot"))
13+
api("org.springframework:spring-web")
14+
15+
implementation("org.springframework:spring-webflux")
16+
17+
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
18+
optional(project(":spring-boot-project:spring-boot-jackson"))
19+
20+
testImplementation(project(":spring-boot-project:spring-boot-test"))
21+
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
22+
23+
testRuntimeOnly("ch.qos.logback:logback-classic")
24+
}
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.http.codec;
17+
package org.springframework.boot.http.codec.autoconfigure;
1818

1919
import com.fasterxml.jackson.databind.ObjectMapper;
2020

@@ -68,19 +68,15 @@ CodecCustomizer jacksonCodecCustomizer(ObjectMapper objectMapper) {
6868

6969
}
7070

71-
@SuppressWarnings("removal")
7271
@Configuration(proxyBeanMethods = false)
73-
@EnableConfigurationProperties({ org.springframework.boot.autoconfigure.codec.CodecProperties.class,
74-
HttpCodecsProperties.class })
72+
@EnableConfigurationProperties(HttpCodecsProperties.class)
7573
static class DefaultCodecsConfiguration {
7674

7775
@Bean
78-
DefaultCodecCustomizer defaultCodecCustomizer(
79-
org.springframework.boot.autoconfigure.codec.CodecProperties codecProperties,
80-
HttpCodecsProperties httpCodecProperties, Environment environment) {
81-
return new DefaultCodecCustomizer(
82-
httpCodecProperties.isLogRequestDetails(codecProperties::isLogRequestDetails),
83-
httpCodecProperties.getMaxInMemorySize(codecProperties::getMaxInMemorySize));
76+
DefaultCodecCustomizer defaultCodecCustomizer(HttpCodecsProperties httpCodecProperties,
77+
Environment environment) {
78+
return new DefaultCodecCustomizer(httpCodecProperties.isLogRequestDetails(),
79+
httpCodecProperties.getMaxInMemorySize());
8480
}
8581

8682
static final class DefaultCodecCustomizer implements CodecCustomizer, Ordered {
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.http.codec;
18-
19-
import java.util.function.Supplier;
17+
package org.springframework.boot.http.codec.autoconfigure;
2018

2119
import org.springframework.boot.context.properties.ConfigurationProperties;
2220
import org.springframework.util.unit.DataSize;
@@ -36,9 +34,6 @@ public class HttpCodecsProperties {
3634
*/
3735
private boolean logRequestDetails;
3836

39-
@Deprecated(since = "3.5.0", forRemoval = true)
40-
private boolean logRequestDetailsBound = false;
41-
4237
/**
4338
* Limit on the number of bytes that can be buffered whenever the input stream needs
4439
* to be aggregated. This applies only to the auto-configured WebFlux server and
@@ -47,33 +42,20 @@ public class HttpCodecsProperties {
4742
*/
4843
private DataSize maxInMemorySize;
4944

50-
@Deprecated(since = "3.5.0", forRemoval = true)
51-
private boolean maxInMemorySizeBound = false;
52-
5345
public boolean isLogRequestDetails() {
5446
return this.logRequestDetails;
5547
}
5648

57-
boolean isLogRequestDetails(Supplier<Boolean> fallback) {
58-
return this.logRequestDetailsBound ? this.logRequestDetails : fallback.get();
59-
}
60-
6149
public void setLogRequestDetails(boolean logRequestDetails) {
6250
this.logRequestDetails = logRequestDetails;
63-
this.logRequestDetailsBound = true;
6451
}
6552

6653
public DataSize getMaxInMemorySize() {
6754
return this.maxInMemorySize;
6855
}
6956

70-
DataSize getMaxInMemorySize(Supplier<DataSize> fallback) {
71-
return this.maxInMemorySizeBound ? this.maxInMemorySize : fallback.get();
72-
}
73-
7457
public void setMaxInMemorySize(DataSize maxInMemorySize) {
7558
this.maxInMemorySize = maxInMemorySize;
76-
this.maxInMemorySizeBound = true;
7759
}
7860

7961
}

0 commit comments

Comments
 (0)