[jboss-cvs] JBossAS SVN: r63911 - in projects/microcontainer/trunk: dependency/src/main/org/jboss/dependency/spi and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 9 09:22:54 EDT 2007


Author: alesj
Date: 2007-07-09 09:22:53 -0400 (Mon, 09 Jul 2007)
New Revision: 63911

Added:
   projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/AliasDeploymentDeployer.java
   projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/DeploymentAliasMetaDataDeployer.java
   projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/
   projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/
   projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/aliases-beans.xml
   projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/joined-beans.xml
   projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/my-beans.xml
   projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/AliasDeployerUnitTestCase.java
Modified:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/Controller.java
   projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java
   projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/KernelDeploymentDeployer.java
   projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/BeanDeployerTestSuite.java
   projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentAliasInterceptor.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/deployment/KernelDeployment.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/AliasTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java
Log:
JBMICROCONT-174

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -389,6 +389,38 @@
       return uninstall(name, 0);
    }
 
+   public void addAlias(Object alias, Object original)
+   {
+      lockWrite();
+      try
+      {
+         ControllerContext context = getRegisteredControllerContext(original, true);
+         // todo - do we need to add it to context.aliases?
+         registerControllerContext(alias, context);
+         if (log.isTraceEnabled())
+            log.trace("Added alias " + alias + " for context " + context);
+      }
+      finally
+      {
+         unlockWrite();
+      }
+   }
+
+   public void removeAlias(Object alias)
+   {
+      lockWrite();
+      try
+      {
+         unregisterControllerContext(alias);
+         if (log.isTraceEnabled())
+            log.trace("Removed alias " + alias);
+      }
+      finally
+      {
+         unlockWrite();
+      }
+   }
+
    // todo - some better way to find context's by name
    // currently the first one found is used
    protected ControllerContext uninstall(Object name, int level)

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/Controller.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/Controller.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/Controller.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -71,8 +71,23 @@
     * @return the context
     */
    ControllerContext uninstall(Object name);
-   
+
    /**
+    * Add alias.
+    *
+    * @param alias the alias to add
+    * @param original original name
+    */
+   void addAlias(Object alias, Object original);
+
+   /**
+    * Remove alias.
+    *
+    * @param alias alias to remove
+    */
+   void removeAlias(Object alias);
+
+   /**
     * Get a context
     *
     * @param name the name of the component

Added: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/AliasDeploymentDeployer.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/AliasDeploymentDeployer.java	                        (rev 0)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/AliasDeploymentDeployer.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -0,0 +1,109 @@
+/*
+* 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.deployers.vfs.deployer.kernel;
+
+import java.util.List;
+
+import org.jboss.beans.metadata.spi.NamedAliasMetaData;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractComponentDeployer;
+import org.jboss.deployers.spi.deployer.helpers.DeploymentVisitor;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class AliasDeploymentDeployer extends AbstractComponentDeployer<KernelDeployment, NamedAliasMetaData>
+{
+   /**
+    * Create a new AliasDeploymentDeployer.
+    */
+   public AliasDeploymentDeployer()
+   {
+      setDeploymentVisitor(new KernelDeploymentVisitor());
+      setComponentVisitor(new AliasMetaDataVisitor());
+   }
+
+   protected static void addAliasComponent(DeploymentUnit unit, NamedAliasMetaData alias)
+   {
+      DeploymentUnit component = unit.addComponent(alias.getAliasValue().toString());
+      component.addAttachment(NamedAliasMetaData.class.getName(), alias);
+   }
+
+   protected static void removeAliasComponent(DeploymentUnit unit, NamedAliasMetaData alias)
+   {
+      unit.removeComponent(alias.getAliasValue().toString());
+   }
+
+   /**
+    * KernelDeploymentVisitor.
+    */
+   public static class KernelDeploymentVisitor implements DeploymentVisitor<KernelDeployment>
+   {
+      public Class<KernelDeployment> getVisitorType()
+      {
+         return KernelDeployment.class;
+      }
+
+      public void deploy(DeploymentUnit unit, KernelDeployment deployment) throws DeploymentException
+      {
+         List<NamedAliasMetaData> aliases = deployment.getAliases();
+         if (aliases != null && aliases.isEmpty() == false)
+         {
+            for (NamedAliasMetaData alias : aliases)
+               addAliasComponent(unit, alias);
+         }
+      }
+
+      public void undeploy(DeploymentUnit unit, KernelDeployment deployment)
+      {
+         List<NamedAliasMetaData> aliases = deployment.getAliases();
+         if (aliases != null && aliases.isEmpty() == false)
+         {
+            for (NamedAliasMetaData alias : aliases)
+               removeAliasComponent(unit, alias);
+         }
+      }
+   }
+
+   /**
+    * AliasMetaDataVisitor.
+    */
+   public static class AliasMetaDataVisitor implements DeploymentVisitor<NamedAliasMetaData>
+   {
+      public Class<NamedAliasMetaData> getVisitorType()
+      {
+         return NamedAliasMetaData.class;
+      }
+
+      public void deploy(DeploymentUnit unit, NamedAliasMetaData deployment) throws DeploymentException
+      {
+         addAliasComponent(unit, deployment);
+      }
+
+      public void undeploy(DeploymentUnit unit, NamedAliasMetaData deployment)
+      {
+         removeAliasComponent(unit, deployment);
+      }
+   }
+}

