[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