Register custom before default codecs
Closes gh-22612
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -72,11 +72,11 @@ class BaseCodecConfigurer implements CodecConfigurer {
|
||||
public List<HttpMessageReader<?>> getReaders() {
|
||||
List<HttpMessageReader<?>> result = new ArrayList<>();
|
||||
|
||||
result.addAll(this.defaultCodecs.getTypedReaders());
|
||||
result.addAll(this.customCodecs.getTypedReaders());
|
||||
result.addAll(this.defaultCodecs.getTypedReaders());
|
||||
|
||||
result.addAll(this.defaultCodecs.getObjectReaders());
|
||||
result.addAll(this.customCodecs.getObjectReaders());
|
||||
result.addAll(this.defaultCodecs.getObjectReaders());
|
||||
|
||||
result.addAll(this.defaultCodecs.getCatchAllReaders());
|
||||
return result;
|
||||
@@ -96,11 +96,11 @@ class BaseCodecConfigurer implements CodecConfigurer {
|
||||
protected List<HttpMessageWriter<?>> getWritersInternal(boolean forMultipart) {
|
||||
List<HttpMessageWriter<?>> result = new ArrayList<>();
|
||||
|
||||
result.addAll(this.defaultCodecs.getTypedWriters(forMultipart));
|
||||
result.addAll(this.customCodecs.getTypedWriters());
|
||||
result.addAll(this.defaultCodecs.getTypedWriters(forMultipart));
|
||||
|
||||
result.addAll(this.defaultCodecs.getObjectWriters(forMultipart));
|
||||
result.addAll(this.customCodecs.getObjectWriters());
|
||||
result.addAll(this.defaultCodecs.getObjectWriters(forMultipart));
|
||||
|
||||
result.addAll(this.defaultCodecs.getCatchAllWriters());
|
||||
return result;
|
||||
|
||||
@@ -125,6 +125,8 @@ public class CodecConfigurerTests {
|
||||
List<HttpMessageReader<?>> readers = this.configurer.getReaders();
|
||||
|
||||
assertEquals(15, readers.size());
|
||||
assertSame(customDecoder1, getNextDecoder(readers));
|
||||
assertSame(customReader1, readers.get(this.index.getAndIncrement()));
|
||||
assertEquals(ByteArrayDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertEquals(ByteBufferDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertEquals(DataBufferDecoder.class, getNextDecoder(readers).getClass());
|
||||
@@ -132,13 +134,11 @@ public class CodecConfigurerTests {
|
||||
assertEquals(StringDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertEquals(ProtobufDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertEquals(FormHttpMessageReader.class, readers.get(this.index.getAndIncrement()).getClass());
|
||||
assertSame(customDecoder1, getNextDecoder(readers));
|
||||
assertSame(customReader1, readers.get(this.index.getAndIncrement()));
|
||||
assertSame(customDecoder2, getNextDecoder(readers));
|
||||
assertSame(customReader2, readers.get(this.index.getAndIncrement()));
|
||||
assertEquals(Jackson2JsonDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertEquals(Jackson2SmileDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertEquals(Jaxb2XmlDecoder.class, getNextDecoder(readers).getClass());
|
||||
assertSame(customDecoder2, getNextDecoder(readers));
|
||||
assertSame(customReader2, readers.get(this.index.getAndIncrement()));
|
||||
assertEquals(StringDecoder.class, getNextDecoder(readers).getClass());
|
||||
}
|
||||
|
||||
@@ -165,19 +165,19 @@ public class CodecConfigurerTests {
|
||||
List<HttpMessageWriter<?>> writers = this.configurer.getWriters();
|
||||
|
||||
assertEquals(14, writers.size());
|
||||
assertSame(customEncoder1, getNextEncoder(writers));
|
||||
assertSame(customWriter1, writers.get(this.index.getAndIncrement()));
|
||||
assertEquals(ByteArrayEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertEquals(ByteBufferEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertEquals(DataBufferEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertEquals(ResourceHttpMessageWriter.class, writers.get(index.getAndIncrement()).getClass());
|
||||
assertEquals(CharSequenceEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertEquals(ProtobufHttpMessageWriter.class, writers.get(index.getAndIncrement()).getClass());
|
||||
assertSame(customEncoder1, getNextEncoder(writers));
|
||||
assertSame(customWriter1, writers.get(this.index.getAndIncrement()));
|
||||
assertSame(customEncoder2, getNextEncoder(writers));
|
||||
assertSame(customWriter2, writers.get(this.index.getAndIncrement()));
|
||||
assertEquals(Jackson2JsonEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertEquals(Jackson2SmileEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertEquals(Jaxb2XmlEncoder.class, getNextEncoder(writers).getClass());
|
||||
assertSame(customEncoder2, getNextEncoder(writers));
|
||||
assertSame(customWriter2, writers.get(this.index.getAndIncrement()));
|
||||
assertEquals(CharSequenceEncoder.class, getNextEncoder(writers).getClass());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user