[Jboss-cvs] JBossAS SVN: r55952 - in projects/microcontainer/trunk/dependency/src: main/org/jboss/dependency/plugins tests/org/jboss/test/dependency/controller/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Aug 15 10:02:06 EDT 2006


Author: adrian at jboss.org
Date: 2006-08-15 10:01:58 -0400 (Tue, 15 Aug 2006)
New Revision: 55952

Modified:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
   projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java
   projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java
Log:
[JBMICROCONT-102] - Further fix for use of recursion during installs.

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	2006-08-15 13:33:37 UTC (rev 55951)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2006-08-15 14:01:58 UTC (rev 55952)
@@ -518,9 +518,14 @@
          {
             ControllerContext context = (ControllerContext) i.next();
             Object name = context.getName();
-            if (installing.add(context) == false)
+            if (fromState.equals(context.getState()) == false)
             {
                if (trace)
+                  log.trace("Skipping already installed " + name + " for " + toState.getStateString());
+            }
+            else if (installing.add(context) == false)
+            {
+               if (trace)
                   log.trace("Already installing " + name + " for " + toState.getStateString());
             }
             else

Modified: projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java	2006-08-15 13:33:37 UTC (rev 55951)
+++ projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java	2006-08-15 14:01:58 UTC (rev 55952)
@@ -113,6 +113,11 @@
    {
       assertEquals(expected, context.getState());
    }
+
+   protected void assertNoContext(ControllerContext context) throws Throwable
+   {
+      assertContext(context, ControllerState.ERROR);
+   }
    
    protected void assertUninstall(ControllerContext context) throws Throwable
    {

Modified: projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java	2006-08-15 13:33:37 UTC (rev 55951)
+++ projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java	2006-08-15 14:01:58 UTC (rev 55952)
@@ -23,8 +23,11 @@
 
 import junit.framework.Test;
 
+import org.jboss.dependency.plugins.AbstractDependencyItem;
 import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.DependencyItem;
 import org.jboss.test.dependency.controller.support.RecursiveControllerContext;
+import org.jboss.test.dependency.controller.support.TestControllerContext;
 import org.jboss.test.dependency.controller.support.TestDelegate;
 
 /**
@@ -49,101 +52,67 @@
    {
       TestDelegate delegate = new TestDelegate("InstallTestRecursive");
       RecursiveControllerContext context = new RecursiveControllerContext(delegate, this);
+
+      TestDelegate other = new TestDelegate("Other");
+      TestControllerContext otherContext = new TestControllerContext(other);
+      DependencyItem item = new AbstractDependencyItem(other.getName(), delegate.getName(), ControllerState.CREATE, ControllerState.CONFIGURED);
+      otherContext.getDependencyInfo().addIDependOn(item);
+      assertInstall(otherContext, ControllerState.CONFIGURED);
+      
       assertInstall(context, ControllerState.INSTALLED);
-      TestDelegate childDelegate = context.child.getDelegate();
-      assertEquals(1, delegate.describeInstallOrder);
-      assertEquals(2, delegate.instantiateInstallOrder);
-      assertEquals(3, delegate.configureInstallOrder);
-      assertEquals(4, delegate.createInstallOrder);
-      assertEquals(5, childDelegate.describeInstallOrder);
-      assertEquals(6, childDelegate.instantiateInstallOrder);
-      assertEquals(7, childDelegate.configureInstallOrder);
-      assertEquals(8, childDelegate.createInstallOrder);
-      assertEquals(9, childDelegate.startInstallOrder);
-      assertEquals(10, childDelegate.installInstallOrder);
-      assertEquals(11, delegate.startInstallOrder);
-      assertEquals(12, delegate.installInstallOrder);
-      assertEquals(-1, delegate.installUninstallOrder);
-      assertEquals(-1, delegate.startUninstallOrder);
-      assertEquals(-1, delegate.createUninstallOrder);
-      assertEquals(-1, delegate.configureUninstallOrder);
-      assertEquals(-1, delegate.instantiateUninstallOrder);
-      assertEquals(-1, delegate.describeUninstallOrder);
+      assertContext(otherContext, ControllerState.INSTALLED);
+      assertContext(context.child, ControllerState.INSTALLED);
    }
    
    public void testUninstall() throws Throwable
    {
       TestDelegate delegate = new TestDelegate("UninstallTestRecursive");
       RecursiveControllerContext context = new RecursiveControllerContext(delegate, this);
+
+      TestDelegate other = new TestDelegate("Other");
+      TestControllerContext otherContext = new TestControllerContext(other);
+      DependencyItem item = new AbstractDependencyItem(other.getName(), delegate.getName(), ControllerState.CREATE, ControllerState.CONFIGURED);
+      otherContext.getDependencyInfo().addIDependOn(item);
+      assertInstall(otherContext, ControllerState.CONFIGURED);
+      
       assertInstall(context, ControllerState.INSTALLED);
-      TestDelegate childDelegate = context.child.getDelegate();
+      assertContext(otherContext, ControllerState.INSTALLED);
+      assertContext(context.child, ControllerState.INSTALLED);
+      
       assertUninstall(context);
       if (context.child.error != null)
          throw context.child.error;
-      assertEquals(1, delegate.describeInstallOrder);
-      assertEquals(2, delegate.instantiateInstallOrder);
-      assertEquals(3, delegate.configureInstallOrder);
-      assertEquals(4, delegate.createInstallOrder);
-      assertEquals(5, childDelegate.describeInstallOrder);
-      assertEquals(6, childDelegate.instantiateInstallOrder);
-      assertEquals(7, childDelegate.configureInstallOrder);
-      assertEquals(8, childDelegate.createInstallOrder);
-      assertEquals(9, childDelegate.startInstallOrder);
-      assertEquals(10, childDelegate.installInstallOrder);
-      assertEquals(11, delegate.startInstallOrder);
-      assertEquals(12, delegate.installInstallOrder);
-      assertEquals(13, delegate.installUninstallOrder);
-      assertEquals(14, delegate.startUninstallOrder);
-      assertEquals(15, childDelegate.installUninstallOrder);
-      assertEquals(16, childDelegate.startUninstallOrder);
-      assertEquals(17, childDelegate.createUninstallOrder);
-      assertEquals(18, childDelegate.configureUninstallOrder);
-      assertEquals(19, childDelegate.instantiateUninstallOrder);
-      assertEquals(20, childDelegate.describeUninstallOrder);
-      assertEquals(21, delegate.createUninstallOrder);
-      assertEquals(22, delegate.configureUninstallOrder);
-      assertEquals(23, delegate.instantiateUninstallOrder);
-      assertEquals(24, delegate.describeUninstallOrder);
+      assertNoContext(context.child);
+      assertUninstall(otherContext);
    }
    
    public void testReinstall() throws Throwable
    {
       TestDelegate delegate = new TestDelegate("ReinstallTestRecursive");
       RecursiveControllerContext context = new RecursiveControllerContext(delegate, this);
+
+      TestDelegate other = new TestDelegate("Other");
+      TestControllerContext otherContext = new TestControllerContext(other);
+      DependencyItem item = new AbstractDependencyItem(other.getName(), delegate.getName(), ControllerState.CREATE, ControllerState.CONFIGURED);
+      otherContext.getDependencyInfo().addIDependOn(item);
+      assertInstall(otherContext, ControllerState.CONFIGURED);
+
       assertInstall(context, ControllerState.INSTALLED);
-      TestDelegate childDelegate = context.child.getDelegate();
+      assertContext(otherContext, ControllerState.INSTALLED);
+      assertContext(context.child, ControllerState.INSTALLED);
+
       assertUninstall(context);
       if (context.child.error != null)
          throw context.child.error;
+      assertNoContext(context.child);
+      assertContext(otherContext, ControllerState.CONFIGURED);
+      
       context = new RecursiveControllerContext(delegate, this);
       assertInstall(context, ControllerState.INSTALLED);
-      TestDelegate childDelegate2 = context.child.getDelegate();
       if (context.child.error != null)
          throw context.child.error;
-      assertEquals(25, delegate.describeInstallOrder);
-      assertEquals(26, delegate.instantiateInstallOrder);
-      assertEquals(27, delegate.configureInstallOrder);
-      assertEquals(28, delegate.createInstallOrder);
-      assertEquals(29, childDelegate2.describeInstallOrder);
-      assertEquals(30, childDelegate2.instantiateInstallOrder);
-      assertEquals(31, childDelegate2.configureInstallOrder);
-      assertEquals(32, childDelegate2.createInstallOrder);
-      assertEquals(33, childDelegate2.startInstallOrder);
-      assertEquals(34, childDelegate2.installInstallOrder);
-      assertEquals(35, delegate.startInstallOrder);
-      assertEquals(36, delegate.installInstallOrder);
-      assertEquals(13, delegate.installUninstallOrder);
-      assertEquals(14, delegate.startUninstallOrder);
-      assertEquals(15, childDelegate.installUninstallOrder);
-      assertEquals(16, childDelegate.startUninstallOrder);
-      assertEquals(17, childDelegate.createUninstallOrder);
-      assertEquals(18, childDelegate.configureUninstallOrder);
-      assertEquals(19, childDelegate.instantiateUninstallOrder);
-      assertEquals(20, childDelegate.describeUninstallOrder);
-      assertEquals(21, delegate.createUninstallOrder);
-      assertEquals(22, delegate.configureUninstallOrder);
-      assertEquals(23, delegate.instantiateUninstallOrder);
-      assertEquals(24, delegate.describeUninstallOrder);
+      assertContext(otherContext, ControllerState.INSTALLED);
+      assertContext(context.child, ControllerState.INSTALLED);
    }
    
    public void installChild(RecursiveControllerContext context) throws Throwable




More information about the jboss-cvs-commits mailing list