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:15:23 UTC

[cxf] branch 3.1.x-fixes updated: [CXF-7569] Support for enums in PrimitiveTextProvider, patch from Alexei Markevich applied

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

sergeyb 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 dcd6643  [CXF-7569] Support for enums in PrimitiveTextProvider, patch from Alexei Markevich applied
dcd6643 is described below

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

    [CXF-7569] Support for enums in PrimitiveTextProvider, patch from Alexei Markevich applied
---
 .../cxf/jaxrs/provider/PrimitiveTextProvider.java   |  6 +++---
 .../jaxrs/provider/PrimitiveTextProviderTest.java   | 21 +++++++++++++++++++++
 2 files changed, 24 insertions(+), 3 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 a585afe..2af8a3e 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
@@ -42,9 +42,9 @@ import org.apache.cxf.jaxrs.utils.InjectionUtils;
 @Produces("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);
+
+    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);
     }
     
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 0f500c1..c6dafc7 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>'].