Modified: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -63,7 +63,6 @@
    public void deploy(DeploymentUnit unit, BeanMetaData deployment) throws DeploymentException
    {
       KernelControllerContext context = new AbstractKernelControllerContext(null, deployment, null);
-
       try
       {
          controller.install(context);

Added: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/DeploymentAliasMetaDataDeployer.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/DeploymentAliasMetaDataDeployer.java	                        (rev 0)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/DeploymentAliasMetaDataDeployer.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -0,0 +1,69 @@
+/*
+* 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.deployers.vfs.deployer.kernel;
+
+import org.jboss.beans.metadata.spi.NamedAliasMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.dependency.KernelController;
+
+/**
+ * DeploymentAliasMetaDataDeployer.<p>
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class DeploymentAliasMetaDataDeployer extends AbstractSimpleRealDeployer<NamedAliasMetaData>
+{
+   /** The kernel controller */
+   private final KernelController controller;
+
+   /**
+    * Create a new AliasDeployer.
+    *
+    * @param kernel the kernel
+    * @throws IllegalArgumentException for a null kernel
+    */
+   public DeploymentAliasMetaDataDeployer(Kernel kernel)
+   {
+      super(NamedAliasMetaData.class);
+      addInput(BeanMetaData.class);
+      if (kernel == null)
+         throw new IllegalArgumentException("Null kernel");
+      controller = kernel.getController();
+      setComponentsOnly(true);
+   }
+
+   @Override
+   public void deploy(DeploymentUnit unit, NamedAliasMetaData deployment) throws DeploymentException
+   {
+      controller.addAlias(deployment.getAliasValue(), deployment.getName());
+   }
+
+   @Override
+   public void undeploy(DeploymentUnit unit, NamedAliasMetaData deployment)
+   {
+      controller.removeAlias(deployment.getAliasValue());
+   }
+}

Modified: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/KernelDeploymentDeployer.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/KernelDeploymentDeployer.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/KernelDeploymentDeployer.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -65,15 +65,21 @@
       public void deploy(DeploymentUnit unit, KernelDeployment deployment) throws DeploymentException
       {
          List<BeanMetaData> beans = deployment.getBeans();
-         for (BeanMetaData bean : beans)
-            addBeanComponent(unit, bean);
+         if (beans != null && beans.isEmpty() == false)
+         {
+            for (BeanMetaData bean : beans)
+               addBeanComponent(unit, bean);
+         }
       }
 
       public void undeploy(DeploymentUnit unit, KernelDeployment deployment)
       {
          List<BeanMetaData> beans = deployment.getBeans();
-         for (BeanMetaData bean : beans)
-            removeBeanComponent(unit, bean);
+         if (beans != null && beans.isEmpty() == false)
+         {
+            for (BeanMetaData bean : beans)
+               removeBeanComponent(unit, bean);
+         }
       }
    }
 

Added: projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/aliases-beans.xml
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/aliases-beans.xml	                        (rev 0)
+++ projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/aliases-beans.xml	2007-07-09 13:22:53 UTC (rev 63911)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <alias name="Test">MyAlias</alias>
+</deployment>

