Repository: tomee
Updated Branches:
  refs/heads/tomee-7.0.x 1dea4fb49 -> 1b73ff86c


Allow custom JSON Providers to replace Johnzon


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

Branch: refs/heads/tomee-7.0.x
Commit: e6e9f60e991387c0ecfeacff438366a0c24ef17e
Parents: 980d7f6
Author: Jonathan S. Fisher <[email protected]>
Authored: Sat Sep 15 16:16:51 2018 -0500
Committer: Jonathan S. Fisher <[email protected]>
Committed: Sat Sep 22 13:22:05 2018 -0500

----------------------------------------------------------------------
 .../org/apache/openejb/server/cxf/rs/CxfRSService.java | 13 ++++++++++---
 .../openejb/server/cxf/rs/CxfRsHttpListener.java       |  6 ++++--
 2 files changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/e6e9f60e/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 31bd2e0..3f492ce 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
@@ -223,9 +223,16 @@ public class CxfRSService extends RESTService {
             bus.setProperty("skip.default.json.provider.registration", 
"true"); // client jaxrs, we want johnzon not jettison
 
             final Collection<Object> defaults = new ArrayList<>();
-            for (final String provider : asList(
-                    
"org.apache.openejb.server.cxf.rs.johnzon.TomEEJohnzonProvider",
-                    
"org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonpProvider")) {
+            List<String> jsonProviders;
+            String userConfiguredJsonProviders = 
SystemInstance.get().getProperty("openejb.jaxrs.jsonProviders");
+            if (userConfiguredJsonProviders == null) {
+                jsonProviders = asList(
+                        
"org.apache.openejb.server.cxf.rs.johnzon.TomEEJohnzonProvider",
+                        
"org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonpProvider");
+            } else {
+                jsonProviders = asList(userConfiguredJsonProviders.split(","));
+            }
+            for (final String provider : jsonProviders) {
                 if (!isActive(provider)) {
                     continue;
                 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/e6e9f60e/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 e10172f..9366de7 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
@@ -498,8 +498,10 @@ public class CxfRsHttpListener implements RsHttpListener {
     }
 
     private void addMandatoryProviders(final Collection<Object> instances, 
final ServiceConfiguration serviceConfiguration) {
-        if 
(!shouldSkipProvider(WadlDocumentMessageBodyWriter.class.getName())) {
-            instances.add(new WadlDocumentMessageBodyWriter());
+        if (SystemInstance.get().getProperty("openejb.jaxrs.jsonProviders") == 
null) {
+            if 
(!shouldSkipProvider(WadlDocumentMessageBodyWriter.class.getName())) {
+                instances.add(new WadlDocumentMessageBodyWriter());
+            }
         }
         if (!shouldSkipProvider(EJBExceptionMapper.class.getName())) {
             instances.add(new EJBExceptionMapper());

Reply via email to