|
29 | 29 | import org.springframework.core.convert.ConversionService;
|
30 | 30 | import org.springframework.format.support.FormattingConversionServiceFactoryBean;
|
31 | 31 | import org.springframework.http.converter.ByteArrayHttpMessageConverter;
|
| 32 | +import org.springframework.http.converter.HttpMessageConverter; |
32 | 33 | import org.springframework.http.converter.ResourceHttpMessageConverter;
|
33 | 34 | import org.springframework.http.converter.StringHttpMessageConverter;
|
34 | 35 | import org.springframework.http.converter.feed.AtomFeedHttpMessageConverter;
|
@@ -170,22 +171,35 @@ else if (jsr303Present) {
|
170 | 171 | private ManagedList<RootBeanDefinition> getMessageConverters(Object source) {
|
171 | 172 | ManagedList<RootBeanDefinition> messageConverters = new ManagedList<RootBeanDefinition>();
|
172 | 173 | 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)); |
178 | 183 | if (jaxb2Present) {
|
179 |
| - messageConverters.add(new RootBeanDefinition(Jaxb2RootElementHttpMessageConverter.class)); |
| 184 | + messageConverters.add(createConverterBeanDefinition(Jaxb2RootElementHttpMessageConverter.class, source)); |
180 | 185 | }
|
181 | 186 | if (jacksonPresent) {
|
182 |
| - messageConverters.add(new RootBeanDefinition(MappingJacksonHttpMessageConverter.class)); |
| 187 | + messageConverters.add(createConverterBeanDefinition(MappingJacksonHttpMessageConverter.class, source)); |
183 | 188 | }
|
184 | 189 | 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)); |
187 | 192 | }
|
188 | 193 | return messageConverters;
|
189 | 194 | }
|
190 | 195 |
|
| 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 | + |
191 | 205 | }
|
0 commit comments