Added: projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/joined-beans.xml
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/joined-beans.xml	                        (rev 0)
+++ projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/joined-beans.xml	2007-07-09 13:22:53 UTC (rev 63911)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="Test" class="org.jboss.test.deployers.vfs.deployer.bean.support.Simple"/>
+   <alias name="Test">MyAlias</alias>
+</deployment>

Added: projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/my-beans.xml
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/my-beans.xml	                        (rev 0)
+++ projects/microcontainer/trunk/deployers-vfs/src/resources/tests/alias/toplevel/my-beans.xml	2007-07-09 13:22:53 UTC (rev 63911)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="Test" class="org.jboss.test.deployers.vfs.deployer.bean.support.Simple"/>
+</deployment>

Modified: projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/BeanDeployerTestSuite.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/BeanDeployerTestSuite.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/BeanDeployerTestSuite.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -23,6 +23,7 @@
 
 import org.jboss.test.deployers.vfs.deployer.bean.test.BeanDeployerUnitTestCase;
 import org.jboss.test.deployers.vfs.deployer.bean.test.KernelDeployerUnitTestCase;
+import org.jboss.test.deployers.vfs.deployer.bean.test.AliasDeployerUnitTestCase;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -47,7 +48,8 @@
 
       suite.addTest(BeanDeployerUnitTestCase.suite());
       suite.addTest(KernelDeployerUnitTestCase.suite());
-      
+      suite.addTest(AliasDeployerUnitTestCase.suite());
+
       return suite;
    }
 }

