You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2015/08/10 19:37:05 UTC

incubator-johnzon git commit: JOHNZON-51 making jaxrs provider specific to json

Repository: incubator-johnzon
Updated Branches:
  refs/heads/master d318c0ded -> 0c105624d


JOHNZON-51 making jaxrs provider specific to json


Project: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/commit/0c105624
Tree: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/tree/0c105624
Diff: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/diff/0c105624

Branch: refs/heads/master
Commit: 0c105624dff86e909754921d0c78234c95b4da6f
Parents: d318c0d
Author: Romain Manni-Bucau <rm...@starbucks.com>
Authored: Mon Aug 10 10:36:55 2015 -0700
Committer: Romain Manni-Bucau <rm...@starbucks.com>
Committed: Mon Aug 10 10:36:55 2015 -0700

----------------------------------------------------------------------
 .../jaxrs/ConfigurableJohnzonProvider.java      | 15 ++++++--
 .../johnzon/jaxrs/JohnzonMessageBodyReader.java | 12 +++---
 .../johnzon/jaxrs/JohnzonMessageBodyWriter.java | 11 +++---
 .../apache/johnzon/jaxrs/JohnzonProvider.java   | 15 +++++---
 .../java/org/apache/johnzon/jaxrs/Jsons.java    | 39 --------------------
 .../johnzon/jaxrs/JsrMessageBodyReader.java     |  8 ++--
 .../johnzon/jaxrs/JsrMessageBodyWriter.java     |  8 ++--
 .../org/apache/johnzon/jaxrs/JsrProvider.java   | 14 +++++--
 .../jaxrs/WadlDocumentMessageBodyWriter.java    | 10 +++--
 9 files changed, 60 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
index 4d23374..2b9bd41 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
@@ -40,11 +40,18 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
 import static java.util.Arrays.asList;
-import static javax.ws.rs.core.MediaType.WILDCARD;
 
 @Provider
