[jboss-svn-commits] JBL Code SVN: r16938 - labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 30 06:18:46 EST 2007
Author: kevin.conner at jboss.com
Date: 2007-11-30 06:18:46 -0500 (Fri, 30 Nov 2007)
New Revision: 16938
Modified:
labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
Log:
Add esb-depends to deployment.xml :JBESB-1359
Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2007-11-30 11:16:01 UTC (rev 16937)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2007-11-30 11:18:46 UTC (rev 16938)
@@ -25,8 +25,10 @@
import java.io.InputStream;
import java.io.StringReader;
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;
@@ -51,6 +53,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;
@@ -202,7 +205,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)
@@ -236,6 +239,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: "
@@ -262,7 +266,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