Added: projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/AliasDeployerUnitTestCase.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/AliasDeployerUnitTestCase.java	                        (rev 0)
+++ projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/AliasDeployerUnitTestCase.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -0,0 +1,155 @@
+/*
+* 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 org.jboss.test.deployers.BaseDeployersVFSTest;
+import org.jboss.deployers.client.spi.DeployerClient;
+import org.jboss.deployers.vfs.plugins.structure.jar.JARStructure;
+import org.jboss.deployers.vfs.plugins.structure.file.FileStructure;
+import org.jboss.deployers.vfs.deployer.kernel.BeanDeployer;
+import org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer;
+import org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer;
+import org.jboss.deployers.vfs.deployer.kernel.DeploymentAliasMetaDataDeployer;
+import org.jboss.deployers.vfs.deployer.kernel.AliasDeploymentDeployer;
+import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.deployers.spi.DeploymentState;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
+import org.jboss.kernel.Kernel;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * AliasDeployerUnitTestCase.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class AliasDeployerUnitTestCase extends BaseDeployersVFSTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(AliasDeployerUnitTestCase.class);
+   }
+
+   private DeployerClient main;
+
+   private KernelController controller;
+
+   public AliasDeployerUnitTestCase(String name) throws Throwable
+   {
+      super(name);
+   }
+
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      try
+      {
+         BasicBootstrap bootstrap = new BasicBootstrap();
+         bootstrap.run();
+         Kernel kernel = bootstrap.getKernel();
+         controller = kernel.getController();
+
+         main = createMainDeployer();
+         addStructureDeployer(main, new JARStructure());
+         addStructureDeployer(main, new FileStructure());
+
+         BeanDeployer beanDeployer = new BeanDeployer();
+         KernelDeploymentDeployer kernelDeploymentDeployer = new KernelDeploymentDeployer();
+         AliasDeploymentDeployer aliasDeploymentDeployer = new AliasDeploymentDeployer();
+         BeanMetaDataDeployer beanMetaDataDeployer = new BeanMetaDataDeployer(kernel);
+         DeploymentAliasMetaDataDeployer aliasMetaDataDeployer = new DeploymentAliasMetaDataDeployer(kernel);
+         addDeployer(main, beanDeployer);
+         addDeployer(main, kernelDeploymentDeployer);
+         addDeployer(main, aliasDeploymentDeployer);
+         addDeployer(main, beanMetaDataDeployer);
+         addDeployer(main, aliasMetaDataDeployer);
+      }
+      catch (Throwable t)
+      {
+         throw new RuntimeException(t);
+      }
+   }
+
+   public void testAliasSuccessful() throws Exception
+   {
+      VFSDeployment context = createDeployment("/alias", "toplevel/my-beans.xml");
+      assertDeploy(context);
+      assertNotNull(controller.getInstalledContext("Test"));
+
+      VFSDeployment alias = createDeployment("/alias", "toplevel/aliases-beans.xml");
+      assertDeploy(alias);
+      assertNotNull(controller.getInstalledContext("MyAlias"));
+      assertEquals(controller.getInstalledContext("MyAlias"), controller.getInstalledContext("Test"));
+
+      assertUndeploy(alias);
+      assertNull(controller.getContext("MyAlias", null));
+
+      assertUndeploy(context);
+      assertNull(controller.getContext("Test", null));
+   }
+
+   public void testJoinedSuccessful() throws Exception
+   {
+      VFSDeployment context = createDeployment("/alias", "toplevel/joined-beans.xml");
+      assertDeploy(context);
+      assertNotNull(controller.getInstalledContext("Test"));
+      assertNotNull(controller.getInstalledContext("MyAlias"));     
+      assertEquals(controller.getInstalledContext("MyAlias"), controller.getInstalledContext("Test"));
+
+      assertUndeploy(context);
+      assertNull(controller.getContext("MyAlias", null));
+      assertNull(controller.getContext("Test", null));
+   }
+
+   public void testAliasMissing() throws Exception
+   {
+      VFSDeployment context = createDeployment("/alias", "toplevel/aliases-beans.xml");
+      assertDeploy(context, DeploymentState.ERROR);
+      assertUndeploy(context);
+      assertNull(controller.getContext("Test", null));
+   }
+
+   protected void assertDeploy(VFSDeployment context) throws Exception
+   {
+      assertDeploy(context, DeploymentState.DEPLOYED);
+   }
+
+   protected void assertUndeploy(VFSDeployment context) throws Exception
+   {
+      assertUndeploy(context, DeploymentState.UNDEPLOYED);
+   }
+
+   protected void assertDeploy(VFSDeployment context, DeploymentState expectedState) throws Exception
+   {
+      main.addDeployment(context);
+      main.process();
+      assertEquals("Should be Deployed " + context, expectedState, main.getDeploymentState(context.getName()));
+   }
+
+   protected void assertUndeploy(VFSDeployment context, DeploymentState expectedState) throws Exception
+   {
+      main.removeDeployment(context.getName());
+      main.process();
+      assertEquals("Should be Undeployed " + context, expectedState, main.getDeploymentState(context.getName()));
+   }
+}

Modified: projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -60,7 +60,7 @@
 
    protected void assertNoChildContexts(VFSDeploymentContext context)
    {
-      assertChildContexts(context, null);
+      assertChildContexts(context);
    }
 
    protected void assertChildContexts(VFSDeploymentContext context, String... paths)

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -53,7 +53,7 @@
 public class AbstractKernelDeployment extends JBossObject
    implements KernelDeployment, MutableLifecycleHolder, Serializable
 {
-   private static final long serialVersionUID = 1;
+   private static final long serialVersionUID = 2l;
 
    /** The name of the deployment */
    protected String name;
@@ -92,7 +92,7 @@
    protected ControllerMode mode;
 
    /** The aliases */
-   protected Set<NamedAliasMetaData> aliases;
+   protected List<NamedAliasMetaData> aliases;
 
    /**
     * Create a new kernel deployment
@@ -208,25 +208,6 @@
                   bean.setDestroy(getDestroy());
                }
 
-               // named aliases
-               if (aliases != null && aliases.isEmpty() == false)
-               {
-                  Object beanName = bean.getName();
-                  for (NamedAliasMetaData alias : aliases)
-                  {
-                     if (alias.getName().equals(beanName))
-                     {
-                        Set<Object> beanAliases = bean.getAliases();
-                        if (beanAliases == null)
-                        {
-                           beanAliases = new HashSet<Object>();
-                           bean.setAliases(beanAliases);
-                        }
-                        beanAliases.add(alias.getAliasValue());
-                     }
-                  }
-               }
-
                // controller mode
                if (bean.getMode() == null && getMode() != null)
                {
@@ -323,12 +304,12 @@
       this.destroy = destroy;
    }
 
-   public Set<NamedAliasMetaData> getAliases()
+   public List<NamedAliasMetaData> getAliases()
    {
       return aliases;
    }
 
-   public void setAliases(Set<NamedAliasMetaData> aliases)
+   public void setAliases(List<NamedAliasMetaData> aliases)
    {
       this.aliases = aliases;
    }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentAliasInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentAliasInterceptor.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentAliasInterceptor.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -21,8 +21,8 @@
 */
 package org.jboss.kernel.plugins.deployment.xml;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
 import javax.xml.namespace.QName;
 
 import org.jboss.beans.metadata.spi.NamedAliasMetaData;
