[jboss-svn-commits] JBL Code SVN: r22929 - in labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb: listeners and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 19 12:08:45 EDT 2008
Author: kevin.conner at jboss.com
Date: 2008-09-19 12:08:45 -0400 (Fri, 19 Sep 2008)
New Revision: 22929
Modified:
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
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:
Make lifecycle MBean name unique: JBESB-2058
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java 2008-09-19 15:41:40 UTC (rev 22928)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java 2008-09-19 16:08:45 UTC (rev 22929)
@@ -145,6 +145,33 @@
logger.debug("Associating deploymentName " + deploymentName + " with identity: " + identity) ;
}
}
+
+ /**
+ * Get the list of deployments associated with the context classloader.
+ * @return The list of associated deployments or null if no association exists.
+ */
+ public String[] getAssociatedDeployments()
+ {
+ final ClassLoader classLoader = Thread.currentThread().getContextClassLoader() ;
+ final Lock readLock = deploymentLock.readLock() ;
+ readLock.lock() ;
+ try
+ {
+ final Set<String> currentAssociations = associatedDeployments.get(classLoader) ;
+ if (currentAssociations != null)
+ {
+ return (String[])currentAssociations.toArray(new String[currentAssociations.size()]) ;
+ }
+ else
+ {
+ return null ;
+ }
+ }
+ finally
+ {
+ readLock.unlock() ;
+ }
+ }
/**
* Disassociate the current thread with a specified deployment.
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java 2008-09-19 15:41:40 UTC (rev 22928)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java 2008-09-19 16:08:45 UTC (rev 22929)
@@ -35,6 +35,8 @@
public static final String URL_TAG = JDBCEpr.URL_TAG; // change only in one place // TODO huh?!
public static final String PROTOCOL_TAG = "protocol";
+ public static final String NAME_TAG = "name";
+
/** Threading */
public static final String MAX_THREADS_TAG = "maxThreads";
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2008-09-19 15:41:40 UTC (rev 22928)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2008-09-19 16:08:45 UTC (rev 22929)
@@ -284,8 +284,8 @@
addActionDependencies(di.shortName, jbossEsb, deps) ;
JBoss4ESBDeployment deployment = new JBoss4ESBDeployment(jbossEsbXml, di.shortName);
-
- final String deploymentName = getDeploymentName(deployment) ;
+ initialiseDeploymentName(deployment) ;
+ final String deploymentName = deployment.getDeploymentName() ;
di.context.put(JBoss4ESBDeploymentMetaData.class, new JBoss4ESBDeploymentMetaData(deployment, deploymentName, deps)) ;
// invoke super-class initialization
super.init(di);
@@ -684,14 +684,13 @@
return new File(esbDir, warFileName) ;
}
- private synchronized String getDeploymentName(final JBoss4ESBDeployment deployment)
+ private synchronized void initialiseDeploymentName(final JBoss4ESBDeployment deployment)
{
final String deploymentName = deployment.getDeploymentName() ;
- if (esbNames.add(deploymentName))
+ if (!esbNames.add(deploymentName))
{
- return deploymentName ;
+ deployment.setDeploymentName(deploymentName + ",uid=" + System.identityHashCode(deployment)) ;
}
- return deploymentName + ",uid=" + System.identityHashCode(deployment) ;
}
private synchronized void removeDeploymentName(final String deploymentName)
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-19 15:41:40 UTC (rev 22928)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2008-09-19 16:08:45 UTC (rev 22929)
@@ -37,7 +37,7 @@
public class JBoss4ESBDeployment extends ServiceMBeanSupport implements JBoss4ESBDeploymentMBean
{
private final String jbossEsbXml;
- private final String deploymentName ;
+ private String deploymentName ;
private List<ContractReferencePublisher> publishers ;
private ManagedLifecycleController controller;
private ClassLoader classloader;
@@ -78,6 +78,11 @@
return deploymentName ;
}
+ public void setDeploymentName(final String deploymentName)
+ {
+ this.deploymentName = deploymentName ;
+ }
+
public List<ContractReferencePublisher> getPublishers()
{
return publishers ;
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-19 15:41:40 UTC (rev 22928)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java 2008-09-19 16:08:45 UTC (rev 22929)
@@ -48,6 +48,7 @@
import org.apache.log4j.Logger;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.ListenerTagNames;
/**
@@ -309,31 +310,34 @@
final ConfigTree config = m_lifecycle.getConfig() ;
String categoryName = config.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG);
String serviceName = config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
- String listenerName = config.getName();
+ String targetCategoryName = config.getAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
+ String targetServiceName = config.getAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
+ String listenerName = config.getAttribute(ListenerTagNames.NAME_TAG);
+ final LifecycleResourceManager lifecycleResourceManager = LifecycleResourceManager.getSingleton() ;
+ final String[] associatedDeployments = lifecycleResourceManager.getAssociatedDeployments() ;
+ final String deployment ;
+ if ((associatedDeployments != null) && (associatedDeployments.length == 1))
+ {
+ deployment = associatedDeployments[0] ;
+ }
+ else
+ {
+ deployment = lifecycleResourceManager.getIdentity() ;
+ }
StringBuffer objectName = new StringBuffer();
- if (categoryName != null) {
- objectName.append(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG + "=" + categoryName);
- }
+ append(objectName, "deployment", deployment) ;
+ append(objectName, ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, categoryName) ;
+ append(objectName, ListenerTagNames.SERVICE_NAME_TAG, serviceName);
+ append(objectName, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, targetCategoryName);
+ append(objectName, ListenerTagNames.TARGET_SERVICE_NAME_TAG, targetServiceName);
- if (serviceName != null) {
- if (objectName.length() > 0) {
- objectName.append(",");
- }
- objectName.append(ListenerTagNames.SERVICE_NAME_TAG + "=" + serviceName);
+ if ("true".equals(config.getAttribute(ListenerTagNames.IS_GATEWAY_TAG))) {
+ append(objectName, "gateway-name", listenerName) ;
+ } else {
+ append(objectName, "listener-name", listenerName) ;
}
- if (listenerName != null) {
- if (objectName.length() > 0) {
- objectName.append(",");
- }
- if ("true".equals(config.getAttribute(ListenerTagNames.IS_GATEWAY_TAG))) {
- objectName.append("gateway-name=" + listenerName);
- } else {
- objectName.append("listener-name=" + listenerName);
- }
- }
-
listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
} catch (MalformedObjectNameException e1) {
logger.error("", e1);
@@ -342,4 +346,14 @@
}
return listObjectName ;
}
+
+ private void append(final StringBuffer objectName, final String name, final String value)
+ {
+ if ((value != null) && (value.length() > 0)) {
+ if (objectName.length() > 0) {
+ objectName.append(",") ;
+ }
+ objectName.append(name).append("=").append(value) ;
+ }
+ }
}
More information about the jboss-svn-commits
mailing list