You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2017/11/20 13:00:42 UTC

[cxf] branch master updated: [CXF-7569] PrimitiveTextProvider: support enums

This is an automated email from the ASF dual-hosted git repository.

sergeyb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new e6586d4  [CXF-7569] PrimitiveTextProvider: support enums
     new 27695e1  [CXF-7569] Support for enums in PrimitiveTextProvider, patch from Alexei Markevich applied
e6586d4 is described below

commit e6586d42d02b5457f4d077b0889d57dd5f8ec6be
Author: amarkevich <am...@talend.com>
AuthorDate: Mon Nov 20 14:09:38 2017 +0300

    [CXF-7569] PrimitiveTextProvider: support enums
---
 .../cxf/jaxrs/provider/PrimitiveTextProvider.java   |  2 +-
 .../jaxrs/provider/PrimitiveTextProviderTest.java   | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

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 f976642..2f3dbfb 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
@@ -44,7 +44,7 @@ public class PrimitiveTextProvider<T> extends AbstractConfigurableProvider
     implements MessageBodyReader<T>, MessageBodyWriter<T> {
 
     private static boolean isSupported(Class<?> type, MediaType mt) {
-        boolean isPrimitive = InjectionUtils.isPrimitiveOnly(type);
+        boolean isPrimitive = InjectionUtils.isPrimitiveOnly(type) || Enum.class.isAssignableFrom(type);
         return isPrimitive && mt.isCompatible(MediaType.TEXT_PLAIN_TYPE);
     }
 
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 7e293c8..b972c79 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
@@ -210,4 +210,25 @@ public class PrimitiveTextProviderTest extends Assert {
                 new ByteArrayInputStream(s.getBytes(StandardCharsets.UTF_8)));
         assertEquals(value, value);
     }
+
+    public enum TestEnum {
+        TEST
+    }
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    @Test
+    public void testEnum() throws Exception {
+        PrimitiveTextProvider p = new PrimitiveTextProvider<Object>();
+
+        assertTrue(p.isWriteable(TestEnum.class, 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()));
+
+        assertTrue(p.isReadable(TestEnum.class, null, null, MediaType.TEXT_PLAIN_TYPE));
+        TestEnum valueRead = (TestEnum) p.readFrom(TestEnum.class, null, null, null, null,
+                new ByteArrayInputStream(os.toByteArray()));
+        assertSame(TestEnum.TEST, valueRead);
+    }
+
 }

-- 
To stop receiving notification emails like this one, please contact
['"commits@cxf.apache.org" <co...@cxf.apache.org>'].