From f2fdf9fa6b3ea96790051518032fee802296130a Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Thu, 28 Jan 2010 09:23:34 +0000 Subject: [PATCH] SPR-6771 - HttpMessageConverter should accept Class on can read --- .../http/converter/AbstractHttpMessageConverter.java | 6 +++--- .../http/converter/BufferedImageHttpMessageConverter.java | 4 ++-- .../http/converter/ByteArrayHttpMessageConverter.java | 2 +- .../http/converter/FormHttpMessageConverter.java | 2 +- .../http/converter/HttpMessageConverter.java | 4 ++-- .../http/converter/StringHttpMessageConverter.java | 2 +- .../http/converter/xml/MarshallingHttpMessageConverter.java | 1 + .../http/converter/xml/SourceHttpMessageConverter.java | 2 +- .../http/converter/FormHttpMessageConverterTests.java | 6 +++--- .../http/converter/HttpMessageConverterTests.java | 6 +++--- .../xml/Jaxb2RootElementHttpMessageConverterTest.java | 3 --- 11 files changed, 18 insertions(+), 20 deletions(-) diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java index 19a56319ad5..75782d74484 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java @@ -91,7 +91,7 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv * #getSupportedMediaTypes() supported media types} {@linkplain MediaType#includes(MediaType) include} the given media * type. */ - public boolean canRead(Class clazz, MediaType mediaType) { + public boolean canRead(Class clazz, MediaType mediaType) { return supports(clazz) && canRead(mediaType); } @@ -121,7 +121,7 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv * #getSupportedMediaTypes() supported media types} {@linkplain MediaType#includes(MediaType) include} the given media * type. */ - public boolean canWrite(Class clazz, MediaType mediaType) { + public boolean canWrite(Class clazz, MediaType mediaType) { return supports(clazz) && canWrite(mediaType); } @@ -150,7 +150,7 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv * @param clazz the class to test for support * @return true if supported; false otherwise */ - protected abstract boolean supports(Class clazz); + protected abstract boolean supports(Class clazz); /** * {@inheritDoc} diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java index f6195456f64..838a7c6f80b 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java @@ -113,7 +113,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter clazz, MediaType mediaType) { + public boolean canRead(Class clazz, MediaType mediaType) { if (BufferedImage.class.equals(clazz)) { return isReadable(mediaType); } @@ -130,7 +130,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter clazz, MediaType mediaType) { + public boolean canWrite(Class clazz, MediaType mediaType) { if (BufferedImage.class.equals(clazz)) { return isWritable(mediaType); } diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/ByteArrayHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/ByteArrayHttpMessageConverter.java index b5f33f5e40a..d113e07f042 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/ByteArrayHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/ByteArrayHttpMessageConverter.java @@ -42,7 +42,7 @@ public class ByteArrayHttpMessageConverter extends AbstractHttpMessageConverter< } @Override - public boolean supports(Class clazz) { + public boolean supports(Class clazz) { return byte[].class.equals(clazz); } diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java index 4f4844ab7c0..c9b17a7ab5e 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java @@ -56,7 +56,7 @@ public class FormHttpMessageConverter extends AbstractHttpMessageConverter> clazz) { + public boolean supports(Class clazz) { return MultiValueMap.class.isAssignableFrom(clazz); } diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/HttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/HttpMessageConverter.java index 3981af589e4..3d16e9dcf8e 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/HttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/HttpMessageConverter.java @@ -37,7 +37,7 @@ public interface HttpMessageConverter { * @param mediaType the media type to read, can be {@code null} if not specified * @return true if readable; false otherwise */ - boolean canRead(Class clazz, MediaType mediaType); + boolean canRead(Class clazz, MediaType mediaType); /** * Indicates whether the given class can be written by this converter. @@ -45,7 +45,7 @@ public interface HttpMessageConverter { * @param mediaType the media type to write, can be {@code null} if not specified * @return true if writable; false otherwise */ - boolean canWrite(Class clazz, MediaType mediaType); + boolean canWrite(Class clazz, MediaType mediaType); /** * Return the list of {@link MediaType} objects supported by this converter. diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java index f29b86a6896..842479a3479 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java @@ -51,7 +51,7 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverter clazz) { + public boolean supports(Class clazz) { return String.class.equals(clazz); } diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java index 05a1bc4407c..ff319965ae9 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java @@ -97,6 +97,7 @@ public class MarshallingHttpMessageConverter extends AbstractXmlHttpMessageConve this.unmarshaller = unmarshaller; } + @Override public boolean supports(Class clazz) { return unmarshaller.supports(clazz); } diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/xml/SourceHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/xml/SourceHttpMessageConverter.java index 3255efebf13..7d25f34c92b 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/xml/SourceHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/xml/SourceHttpMessageConverter.java @@ -45,7 +45,7 @@ import org.springframework.http.converter.HttpMessageNotWritableException; public class SourceHttpMessageConverter extends AbstractXmlHttpMessageConverter { @Override - public boolean supports(Class clazz) { + public boolean supports(Class clazz) { return DOMSource.class.equals(clazz) || SAXSource.class.equals(clazz) || StreamSource.class.equals(clazz) || Source.class.equals(clazz); } diff --git a/org.springframework.web/src/test/java/org/springframework/http/converter/FormHttpMessageConverterTests.java b/org.springframework.web/src/test/java/org/springframework/http/converter/FormHttpMessageConverterTests.java index fedc3bbae64..af7f7a0e03e 100644 --- a/org.springframework.web/src/test/java/org/springframework/http/converter/FormHttpMessageConverterTests.java +++ b/org.springframework.web/src/test/java/org/springframework/http/converter/FormHttpMessageConverterTests.java @@ -43,14 +43,14 @@ public class FormHttpMessageConverterTests { @Test @SuppressWarnings("unchecked") public void canRead() { - assertTrue(converter.canRead((Class>) MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded"))); + assertTrue(converter.canRead(MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded"))); } @Test @SuppressWarnings("unchecked") public void canWrite() { - assertTrue(converter.canWrite((Class>) MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded"))); - assertTrue(converter.canWrite((Class>) MultiValueMap.class, MediaType.ALL)); + assertTrue(converter.canWrite(MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded"))); + assertTrue(converter.canWrite(MultiValueMap.class, MediaType.ALL)); } @SuppressWarnings("unchecked") diff --git a/org.springframework.web/src/test/java/org/springframework/http/converter/HttpMessageConverterTests.java b/org.springframework.web/src/test/java/org/springframework/http/converter/HttpMessageConverterTests.java index 77686808929..1332c9ae486 100644 --- a/org.springframework.web/src/test/java/org/springframework/http/converter/HttpMessageConverterTests.java +++ b/org.springframework.web/src/test/java/org/springframework/http/converter/HttpMessageConverterTests.java @@ -39,7 +39,7 @@ public class HttpMessageConverterTests { public void canRead() { AbstractHttpMessageConverter converter = new MyHttpMessageConverter(MEDIA_TYPE) { @Override - protected boolean supports(Class clazz) { + protected boolean supports(Class clazz) { return MyType.class.equals(clazz); } @@ -54,7 +54,7 @@ public class HttpMessageConverterTests { public void canWrite() { AbstractHttpMessageConverter converter = new MyHttpMessageConverter(MEDIA_TYPE) { @Override - protected boolean supports(Class clazz) { + protected boolean supports(Class clazz) { return MyType.class.equals(clazz); } @@ -73,7 +73,7 @@ public class HttpMessageConverterTests { } @Override - protected boolean supports(Class clazz) { + protected boolean supports(Class clazz) { fail("Not expected"); return false; } diff --git a/org.springframework.web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTest.java b/org.springframework.web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTest.java index 98368938923..d8c60f18272 100644 --- a/org.springframework.web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTest.java +++ b/org.springframework.web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTest.java @@ -43,15 +43,12 @@ public class Jaxb2RootElementHttpMessageConverterTest { private RootElement rootElement; - private Type type; - private RootElement rootElementCglib; @Before public void setUp() { converter = new Jaxb2RootElementHttpMessageConverter(); rootElement = new RootElement(); - type = new Type(); DefaultAopProxyFactory proxyFactory = new DefaultAopProxyFactory(); AdvisedSupport advisedSupport = new AdvisedSupport(); advisedSupport.setTarget(rootElement);