You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/10/18 11:25:01 UTC
svn commit: r1533368 - in
/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf:
CxfService.java CxfWsContainer.java ejb/EjbWsContainer.java
pojo/PojoWsContainer.java
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;