[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