[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