Add extendMessageConverters to WebMvcConfigurer
Issue: SPR-12450
This commit is contained in:
@@ -29,6 +29,7 @@ import org.mockito.MockitoAnnotations;
|
||||
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.format.support.FormattingConversionService;
|
||||
import org.springframework.http.HttpMessage;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
import org.springframework.util.PathMatcher;
|
||||
@@ -115,18 +116,26 @@ public class DelegatingWebMvcConfigurationTests {
|
||||
|
||||
@Test
|
||||
public void configureMessageConverters() {
|
||||
final HttpMessageConverter customConverter = mock(HttpMessageConverter.class);
|
||||
final StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
|
||||
List<WebMvcConfigurer> configurers = new ArrayList<WebMvcConfigurer>();
|
||||
configurers.add(new WebMvcConfigurerAdapter() {
|
||||
@Override
|
||||
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
converters.add(new StringHttpMessageConverter());
|
||||
converters.add(stringConverter);
|
||||
}
|
||||
@Override
|
||||
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
converters.add(0, customConverter);
|
||||
}
|
||||
});
|
||||
delegatingConfig = new DelegatingWebMvcConfiguration();
|
||||
delegatingConfig.setConfigurers(configurers);
|
||||
|
||||
RequestMappingHandlerAdapter adapter = delegatingConfig.requestMappingHandlerAdapter();
|
||||
assertEquals("Only one custom converter should be registered", 1, adapter.getMessageConverters().size());
|
||||
assertEquals("Only one custom converter should be registered", 2, adapter.getMessageConverters().size());
|
||||
assertSame(customConverter, adapter.getMessageConverters().get(0));
|
||||
assertSame(stringConverter, adapter.getMessageConverters().get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.springframework.format.FormatterRegistry;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.mock.web.test.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.test.MockServletContext;
|
||||
@@ -165,9 +166,10 @@ public class WebMvcConfigurationSupportExtensionTests {
|
||||
assertEquals("converted", actual);
|
||||
|
||||
// Message converters
|
||||
assertEquals(1, adapter.getMessageConverters().size());
|
||||
assertEquals(MappingJackson2HttpMessageConverter.class, adapter.getMessageConverters().get(0).getClass());
|
||||
ObjectMapper objectMapper = ((MappingJackson2HttpMessageConverter)adapter.getMessageConverters().get(0)).getObjectMapper();
|
||||
assertEquals(2, adapter.getMessageConverters().size());
|
||||
assertEquals(StringHttpMessageConverter.class, adapter.getMessageConverters().get(0).getClass());
|
||||
assertEquals(MappingJackson2HttpMessageConverter.class, adapter.getMessageConverters().get(1).getClass());
|
||||
ObjectMapper objectMapper = ((MappingJackson2HttpMessageConverter)adapter.getMessageConverters().get(1)).getObjectMapper();
|
||||
assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
|
||||
assertFalse(objectMapper.getSerializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
|
||||
assertFalse(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
|
||||
@@ -301,6 +303,11 @@ public class WebMvcConfigurationSupportExtensionTests {
|
||||
converters.add(new MappingJackson2HttpMessageConverter());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
converters.add(0, new StringHttpMessageConverter());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Validator getValidator() {
|
||||
return new Validator() {
|
||||
|
||||
Reference in New Issue
Block a user