[jboss-cvs] JBossAS SVN: r99800 - in projects/kernel/branches/resolver: dependency/src/main/java/org/jboss/dependency/plugins/resolver and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jan 22 08:16:25 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-01-22 08:16:24 -0500 (Fri, 22 Jan 2010)
New Revision: 99800
Modified:
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java
Log:
Initial scoping support for indexing resolver
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -73,7 +73,8 @@
/** The lock */
private ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
- private AbstractDependencyResolver resolver = DependencyResolverAbstractFactory.getInstance().getFactory(this).createResolver(this);
+ /** The dependency resolver */
+ private final AbstractDependencyResolver dependencyResolver = DependencyResolverAbstractFactory.getInstance().getFactory(this).createResolver(this);
/**
* The executor used to install ASYNCHRONOUS contexts. It must have a saturation policy of
@@ -805,7 +806,7 @@
context.setController(this);
DependencyInfo dependencies = context.getDependencyInfo();
if (context instanceof AbstractControllerContext)
- ((AbstractControllerContext)context).setDependencyInfo(resolver.decorateDependencyInfo(context, dependencies));
+ ((AbstractControllerContext)context).setDependencyInfo(dependencyResolver.decorateDependencyInfo(context, dependencies));
if (trace)
{
String dependsOn = "[]";
@@ -827,7 +828,7 @@
log.trace("Dependencies for " + name + ": " + dependsOn);
}
- resolver.registerContext(context);
+ dependencyResolver.registerContext(context);
boolean ok = incrementState(context, trace);
if (ok)
{
@@ -935,7 +936,7 @@
context.setRequiredState(ControllerState.INSTALLED);
- resolver.enableOnDemand(context, trace);
+ dependencyResolver.enableOnDemand(context, trace);
if (trace)
log.trace("Enable onDemand: " + context.toShortString());
@@ -988,7 +989,7 @@
try
{
install(context, ControllerState.ERROR, initialState);
- resolver.stateIncremented(context, trace);
+ dependencyResolver.stateIncremented(context, trace);
}
catch (Throwable t)
{
@@ -1053,7 +1054,7 @@
}
else
{
- resolver.stateIncremented(context, trace);
+ dependencyResolver.stateIncremented(context, trace);
}
}
@@ -1070,7 +1071,7 @@
*/
protected void resolveContexts(ControllerContext context, boolean trace)
{
- resolver.resolveContexts(context, trace);
+ dependencyResolver.resolveContexts(context, trace);
}
@@ -1928,7 +1929,7 @@
throw new IllegalArgumentException("Null name");
ControllerContext context = allContexts.remove(name);
if (context != null)
- resolver.unregisterContext(context);
+ dependencyResolver.unregisterContext(context);
}
// --- alias dependency
@@ -2182,7 +2183,7 @@
{
try
{
- if (resolver.resolveDependencies(context, toState))
+ if (dependencyResolver.resolveDependencies(context, toState))
{
resolved = true;
}
@@ -2427,4 +2428,9 @@
ctx.setError(error);
}
+
+ AbstractDependencyResolver getDependencyResolver()
+ {
+ return dependencyResolver;
+ }
}
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyResolver.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -81,7 +81,7 @@
return controller.advance(context);
}
- protected Set<AbstractController> getControllers()
+ protected Set<AbstractController> getChildControllers()
{
return controller.getControllers();
}
@@ -120,7 +120,7 @@
protected void resolveChildControllers(ControllerContext context, boolean trace)
{
// resolve child controllers
- for (AbstractController controller : getControllers())
+ for (AbstractController controller : getChildControllers())
{
controller.lockWrite();
try
@@ -134,6 +134,23 @@
}
}
+ protected void incrementStateChildControllers(ControllerContext incremented, boolean trace)
+ {
+ // resolve child controllers
+ for (AbstractController controller : getChildControllers())
+ {
+ controller.lockWrite();
+ try
+ {
+ controller.getDependencyResolver().stateIncremented(incremented, trace);
+ }
+ finally
+ {
+ controller.unlockWrite();
+ }
+ }
+ }
+
protected void resolveParentController(ControllerContext context, boolean trace)
{
AbstractController parent = controller.getParentController();
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -114,6 +114,7 @@
{
underlyingController.removeControllerContext(context);
context.setController(this);
+ getDependencyResolver().registerContext(context);
registerControllerContext(context);
}
catch (Throwable t)
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -36,12 +36,13 @@
static
{
//TODO configure with system properties
-
-// Class<?> clazz = StandardDependencyResolverFactory.class;
+
+// String name = "org.jboss.dependency.plugins.resolver.standard.StandardDependencyResolverFactory";
+ String name = "org.jboss.kernel.plugins.resolver.indexing.IndexingKernelDependencyResolverFactory";
Class<?> clazz;
try
{
- clazz = Class.forName("org.jboss.kernel.plugins.resolver.indexing.IndexingKernelDependencyResolverFactory");
+ clazz = Class.forName(name);
}
catch (ClassNotFoundException e1)
{
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -112,7 +112,7 @@
}
catch(Throwable t)
{
- //TODO get rid of this catch block
+ //TODO get rid of this catch block it is just here to see when things go wrong while coding
t.printStackTrace();
throw new IllegalStateException(t);
}
@@ -138,7 +138,7 @@
}
catch(Throwable t)
{
- //TODO get rid of this catch block
+ //TODO get rid of this catch block it is just here to see when things go wrong while coding
t.printStackTrace();
throw new IllegalStateException(t);
}
@@ -233,16 +233,17 @@
public void stateIncremented(ControllerContext incremented, boolean trace)
{
Set<ControllerContext> contexts = getAllContextsDependentOn(incremented);
- if (contexts == null || contexts.size() == 0)
- return;
-
- for (ControllerContext context : contexts)
+ if (contexts != null && contexts.size() > 0)
{
- if (context.getDependencyInfo() != null)
+ for (ControllerContext context : contexts)
{
- resolveContexts(context, trace);
+ if (context.getDependencyInfo() != null)
+ {
+ resolveContexts(context, trace);
+ }
}
- }
+ }
+ incrementStateChildControllers(incremented, trace);
}
@Override
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -305,7 +305,7 @@
{
dependentState = fromContext.getWhenValid();
}
-
+
super.initialVisit(visitor);
return;
}
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java 2010-01-22 10:49:36 UTC (rev 99799)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java 2010-01-22 13:16:24 UTC (rev 99800)
@@ -89,7 +89,8 @@
if (item instanceof ContextualInjectionDependencyItem == false)
throw new IllegalStateException("item is not an instance of ContextualInjectionDependencyItem");
- //TODO throw an error is state < INSTANTIATED
+ if (owner.getController().getStates().isBeforeState(getDependentState(item), ControllerState.INSTALLED))
+ throw new IllegalArgumentException(item + " has a dependent state of " + getDependentState(item) + " which is before the first allowed: " + ControllerState.INSTALLED);
Object dependency = item.getIDependOn();
if (dependency instanceof QualifierKey == false && dependency instanceof Class<?> == false)
More information about the jboss-cvs-commits
mailing list