Repository: tomee Updated Branches: refs/heads/master ed37f9ee3 -> ff7c4dba6
TOMEE-1545 adding openejb.cxf-rs.factoryByListener entry for cxf-rs service to be able to not share a single http destination factory Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/ff7c4dba Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/ff7c4dba Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/ff7c4dba Branch: refs/heads/master Commit: ff7c4dba62cf05ea0add494ef095aec1dbc7a88f Parents: ed37f9e Author: Romain manni-Bucau <rmannibu...@gmail.com> Authored: Tue Jul 19 19:03:57 2016 +0200 Committer: Romain manni-Bucau <rmannibu...@gmail.com> Committed: Tue Jul 19 19:03:57 2016 +0200 ---------------------------------------------------------------------- .../org/apache/openejb/server/cxf/rs/CxfRSService.java | 4 +++- .../java/org/apache/openejb/server/cxf/CxfService.java | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/ff7c4dba/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 f8ff509..020d7c1 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 @@ -92,6 +92,7 @@ public class CxfRSService extends RESTService { private static final String NAME = "cxf-rs"; private DestinationFactory destinationFactory; + private boolean factoryByListener; @Override public void service(final InputStream in, final OutputStream out) throws ServiceException, IOException { @@ -170,6 +171,7 @@ public class CxfRSService extends RESTService { @Override public void init(final Properties properties) throws Exception { super.init(properties); + factoryByListener = "true".equalsIgnoreCase(properties.getProperty("openejb.cxf-rs.factoryByListener", "false")); System.setProperty("org.apache.johnzon.max-string-length", SystemInstance.get().getProperty("org.apache.johnzon.max-string-length", @@ -289,7 +291,7 @@ public class CxfRSService extends RESTService { @Override protected RsHttpListener createHttpListener() { - return new CxfRsHttpListener(destinationFactory, getWildcard()); + return new CxfRsHttpListener(!factoryByListener ? destinationFactory : new HTTPTransportFactory(), getWildcard()); } private static class ContextLiteral extends EmptyAnnotationLiteral<Context> implements Context { http://git-wip-us.apache.org/repos/asf/tomee/blob/ff7c4dba/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java ---------------------------------------------------------------------- diff --git a/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java b/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java index 454835e..de0edde 100644 --- a/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java +++ b/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java @@ -19,7 +19,6 @@ package org.apache.openejb.server.cxf; import org.apache.cxf.Bus; import org.apache.cxf.binding.soap.SoapTransportFactory; -import org.apache.cxf.transport.DestinationFactory; import org.apache.openejb.BeanContext; import org.apache.openejb.assembler.classic.util.ServiceConfiguration; import org.apache.openejb.core.ivm.naming.JaxWsServiceReference; @@ -49,6 +48,7 @@ public class CxfService extends WsService { private final Map<String, CxfWsContainer> wsContainers = new TreeMap<String, CxfWsContainer>(); private SoapTransportFactory transportFactory; + private boolean factoryByListener; public String getName() { return "cxf"; @@ -60,6 +60,7 @@ public class CxfService extends WsService { CxfUtil.configureBus(); SaajInterceptor.registerInterceptors(); + factoryByListener = "true".equalsIgnoreCase(props.getProperty("openejb.cxf.factoryByListener", "false")); transportFactory = new SoapTransportFactory(); if (SystemInstance.get().getComponent(JaxWsServiceReference.WebServiceClientCustomizer.class) == null) { @@ -80,6 +81,10 @@ public class CxfService extends WsService { } } + private SoapTransportFactory newTransportFactory() { + return !factoryByListener ? transportFactory : new SoapTransportFactory(); + } + protected HttpListener createEjbWsContainer(URL moduleBaseUrl, PortData port, BeanContext beanContext, ServiceConfiguration config) { final Bus bus = CxfUtil.getBus(); @@ -88,7 +93,7 @@ public class CxfService extends WsService { try { CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl, "META-INF/jax-ws-catalog.xml"); - final EjbWsContainer container = new EjbWsContainer(bus, transportFactory, port, beanContext, config); + final EjbWsContainer container = new EjbWsContainer(bus, newTransportFactory(), port, beanContext, config); container.start(); wsContainers.put(beanContext.getDeploymentID().toString(), container); SystemInstance.get().fireEvent(new ServerCreated( @@ -110,7 +115,7 @@ public class CxfService extends WsService { try { CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl, "META-INF/jax-ws-catalog.xml"); - PojoWsContainer container = new PojoWsContainer(loader, transportFactory, bus, port, context, target, bdgs, services); + PojoWsContainer container = new PojoWsContainer(loader, newTransportFactory(), bus, port, context, target, bdgs, services); container.start(); wsContainers.put(serviceId, container); SystemInstance.get().fireEvent(new ServerCreated(