[jboss-cvs] JBossAS SVN: r73755 - projects/ejb3/trunk/test/src/main/java/org/jboss/ejb3/test/mc/bootstrap.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 28 17:57:36 EDT 2008
Author: ALRubinger
Date: 2008-05-28 17:57:35 -0400 (Wed, 28 May 2008)
New Revision: 73755
Modified:
projects/ejb3/trunk/test/src/main/java/org/jboss/ejb3/test/mc/bootstrap/EmbeddedTestMcBootstrap.java
Log:
[EJBTHREE-1380] Deploy all resources for a given URL within the CL
Modified: projects/ejb3/trunk/test/src/main/java/org/jboss/ejb3/test/mc/bootstrap/EmbeddedTestMcBootstrap.java
===================================================================
--- projects/ejb3/trunk/test/src/main/java/org/jboss/ejb3/test/mc/bootstrap/EmbeddedTestMcBootstrap.java 2008-05-28 21:29:55 UTC (rev 73754)
+++ projects/ejb3/trunk/test/src/main/java/org/jboss/ejb3/test/mc/bootstrap/EmbeddedTestMcBootstrap.java 2008-05-28 21:57:35 UTC (rev 73755)
@@ -21,7 +21,9 @@
*/
package org.jboss.ejb3.test.mc.bootstrap;
+import java.io.IOException;
import java.net.URL;
+import java.util.Enumeration;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.dependency.spi.ControllerContext;
@@ -29,6 +31,7 @@
import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
import org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer;
import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.logging.Logger;
/**
@@ -110,13 +113,14 @@
*
* @param url
*/
- public void deploy(URL url)
+ public KernelDeployment deploy(URL url)
{
try
{
log.debug("Deploying " + url.toString() + "...");
- this.getDeployer().deploy(url);
+ KernelDeployment deployment = this.getDeployer().deploy(url);
log.info("Deployed: " + url.toString());
+ return deployment;
}
catch (Throwable e)
{
@@ -131,8 +135,20 @@
*/
public void deploy(ClassLoader cl, String url)
{
- URL deployable = this.getResource(cl, url);
- this.deploy(deployable);
+ Enumeration<URL> deployables = this.getResources(cl, url);
+ while (deployables.hasMoreElements())
+ {
+ URL deployable = deployables.nextElement();
+ KernelDeployment deployment = this.deploy(deployable);
+ try
+ {
+ this.getDeployer().validate(deployment);
+ }
+ catch (Throwable t)
+ {
+ throw new RuntimeException("Deployment of " + deployable + " failed", t);
+ }
+ }
}
/**
@@ -205,8 +221,11 @@
*/
public void undeploy(ClassLoader cl, String url)
{
- URL deployable = this.getResource(cl, url);
- this.undeploy(deployable);
+ Enumeration<URL> deployables = this.getResources(cl, url);
+ while (deployables.hasMoreElements())
+ {
+ this.undeploy(deployables.nextElement());
+ }
}
/**
@@ -307,25 +326,33 @@
return flatten;
}
- private URL getResource(ClassLoader cl, String resource)
+ private Enumeration<URL> getResources(ClassLoader cl, String resource)
{
// Ensure specified
assert cl != null : "Specified " + ClassLoader.class.getSimpleName() + " is null";
assert resource != null && !resource.equals("") : "Resource must be specified";
// Obtain URL
- URL url = cl.getResource(resource);
- if (url == null)
+ Enumeration<URL> urls = null;
+ try
{
+ urls = cl.getResources(resource);
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException("Could not obtain " + resource);
+ }
+ if (urls == null || !urls.hasMoreElements())
+ {
throw new RuntimeException("Resource \"" + resource + "\" could not be obtained from current classloader");
}
- return url;
+ return urls;
}
public void installInstance(String name, Object instance) throws Throwable
{
BeanMetaDataBuilder bmdb = BeanMetaDataBuilder.createBuilder(name, instance.getClass().getName());
- this.getKernel().getController().install(bmdb.getBeanMetaData(),instance);
+ this.getKernel().getController().install(bmdb.getBeanMetaData(), instance);
log.info("Installed in MC at \"" + name + "\": " + instance);
}
More information about the jboss-cvs-commits
mailing list