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());
