Support wildcard style media types in JSON converters

Add "application/*+json" to supported media types for both Jackson
message converters.

Issue: SPR-7905
master
Tim Meighen 12 years ago committed by Rossen Stoyanchev
parent 2e1a68893d
commit e16c40359a
  1. 2
      spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java
  2. 2
      spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java
  3. 9
      spring-web/src/test/java/org/springframework/http/converter/json/AbstractMappingJacksonHttpMessageConverterTests.java

@ -69,7 +69,7 @@ public class MappingJackson2HttpMessageConverter extends AbstractHttpMessageConv
* Construct a new {@code MappingJackson2HttpMessageConverter}. * Construct a new {@code MappingJackson2HttpMessageConverter}.
*/ */
public MappingJackson2HttpMessageConverter() { public MappingJackson2HttpMessageConverter() {
super(new MediaType("application", "json", DEFAULT_CHARSET)); super(new MediaType("application", "json", DEFAULT_CHARSET), new MediaType("application", "*+json", DEFAULT_CHARSET));
} }
/** /**

@ -69,7 +69,7 @@ public class MappingJacksonHttpMessageConverter extends AbstractHttpMessageConve
* Construct a new {@code MappingJacksonHttpMessageConverter}. * Construct a new {@code MappingJacksonHttpMessageConverter}.
*/ */
public MappingJacksonHttpMessageConverter() { public MappingJacksonHttpMessageConverter() {
super(new MediaType("application", "json", DEFAULT_CHARSET)); super(new MediaType("application", "json", DEFAULT_CHARSET), new MediaType("application", "*+json", DEFAULT_CHARSET));
} }
/** /**

@ -45,7 +45,6 @@ public abstract class AbstractMappingJacksonHttpMessageConverterTests<T extends
protected static final String NEWLINE_SYSTEM_PROPERTY = System.getProperty("line.separator"); protected static final String NEWLINE_SYSTEM_PROPERTY = System.getProperty("line.separator");
private T converter; private T converter;
@Before @Before
@ -71,6 +70,14 @@ public abstract class AbstractMappingJacksonHttpMessageConverterTests<T extends
assertTrue(converter.canWrite(Map.class, new MediaType("application", "json"))); assertTrue(converter.canWrite(Map.class, new MediaType("application", "json")));
} }
// SPR-7905
@Test
public void canReadAndWriteMicroformats() {
assertTrue(converter.canRead(MyBean.class, new MediaType("application", "vnd.test-micro-type+json")));
assertTrue(converter.canWrite(MyBean.class, new MediaType("application", "vnd.test-micro-type+json")));
}
@Test @Test
public void readTyped() throws IOException { public void readTyped() throws IOException {
String body = String body =

Loading…
Cancel
Save