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() {
|
void detectMessageConverters() {
|
||||||
this.byteArrayMessageConverter = new ByteArrayHttpMessageConverter();
|
this.byteArrayMessageConverter = new ByteArrayHttpMessageConverter();
|
||||||
this.stringMessageConverter = new StringHttpMessageConverter();
|
|
||||||
|
|
||||||
|
if (this.stringMessageConverter == null) {
|
||||||
|
this.stringMessageConverter = new StringHttpMessageConverter();
|
||||||
|
}
|
||||||
if (this.jsonMessageConverter == null) {
|
if (this.jsonMessageConverter == null) {
|
||||||
if (JACKSON_PRESENT) {
|
if (JACKSON_PRESENT) {
|
||||||
this.jsonMessageConverter = new JacksonJsonHttpMessageConverter();
|
this.jsonMessageConverter = new JacksonJsonHttpMessageConverter();
|
||||||
|
|
|
@ -177,6 +177,16 @@ class DefaultHttpMessageConvertersTests {
|
||||||
assertThat(customConverter).isEqualTo(jacksonConverter);
|
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
|
@Test
|
||||||
void shouldConfigureConverter() {
|
void shouldConfigureConverter() {
|
||||||
var customConverter = new CustomHttpMessageConverter();
|
var customConverter = new CustomHttpMessageConverter();
|
||||||
|
@ -271,6 +281,17 @@ class DefaultHttpMessageConvertersTests {
|
||||||
assertThat(customConverter).isEqualTo(jacksonConverter);
|
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
|
@Test
|
||||||
void shouldConfigureConverter() {
|
void shouldConfigureConverter() {
|
||||||
var customConverter = new CustomHttpMessageConverter();
|
var customConverter = new CustomHttpMessageConverter();
|
||||||
|
|
Loading…
Reference in New Issue