[jboss-svn-commits] JBL Code SVN: r17048 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 5 14:08:14 EST 2007


Author: kevin.conner at jboss.com
Date: 2007-12-05 14:08:13 -0500 (Wed, 05 Dec 2007)
New Revision: 17048

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
Log:
Add esb-depends to deployment.xml :JBESB-1359

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2007-12-05 19:05:29 UTC (rev 17047)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2007-12-05 19:08:13 UTC (rev 17048)
@@ -26,8 +26,10 @@
 import java.io.StringReader;
 import java.io.StringWriter;
 import java.net.URL;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
@@ -53,6 +55,7 @@
 import org.jboss.soa.esb.util.ClassUtil;
 import org.jboss.soa.esb.util.XPathNamespaceContext;
 import org.jboss.system.ServiceControllerMBean;
+import org.jboss.web.AbstractWebContainer;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -204,7 +207,7 @@
          {
             try
             {
-               Element jboss = xfl.getDocument(in, "META-INF/esb-deployment.xml").getDocumentElement();
+               Element jboss = xfl.getDocument(in, "META-INF/deployment.xml").getDocumentElement();
                // Check for a ejb level class loading config
                Element loader = MetaData.getOptionalChild(jboss, "loader-repository");
                if (loader != null)
@@ -238,6 +241,7 @@
    {
       log.info("create esb service, " + di.shortName);
       URL document = getDocumentUrl(di);
+      
       if (document == null)
       {
          throw new DeploymentException("Unable to find document url of META-INF/jboss-esb.xml in: "
@@ -264,7 +268,48 @@
                      deps.add(depOn);
                   }
                }
-
+               Iterator esbDepends = MetaData.getChildrenByTagName(jboss, "esb-depends");
+               if ((esbDepends != null) && esbDepends.hasNext())
+               {
+                  final Map<String, DeploymentInfo> subDeploymentLocationMap ;
+                  if (di.subDeployments.size() > 0)
+                  {
+                     subDeploymentLocationMap = new HashMap<String, DeploymentInfo>() ;
+                     final Set<DeploymentInfo> subDeployments = (Set<DeploymentInfo>)di.subDeployments ;
+                     for(DeploymentInfo subDI : subDeployments)
+                     {
+                        final String urlPath = subDI.url.getPath() ;
+                        final String deployablePath = (urlPath.endsWith("/") ? urlPath.substring(0, urlPath.length()-1) : urlPath) ;
+                        final int lastSeparator = deployablePath.lastIndexOf('/') ;
+                        final String deployable = (lastSeparator >= 0 ? deployablePath.substring(lastSeparator+1) : deployablePath) ;
+                        if (subDeploymentLocationMap.put(deployable, subDI) != null)
+                        {
+                           throw new DeploymentException("Duplicate subDeployment name: " + deployable) ;
+                        }
+                     }
+                  }
+                  else
+                  {
+                     throw new DeploymentException("No subdeployments to match esb-depends") ;
+                  }
+                  
+                  do
+                  {
+                     Element depend = (Element)esbDepends.next();
+                     final String deployable = MetaData.getElementContent(depend) ;
+                     final DeploymentInfo subDI = subDeploymentLocationMap.get(deployable) ;
+                     if ((subDI != null) && subDI.context.containsKey(AbstractWebContainer.WEB_MODULE))
+                     {
+                        final ObjectName jmxName = (ObjectName) subDI.context.get(AbstractWebContainer.WEB_MODULE) ;
+                        deps.add(jmxName) ;
+                     }
+                     else
+                     {
+                         throw new DeploymentException("Could not locate WAR subdeployment matching: " + deployable) ;
+                     }
+                  }
+                  while (esbDepends.hasNext()) ;
+               }
             }
             finally
             {




More information about the jboss-svn-commits mailing list