[jboss-cvs] JBossAS SVN: r100073 - in projects/kernel/trunk/dependency/src: test/java/org/jboss/test/dependency/controller/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 28 14:21:04 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-28 14:21:03 -0500 (Thu, 28 Jan 2010)
New Revision: 100073

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
   projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java
Log:
[JBKERNEL-85] When checking if an OnDemand context is in use, we should check the current controller and children.


Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-01-28 19:11:59 UTC (rev 100072)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-01-28 19:21:03 UTC (rev 100073)
@@ -1449,6 +1449,7 @@
                                     if (stateModel.isBeforeState(dependent.getState(), whenRequired) == false)
                                     {  
                                        uninstallContext(dependent, whenRequired, trace);
+                                       dependencies.removeDependsOnMe(item);
                                     }
                                  }
                               }
@@ -1458,6 +1459,7 @@
                   }
                }
             }
+            
          }
          catch (Throwable error)
          {
@@ -1551,21 +1553,33 @@
                      boolean isRequired = false;
                      for (DependencyItem dependsOnOtherItem : dependsOnOther)
                      {
-                        ControllerContext dependsContext = getContext(dependsOnOtherItem.getName(), null);
-                        if (dependsContext == null)
+//                        ControllerContext dependsContext = getContext(dependsOnOtherItem.getName(), null);
+                        Set<ControllerContext> dependsContexts = new HashSet<ControllerContext>();
+                        getContexts(dependsOnOtherItem.getName(), dependsContexts);
+                        
+                        if (!dependsContexts.isEmpty())
                         {
-                           log.debug("Could not find reverse dependency '" + dependsOnOtherItem.getName() + "' while uninstalling on demand contexts for " + item);
-                           continue;
+                           for (ControllerContext dependsContext : dependsContexts)
+                           {
+                              if (dependsContext == null)
+                              {
+                                 log.debug("Could not find reverse dependency '" + dependsOnOtherItem.getName() + "' while uninstalling on demand contexts for " + item);
+                                 continue;
+                              }
+                              
+                              ControllerState requiredState = item.getWhenRequired();
+                              ControllerState actualState = dependsContext.getState();
+                              
+                              if (requiredState.equals(actualState) || stateModel.isBeforeState(requiredState, actualState))
+                              {
+                                 isRequired = true;
+                                 break;
+                              }
+                           }
                         }
                         
-                        ControllerState requiredState = item.getWhenRequired();
-                        ControllerState actualState = dependsContext.getState();
-                        
-                        if (requiredState.equals(actualState) || stateModel.isBeforeState(requiredState, actualState))
-                        {
-                           isRequired = true;
+                        if (isRequired)
                            break;
-                        }
                      }
                      if (!isRequired)
                      {
@@ -1584,6 +1598,8 @@
       }
    }
 
+   
+   
    /**
     * Get all contexts by name,
     * check child controllers as well.

Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java	2010-01-28 19:11:59 UTC (rev 100072)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java	2010-01-28 19:21:03 UTC (rev 100073)
@@ -151,7 +151,7 @@
       assertEquals(-1, delegate2.describeUninstallOrder);
    }
    
-   public void testChangeDependencyReinstall() throws Throwable
+   public void testOnDemandDependencyReinstall() throws Throwable
    {
       TestDelegate delegate1 = getDelegate1();
       ControllerContext context1 = assertInstall(delegate1, ControllerState.DESCRIBED);




More information about the jboss-cvs-commits mailing list