Enforce custom string converter in HttpMessageConverters
Prior to this commit, configuring a custom `StringHttpMessageConverter` would be overwritten when the `registerDefaults()` option is enabled. Fixes gh-35563
This commit is contained in:
parent
56b082dec7
commit
d98179e137
|
@ -247,8 +247,10 @@ class DefaultHttpMessageConverters implements HttpMessageConverters {
|
|||
|
||||
void detectMessageConverters() {
|
||||
this.byteArrayMessageConverter = new ByteArrayHttpMessageConverter();
|
||||
this.stringMessageConverter = new StringHttpMessageConverter();
|
||||
|
||||
if (this.stringMessageConverter == null) {
|
||||
this.stringMessageConverter = new StringHttpMessageConverter();
|
||||
}
|
||||
if (this.jsonMessageConverter == null) {
|
||||
if (JACKSON_PRESENT) {
|
||||
this.jsonMessageConverter = new JacksonJsonHttpMessageConverter();
|
||||
|
|
|
@ -177,6 +177,16 @@ class DefaultHttpMessageConvertersTests {
|
|||
assertThat(customConverter).isEqualTo(jacksonConverter);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldOverrideStringConverters() {
|
||||
var stringConverter = new StringHttpMessageConverter();
|
||||
var converters = HttpMessageConverters.forClient().registerDefaults()
|
||||
.stringMessageConverter(stringConverter).build();
|
||||
|
||||
var actualConverter = findMessageConverter(StringHttpMessageConverter.class, converters);
|
||||
assertThat(actualConverter).isEqualTo(stringConverter);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldConfigureConverter() {
|
||||
var customConverter = new CustomHttpMessageConverter();
|
||||
|
@ -271,6 +281,17 @@ class DefaultHttpMessageConvertersTests {
|
|||
assertThat(customConverter).isEqualTo(jacksonConverter);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void shouldOverrideStringConverters() {
|
||||
var stringConverter = new StringHttpMessageConverter();
|
||||
var converters = HttpMessageConverters.forServer().registerDefaults()
|
||||
.stringMessageConverter(stringConverter).build();
|
||||
|
||||
var actualConverter = findMessageConverter(StringHttpMessageConverter.class, converters);
|
||||
assertThat(actualConverter).isEqualTo(stringConverter);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldConfigureConverter() {
|
||||
var customConverter = new CustomHttpMessageConverter();
|
||||
|
|
Loading…
Reference in New Issue