Skip to content

Commit 4504ab8

Browse files
committed
SPR-7316 - writeAcceptCharset now also set to false when using mvc namespace.
1 parent 7730e76 commit 4504ab8

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.core.convert.ConversionService;
3030
import org.springframework.format.support.FormattingConversionServiceFactoryBean;
3131
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
32+
import org.springframework.http.converter.HttpMessageConverter;
3233
import org.springframework.http.converter.ResourceHttpMessageConverter;
3334
import org.springframework.http.converter.StringHttpMessageConverter;
3435
import org.springframework.http.converter.feed.AtomFeedHttpMessageConverter;
@@ -170,22 +171,35 @@ else if (jsr303Present) {
170171
private ManagedList<RootBeanDefinition> getMessageConverters(Object source) {
171172
ManagedList<RootBeanDefinition> messageConverters = new ManagedList<RootBeanDefinition>();
172173
messageConverters.setSource(source);
173-
messageConverters.add(new RootBeanDefinition(ByteArrayHttpMessageConverter.class));
174-
messageConverters.add(new RootBeanDefinition(StringHttpMessageConverter.class));
175-
messageConverters.add(new RootBeanDefinition(ResourceHttpMessageConverter.class));
176-
messageConverters.add(new RootBeanDefinition(SourceHttpMessageConverter.class));
177-
messageConverters.add(new RootBeanDefinition(XmlAwareFormHttpMessageConverter.class));
174+
messageConverters.add(createConverterBeanDefinition(ByteArrayHttpMessageConverter.class, source));
175+
176+
RootBeanDefinition stringConverterDef = createConverterBeanDefinition(StringHttpMessageConverter.class, source);
177+
stringConverterDef.getPropertyValues().add("writeAcceptCharset", false);
178+
messageConverters.add(stringConverterDef);
179+
180+
messageConverters.add(createConverterBeanDefinition(ResourceHttpMessageConverter.class, source));
181+
messageConverters.add(createConverterBeanDefinition(SourceHttpMessageConverter.class, source));
182+
messageConverters.add(createConverterBeanDefinition(XmlAwareFormHttpMessageConverter.class, source));
178183
if (jaxb2Present) {
179-
messageConverters.add(new RootBeanDefinition(Jaxb2RootElementHttpMessageConverter.class));
184+
messageConverters.add(createConverterBeanDefinition(Jaxb2RootElementHttpMessageConverter.class, source));
180185
}
181186
if (jacksonPresent) {
182-
messageConverters.add(new RootBeanDefinition(MappingJacksonHttpMessageConverter.class));
187+
messageConverters.add(createConverterBeanDefinition(MappingJacksonHttpMessageConverter.class, source));
183188
}
184189
if (romePresent) {
185-
messageConverters.add(new RootBeanDefinition(AtomFeedHttpMessageConverter.class));
186-
messageConverters.add(new RootBeanDefinition(RssChannelHttpMessageConverter.class));
190+
messageConverters.add(createConverterBeanDefinition(AtomFeedHttpMessageConverter.class, source));
191+
messageConverters.add(createConverterBeanDefinition(RssChannelHttpMessageConverter.class, source));
187192
}
188193
return messageConverters;
189194
}
190195

196+
private RootBeanDefinition createConverterBeanDefinition(Class<? extends HttpMessageConverter> converterClass,
197+
Object source) {
198+
RootBeanDefinition beanDefinition = new RootBeanDefinition(converterClass);
199+
beanDefinition.setSource(source);
200+
beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
201+
202+
return beanDefinition;
203+
}
204+
191205
}

0 commit comments

Comments
 (0)