Repository: tomee Updated Branches: refs/heads/tomee-7.1.x 71d42a48d -> 205eb44c9
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/4302acab Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4302acab Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4302acab Branch: refs/heads/tomee-7.1.x Commit: 4302acab62bb64c2d77cce3a66b92ae7e9cff7c5 Parents: 71d42a4 Author: Jonathan S. Fisher <[email protected]> Authored: Sat Sep 15 16:16:51 2018 -0500 Committer: Jonathan S. Fisher <[email protected]> Committed: Tue Oct 16 19:18:52 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/4302acab/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 347f42b..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.TomEEJsonbProvider", - "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/4302acab/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());
