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