[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