You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/10/11 17:30:01 UTC

svn commit: r1181841 - in /cxf/trunk/rt/transports/http-jetty/src: main/java/org/apache/cxf/transport/http_jetty/ main/java/org/apache/cxf/transport/http_jetty/spring/ test/java/org/apache/cxf/transport/http_jetty/

Author: dkulp
Date: Tue Oct 11 15:30:01 2011
New Revision: 1181841

URL: http://svn.apache.org/viewvc?rev=1181841&view=rev
Log:
Start some work to decouple the JettyHTTPServerEngine from the Bus level
factories to allow them to be configured outside a specific Bus (like
maybe from OSGi)

Modified:
    cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
    cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
    cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
    cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java

Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java?rev=1181841&r1=1181840&r2=1181841&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java Tue Oct 11 15:30:01 2011
@@ -27,10 +27,8 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
 import javax.servlet.ServletContext;
 
-import org.apache.cxf.Bus;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.SystemPropertyAction;
@@ -71,13 +69,6 @@ public class JettyHTTPServerEngine
         LogUtils.getL7dLogger(JettyHTTPServerEngine.class);
    
     /**
-     * This is the Jetty HTTP Server Engine Factory. This factory caches some 
-     * engines based on port numbers.
-     */
-    protected JettyHTTPServerEngineFactory factory;
-    
-    
-    /**
      * This is the network port for which this engine is allocated.
      */
     private int port;
@@ -103,7 +94,7 @@ public class JettyHTTPServerEngine
     private List<Handler> handlers;
     private JettyConnectorFactory connectorFactory;
     private ContextHandlerCollection contexts;
-    
+    private Container.Listener mBeanContainer;
     private SessionManager sessionManager;
     
     /**
@@ -128,22 +119,18 @@ public class JettyHTTPServerEngine
      * This constructor is called by the JettyHTTPServerEngineFactory.
      */
     public JettyHTTPServerEngine(
-        JettyHTTPServerEngineFactory fac, 
+        Container.Listener mBeanContainer,
         String host,
         int port) {
-        this.factory = fac;
         this.host    = host;
         this.port    = port;
+        this.mBeanContainer = mBeanContainer;
     }
     
     public JettyHTTPServerEngine() {
         
     }
      
-    public void setJettyHTTPServerEngineFactory(JettyHTTPServerEngineFactory fac) {
-        factory = fac;
-    }
-    
     public void setPort(int p) {
         port = p;
     }
@@ -161,16 +148,6 @@ public class JettyHTTPServerEngine
     }
     
     /**
-     * The bus.
-     */
-    @Resource(name = "cxf")
-    public void setBus(Bus bus) {
-        if (null != bus && null == factory) {
-            factory = bus.getExtension(JettyHTTPServerEngineFactory.class);
-        }        
-    }
-    
-    /**
      * Returns the protocol "http" or "https" for which this engine
      * was configured.
      */
