[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