SPR-7316 - writeAcceptCharset now also set to false when using mvc namespace.

master
Arjen Poutsma 14 years ago
parent 7730e76c06
commit 4504ab8bc2
  1. 32
      org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java

@ -29,6 +29,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.core.convert.ConversionService;
import org.springframework.format.support.FormattingConversionServiceFactoryBean;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.ResourceHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.feed.AtomFeedHttpMessageConverter;
@ -170,22 +171,35 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
private ManagedList<RootBeanDefinition> getMessageConverters(Object source) {
ManagedList<RootBeanDefinition> messageConverters = new ManagedList<RootBeanDefinition>();
messageConverters.setSource(source);
messageConverters.add(new RootBeanDefinition(ByteArrayHttpMessageConverter.class));
messageConverters.add(new RootBeanDefinition(StringHttpMessageConverter.class));
messageConverters.add(new RootBeanDefinition(ResourceHttpMessageConverter.class));
messageConverters.add(new RootBeanDefinition(SourceHttpMessageConverter.class));
messageConverters.add(new RootBeanDefinition(XmlAwareFormHttpMessageConverter.class));
messageConverters.add(createConverterBeanDefinition(ByteArrayHttpMessageConverter.class, source));
RootBeanDefinition stringConverterDef = createConverterBeanDefinition(StringHttpMessageConverter.class, source);
stringConverterDef.getPropertyValues().add("writeAcceptCharset", false);
messageConverters.add(stringConverterDef);
messageConverters.add(createConverterBeanDefinition(ResourceHttpMessageConverter.class, source));
messageConverters.add(createConverterBeanDefinition(SourceHttpMessageConverter.class, source));
messageConverters.add(createConverterBeanDefinition(XmlAwareFormHttpMessageConverter.class, source));
if (jaxb2Present) {
messageConverters.add(new RootBeanDefinition(Jaxb2RootElementHttpMessageConverter.class));
messageConverters.add(createConverterBeanDefinition(Jaxb2RootElementHttpMessageConverter.class, source));
}
if (jacksonPresent) {
messageConverters.add(new RootBeanDefinition(MappingJacksonHttpMessageConverter.class));
messageConverters.add(createConverterBeanDefinition(MappingJacksonHttpMessageConverter.class, source));
}
if (romePresent) {
messageConverters.add(new RootBeanDefinition(AtomFeedHttpMessageConverter.class));
messageConverters.add(new RootBeanDefinition(RssChannelHttpMessageConverter.class));
messageConverters.add(createConverterBeanDefinition(AtomFeedHttpMessageConverter.class, source));
messageConverters.add(createConverterBeanDefinition(RssChannelHttpMessageConverter.class, source));
}
return messageConverters;
}
private RootBeanDefinition createConverterBeanDefinition(Class<? extends HttpMessageConverter> converterClass,
Object source) {
RootBeanDefinition beanDefinition = new RootBeanDefinition(converterClass);
beanDefinition.setSource(source);
beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
return beanDefinition;
}
}

Loading…
Cancel
Save