@@ -200,8 +177,8 @@ public class JettyHTTPServerEngine
      */
     public void shutdown() {
         if (shouldDestroyPort()) {
-            if (factory != null && servantCount == 0) {
-                factory.destroyForPort(port);
+            if (servantCount == 0) {
+                JettyHTTPServerEngineFactory.destroyForPort(port);
             } else {
                 LOG.log(Level.WARNING, "FAILED_TO_SHUTDOWN_ENGINE_MSG", port);
             }
@@ -306,7 +283,6 @@ public class JettyHTTPServerEngine
             // create a new jetty server instance if there is no server there            
             server = new Server();
             
-            Container.Listener mBeanContainer = factory.getMBeanContainer();
             if (mBeanContainer != null) {
                 server.getContainer().addEventListener(mBeanContainer);
             }

Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java?rev=1181841&r1=1181840&r2=1181841&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java Tue Oct 11 15:30:01 2011
@@ -111,7 +111,7 @@ public class JettyHTTPServerEngineFactor
         
         JettyHTTPServerEngine ref = portMap.get(port);
         if (ref == null) {
-            ref = new JettyHTTPServerEngine(factory, host, port);
+            ref = new JettyHTTPServerEngine(factory.getMBeanContainer(), host, port);
             if (tlsParams != null) {
                 ref.setTlsServerParameters(tlsParams);
             }
@@ -282,7 +282,7 @@ public class JettyHTTPServerEngineFactor
     /**
      * This method removes the Server Engine from the port map and stops it.
      */
-    public synchronized void destroyForPort(int port) {
+    public static synchronized void destroyForPort(int port) {
         JettyHTTPServerEngine ref = portMap.remove(port);
         if (ref != null) {
             LOG.fine("Stopping Jetty HTTP Server Engine on port " + port + ".");

Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java?rev=1181841&r1=1181840&r2=1181841&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java Tue Oct 11 15:30:01 2011
@@ -170,24 +170,32 @@ public class JettyHTTPServerEngineBeanDe
         String threadingRef;
         String tlsRef;
         Bus bus;
+        JettyHTTPServerEngineFactory factory;
         
         public SpringJettyHTTPServerEngine(
             JettyHTTPServerEngineFactory fac,
             Bus b,
             String host,
             int port) {
-            super(fac, host, port);
+            super(fac.getMBeanContainer(), host, port);
             bus = b;
+            factory = fac;
         }
         
         public SpringJettyHTTPServerEngine() {
             super();
         }
         
+        public void setBus(Bus b) {
+            bus = b;
+            if (null != bus && null == factory) {
+                factory = bus.getExtension(JettyHTTPServerEngineFactory.class);
+            } 
+        }
         
         public void setApplicationContext(ApplicationContext ctx) throws BeansException {
             if (bus == null) {
-                setBus(BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx));
+                bus = BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx);
             }
         }
         
@@ -203,9 +211,7 @@ public class JettyHTTPServerEngineBeanDe
             throws GeneralSecurityException,
                    IOException {
             if (tlsRef != null || threadingRef != null) {
-                if (bus != null) {
-                    setBus(bus);
-                }
+
                 if (threadingRef != null) {
                     setThreadingParameters(factory.getThreadingParametersMap().get(threadingRef));
                 }

Modified: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java?rev=1181841&r1=1181840&r2=1181841&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java Tue Oct 11 15:30:01 2011
@@ -91,7 +91,7 @@ public class JettyHTTPServerEngineTest e
             "Engine references for the same port should point to the same instance",
             engine == factory.retrieveJettyHTTPServerEngine(9234));
 
-        factory.destroyForPort(1234);
+        JettyHTTPServerEngineFactory.destroyForPort(1234);
     }
 
     @Test
@@ -103,7 +103,6 @@ public class JettyHTTPServerEngineTest e
                 "http".equals(engine.getProtocol()));
 
         engine = new JettyHTTPServerEngine();
-        engine.setJettyHTTPServerEngineFactory(factory);
         engine.setPort(9235);
         engine.setMaxIdleTime(30000);
         engine.setTlsServerParameters(new TLSServerParameters());
@@ -130,9 +129,9 @@ public class JettyHTTPServerEngineTest e
         assertTrue("Protocol must be https",
                    "https".equals(engine.getProtocol()));
 
-        factory.destroyForPort(9234);
-        factory.destroyForPort(9235);
-        factory.destroyForPort(9236);
+        JettyHTTPServerEngineFactory.destroyForPort(9234);
+        JettyHTTPServerEngineFactory.destroyForPort(9235);
+        JettyHTTPServerEngineFactory.destroyForPort(9236);
     }
 
 
@@ -200,7 +199,7 @@ public class JettyHTTPServerEngineTest e
         response = getResponse(urlStr2);
         assertEquals("The jetty http handler did not take effect", response, "string2");
         // set the get request
-        factory.destroyForPort(9234);
+        JettyHTTPServerEngineFactory.destroyForPort(9234);
 
     }
     
@@ -247,8 +246,8 @@ public class JettyHTTPServerEngineTest e
             queryNames(new ObjectName("org.eclipse.jetty.server:type=server,*"), null));
         assertEquals("Could not find 0 Jetty Server: " + s, 0, s.size());
         
-        factory.destroyForPort(9234);
-        factory.destroyForPort(9235);
+        JettyHTTPServerEngineFactory.destroyForPort(9234);
+        JettyHTTPServerEngineFactory.destroyForPort(9235);
     }
 
     @Test
@@ -259,7 +258,6 @@ public class JettyHTTPServerEngineTest e
 
         JettyHTTPServerEngine engine = new JettyHTTPServerEngine();
         engine.setPort(9235);
-        engine.setJettyHTTPServerEngineFactory(factory);
 
         List<Handler> handlers = new ArrayList<Handler>();
         handlers.add(handler1);
@@ -307,7 +305,7 @@ public class JettyHTTPServerEngineTest e
             fail("Can't get the reponse from the server " + ex);
         }
         assertEquals("the jetty http handler did not take effect", response, "string2");
-        factory.destroyForPort(9234);
+        JettyHTTPServerEngineFactory.destroyForPort(9234);
     }
 
     @Test
@@ -340,7 +338,7 @@ public class JettyHTTPServerEngineTest e
         }
         assertEquals("the jetty http handler did not take effect", response, "test2");
 
-        factory.destroyForPort(9236);
+        JettyHTTPServerEngineFactory.destroyForPort(9236);
     }
 
     private String getResponse(String target) throws Exception {