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);