[jboss-cvs] JBossAS SVN: r76281 - trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 28 00:23:14 EDT 2008


Author: bstansberry at jboss.com
Date: 2008-07-28 00:23:13 -0400 (Mon, 28 Jul 2008)
New Revision: 76281

Modified:
   trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/DefaultJBossWebEventHandler.java
Log:
[JBAS-5659] Fix startup initialization of proxies

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/DefaultJBossWebEventHandler.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/DefaultJBossWebEventHandler.java	2008-07-28 04:22:59 UTC (rev 76280)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/DefaultJBossWebEventHandler.java	2008-07-28 04:23:13 UTC (rev 76281)
@@ -22,6 +22,9 @@
 
 package org.jboss.web.tomcat.service.modcluster;
 
+import java.io.IOException;
+import java.util.List;
+
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
@@ -30,9 +33,12 @@
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.util.StringManager;
 import org.jboss.logging.Logger;
+import org.jboss.web.tomcat.service.modcluster.advertise.AdvertiseListener;
 import org.jboss.web.tomcat.service.modcluster.config.BalancerConfiguration;
+import org.jboss.web.tomcat.service.modcluster.config.MCMPHandlerConfiguration;
 import org.jboss.web.tomcat.service.modcluster.config.NodeConfiguration;
 import org.jboss.web.tomcat.service.modcluster.load.LoadBalanceFactorProvider;
+import org.jboss.web.tomcat.service.modcluster.mcmp.AddressPort;
 import org.jboss.web.tomcat.service.modcluster.mcmp.MCMPHandler;
 import org.jboss.web.tomcat.service.modcluster.mcmp.MCMPRequest;
 import org.jboss.web.tomcat.service.modcluster.mcmp.MCMPUtils;
@@ -59,6 +65,7 @@
    private final LoadBalanceFactorProvider loadBalanceFactorProvider;
    
    private boolean init;
+   private AdvertiseListener advertiseListener;
    
    // -----------------------------------------------------------  Constructors
    
@@ -77,21 +84,32 @@
 
    public synchronized void init()
    {
-      mcmpHandler.init();
-      init = true;
+      MCMPHandlerConfiguration handlerConfig = this.mcmpHandler.getConfiguration();
+      List<AddressPort> initialProxies = MCMPUtils.parseProxies(handlerConfig.getProxyList());
+      this.mcmpHandler.init(initialProxies);
+      
+      if (Boolean.TRUE.equals(handlerConfig) || (handlerConfig == null && initialProxies.size() == 0))
+      {
+         this.advertiseListener = new AdvertiseListener(this.mcmpHandler);
+      }
+      
+      this.init = true;
    }
    
    public synchronized void shutdown()
    {
-      mcmpHandler.shutdown();
-      init = false;
+      stopListener();
+      this.mcmpHandler.shutdown();      
+      this.init = false;
    }
 
    /**
     * Send commands to the front end server associated with the startup of the
     * node.
     */
-   public void startServer(Server server) {
+   public void startServer(Server server) 
+   {      
+      checkInit(); 
                
        Service[] services = server.findServices();
        for (int i = 0; i < services.length; i++) {
@@ -114,7 +132,9 @@
     * Send commands to the front end server associated with the shutdown of the
     * node.
     */
-   public void stopServer(Server server) {
+   public void stopServer(Server server) 
+   {      
+      checkInit(); 
 
        Service[] services = server.findServices();
        for (int i = 0; i < services.length; i++) {
@@ -130,8 +150,7 @@
    }
    
    public void config(Engine engine)
-   {      
-      checkInit(); 
+   {
       
       if (log.isDebugEnabled()) {
          log.debug(sm.getString("modcluster.engine.config", engine.getName()));
@@ -262,7 +281,27 @@
    
    private void checkInit()
    {
-      if (!init)
+      if (!this.init)
          throw new IllegalStateException(sm.getString("modcluster.error.uninitialized"));
    }
+   
+
+   /**
+    * Stop the advertise listener.
+    */
+   private void stopListener() 
+   {
+       if (this.advertiseListener != null) 
+       {
+           try 
+           {
+              this.advertiseListener.destroy();
+           } 
+           catch (IOException e) 
+           {
+               log.error(sm.getString("modcluster.error.stopListener"), e);
+           }
+           this.advertiseListener = null;
+       }
+   }
 }




More information about the jboss-cvs-commits mailing list