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>'].