Author: rmannibucau
Date: Fri Oct 18 09:25:00 2013
New Revision: 1533368
URL: http://svn.apache.org/r1533368
Log:
TOMEE-1060 using a single http transport factory
Modified:
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
Modified:
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java?rev=1533368&r1=1533367&r2=1533368&view=diff
==============================================================================
---
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java
(original)
+++
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java
Fri Oct 18 09:25:00 2013
@@ -24,12 +24,15 @@ import org.apache.openejb.core.webservic
import org.apache.openejb.server.cxf.client.SaajInterceptor;
import org.apache.openejb.server.cxf.ejb.EjbWsContainer;
import org.apache.openejb.server.cxf.pojo.PojoWsContainer;
+import org.apache.openejb.server.cxf.transport.HttpTransportFactory;
import org.apache.openejb.server.cxf.transport.util.CxfUtil;
import org.apache.openejb.server.httpd.HttpListener;
import org.apache.openejb.server.webservices.WsService;
import javax.naming.Context;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
@@ -39,6 +42,8 @@ public class CxfService extends WsServic
private final Map<String, CxfWsContainer> wsContainers = new
TreeMap<String, CxfWsContainer>();
+ private HttpTransportFactory httpTransportFactory;
+
public String getName() {
return "cxf";
}
@@ -47,6 +52,16 @@ public class CxfService extends WsServic
super.init(props);
CxfUtil.configureBus();
SaajInterceptor.registerInterceptors();
+
+ initBusTransport(CxfUtil.getBus());
+ }
+
+ private void initBusTransport(final Bus bus) {
+ httpTransportFactory = new HttpTransportFactory(bus);
+ final List<String> ids = new
ArrayList<String>(httpTransportFactory.getTransportIds().size() + 1);
+ ids.addAll(httpTransportFactory.getTransportIds());
+ ids.add("http://schemas.xmlsoap.org/wsdl/soap/");
+ httpTransportFactory.setTransportIds(ids);
}
@Override
@@ -64,7 +79,7 @@ public class CxfService extends WsServic
try {
CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl,
"META-INF/jax-ws-catalog.xml");
- final EjbWsContainer container = new EjbWsContainer(bus, port,
beanContext, config);
+ final EjbWsContainer container = new EjbWsContainer(bus,
httpTransportFactory, port, beanContext, config);
container.start();
wsContainers.put(beanContext.getDeploymentID().toString(),
container);
return container;
@@ -83,7 +98,7 @@ public class CxfService extends WsServic
try {
CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl,
"META-INF/jax-ws-catalog.xml");
- PojoWsContainer container = new PojoWsContainer(loader, bus, port,
context, target, bdgs, services);
+ PojoWsContainer container = new PojoWsContainer(loader,
httpTransportFactory, bus, port, context, target, bdgs, services);
container.start();
wsContainers.put(serviceId, container);
return container;
Modified:
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java?rev=1533368&r1=1533367&r2=1533368&view=diff
==============================================================================
---
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java
(original)
+++
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java
Fri Oct 18 09:25:00 2013
@@ -23,40 +23,32 @@ import org.apache.cxf.transport.http.HTT
import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
import org.apache.openejb.core.webservices.PortData;
import org.apache.openejb.monitoring.LocalMBeanServer;
-import org.apache.openejb.server.cxf.transport.HttpTransportFactory;
import org.apache.openejb.server.cxf.transport.util.CxfUtil;
import org.apache.openejb.server.httpd.HttpListener;
import org.apache.openejb.server.httpd.HttpRequest;
import org.apache.openejb.server.httpd.HttpResponse;
import javax.management.ObjectName;
-import java.util.ArrayList;
-import java.util.List;
public abstract class CxfWsContainer implements HttpListener {
protected final Bus bus;
protected final PortData port;
protected AbstractHTTPDestination destination;
protected CxfEndpoint endpoint;
- protected final HTTPTransportFactory httpTransportFactory;
+ protected HTTPTransportFactory httpTransportFactory;
protected final ServiceConfiguration serviceConfiguration;
private ObjectName jmxName;
- public CxfWsContainer(final Bus bus, final PortData port, final
ServiceConfiguration config) {
+ public CxfWsContainer(final Bus bus, final HTTPTransportFactory
httpTransportFactory, final PortData port, final ServiceConfiguration config) {
this.bus = bus;
this.port = port;
this.serviceConfiguration = config;
-
- final List<String> ids = new ArrayList<String>();
- ids.add("http://schemas.xmlsoap.org/wsdl/soap/");
-
- httpTransportFactory = new HttpTransportFactory(bus);
- httpTransportFactory.setTransportIds(ids);
+ this.httpTransportFactory = httpTransportFactory;
}
public void start() {
endpoint = createEndpoint();
- endpoint.publish("http://nopath");
+ endpoint.publish("http://nopath" + endpoint.hashCode()); // needs to
be unique
destination = (AbstractHTTPDestination)
endpoint.getServer().getDestination();
// register an MBean for this endpoint
Modified:
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java?rev=1533368&r1=1533367&r2=1533368&view=diff
==============================================================================
---
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
(original)
+++
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
Fri Oct 18 09:25:00 2013
@@ -18,6 +18,7 @@
package org.apache.openejb.server.cxf.ejb;
import org.apache.cxf.Bus;
+import org.apache.cxf.transport.http.HTTPTransportFactory;
import org.apache.openejb.BeanContext;
import org.apache.openejb.api.internal.Internal;
import org.apache.openejb.api.jmx.Description;
@@ -44,8 +45,8 @@ public class EjbWsContainer extends CxfW
private final BeanContext beanContext;
private WsServiceMBean mbean;
- public EjbWsContainer(Bus bus, PortData port, BeanContext beanContext,
ServiceConfiguration config) {
- super(bus, port, config);
+ public EjbWsContainer(final Bus bus, final HTTPTransportFactory
transportFactory, final PortData port, final BeanContext beanContext, final
ServiceConfiguration config) {
+ super(bus, transportFactory, port, config);
if (beanContext == null) throw new
NullPointerException("deploymentInfo is null");
this.beanContext = beanContext;
}
Modified:
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java?rev=1533368&r1=1533367&r2=1533368&view=diff
==============================================================================
---
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
(original)
+++
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
Fri Oct 18 09:25:00 2013
@@ -18,6 +18,7 @@
package org.apache.openejb.server.cxf.pojo;
import org.apache.cxf.Bus;
+import org.apache.cxf.transport.http.HTTPTransportFactory;
import org.apache.openejb.api.internal.Internal;
import org.apache.openejb.api.jmx.Description;
import org.apache.openejb.api.jmx.MBean;
@@ -48,9 +49,11 @@ public class PojoWsContainer extends Cxf
private final ClassLoader loader;
private WsServiceMBean mbean;
- public PojoWsContainer(ClassLoader loader, Bus bus, PortData port, Context
context, Class target,
- Map<String, Object> bdgs, ServiceConfiguration
configuration) {
- super(bus, port, configuration);
+ public PojoWsContainer(final ClassLoader loader, final
HTTPTransportFactory transportFactory,
+ final Bus bus, final PortData port, final Context
context,
+ final Class target,
+ final Map<String, Object> bdgs, final
ServiceConfiguration configuration) {
+ super(bus, transportFactory, port, configuration);
if (target == null) throw new NullPointerException("target is null");
this.context = context;
this.target = target;