Skip to content

Commit 52148a1

Browse files
committed
Consistently use CodecConfigurer for configuration
This commit changes the `ExchangeStrategies` and `HandlerStrategies` interfaces to consistently use the `CodecConfigurer` (and sub-interfaces) for configuring codecs on the server and on the client. Issue: SPR-15682
1 parent 018cc45 commit 52148a1

File tree

5 files changed

+14
-57
lines changed

5 files changed

+14
-57
lines changed

spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultExchangeStrategiesBuilder.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.function.Consumer;
2323

2424
import org.springframework.http.codec.ClientCodecConfigurer;
25-
import org.springframework.http.codec.CodecConfigurer;
2625
import org.springframework.http.codec.HttpMessageReader;
2726
import org.springframework.http.codec.HttpMessageWriter;
2827
import org.springframework.util.Assert;
@@ -47,18 +46,9 @@ public void defaultConfiguration() {
4746
}
4847

4948
@Override
50-
public ExchangeStrategies.Builder defaultCodecs(
51-
Consumer<ClientCodecConfigurer.ClientDefaultCodecs> consumer) {
49+
public ExchangeStrategies.Builder codecs(Consumer<ClientCodecConfigurer> consumer) {
5250
Assert.notNull(consumer, "'consumer' must not be null");
53-
consumer.accept(this.codecConfigurer.defaultCodecs());
54-
return this;
55-
}
56-
57-
@Override
58-
public ExchangeStrategies.Builder customCodecs(
59-
Consumer<CodecConfigurer.CustomCodecs> consumer) {
60-
Assert.notNull(consumer, "'consumer' must not be null");
61-
consumer.accept(this.codecConfigurer.customCodecs());
51+
consumer.accept(this.codecConfigurer);
6252
return this;
6353
}
6454

spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeStrategies.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.function.Consumer;
2121

2222
import org.springframework.http.codec.ClientCodecConfigurer;
23-
import org.springframework.http.codec.CodecConfigurer;
2423
import org.springframework.http.codec.HttpMessageReader;
2524
import org.springframework.http.codec.HttpMessageWriter;
2625

@@ -88,20 +87,11 @@ static Builder empty() {
8887
interface Builder {
8988

9089
/**
91-
* Customize the list of default client-side HTTP message readers and writers.
92-
* @param consumer the consumer to customize the default codecs
90+
* Customize the list of client-side HTTP message readers and writers.
91+
* @param consumer the consumer to customize the codecs
9392
* @return this builder
94-
* @see #customCodecs(Consumer)
9593
*/
96-
Builder defaultCodecs(Consumer<ClientCodecConfigurer.ClientDefaultCodecs> consumer);
97-
98-
/**
99-
* Customize the list of custom client-side HTTP message readers and writers.
100-
* @param consumer the consumer to customize the custom codecs
101-
* @return this builder
102-
* @see #defaultCodecs(Consumer)
103-
*/
104-
Builder customCodecs(Consumer<CodecConfigurer.CustomCodecs> consumer);
94+
Builder codecs(Consumer<ClientCodecConfigurer> consumer);
10595

10696
/**
10797
* Builds the {@link ExchangeStrategies}.

spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultHandlerStrategiesBuilder.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,16 @@
2121
import java.util.List;
2222
import java.util.function.Consumer;
2323

24-
import org.springframework.http.codec.CodecConfigurer;
2524
import org.springframework.http.codec.HttpMessageReader;
2625
import org.springframework.http.codec.HttpMessageWriter;
2726
import org.springframework.http.codec.ServerCodecConfigurer;
2827
import org.springframework.util.Assert;
2928
import org.springframework.web.reactive.result.view.ViewResolver;
30-
import org.springframework.web.server.i18n.LocaleContextResolver;
3129
import org.springframework.web.server.WebExceptionHandler;
3230
import org.springframework.web.server.WebFilter;
3331
import org.springframework.web.server.handler.ResponseStatusExceptionHandler;
3432
import org.springframework.web.server.i18n.AcceptHeaderLocaleContextResolver;
33+
import org.springframework.web.server.i18n.LocaleContextResolver;
3534

3635
/**
3736
* Default implementation of {@link HandlerStrategies.Builder}.
@@ -63,18 +62,9 @@ public void defaultConfiguration() {
6362
}
6463

6564
@Override
66-
public HandlerStrategies.Builder defaultCodecs(
67-
Consumer<ServerCodecConfigurer.ServerDefaultCodecs> consumer) {
68-
Assert.notNull(consumer, "'consumer' must not be null");
69-
consumer.accept(this.codecConfigurer.defaultCodecs());
70-
return this;
71-
}
72-
73-
@Override
74-
public HandlerStrategies.Builder customCodecs(
75-
Consumer<CodecConfigurer.CustomCodecs> consumer) {
65+
public HandlerStrategies.Builder codecs(Consumer<ServerCodecConfigurer> consumer) {
7666
Assert.notNull(consumer, "'consumer' must not be null");
77-
consumer.accept(this.codecConfigurer.customCodecs());
67+
consumer.accept(this.codecConfigurer);
7868
return this;
7969
}
8070

spring-webflux/src/main/java/org/springframework/web/reactive/function/server/HandlerStrategies.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919
import java.util.List;
2020
import java.util.function.Consumer;
2121

22-
import org.springframework.http.codec.CodecConfigurer;
2322
import org.springframework.http.codec.HttpMessageReader;
2423
import org.springframework.http.codec.HttpMessageWriter;
2524
import org.springframework.http.codec.ServerCodecConfigurer;
2625
import org.springframework.web.reactive.result.view.ViewResolver;
27-
import org.springframework.web.server.i18n.LocaleContextResolver;
2826
import org.springframework.web.server.WebExceptionHandler;
2927
import org.springframework.web.server.WebFilter;
28+
import org.springframework.web.server.i18n.LocaleContextResolver;
3029

3130
/**
3231
* Defines the strategies to be used for processing {@link HandlerFunction}s. An instance of
@@ -118,20 +117,11 @@ static Builder empty() {
118117
interface Builder {
119118

120119
/**
121-
* Customize the list of default server-side HTTP message readers and writers.
122-
* @param consumer the consumer to customize the default codecs
123-
* @return this builder
124-
* @see #customCodecs(Consumer)
125-
*/
126-
Builder defaultCodecs(Consumer<ServerCodecConfigurer.ServerDefaultCodecs> consumer);
127-
128-
/**
129-
* Customize the list of custom server-side HTTP message readers and writers.
130-
* @param consumer the consumer to customize the custom codecs
120+
* Customize the list of server-side HTTP message readers and writers.
121+
* @param consumer the consumer to customize the codecs
131122
* @return this builder
132-
* @see #defaultCodecs(Consumer)
133123
*/
134-
Builder customCodecs(Consumer<CodecConfigurer.CustomCodecs> consumer);
124+
Builder codecs(Consumer<ServerCodecConfigurer> consumer);
135125

136126
/**
137127
* Add the given view resolver to this builder.

spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultEntityResponseBuilderTests.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@
4848
import org.springframework.web.reactive.result.view.ViewResolver;
4949

5050
import static java.nio.charset.StandardCharsets.UTF_8;
51-
import static org.junit.Assert.*;
51+
import static org.junit.Assert.assertNotNull;
52+
import static org.junit.Assert.assertSame;
5253

5354
/**
5455
* @author Arjen Poutsma
@@ -203,10 +204,6 @@ public List<ViewResolver> viewResolvers() {
203204
return Collections.<ViewResolver>emptyList();
204205
}
205206
};
206-
HandlerStrategies strategies = HandlerStrategies.empty()
207-
.customCodecs(configurer -> configurer.writer(new EncoderHttpMessageWriter<>(CharSequenceEncoder.allMimeTypes())))
208-
.build();
209-
210207
StepVerifier.create(result)
211208
.consumeNextWith(response -> {
212209
StepVerifier.create(response.entity())

0 commit comments

Comments
 (0)