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;