-@Produces(WILDCARD)
-@Consumes(WILDCARD)
+@Produces({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
+@Consumes({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class ConfigurableJohnzonProvider<T> implements MessageBodyWriter<T>, MessageBodyReader<T> {
     // build/configuration
     private MapperBuilder builder = new MapperBuilder();
@@ -188,7 +195,7 @@ public class ConfigurableJohnzonProvider<T> implements MessageBodyWriter<T>, Mes
     public void setMaxSize(final int size) {
         builder.setMaxSize(size);
     }
-    
+
     public void setTreatByteArrayAsBase64(final boolean treatByteArrayAsBase64) {
         builder.setTreatByteArrayAsBase64(treatByteArrayAsBase64);
     }

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyReader.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyReader.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyReader.java
index c7e7ae6..fb718ef 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyReader.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyReader.java
@@ -36,11 +36,12 @@ import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.Collection;
 
-import static javax.ws.rs.core.MediaType.WILDCARD;
-import static org.apache.johnzon.jaxrs.Jsons.isJson;
-
 @Provider
-@Consumes(WILDCARD)
+@Consumes({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class JohnzonMessageBodyReader<T> extends IgnorableTypes implements MessageBodyReader<T> {
     private final Mapper mapper;
 
@@ -56,8 +57,7 @@ public class JohnzonMessageBodyReader<T> extends IgnorableTypes implements Messa
     @Override
     public boolean isReadable(final Class<?> rawType, final Type genericType,
                               final Annotation[] annotations, final MediaType mediaType) {
-        return isJson(mediaType)
-                && !isIgnored(rawType)
+        return !isIgnored(rawType)
                 && InputStream.class != rawType && Reader.class != rawType && Response.class != rawType
                 && String.class != rawType
                 && !JsonStructure.class.isAssignableFrom(rawType);

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyWriter.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyWriter.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyWriter.java
index 840d80b..f7b7c8a 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyWriter.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonMessageBodyWriter.java
@@ -38,10 +38,12 @@ import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.Collection;
 
-import static javax.ws.rs.core.MediaType.WILDCARD;
-
 @Provider
-@Produces(WILDCARD)
+@Produces({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class JohnzonMessageBodyWriter<T> extends IgnorableTypes implements MessageBodyWriter<T> {
     private final Mapper mapper;
 
@@ -63,8 +65,7 @@ public class JohnzonMessageBodyWriter<T> extends IgnorableTypes implements Messa
     @Override
     public boolean isWriteable(final Class<?> rawType, final Type genericType,
                                final Annotation[] annotations, final MediaType mediaType) {
-        return Jsons.isJson(mediaType)
-                && !isIgnored(rawType)
+        return !isIgnored(rawType)
                 && InputStream.class != rawType
                 && OutputStream.class != rawType
                 && Writer.class != rawType

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonProvider.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonProvider.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonProvider.java
index 58ce2e7..280ddbc 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonProvider.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JohnzonProvider.java
@@ -24,14 +24,19 @@ import org.apache.johnzon.mapper.MapperBuilder;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.ext.Provider;
-
 import java.util.Collection;
 
-import static javax.ws.rs.core.MediaType.WILDCARD;
-
 @Provider
-@Produces(WILDCARD)
-@Consumes(WILDCARD)
+@Produces({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
+@Consumes({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class JohnzonProvider<T> extends DelegateProvider<T> {
     public JohnzonProvider(final Mapper mapper, final Collection<String> ignores) {
         super(new JohnzonMessageBodyReader<T>(mapper, ignores), new JohnzonMessageBodyWriter<T>(mapper, ignores));

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/Jsons.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/Jsons.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/Jsons.java
deleted file mode 100644
index 542347e..0000000
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/Jsons.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.johnzon.jaxrs;
-
-import javax.ws.rs.core.MediaType;
-
-public class Jsons {
-    public static boolean isJson(final MediaType mediaType) {
-        if (mediaType != null) {
-            final String subtype = mediaType.getSubtype();
-            return "json".equalsIgnoreCase(subtype)
-                    || "javascript".equals(subtype)
-                    || "x-json".equals(subtype)
-                    || "x-javascript".equals(subtype)
-                    || subtype.endsWith("+json");
-        }
-        return true;
-    }
-
-    private Jsons() {
-        // no-op
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyReader.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyReader.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyReader.java
index b4e70f7..4b5a0b2 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyReader.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyReader.java
@@ -34,10 +34,12 @@ import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Collections;
 
-import static javax.ws.rs.core.MediaType.WILDCARD;
-
 @Provider
-@Consumes(WILDCARD)
+@Consumes({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class JsrMessageBodyReader implements MessageBodyReader<JsonStructure> {
     private final JsonReaderFactory factory;
     private final boolean closeStream;

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyWriter.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyWriter.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyWriter.java
index a6acfbe..4a1dfcd 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyWriter.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrMessageBodyWriter.java
@@ -35,10 +35,12 @@ import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Collections;
 
-import static javax.ws.rs.core.MediaType.WILDCARD;
-
 @Provider
-@Produces(WILDCARD)
+@Produces({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class JsrMessageBodyWriter implements MessageBodyWriter<JsonStructure> {
     private final JsonWriterFactory factory;
     private final boolean close;

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrProvider.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrProvider.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrProvider.java
index 70a0791..6b45894 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrProvider.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/JsrProvider.java
@@ -23,11 +23,17 @@ import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.ext.Provider;
 
-import static javax.ws.rs.core.MediaType.WILDCARD;
-
 @Provider
-@Produces(WILDCARD)
-@Consumes(WILDCARD)
+@Produces({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
+@Consumes({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class JsrProvider extends DelegateProvider<JsonStructure> {
     public JsrProvider() {
         super(new JsrMessageBodyReader(), new JsrMessageBodyWriter());

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/0c105624/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WadlDocumentMessageBodyWriter.java
----------------------------------------------------------------------
diff --git a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WadlDocumentMessageBodyWriter.java b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WadlDocumentMessageBodyWriter.java
index 5adab66..1a3bdc9 100644
--- a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WadlDocumentMessageBodyWriter.java
+++ b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WadlDocumentMessageBodyWriter.java
@@ -21,6 +21,7 @@ package org.apache.johnzon.jaxrs;
 import org.apache.johnzon.jaxrs.xml.WadlDocumentToJson;
 import org.w3c.dom.Document;
 
+import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
@@ -31,15 +32,18 @@ import java.io.OutputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 
-import static org.apache.johnzon.jaxrs.Jsons.isJson;
-
+@Produces({
+    "application/json", "*/json",
+    "*/*+json", "*/x-json",
+    "*/javascript", "*/x-javascript"
+})
 public class WadlDocumentMessageBodyWriter implements MessageBodyWriter<Document> {
     private final WadlDocumentToJson converter = new WadlDocumentToJson();
 
     @Override
     public boolean isWriteable(final Class<?> aClass, final Type type,
                                final Annotation[] annotations, final MediaType mediaType) {
-        return isJson(mediaType) && Document.class.isAssignableFrom(aClass);
+        return Document.class.isAssignableFrom(aClass);
     }
 
     @Override