You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/02/25 19:01:29 UTC

tomee git commit: TOMEE-1719 support application/*+json by default

Repository: tomee
Updated Branches:
  refs/heads/master 87120faad -> df2aedadb


TOMEE-1719 support application/*+json by default


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/df2aedad
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/df2aedad
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/df2aedad

Branch: refs/heads/master
Commit: df2aedadb8beaa518c0157ddb0948cc853b6dd58
Parents: 87120fa
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Thu Feb 25 19:01:12 2016 +0100
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Thu Feb 25 19:01:12 2016 +0100

----------------------------------------------------------------------
 .../openejb/server/cxf/rs/CxfRSService.java     | 53 ++++++++++++--------
 .../server/cxf/rs/CxfRsHttpListener.java        |  6 ++-
 2 files changed, 35 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/df2aedad/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
----------------------------------------------------------------------
diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
index 61f016c..e4bdf6b 100644
--- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
+++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
@@ -38,23 +38,6 @@ import org.apache.webbeans.annotation.EmptyAnnotationLiteral;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.container.BeanManagerImpl;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Serializable;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.lang.reflect.Type;
-import java.net.Socket;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.Bean;
@@ -66,6 +49,8 @@ import javax.servlet.ServletContext;
 import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
 import javax.ws.rs.container.ResourceContext;
 import javax.ws.rs.container.ResourceInfo;
 import javax.ws.rs.core.Context;
@@ -74,7 +59,25 @@ import javax.ws.rs.core.Request;
 import javax.ws.rs.core.SecurityContext;
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Provider;
 import javax.ws.rs.ext.Providers;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
 
 import static java.util.Arrays.asList;
 
@@ -197,13 +200,13 @@ public class CxfRSService extends RESTService {
                 final String userProviders = SystemInstance.get().getProperty("openejb.jaxrs.client.providers");
                 if (userProviders == null) {
                     (all = new ArrayList<>(2)).addAll(asList(
-                            new JohnzonProvider<>(),
-                            new JsrProvider()
+                        new TomEEJohnzonProvider<>(),
+                        new JsrProvider()
                     ));
                 } else {
                     all = new ArrayList<>(4 /* blind guess */);
                     for (String p : userProviders.split(" *, *")) {
-                        p= p.trim();
+                        p = p.trim();
                         if (p.isEmpty()) {
                             continue;
                         }
@@ -212,8 +215,8 @@ public class CxfRSService extends RESTService {
                     }
 
                     all.addAll(asList( // added after to be after in the list once sorted
-                            new JohnzonProvider<>(),
-                            new JsrProvider()));
+                        new TomEEJohnzonProvider<>(),
+                        new JsrProvider()));
                 }
                 bus.setProperty("org.apache.cxf.jaxrs.bus.providers", all);
             } catch (final Exception e) {
@@ -355,4 +358,10 @@ public class CxfRSService extends RESTService {
             }
         }
     }
+
+    @Provider
+    @Produces({"application/json", "application/*+json"})
+    @Consumes({"application/json", "application/*+json"})
+    public class TomEEJohnzonProvider<T> extends JohnzonProvider<T> {
+    }
 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/df2aedad/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
----------------------------------------------------------------------
diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
index fec5f10..77a6dd2 100644
--- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
+++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
@@ -666,10 +666,12 @@ public class CxfRsHttpListener implements RsHttpListener {
                 }
             }
 
-            if (customJsonProvider) {
+            if (customJsonProvider) { // remove JohnzonProvider default versions
                 final Iterator<ProviderInfo<?>> it = values.iterator();
                 while (it.hasNext()) {
-                    if ("org.apache.johnzon.jaxrs.JohnzonProvider".equals(it.next().getResourceClass().getName())) {
+                    final String name = it.next().getResourceClass().getName();
+                    if ("org.apache.johnzon.jaxrs.JohnzonProvider".equals(name) ||
+                        "org.apache.openejb.server.cxf.rs.CxfRSService$TomEEJohnzonProvider".equals(name)) {
                         it.remove();
                         break;
                     }