[jboss-cvs] JBossAS SVN: r97177 - in projects/jboss-deployers/trunk: deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 30 11:31:12 EST 2009


Author: alesj
Date: 2009-11-30 11:31:12 -0500 (Mon, 30 Nov 2009)
New Revision: 97177

Added:
   projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/bean/test/BeansDeploymentRegistryUnitTestCase.java
Modified:
   projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/ServiceDeployer.java
   projects/jboss-deployers/trunk/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentRegistry.java
   projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java
   projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/AbstractDeployerUnitTest.java
Log:
[JBDEPLOY-65]; tests for context2deployment mapping.

Modified: projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/ServiceDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/ServiceDeployer.java	2009-11-30 16:13:51 UTC (rev 97176)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/ServiceDeployer.java	2009-11-30 16:31:12 UTC (rev 97177)
@@ -118,7 +118,7 @@
 
          ControllerContext serviceContext = getControllerContext(name);
          if (serviceContext != null)
-            putContext(serviceContext, unit);
+            putContext(serviceContext, unit.getParent()); // we're component, use parent
       }
       catch (Throwable t)
       {
@@ -168,7 +168,7 @@
 
       ControllerContext serviceContext = getControllerContext(name);
       if (serviceContext != null)
-         removeContext(serviceContext, unit);
+         removeContext(serviceContext, unit.getParent());
 
       ServiceContext context = controller.getServiceContext(name);
       if (context != null)

Modified: projects/jboss-deployers/trunk/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentRegistry.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentRegistry.java	2009-11-30 16:13:51 UTC (rev 97176)
+++ projects/jboss-deployers/trunk/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentRegistry.java	2009-11-30 16:31:12 UTC (rev 97177)
@@ -100,11 +100,17 @@
 
    public DeploymentUnit getDeployment(ControllerContext context)
    {
+      if (context == null)
+         throw new IllegalArgumentException("Null context");
+
       return contextMapping.get(context);
    }
 
    public Set<ControllerContext> getContexts(DeploymentUnit unit)
    {
+      if (unit == null)
+         throw new IllegalArgumentException("Null deployment unit");
+
       lock.readLock().lock();
       try
       {

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java	2009-11-30 16:13:51 UTC (rev 97176)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java	2009-11-30 16:31:12 UTC (rev 97177)
@@ -178,7 +178,7 @@
       try
       {
          controller.install(context);
-         putContext(context, unit);
+         putContext(context, unit.getParent()); // we're a component, use parent
       }
       catch (Throwable t)
       {
@@ -226,7 +226,7 @@
       if (plugin == null || plugin.uninstallContext(controller, unit, deployment) == false)
       {
          ControllerContext context = controller.uninstall(deployment.getName());
-         removeContext(context, unit);
+         removeContext(context, unit.getParent());
       }
       
       // Remove any classloader metadata we added (not necessary if we clone above)

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/AbstractDeployerUnitTest.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/AbstractDeployerUnitTest.java	2009-11-30 16:13:51 UTC (rev 97176)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/AbstractDeployerUnitTest.java	2009-11-30 16:31:12 UTC (rev 97177)
@@ -29,7 +29,6 @@
 import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
-import org.jboss.test.deployers.AbstractDeployerTest;
 
 /**
  * AbstractDeployerUnitTestCase.
@@ -74,8 +73,6 @@
 
    protected Deployers createDeployers()
    {
-      System.err.println("AbstractDeployerUnitTest.CS: "+getClass().getProtectionDomain().getCodeSource());
-      System.err.println("AbstractDeployerTest.CS: "+AbstractDeployerTest.class.getProtectionDomain().getCodeSource());
       DeployersImpl deployers = (DeployersImpl) super.createDeployers();
       KernelController controller = getController();
       MutableMetaDataRepository repository = controller.getKernel().getMetaDataRepository().getMetaDataRepository();

Copied: projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/bean/test/BeansDeploymentRegistryUnitTestCase.java (from rev 96678, projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/bean/test/BuilderBeansUnitTestCase.java)
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/bean/test/BeansDeploymentRegistryUnitTestCase.java	                        (rev 0)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/bean/test/BeansDeploymentRegistryUnitTestCase.java	2009-11-30 16:31:12 UTC (rev 97177)
@@ -0,0 +1,168 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.deployers.vfs.deployer.bean.test;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.spi.attachments.MutableAttachments;
+import org.jboss.deployers.structure.spi.DeploymentRegistry;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.structure.spi.helpers.AbstractDeploymentRegistry;
+import org.jboss.deployers.vfs.deployer.kernel.BeanDeployer;
+import org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer;
+import org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer;
+import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.kernel.Kernel;
+import org.jboss.test.deployers.support.TCCLClassLoaderDeployer;
+import org.jboss.test.deployers.vfs.deployer.AbstractDeployerUnitTest;
+
+/**
+ * BeansDeploymentRegistryUnitTestCase.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class BeansDeploymentRegistryUnitTestCase extends AbstractDeployerUnitTest
+{
+   private DeploymentRegistry registry;
+
+   public static Test suite()
+   {
+      return new TestSuite(BeansDeploymentRegistryUnitTestCase.class);
+   }
+
+   public BeansDeploymentRegistryUnitTestCase(String name) throws Throwable
+   {
+      super(name);
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      registry = null;
+      super.tearDown();
+   }
+
+   protected void addDeployers(Kernel kernel)
+   {
+      registry = new AbstractDeploymentRegistry();
+
+      BeanDeployer beanDeployer = new BeanDeployer();
+      KernelDeploymentDeployer kernelDeploymentDeployer = new KernelDeploymentDeployer();
+      TCCLClassLoaderDeployer tcclDeployer = new TCCLClassLoaderDeployer();
+      addDeployer(main, beanDeployer);
+      addDeployer(main, kernelDeploymentDeployer);
+      addDeployer(main, tcclDeployer);
+
+      BeanMetaDataDeployer deployer = new BeanMetaDataDeployer(kernel.getController());
+      deployer.setDeploymentRegistry(registry);
+      addDeployer(main, deployer);
+   }
+
+   public void testSuccessfulDeployment() throws Throwable
+   {
+      ControllerContext c1 = null;
+      ControllerContext c2 = null;
+      DeploymentUnit unit = null;
+
+      VFSDeployment deployment = createDeployment("/bean/multiple", "test.jar");
+      assertDeploy(deployment);
+      try
+      {
+         c1 = controller.getInstalledContext("Test1");
+         c2 = controller.getInstalledContext("Test2");
+         unit = assertDeploymentUnit(main, deployment.getName());
+
+         Set<ControllerContext> contexts = new HashSet<ControllerContext>();
+         contexts.add(c1);
+         contexts.add(c2);
+
+         assertEquals(contexts, registry.getContexts(unit));
+         assertSame(unit, registry.getDeployment(c1));
+         assertSame(unit, registry.getDeployment(c2));
+      }
+      finally
+      {
+         assertUndeploy(deployment);
+
+         assertEmpty(registry.getContexts(unit));
+         assertNull(registry.getDeployment(c1));
+         assertNull(registry.getDeployment(c2));
+      }
+   }
+
+   public void testFailedDeployment() throws Throwable
+   {
+      ControllerContext c1 = null;
+      ControllerContext c2 = null;
+      DeploymentUnit unit = null;
+
+      VFSDeployment deployment = createDeployment("/bean/multiple", "test.jar");
+      assertDeploy(deployment);
+      try
+      {
+         c1 = controller.getInstalledContext("Test1");
+         c2 = controller.getInstalledContext("Test2");
+         unit = assertDeploymentUnit(main, deployment.getName());
+
+         Set<ControllerContext> contexts = new HashSet<ControllerContext>();
+         contexts.add(c1);
+         contexts.add(c2);
+
+         assertEquals(contexts, registry.getContexts(unit));
+         assertSame(unit, registry.getDeployment(c1));
+         assertSame(unit, registry.getDeployment(c2));
+
+         Deployment failed = createSimpleDeployment("failed");
+         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("Foo", Object.class.getName());
+         builder.addAlias("Test1");
+         ((MutableAttachments)failed.getPredeterminedManagedObjects()).addAttachment(BeanMetaData.class, builder.getBeanMetaData());
+
+         try
+         {
+            DeploymentUnit du = addDeployment(main, failed);
+            ControllerContext foo = controller.getInstalledContext("Foo");
+            assertNull(foo);
+            assertEmpty(registry.getContexts(du));
+         }
+         finally
+         {
+            assertUndeploy(failed);
+         }
+      }
+      finally
+      {
+         assertUndeploy(deployment);
+
+         assertEmpty(registry.getContexts(unit));
+         assertNull(registry.getDeployment(c1));
+         assertNull(registry.getDeployment(c2));
+      }
+   }
+}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list