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

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


The following commit(s) were added to refs/heads/master by this push:
     new e98134b  JOHNZON-299 jsonb MessageBodyReader/Writer provider excludes 
jsonp
e98134b is described below

commit e98134b5b7a7002cfc4cf7cdbff582390e5d3011
Author: Raymond Augé <[email protected]>
AuthorDate: Mon Dec 9 12:26:05 2019 -0500

    JOHNZON-299 jsonb MessageBodyReader/Writer provider excludes jsonp
    
    Signed-off-by: Raymond Augé <[email protected]>
---
 .../johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java |  7 ++-----
 .../jaxrs/jsonb/jaxrs/JsonbJaxrsProviderTest.java     | 19 ++++++++++++++++++-
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
index 43fbe70..e12c353 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
@@ -22,7 +22,6 @@ import static java.util.Optional.ofNullable;
 import static java.util.stream.Collectors.toMap;
 import static java.util.stream.Collectors.toSet;
 
-import javax.json.JsonStructure;
 import javax.json.bind.Jsonb;
 import javax.json.bind.JsonbBuilder;
 import javax.json.bind.JsonbConfig;
@@ -246,8 +245,7 @@ public class JsonbJaxrsProvider<T> implements 
MessageBodyWriter<T>, MessageBodyR
                 && !InputStream.class.isAssignableFrom(type)
                 && !Reader.class.isAssignableFrom(type)
                 && !Response.class.isAssignableFrom(type)
-                && !CharSequence.class.isAssignableFrom(type)
-                && !JsonStructure.class.isAssignableFrom(type);
+                && !CharSequence.class.isAssignableFrom(type);
     }
 
     @Override
@@ -258,8 +256,7 @@ public class JsonbJaxrsProvider<T> implements 
MessageBodyWriter<T>, MessageBodyR
                 && !Writer.class.isAssignableFrom(type)
                 && !StreamingOutput.class.isAssignableFrom(type)
                 && !CharSequence.class.isAssignableFrom(type)
-                && !Response.class.isAssignableFrom(type)
-                && !JsonStructure.class.isAssignableFrom(type);
+                && !Response.class.isAssignableFrom(type);
     }
 
     @Override
diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProviderTest.java
 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProviderTest.java
index ae14878..0d605e6 100644
--- 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProviderTest.java
+++ 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProviderTest.java
@@ -19,15 +19,19 @@
 package org.apache.johnzon.jaxrs.jsonb.jaxrs;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 import java.nio.charset.StandardCharsets;
 
+import javax.json.Json;
+import javax.json.JsonObject;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedHashMap;
 import javax.ws.rs.core.NoContentException;
@@ -59,6 +63,19 @@ public class JsonbJaxrsProviderTest {
         assertEquals("ok", foo.name);
     }
 
+    @Test // just to ensure we didnt break soemthing on read impl
+    public void jsonpTest() throws Exception {
+        JsonObject jsonObject = Json.createObjectBuilder().add("name", 
"ok").build();
+        try (JsonbJaxrsProvider<JsonObject> provider = new 
JsonbJaxrsProvider<JsonObject>() {{
+            setProviders(this);
+        }}) {
+            assertTrue(provider.isWriteable(jsonObject.getClass(), 
jsonObject.getClass(), null, MediaType.APPLICATION_JSON_TYPE));
+            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+            provider.writeTo(jsonObject, jsonObject.getClass(), 
jsonObject.getClass(), null, MediaType.APPLICATION_JSON_TYPE, new 
MultivaluedHashMap<>(), outputStream);
+            assertEquals("{\"name\":\"ok\"}", 
outputStream.toString(StandardCharsets.UTF_8.name()));
+        }
+    }
+
     private Foo readFoo(final Boolean set, final InputStream stream) throws 
IOException {
         return new JsonbJaxrsProvider<Foo>() {{
             if (set != null) {
@@ -70,7 +87,7 @@ public class JsonbJaxrsProviderTest {
                 stream);
     }
 
-    private void setProviders(final JsonbJaxrsProvider<Foo> provider) {
+    private <T> void setProviders(final JsonbJaxrsProvider<T> provider) {
         try {
             final Field providers = 
JsonbJaxrsProvider.class.getDeclaredField("providers");
             providers.setAccessible(true);

Reply via email to