@@ -43,10 +43,10 @@
    {
       AbstractKernelDeployment deployment = (AbstractKernelDeployment) parent;
       NamedAliasMetaData alias = (NamedAliasMetaData) child;
-      Set<NamedAliasMetaData> aliases = deployment.getAliases();
+      List<NamedAliasMetaData> aliases = deployment.getAliases();
       if (aliases == null)
       {
-         aliases = new HashSet<NamedAliasMetaData>();
+         aliases = new ArrayList<NamedAliasMetaData>();
          deployment.setAliases(aliases);
       }
       aliases.add(alias);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/deployment/KernelDeployment.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/deployment/KernelDeployment.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/deployment/KernelDeployment.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -124,7 +124,7 @@
     *
     * @return the aliases
     */
-   Set<NamedAliasMetaData> getAliases();
+   List<NamedAliasMetaData> getAliases();
 
    /**
     * Get the ControllerMode.

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/AliasTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/AliasTestCase.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/AliasTestCase.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -22,6 +22,7 @@
 package org.jboss.test.kernel.deployment.xml.test;
 
 import java.util.Set;
+import java.util.List;
 
 import junit.framework.Test;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
@@ -120,7 +121,7 @@
    protected NamedAliasMetaData getNamedAlias(String name) throws Exception
    {
       AbstractKernelDeployment deployment = unmarshalDeployment(name);
-      Set<NamedAliasMetaData> aliases = deployment.getAliases();
+      List<NamedAliasMetaData> aliases = deployment.getAliases();
       assertNotNull(aliases);
       assertEquals(1, aliases.size());
       NamedAliasMetaData alias = aliases.iterator().next();

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java	2007-07-09 10:04:58 UTC (rev 63910)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java	2007-07-09 13:22:53 UTC (rev 63911)
@@ -32,6 +32,7 @@
 import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
 import org.jboss.beans.metadata.spi.LifecycleMetaData;
 import org.jboss.beans.metadata.spi.AnnotationMetaData;
+import org.jboss.beans.metadata.spi.NamedAliasMetaData;
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
 import org.jboss.test.kernel.deployment.xml.support.TestBeanMetaDataFactory;
@@ -283,19 +284,15 @@
    public void testDeploymentWithAlias() throws Exception
    {
       AbstractKernelDeployment deployment = unmarshalDeployment("DeploymentWithAlias.xml");
-      List beans = deployment.getBeans();
-      assertNotNull(beans);
-      assertEquals(2, beans.size());
-      BeanMetaData first = (BeanMetaData)beans.get(0);
-      Set fstAliases = first.getAliases();
-      assertNotNull(fstAliases);
-      assertEquals(1, fstAliases.size());
-      assertEquals("FirstAlias", fstAliases.iterator().next());
-      BeanMetaData second = (BeanMetaData)beans.get(1);
-      Set sndAliases = second.getAliases();
-      assertNotNull(sndAliases);
-      assertEquals(1, sndAliases.size());
-      assertEquals("SecondAlias", sndAliases.iterator().next());
+      List<NamedAliasMetaData> aliases = deployment.getAliases();
+      assertNotNull(aliases);
+      assertEquals(2, aliases.size());
+      NamedAliasMetaData first = aliases.get(0);
+      assertNotNull(first);
+      assertEquals("FirstAlias", first.getAliasValue());
+      NamedAliasMetaData second = aliases.get(1);
+      assertNotNull(second);
+      assertEquals("SecondAlias", second.getAliasValue());
    }
 
    public void testDeploymentWithAnnotations() throws Exception




More information about the jboss-cvs-commits mailing list