[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