提交 82e864b2 编写于 作者: A Arjen Poutsma

Polishing

- Renamed `defaultCodec` to `defaultCodecs`, and `customCodec` to
`customCodecs`
- Added `@Override` annotations where necessary
- Fixed non-parameterized usage for parameterized types.
上级 3a1d431c
......@@ -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 {
* <p>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<HttpMessageReader<?>> 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<HttpMessageReader<?>> 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<HttpMessageReader<?>> 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<HttpMessageWriter<?>> 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<HttpMessageWriter<?>> 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<HttpMessageWriter<?>> 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);
}
}
......
......@@ -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()}.
*
* <p>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<HttpMessageWriter<?>> result) {
super.addDefaultTypedWriter(result);
defaultCodec().addWriterTo(result, FormHttpMessageWriter::new);
defaultCodecs().addWriterTo(result, FormHttpMessageWriter::new);
}
@Override
protected void addDefaultObjectReaders(List<HttpMessageReader<?>> 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<HttpMessageReader<?>> result) {
addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.textPlainOnly(false)));
}
@Override
protected void addStringReaderTo(List<HttpMessageReader<?>> result) {
addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes(false)));
}
......
......@@ -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()}.
*
* <p>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<HttpMessageReader<?>> result) {
super.addDefaultTypedReaders(result);
defaultCodec().addReaderTo(result, FormHttpMessageReader::new);
defaultCodecs().addReaderTo(result, FormHttpMessageReader::new);
}
@Override
protected void addDefaultObjectWriters(List<HttpMessageWriter<?>> result) {
super.addDefaultObjectWriters(result);
defaultCodec().addServerSentEventWriterTo(result);
defaultCodecs().addServerSentEventWriterTo(result);
}
......
......@@ -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<HttpMessageReader<?>> 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<HttpMessageWriter<?>> writers) {
HttpMessageWriter<?> writer = writers.get(this.index.getAndIncrement());
assertEquals(EncoderHttpMessageWriter.class, writer.getClass());
return ((EncoderHttpMessageWriter) writer).getEncoder();
return ((EncoderHttpMessageWriter<?>) writer).getEncoder();
}
@SuppressWarnings("unchecked")
......
......@@ -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<HttpMessageReader<?>> 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<HttpMessageWriter<?>> 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<HttpMessageReader<?>> 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<HttpMessageWriter<?>> 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<HttpMessageReader<?>> result) {
addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.textPlainOnly(true)));
}
@Override
protected void addStringReaderTo(List<HttpMessageReader<?>> result) {
addReaderTo(result, () -> new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes(true)));
}
......
......@@ -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<HttpMessageReader<?>> 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<HttpMessageWriter<?>> writers) {
HttpMessageWriter<?> writer = writers.get(this.index.getAndIncrement());
assertEquals(EncoderHttpMessageWriter.class, writer.getClass());
return ((EncoderHttpMessageWriter) writer).getEncoder();
return ((EncoderHttpMessageWriter<?>) writer).getEncoder();
}
@SuppressWarnings("unchecked")
......
......@@ -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());
}
}
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册