[jboss-cvs] JBossAS SVN: r81624 - projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 26 09:06:28 EST 2008


Author: alesj
Date: 2008-11-26 09:06:28 -0500 (Wed, 26 Nov 2008)
New Revision: 81624

Modified:
   projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentAliasesDeployer.java
   projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentDependencyDeployer.java
Log:
Use deployment visitor == proper handling on failures.

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentAliasesDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentAliasesDeployer.java	2008-11-26 14:03:35 UTC (rev 81623)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentAliasesDeployer.java	2008-11-26 14:06:28 UTC (rev 81624)
@@ -21,13 +21,14 @@
  */
 package org.jboss.deployers.vfs.plugins.dependency;
 
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.jboss.dependency.spi.Controller;
 import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeploymentVisitor;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployerWithInput;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 
 /**
@@ -35,7 +36,7 @@
  *
  * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
  */
-public class DeploymentAliasesDeployer extends AbstractSimpleRealDeployer<DeploymentAliases>
+public class DeploymentAliasesDeployer extends AbstractRealDeployerWithInput<DeploymentAliases>
 {
    private Controller controller;
 
@@ -46,48 +47,54 @@
          throw new IllegalArgumentException("Null controller");
       this.controller = controller;
       setStage(DeploymentStages.POST_PARSE);
+      setDeploymentVisitor(new DeploymentAliasDeploymentVisitor());
    }
 
-   public void deploy(DeploymentUnit unit, DeploymentAliases deployment) throws DeploymentException
+   private class DeploymentAliasDeploymentVisitor extends AbstractDeploymentVisitor<Object, DeploymentAliases>
    {
-      Set<Object> aliases = deployment.getAliases();
-      if (aliases != null && aliases.isEmpty() == false)
+      @Override
+      protected DeploymentUnit addComponent(DeploymentUnit unit, Object attachment)
       {
          ControllerContext context = unit.getAttachment(ControllerContext.class);
          if (context == null)
-            throw new DeploymentException("Missing deployment controller context: " + unit.getName());
-         
+            throw new IllegalArgumentException("Missing deployment controller context: " + unit.getName());
+
          Object contextName = context.getName();
          try
          {
-            for (Object alias : aliases)
-            {
-               controller.addAlias(alias, contextName);
-            }
+            controller.addAlias(attachment, contextName);
+            return null;
          }
          catch (Throwable t)
          {
-            throw DeploymentException.rethrowAsDeploymentException("Exception adding alias.", t);
+            throw new RuntimeException(t);
          }
       }
-   }
 
-   @Override
-   public void undeploy(DeploymentUnit unit, DeploymentAliases deployment)
-   {
-      Set<Object> aliases = deployment.getAliases();
-      if (aliases != null && aliases.isEmpty() == false)
+      @Override
+      protected void removeComponent(DeploymentUnit unit, Object attachment)
       {
-         for (Object alias : aliases)
-         {
-            try
-            {
-               controller.removeAlias(alias);
-            }
-            catch (Throwable ignored)
-            {
-            }
-         }
+         controller.removeAlias(attachment);
       }
+
+      protected List<Object> getComponents(DeploymentAliases deployment)
+      {
+         return new ArrayList<Object>(deployment.getAliases());
+      }
+
+      protected Class<Object> getComponentType()
+      {
+         return Object.class;
+      }
+
+      protected String getComponentName(Object attachment)
+      {
+         throw new UnsupportedOperationException("No component name.");
+      }
+
+      public Class<DeploymentAliases> getVisitorType()
+      {
+         return DeploymentAliases.class;
+      }
    }
 }
\ No newline at end of file

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentDependencyDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentDependencyDeployer.java	2008-11-26 14:03:35 UTC (rev 81623)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/dependency/DeploymentDependencyDeployer.java	2008-11-26 14:06:28 UTC (rev 81624)
@@ -21,12 +21,13 @@
  */
 package org.jboss.deployers.vfs.plugins.dependency;
 
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.jboss.dependency.spi.DependencyItem;
-import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeploymentVisitor;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployerWithInput;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 
 /**
@@ -34,42 +35,48 @@
  * 
  * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
  */
-public class DeploymentDependencyDeployer extends AbstractSimpleRealDeployer<DeploymentDependencies>
+public class DeploymentDependencyDeployer extends AbstractRealDeployerWithInput<DeploymentDependencies>
 {
    public DeploymentDependencyDeployer()
    {
       super(DeploymentDependencies.class);
       setStage(DeploymentStages.POST_PARSE);
+      setDeploymentVisitor(new DependencyItemComponentVisitor());
    }
 
-   public void deploy(DeploymentUnit unit, DeploymentDependencies deployment) throws DeploymentException
+   private class DependencyItemComponentVisitor extends AbstractDeploymentVisitor<DependencyItem, DeploymentDependencies>
    {
-      Set<DependencyItem> dependencies = deployment.getDependencies();
-      if (dependencies != null && dependencies.isEmpty() == false)
+      @Override
+      protected DeploymentUnit addComponent(DeploymentUnit unit, DependencyItem attachment)
       {
-         for (DependencyItem di : dependencies)
-         {
-            unit.addIDependOn(di);
-         }
+         unit.addIDependOn(attachment);
+         return null;
       }
-   }
 
-   @Override
-   public void undeploy(DeploymentUnit unit, DeploymentDependencies deployment)
-   {
-      Set<DependencyItem> dependencies = deployment.getDependencies();
-      if (dependencies != null && dependencies.isEmpty() == false)
+      @Override
+      protected void removeComponent(DeploymentUnit unit, DependencyItem attachment)
       {
-         for (DependencyItem di : dependencies)
-         {
-            try
-            {
-               unit.removeIDependOn(di);
-            }
-            catch (Throwable ignored)
-            {
-            }
-         }
+         unit.removeIDependOn(attachment);
       }
+
+      protected List<? extends DependencyItem> getComponents(DeploymentDependencies deployment)
+      {
+         return new ArrayList<DependencyItem>(deployment.getDependencies());
+      }
+
+      protected Class<DependencyItem> getComponentType()
+      {
+         return DependencyItem.class;
+      }
+
+      protected String getComponentName(DependencyItem attachment)
+      {
+         throw new UnsupportedOperationException("No component name.");
+      }
+
+      public Class<DeploymentDependencies> getVisitorType()
+      {
+         return DeploymentDependencies.class;
+      }
    }
 }




More information about the jboss-cvs-commits mailing list