[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