You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bu...@apache.org on 2018/03/12 07:28:13 UTC
[cxf] branch 3.1.x-fixes updated: [CXF-7672] PrimitiveTextProvider:
support java.net.URI and java.net.URL
This is an automated email from the ASF dual-hosted git repository.
buhhunyx pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.1.x-fixes by this push:
new 074de30 [CXF-7672] PrimitiveTextProvider: support java.net.URI and java.net.URL
074de30 is described below
commit 074de30a21018555b4523f4258ef94fec813fd12
Author: amarkevich <am...@talend.com>
AuthorDate: Fri Mar 9 16:04:31 2018 +0300
[CXF-7672] PrimitiveTextProvider: support java.net.URI and java.net.URL
---
.../cxf/jaxrs/provider/PrimitiveTextProvider.java | 9 ++++---
.../jaxrs/provider/PrimitiveTextProviderTest.java | 30 ++++++++++++++++------
2 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProvider.java
index 2af8a3e..c742a04 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProvider.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProvider.java
@@ -38,14 +38,15 @@ import org.apache.cxf.jaxrs.model.ParameterType;
import org.apache.cxf.jaxrs.utils.HttpUtils;
import org.apache.cxf.jaxrs.utils.InjectionUtils;
-@Consumes("text/plain")
-@Produces("text/plain")
+@Consumes(MediaType.TEXT_PLAIN)
+@Produces(MediaType.TEXT_PLAIN)
public class PrimitiveTextProvider<T> extends AbstractConfigurableProvider
implements MessageBodyReader<T>, MessageBodyWriter<T> {
private static boolean isSupported(Class<?> type, MediaType mt) {
- boolean isPrimitive = InjectionUtils.isPrimitiveOnly(type) || Enum.class.isAssignableFrom(type);
- return isPrimitive && mt.isCompatible(MediaType.TEXT_PLAIN_TYPE);
+ boolean isPrimitive = InjectionUtils.isPrimitiveOnly(type);
+ return (isPrimitive || Enum.class.isAssignableFrom(type) || java.net.URI.class == type
+ || java.net.URL.class == type) && mt.isCompatible(MediaType.TEXT_PLAIN_TYPE);
}
public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mt) {
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProviderTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProviderTest.java
index c6dafc7..80fc89b 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProviderTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/PrimitiveTextProviderTest.java
@@ -215,20 +215,34 @@ public class PrimitiveTextProviderTest extends Assert {
TEST
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testEnum() throws Exception {
- PrimitiveTextProvider p = new PrimitiveTextProvider<Object>();
+ testClass(TestEnum.TEST);
+ }
+
+ @Test
+ public void testURI() throws Exception {
+ testClass(new java.net.URI("uri"));
+ }
- assertTrue(p.isWriteable(TestEnum.class, null, null, MediaType.TEXT_PLAIN_TYPE));
+ @Test
+ public void testURL() throws Exception {
+ testClass(new java.net.URL("http://www.example.com"));
+ }
+
+ private void testClass(Object value) throws Exception {
+ final PrimitiveTextProvider<Object> p = new PrimitiveTextProvider<Object>();
+
+ assertTrue(p.isWriteable(value.getClass(), null, null, MediaType.TEXT_PLAIN_TYPE));
ByteArrayOutputStream os = new ByteArrayOutputStream();
- p.writeTo(TestEnum.TEST, null, null, null, MediaType.TEXT_PLAIN_TYPE, null, os);
- assertTrue(Arrays.equals(TestEnum.TEST.toString().getBytes(), os.toByteArray()));
+ p.writeTo(value, null, null, null, MediaType.TEXT_PLAIN_TYPE, null, os);
+ assertTrue(Arrays.equals(value.toString().getBytes(), os.toByteArray()));
- assertTrue(p.isReadable(TestEnum.class, null, null, MediaType.TEXT_PLAIN_TYPE));
- TestEnum valueRead = (TestEnum) p.readFrom(TestEnum.class, null, null, null, null,
+ assertTrue(p.isReadable(value.getClass(), null, null, MediaType.TEXT_PLAIN_TYPE));
+ @SuppressWarnings("unchecked")
+ Object valueRead = p.readFrom((Class<Object>) value.getClass(), null, null, null, null,
new ByteArrayInputStream(os.toByteArray()));
- assertSame(TestEnum.TEST, valueRead);
+ assertEquals(value, valueRead);
}
}
--
To stop receiving notification emails like this one, please contact
buhhunyx@apache.org.