diff --git a/spring-web/src/main/java/org/springframework/http/codec/AbstractCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/AbstractCodecConfigurer.java index 7737456c55..ed426893ef 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/AbstractCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/AbstractCodecConfigurer.java @@ -74,7 +74,7 @@ public abstract class AbstractCodecConfigurer { /** * Provide overrides for built-in HTTP message readers or writers. */ - public DefaultCodecConfigurer defaultCodec() { + public DefaultCodecConfigurer defaultCodecs() { return this.defaultCodecs; } @@ -83,13 +83,13 @@ public abstract class AbstractCodecConfigurer { *

By default this is set to {@code "true"}. */ public void registerDefaults(boolean registerDefaults) { - this.defaultCodec().setSuppressed(!registerDefaults); + this.defaultCodecs().setSuppressed(!registerDefaults); } /** * Register a custom encoder or decoder. */ - public CustomCodecConfigurer customCodec() { + public CustomCodecConfigurer customCodecs() { return this.customCodecs; } @@ -102,13 +102,13 @@ public abstract class AbstractCodecConfigurer { List> result = new ArrayList<>(); addDefaultTypedReaders(result); - customCodec().addTypedReadersTo(result); + customCodecs().addTypedReadersTo(result); addDefaultObjectReaders(result); - customCodec().addObjectReadersTo(result); + customCodecs().addObjectReadersTo(result); // String + "*/*" - defaultCodec().addStringReaderTo(result); + defaultCodecs().addStringReaderTo(result); return result; } @@ -116,11 +116,11 @@ public abstract class AbstractCodecConfigurer { * Add built-in, concrete, Java type readers. */ protected void addDefaultTypedReaders(List> result) { - defaultCodec().addReaderTo(result, ByteArrayDecoder.class, ByteArrayDecoder::new); - defaultCodec().addReaderTo(result, ByteBufferDecoder.class, ByteBufferDecoder::new); - defaultCodec().addReaderTo(result, DataBufferDecoder.class, DataBufferDecoder::new); - defaultCodec().addReaderTo(result, ResourceDecoder.class, ResourceDecoder::new); - defaultCodec().addStringReaderTextOnlyTo(result); + defaultCodecs().addReaderTo(result, ByteArrayDecoder.class, ByteArrayDecoder::new); + defaultCodecs().addReaderTo(result, ByteBufferDecoder.class, ByteBufferDecoder::new); + defaultCodecs().addReaderTo(result, DataBufferDecoder.class, DataBufferDecoder::new); + defaultCodecs().addReaderTo(result, ResourceDecoder.class, ResourceDecoder::new); + defaultCodecs().addStringReaderTextOnlyTo(result); } /** @@ -128,10 +128,10 @@ public abstract class AbstractCodecConfigurer { */ protected void addDefaultObjectReaders(List> result) { if (jaxb2Present) { - defaultCodec().addReaderTo(result, Jaxb2XmlDecoder.class, Jaxb2XmlDecoder::new); + defaultCodecs().addReaderTo(result, Jaxb2XmlDecoder.class, Jaxb2XmlDecoder::new); } if (jackson2Present) { - defaultCodec().addReaderTo(result, Jackson2JsonDecoder.class, Jackson2JsonDecoder::new); + defaultCodecs().addReaderTo(result, Jackson2JsonDecoder.class, Jackson2JsonDecoder::new); } } @@ -143,13 +143,13 @@ public abstract class AbstractCodecConfigurer { List> result = new ArrayList<>(); addDefaultTypedWriter(result); - customCodec().addTypedWritersTo(result); + customCodecs().addTypedWritersTo(result); addDefaultObjectWriters(result); - customCodec().addObjectWritersTo(result); + customCodecs().addObjectWritersTo(result); // String + "*/*" - defaultCodec().addStringWriterTo(result); + defaultCodecs().addStringWriterTo(result); return result; } @@ -157,11 +157,11 @@ public abstract class AbstractCodecConfigurer { * Add built-in, concrete, Java type readers. */ protected void addDefaultTypedWriter(List> result) { - defaultCodec().addWriterTo(result, ByteArrayEncoder.class, ByteArrayEncoder::new); - defaultCodec().addWriterTo(result, ByteBufferEncoder.class, ByteBufferEncoder::new); - defaultCodec().addWriterTo(result, DataBufferEncoder.class, DataBufferEncoder::new); - defaultCodec().addWriterTo(result, ResourceHttpMessageWriter::new); - defaultCodec().addStringWriterTextPlainOnlyTo(result); + defaultCodecs().addWriterTo(result, ByteArrayEncoder.class, ByteArrayEncoder::new); + defaultCodecs().addWriterTo(result, ByteBufferEncoder.class, ByteBufferEncoder::new); + defaultCodecs().addWriterTo(result, DataBufferEncoder.class, DataBufferEncoder::new); + defaultCodecs().addWriterTo(result, ResourceHttpMessageWriter::new); + defaultCodecs().addStringWriterTextPlainOnlyTo(result); } /** @@ -169,10 +169,10 @@ public abstract class AbstractCodecConfigurer { */ protected void addDefaultObjectWriters(List> result) { if (jaxb2Present) { - defaultCodec().addWriterTo(result, Jaxb2XmlEncoder.class, Jaxb2XmlEncoder::new); + defaultCodecs().addWriterTo(result, Jaxb2XmlEncoder.class, Jaxb2XmlEncoder::new); } if (jackson2Present) { - defaultCodec().addWriterTo(result, Jackson2JsonEncoder.class, Jackson2JsonEncoder::new); + defaultCodecs().addWriterTo(result, Jackson2JsonEncoder.class, Jackson2JsonEncoder::new); } } diff --git a/spring-web/src/main/java/org/springframework/http/codec/ClientCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/ClientCodecConfigurer.java index 083e215ea7..07c53af689 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/ClientCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/ClientCodecConfigurer.java @@ -24,12 +24,12 @@ import org.springframework.http.codec.json.Jackson2JsonDecoder; /** * Helps to configure a list of client-side HTTP message readers and writers * with support for built-in defaults and options to register additional custom - * readers and writers via {@link #customCodec()}. + * readers and writers via {@link #customCodecs()}. * *

The built-in defaults include basic data types such as various byte * representations, resources, strings, forms, but also others like JAXB2 and * Jackson 2 based on classpath detection. There are options to - * {@link #defaultCodec() override} some of the defaults or to have them + * {@link #defaultCodecs() override} some of the defaults or to have them * {@link #registerDefaults(boolean) turned off} completely. * * @author Rossen Stoyanchev @@ -44,21 +44,21 @@ public class ClientCodecConfigurer extends AbstractCodecConfigurer { @Override - public ClientDefaultCodecConfigurer defaultCodec() { - return (ClientDefaultCodecConfigurer) super.defaultCodec(); + public ClientDefaultCodecConfigurer defaultCodecs() { + return (ClientDefaultCodecConfigurer) super.defaultCodecs(); } @Override protected void addDefaultTypedWriter(List> result) { super.addDefaultTypedWriter(result); - defaultCodec().addWriterTo(result, FormHttpMessageWriter::new); + defaultCodecs().addWriterTo(result, FormHttpMessageWriter::new); } @Override protected void addDefaultObjectReaders(List> result) { super.addDefaultObjectReaders(result); - defaultCodec().addServerSentEventReaderTo(result); + defaultCodecs().addServerSentEventReaderTo(result); } @@ -80,10 +80,12 @@ public class ClientCodecConfigurer extends AbstractCodecConfigurer { // Internal methods for building a list of default readers or writers... + @Override protected void addStringReaderTextOnlyTo(List> result) { addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.textPlainOnly(false))); } + @Override protected void addStringReaderTo(List> result) { addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes(false))); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/ServerCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/ServerCodecConfigurer.java index cf568e82c9..bdc6a86248 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/ServerCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/ServerCodecConfigurer.java @@ -24,12 +24,12 @@ import org.springframework.http.codec.json.Jackson2JsonEncoder; /** * Helps to configure a list of server-side HTTP message readers and writers * with support for built-in defaults and options to register additional custom - * readers and writers via {@link #customCodec()}. + * readers and writers via {@link #customCodecs()}. * *

The built-in defaults include basic data types such as various byte * representations, resources, strings, forms, but also others like JAXB2 and * Jackson 2 based on classpath detection. There are options to - * {@link #defaultCodec() override} some of the defaults or to have them + * {@link #defaultCodecs() override} some of the defaults or to have them * {@link #registerDefaults(boolean) turned off} completely. * * @author Rossen Stoyanchev @@ -44,22 +44,22 @@ public class ServerCodecConfigurer extends AbstractCodecConfigurer { @Override - public ServerDefaultCodecConfigurer defaultCodec() { - return (ServerDefaultCodecConfigurer) super.defaultCodec(); + public ServerDefaultCodecConfigurer defaultCodecs() { + return (ServerDefaultCodecConfigurer) super.defaultCodecs(); } @Override protected void addDefaultTypedReaders(List> result) { super.addDefaultTypedReaders(result); - defaultCodec().addReaderTo(result, FormHttpMessageReader::new); + defaultCodecs().addReaderTo(result, FormHttpMessageReader::new); } @Override protected void addDefaultObjectWriters(List> result) { super.addDefaultObjectWriters(result); - defaultCodec().addServerSentEventWriterTo(result); + defaultCodecs().addServerSentEventWriterTo(result); } diff --git a/spring-web/src/test/java/org/springframework/http/codec/ClientCodecConfigurerTests.java b/spring-web/src/test/java/org/springframework/http/codec/ClientCodecConfigurerTests.java index a32a24b22c..16545e76c8 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/ClientCodecConfigurerTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/ClientCodecConfigurerTests.java @@ -44,10 +44,7 @@ import org.springframework.http.codec.xml.Jaxb2XmlDecoder; import org.springframework.http.codec.xml.Jaxb2XmlEncoder; import org.springframework.util.MimeTypeUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import static org.springframework.core.ResolvableType.forClass; /** @@ -95,7 +92,7 @@ public class ClientCodecConfigurerTests { public void jackson2EncoderOverride() throws Exception { Jackson2JsonDecoder decoder = new Jackson2JsonDecoder(); - this.configurer.defaultCodec().jackson2Decoder(decoder); + this.configurer.defaultCodecs().jackson2Decoder(decoder); assertSame(decoder, this.configurer.getReaders().stream() .filter(reader -> ServerSentEventHttpMessageReader.class.equals(reader.getClass())) @@ -109,13 +106,13 @@ public class ClientCodecConfigurerTests { private Decoder getNextDecoder(List> readers) { HttpMessageReader reader = readers.get(this.index.getAndIncrement()); assertEquals(DecoderHttpMessageReader.class, reader.getClass()); - return ((DecoderHttpMessageReader) reader).getDecoder(); + return ((DecoderHttpMessageReader) reader).getDecoder(); } private Encoder getNextEncoder(List> writers) { HttpMessageWriter writer = writers.get(this.index.getAndIncrement()); assertEquals(EncoderHttpMessageWriter.class, writer.getClass()); - return ((EncoderHttpMessageWriter) writer).getEncoder(); + return ((EncoderHttpMessageWriter) writer).getEncoder(); } @SuppressWarnings("unchecked") diff --git a/spring-web/src/test/java/org/springframework/http/codec/CodecConfigurerTests.java b/spring-web/src/test/java/org/springframework/http/codec/CodecConfigurerTests.java index 8fae700705..5cbaf9d5cd 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/CodecConfigurerTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/CodecConfigurerTests.java @@ -39,11 +39,8 @@ import org.springframework.http.codec.xml.Jaxb2XmlDecoder; import org.springframework.http.codec.xml.Jaxb2XmlEncoder; import org.springframework.util.MimeTypeUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; import static org.springframework.core.ResolvableType.forClass; /** @@ -100,11 +97,11 @@ public class CodecConfigurerTests { when(customReader1.canRead(ResolvableType.forClass(Object.class), null)).thenReturn(false); when(customReader2.canRead(ResolvableType.forClass(Object.class), null)).thenReturn(true); - this.configurer.customCodec().decoder(customDecoder1); - this.configurer.customCodec().decoder(customDecoder2); + this.configurer.customCodecs().decoder(customDecoder1); + this.configurer.customCodecs().decoder(customDecoder2); - this.configurer.customCodec().reader(customReader1); - this.configurer.customCodec().reader(customReader2); + this.configurer.customCodecs().reader(customReader1); + this.configurer.customCodecs().reader(customReader2); List> readers = this.configurer.getReaders(); @@ -138,11 +135,11 @@ public class CodecConfigurerTests { when(customWriter1.canWrite(ResolvableType.forClass(Object.class), null)).thenReturn(false); when(customWriter2.canWrite(ResolvableType.forClass(Object.class), null)).thenReturn(true); - this.configurer.customCodec().encoder(customEncoder1); - this.configurer.customCodec().encoder(customEncoder2); + this.configurer.customCodecs().encoder(customEncoder1); + this.configurer.customCodecs().encoder(customEncoder2); - this.configurer.customCodec().writer(customWriter1); - this.configurer.customCodec().writer(customWriter2); + this.configurer.customCodecs().writer(customWriter1); + this.configurer.customCodecs().writer(customWriter2); List> writers = this.configurer.getWriters(); @@ -176,11 +173,11 @@ public class CodecConfigurerTests { when(customReader1.canRead(ResolvableType.forClass(Object.class), null)).thenReturn(false); when(customReader2.canRead(ResolvableType.forClass(Object.class), null)).thenReturn(true); - this.configurer.customCodec().decoder(customDecoder1); - this.configurer.customCodec().decoder(customDecoder2); + this.configurer.customCodecs().decoder(customDecoder1); + this.configurer.customCodecs().decoder(customDecoder2); - this.configurer.customCodec().reader(customReader1); - this.configurer.customCodec().reader(customReader2); + this.configurer.customCodecs().reader(customReader1); + this.configurer.customCodecs().reader(customReader2); this.configurer.registerDefaults(false); @@ -208,11 +205,11 @@ public class CodecConfigurerTests { when(customWriter1.canWrite(ResolvableType.forClass(Object.class), null)).thenReturn(false); when(customWriter2.canWrite(ResolvableType.forClass(Object.class), null)).thenReturn(true); - this.configurer.customCodec().encoder(customEncoder1); - this.configurer.customCodec().encoder(customEncoder2); + this.configurer.customCodecs().encoder(customEncoder1); + this.configurer.customCodecs().encoder(customEncoder2); - this.configurer.customCodec().writer(customWriter1); - this.configurer.customCodec().writer(customWriter2); + this.configurer.customCodecs().writer(customWriter1); + this.configurer.customCodecs().writer(customWriter2); this.configurer.registerDefaults(false); @@ -229,7 +226,7 @@ public class CodecConfigurerTests { public void jackson2DecoderOverride() throws Exception { Jackson2JsonDecoder decoder = new Jackson2JsonDecoder(); - this.configurer.defaultCodec().jackson2Decoder(decoder); + this.configurer.defaultCodecs().jackson2Decoder(decoder); assertSame(decoder, this.configurer.getReaders().stream() .filter(writer -> writer instanceof DecoderHttpMessageReader) @@ -243,7 +240,7 @@ public class CodecConfigurerTests { public void jackson2EncoderOverride() throws Exception { Jackson2JsonEncoder encoder = new Jackson2JsonEncoder(); - this.configurer.defaultCodec().jackson2Encoder(encoder); + this.configurer.defaultCodecs().jackson2Encoder(encoder); assertSame(encoder, this.configurer.getWriters().stream() .filter(writer -> writer instanceof EncoderHttpMessageWriter) @@ -257,13 +254,13 @@ public class CodecConfigurerTests { private Decoder getNextDecoder(List> readers) { HttpMessageReader reader = readers.get(this.index.getAndIncrement()); assertEquals(DecoderHttpMessageReader.class, reader.getClass()); - return ((DecoderHttpMessageReader) reader).getDecoder(); + return ((DecoderHttpMessageReader) reader).getDecoder(); } private Encoder getNextEncoder(List> writers) { HttpMessageWriter writer = writers.get(this.index.getAndIncrement()); assertEquals(EncoderHttpMessageWriter.class, writer.getClass()); - return ((EncoderHttpMessageWriter) writer).getEncoder(); + return ((EncoderHttpMessageWriter) writer).getEncoder(); } private void assertStringDecoder(Decoder decoder, boolean textOnly) { @@ -288,10 +285,12 @@ public class CodecConfigurerTests { private static class TestDefaultCodecConfigurer extends DefaultCodecConfigurer { + @Override protected void addStringReaderTextOnlyTo(List> result) { addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.textPlainOnly(true))); } + @Override protected void addStringReaderTo(List> result) { addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes(true))); } diff --git a/spring-web/src/test/java/org/springframework/http/codec/ServerCodecConfigurerTests.java b/spring-web/src/test/java/org/springframework/http/codec/ServerCodecConfigurerTests.java index 2f8f31f915..14d9d6f459 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/ServerCodecConfigurerTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/ServerCodecConfigurerTests.java @@ -45,10 +45,7 @@ import org.springframework.http.codec.xml.Jaxb2XmlDecoder; import org.springframework.http.codec.xml.Jaxb2XmlEncoder; import org.springframework.util.MimeTypeUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import static org.springframework.core.ResolvableType.forClass; /** @@ -96,7 +93,7 @@ public class ServerCodecConfigurerTests { public void jackson2EncoderOverride() throws Exception { Jackson2JsonEncoder encoder = new Jackson2JsonEncoder(); - this.configurer.defaultCodec().jackson2Encoder(encoder); + this.configurer.defaultCodecs().jackson2Encoder(encoder); assertSame(encoder, this.configurer.getWriters().stream() .filter(writer -> ServerSentEventHttpMessageWriter.class.equals(writer.getClass())) @@ -110,13 +107,13 @@ public class ServerCodecConfigurerTests { private Decoder getNextDecoder(List> readers) { HttpMessageReader reader = readers.get(this.index.getAndIncrement()); assertEquals(DecoderHttpMessageReader.class, reader.getClass()); - return ((DecoderHttpMessageReader) reader).getDecoder(); + return ((DecoderHttpMessageReader) reader).getDecoder(); } private Encoder getNextEncoder(List> writers) { HttpMessageWriter writer = writers.get(this.index.getAndIncrement()); assertEquals(EncoderHttpMessageWriter.class, writer.getClass()); - return ((EncoderHttpMessageWriter) writer).getEncoder(); + return ((EncoderHttpMessageWriter) writer).getEncoder(); } @SuppressWarnings("unchecked") diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/config/WebFluxConfigurationSupportTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/config/WebFluxConfigurationSupportTests.java index 1165957ade..eeed6f7918 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/config/WebFluxConfigurationSupportTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/config/WebFluxConfigurationSupportTests.java @@ -63,11 +63,7 @@ import org.springframework.web.reactive.result.view.freemarker.FreeMarkerViewRes import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebHandler; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import static org.springframework.core.ResolvableType.forClass; import static org.springframework.core.ResolvableType.forClassWithGenerics; import static org.springframework.http.MediaType.APPLICATION_FORM_URLENCODED; @@ -301,10 +297,10 @@ public class WebFluxConfigurationSupportTests { @Override protected void configureHttpMessageCodecs(ServerCodecConfigurer configurer) { configurer.registerDefaults(false); - configurer.customCodec().decoder(StringDecoder.textPlainOnly(true)); - configurer.customCodec().decoder(new Jaxb2XmlDecoder()); - configurer.customCodec().encoder(CharSequenceEncoder.textPlainOnly()); - configurer.customCodec().encoder(new Jaxb2XmlEncoder()); + configurer.customCodecs().decoder(StringDecoder.textPlainOnly(true)); + configurer.customCodecs().decoder(new Jaxb2XmlDecoder()); + configurer.customCodecs().encoder(CharSequenceEncoder.textPlainOnly()); + configurer.customCodecs().encoder(new Jaxb2XmlEncoder()); } } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java index 006b3f6a51..e77bf5dec3 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java @@ -15,7 +15,6 @@ */ package org.springframework.web.reactive.result.method.annotation; - import java.lang.reflect.Method; import java.util.List; import java.util.Optional; @@ -48,8 +47,7 @@ import org.springframework.web.reactive.result.method.SyncInvocableHandlerMethod import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ServerWebExchange; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.*; /** * Unit tests for {@link ControllerMethodResolver}. @@ -70,8 +68,8 @@ public class ControllerMethodResolverTests { resolvers.addCustomResolver(new CustomSyncArgumentResolver()); ServerCodecConfigurer codecs = new ServerCodecConfigurer(); - codecs.customCodec().decoder(new ByteArrayDecoder()); - codecs.customCodec().decoder(new ByteBufferDecoder()); + codecs.customCodecs().decoder(new ByteArrayDecoder()); + codecs.customCodecs().decoder(new ByteBufferDecoder()); AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(); applicationContext.registerBean(TestControllerAdvice.class);