[jboss-svn-commits] JBL Code SVN: r22759 - in labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners: lifecycle and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Sep 14 11:12:37 EDT 2008
Author: tcunning
Date: 2008-09-14 11:12:36 -0400 (Sun, 14 Sep 2008)
New Revision: 22759
Modified:
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java
Log:
JBESB-2038
Make sure we undeploy all MBeans relating to a deployment before we
deploy new ones. This was causing duplicate entries upon hot deploy
where names of service name or service category changed.
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2008-09-14 15:09:47 UTC (rev 22758)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2008-09-14 15:12:36 UTC (rev 22759)
@@ -22,9 +22,18 @@
package org.jboss.soa.esb.listeners.config;
import java.util.List;
+import java.util.Set;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
import org.jboss.system.ServiceMBeanSupport;
@@ -96,6 +105,7 @@
{
Thread.currentThread().setContextClassLoader(classloader);
LifecycleResourceManager.getSingleton().associateDeployment(deploymentName) ;
+ unregisterMBeans(deploymentName);
controller = Configuration.create(jbossEsbXml, serviceName, publishers);
controller.start();
}
@@ -106,6 +116,33 @@
}
+ /**
+ * Unregisters all MBeans that may have been associated with a previous version of the ESB deployment.
+ *
+ * @param deploymentName name of the deployment (ex: jbossesb.esb)
+ * @throws Exception
+ */
+ private void unregisterMBeans(String deployment) throws Exception {
+ MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
+ Set<ObjectName> listenerControllers = mbeanServer.queryNames(new ObjectName("jboss.esb:*"), null);
+ for (ObjectName controller : listenerControllers) {
+ if (controller.toString().indexOf("deployment="+deployment)>0) {
+ if ((controller.toString().indexOf("listener-name=")>0) || (controller.toString().indexOf("gateway-name=")>0)) {
+ mbeanServer.unregisterMBean(controller);
+ }
+ }
+ }
+
+ Set<ObjectName> counterControllers = mbeanServer.queryNames(new ObjectName("jboss.esb:*"), null);
+ for (ObjectName controller : counterControllers) {
+ if (controller.toString().indexOf("category=MessageCounter," + ListenerTagNames.DEPLOYMENT_NAME_TAG + "=" + deploymentName)>0) {
+ if (controller.toString().indexOf(ListenerTagNames.SERVICE_NAME_TAG + "=")>0) {
+ mbeanServer.unregisterMBean(controller);
+ }
+ }
+ }
+ }
+
@Override
public void stopService() throws Exception
{
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java 2008-09-14 15:09:47 UTC (rev 22758)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java 2008-09-14 15:12:36 UTC (rev 22759)
@@ -163,14 +163,25 @@
return;
}
+ String deployment = null;
+ String listenerName = null;
ObjectName listObjectName = null;
try {
+ deployment = m_config.getParent().getAttribute("deployment");
+ listenerName = m_config.getName();
+
String categoryName = m_config.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG);
String serviceName = m_config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
- String listenerName = m_config.getName();
StringBuffer objectName = new StringBuffer();
+ if (deployment != null) {
+ objectName.append(ListenerTagNames.DEPLOYMENT_NAME_TAG + "=" + deployment);
+ }
+
if (categoryName != null) {
+ if (objectName.length() > 0) {
+ objectName.append(",");
+ }
objectName.append(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG + "=" + categoryName);
}
@@ -180,7 +191,7 @@
}
objectName.append(ListenerTagNames.SERVICE_NAME_TAG + "=" + serviceName);
}
-
+
if (listenerName != null) {
if (objectName.length() > 0) {
objectName.append(",");
@@ -195,29 +206,29 @@
listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
} catch (MalformedObjectNameException e1) {
- logger.error("", e1);
+ logger.warn("", e1);
} catch (NullPointerException e1) {
- logger.error("", e1);
+ logger.warn("", e1);
}
-
+
if (mbeanServer.isRegistered(listObjectName)) {
try {
mbeanServer.unregisterMBean(listObjectName);
} catch (InstanceNotFoundException e) {
- logger.error("", e);
+ logger.warn("", e);
} catch (MBeanRegistrationException e) {
- logger.error("", e);
+ logger.warn("", e);
}
}
try {
mbeanServer.registerMBean(this, listObjectName);
} catch (InstanceAlreadyExistsException e) {
- logger.error("", e);
+ logger.warn("", e);
} catch (MBeanRegistrationException e) {
- logger.error("", e);
+ logger.warn("", e);
} catch (NotCompliantMBeanException e) {
- logger.error("", e);
+ logger.warn("", e);
}
}
@@ -318,7 +329,7 @@
try {
start();
} catch (ManagedLifecycleException e) {
- logger.error("", e);
+ logger.warn("", e);
return "Error invoking " + method + ": " + e.toString();
}
return "Invoking the " + method + " on the lifecycle.";
@@ -326,7 +337,7 @@
try {
initialise();
} catch (ManagedLifecycleException e) {
- logger.error("", e);
+ logger.warn("", e);
return "Error invoking " + method + ": " + e.toString();
}
return "Invoking the " + method + " on the lifecycle.";
@@ -334,7 +345,7 @@
try {
stop();
} catch (ManagedLifecycleException e) {
- logger.error("", e);
+ logger.warn("", e);
return "Error invoking " + method + ": " + e.toString();
}
return "Invoking the " + method + " on the lifecycle.";
@@ -342,7 +353,7 @@
try {
destroy();
} catch (ManagedLifecycleException e) {
- logger.error("", e);
+ logger.warn("", e);
return "Error invoking " + method + ": " + e.toString();
}
return "Invoking the " + method + " on the lifecycle.";
More information about the jboss-svn-commits
mailing list