[jboss-cvs] JBossAS SVN: r75543 - in projects/microcontainer/trunk: dependency/src/main/org/jboss/dependency/plugins/graph and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 9 08:01:03 EDT 2008


Author: alesj
Date: 2008-07-09 08:01:02 -0400 (Wed, 09 Jul 2008)
New Revision: 75543

Added:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentLookupStrategy.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopeHierarchyBuilder.java
Modified:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentOnlyLookupStrategy.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/Search.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/PreInstallAction.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/AbstractSearchAnnotationSupportTest.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/OrderSearchAnnotationSupportTestCase.java
Log:
Do controller hierarchy properly - build missing scopes.

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	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -341,7 +341,18 @@
       lockRead();
       try
       {
-         return allContexts.isEmpty() == false;
+         // is this active
+         if (allContexts.isEmpty() == false)
+            return true;
+
+         // any of the children still active
+         for (AbstractController child : getControllers())
+         {
+            if (child.isActive())
+               return true;
+         }
+
+         return false;
       }
       finally
       {

Copied: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentLookupStrategy.java (from rev 75493, projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentOnlyLookupStrategy.java)
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentLookupStrategy.java	                        (rev 0)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentLookupStrategy.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.dependency.plugins.graph;
+
+import org.jboss.dependency.plugins.AbstractController;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
+
+/**
+ * Check parent.
+ * Return null if there is no parent.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class ParentLookupStrategy extends AbstractLookupStrategy
+{
+   protected ControllerContext getContextInternal(AbstractController controller, Object name, ControllerState state)
+   {
+      AbstractController parent = controller.getParentController();
+      if (parent != null)
+         return parent.getContext(name, state);
+      else
+         return null;
+   }
+}
\ No newline at end of file

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentOnlyLookupStrategy.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentOnlyLookupStrategy.java	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/ParentOnlyLookupStrategy.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -31,13 +31,13 @@
  *
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public class ParentOnlyLookupStrategy extends AbstractLookupStrategy
+public class ParentOnlyLookupStrategy extends HierarchyLookupStrategy
 {
    protected ControllerContext getContextInternal(AbstractController controller, Object name, ControllerState state)
    {
       AbstractController parent = controller.getParentController();
       if (parent != null)
-         return parent.getContext(name, state);
+         return getLocalContext(parent, name, state);
       else
          return null;
    }

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/Search.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/Search.java	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/graph/Search.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -34,7 +34,8 @@
    DEFAULT(new DefaultSearchInfoWrapper()),
    LOCAL(new LocalLookupStrategy()),
    TOP(new TopLevelLookupStrategy()),
-   PARENT(new ParentOnlyLookupStrategy()),
+   PARENT_ONLY(new ParentOnlyLookupStrategy()),
+   PARENT(new ParentLookupStrategy()),
    DEPTH(new DepthLookupStrategy()),
    LEAVES(new LeavesFirstLookupStrategy()),
    WIDTH(new WidthLookupStrategy()),

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -26,11 +26,7 @@
 import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
-import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
-import org.jboss.metadata.spi.MutableMetaData;
 import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
-import org.jboss.metadata.spi.retrieval.MetaDataItem;
-import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
 import org.jboss.metadata.spi.scope.ScopeKey;
 
 /**
@@ -48,51 +44,17 @@
       if (scopeKey != null)
       {
          Controller controller = context.getController();
-         if (controller instanceof KernelController == false)
-            throw new IllegalArgumentException("Can only handle kernel controller: " + controller);
+         if (controller instanceof AbstractKernelController == false)
+            throw new IllegalArgumentException("Can only handle AbstractKernelController: " + controller);
 
-         KernelController kernelController = (KernelController)controller;
+         AbstractKernelController kernelController = (AbstractKernelController)controller;
          KernelMetaDataRepository repository = kernelController.getKernel().getMetaDataRepository();
-
          MutableMetaDataRepository mmdr = repository.getMetaDataRepository();
-         MetaDataRetrieval mdr = mmdr.getMetaDataRetrieval(scopeKey);
-         if (mdr == null)
-         {
-            mdr = new MemoryMetaDataLoader(scopeKey);
-            mmdr.addMetaDataRetrieval(mdr);
-         }
-         MetaDataItem<ScopedKernelController> controllerItem = mdr.retrieveMetaData(ScopedKernelController.class);
-         ScopedKernelController scopedController;
-         if (controllerItem != null)
-         {
-            scopedController = controllerItem.getValue();
-         }
-         else
-         {
-            AbstractController parentController = null;
-            ScopeKey parentKey = scopeKey.getParent();
-            while (parentController == null && parentKey != null)
-            {
-               MetaDataRetrieval pmdr = mmdr.getMetaDataRetrieval(parentKey);
-               if (pmdr != null)
-               {
-                  MetaDataItem<ScopedKernelController> pci = pmdr.retrieveMetaData(ScopedKernelController.class);
-                  if (pci != null)
-                  {
-                     parentController = pci.getValue();
-                  }
-               }
-               parentKey = parentKey.getParent();
-            }
-            if (parentController == null)
-            {
-               if (kernelController instanceof AbstractController == false)
-                  throw new IllegalArgumentException("Underlying controller not AbstractController instance!");
-               parentController = (AbstractController)kernelController;
-            }
-            scopedController = new ScopedKernelController(kernelController.getKernel(), parentController, scopeKey);
-            ((MutableMetaData)mdr).addMetaData(scopedController, ScopedKernelController.class);
-         }
+         AbstractController abstractController = ScopeHierarchyBuilder.buildControllerHierarchy(kernelController, mmdr, scopeKey);
+         if (abstractController instanceof ScopedKernelController == false)
+            throw new IllegalArgumentException("Should be ScopedKernelController instance: " + abstractController);
+
+         ScopedKernelController scopedController = (ScopedKernelController)abstractController;
          scopedController.addScopedControllerContext(context);
       }
    }
@@ -111,29 +73,7 @@
 
          // find scoped controller
          MutableMetaDataRepository mmdr = repository.getMetaDataRepository();
-         MetaDataRetrieval mdr = mmdr.getMetaDataRetrieval(scopeKey);
-         if (mdr == null)
-         {
-            throw new IllegalArgumentException("Expecting MetaDataRetrieval instance in scope: " + scopeKey);
-         }
-         MetaDataItem<ScopedKernelController> controllerItem = mdr.retrieveMetaData(ScopedKernelController.class);
-         if (controllerItem == null)
-         {
-            throw new IllegalArgumentException("Expecting ScopedKernelController instance in scope:" + scopeKey);
-         }
-         ScopedKernelController scopedController = controllerItem.getValue();
-         scopedController.removeScopedControllerContext(context);
-         if (scopedController.isActive() == false)
-         {
-            try
-            {
-               ((MutableMetaData)mdr).removeMetaData(ScopedKernelController.class);
-            }
-            finally
-            {
-               scopedController.release();
-            }
-         }
+         ScopeHierarchyBuilder.cleanControllerHierarchy(mmdr, scopeKey, context);
       }
    }
 }
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/PreInstallAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/PreInstallAction.java	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/PreInstallAction.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -37,12 +37,8 @@
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
-import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
 import org.jboss.metadata.spi.MetaData;
-import org.jboss.metadata.spi.MutableMetaData;
 import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
-import org.jboss.metadata.spi.retrieval.MetaDataItem;
-import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
 import org.jboss.metadata.spi.scope.Scope;
 import org.jboss.metadata.spi.scope.ScopeFactory;
 import org.jboss.metadata.spi.scope.ScopeFactoryLookup;
@@ -161,45 +157,15 @@
          scopeKey.freeze();
          context.getScopeInfo().setInstallScope(scopeKey);
 
+         if (controller instanceof AbstractKernelController == false)
+            throw new IllegalArgumentException("Can only handle AbstractKernelController: " + controller);
+
          MutableMetaDataRepository mmdr = repository.getMetaDataRepository();
-         MetaDataRetrieval mdr = mmdr.getMetaDataRetrieval(scopeKey);
-         if (mdr == null)
-         {
-            mdr = new MemoryMetaDataLoader(scopeKey);
-            mmdr.addMetaDataRetrieval(mdr);
-         }
-         MetaDataItem<ScopedKernelController> controllerItem = mdr.retrieveMetaData(ScopedKernelController.class);
-         ScopedKernelController scopedController;
-         if (controllerItem != null)
-         {
-            scopedController = controllerItem.getValue();
-         }
-         else
-         {
-            AbstractController parentController = null;
-            ScopeKey parentKey = scopeKey.getParent();
-            while (parentController == null && parentKey != null)
-            {
-               MetaDataRetrieval pmdr = mmdr.getMetaDataRetrieval(parentKey);
-               if (pmdr != null)
-               {
-                  MetaDataItem<ScopedKernelController> pci = pmdr.retrieveMetaData(ScopedKernelController.class);
-                  if (pci != null)
-                  {
-                     parentController = pci.getValue();
-                  }
-               }
-               parentKey = parentKey.getParent();
-            }
-            if (parentController == null)
-            {
-               if (controller instanceof AbstractController == false)
-                  throw new IllegalArgumentException("Underlying controller not AbstractController instance!");
-               parentController = (AbstractController) controller;
-            }
-            scopedController = new ScopedKernelController(controller.getKernel(), parentController, scopeKey);
-            ((MutableMetaData)mdr).addMetaData(scopedController, ScopedKernelController.class);
-         }
+         AbstractController abstractController = ScopeHierarchyBuilder.buildControllerHierarchy((AbstractKernelController)controller, mmdr, scopeKey);
+         if (abstractController instanceof ScopedKernelController == false)
+            throw new IllegalArgumentException("Should be ScopedKernelController instance: " + abstractController);
+
+         ScopedKernelController scopedController = (ScopedKernelController)abstractController;
          scopedController.addScopedControllerContext(context);
       }
    }
@@ -213,29 +179,7 @@
          KernelMetaDataRepository repository = controller.getKernel().getMetaDataRepository();
          // find scoped controller
          MutableMetaDataRepository mmdr = repository.getMetaDataRepository();
-         MetaDataRetrieval mdr = mmdr.getMetaDataRetrieval(scopeKey);
-         if (mdr == null)
-         {
-            throw new IllegalArgumentException("Expecting MetaDataRetrieval instance in scope: " + scopeKey);
-         }
-         MetaDataItem<ScopedKernelController> controllerItem = mdr.retrieveMetaData(ScopedKernelController.class);
-         if (controllerItem == null)
-         {
-            throw new IllegalArgumentException("Expecting ScopedKernelController instance in scope:" + scopeKey);
-         }
-         ScopedKernelController scopedController = controllerItem.getValue();
-         scopedController.removeScopedControllerContext(context);
-         if (scopedController.isActive() == false)
-         {
-            try
-            {
-               ((MutableMetaData)mdr).removeMetaData(ScopedKernelController.class);
-            }
-            finally
-            {
-               scopedController.release();
-            }
-         }
+         ScopeHierarchyBuilder.cleanControllerHierarchy(mmdr, scopeKey, context);
       }
    }
 

Copied: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopeHierarchyBuilder.java (from rev 75298, projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/PreInstallAction.java)
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopeHierarchyBuilder.java	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopeHierarchyBuilder.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -0,0 +1,115 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.kernel.plugins.dependency;
+
+import org.jboss.dependency.plugins.AbstractController;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.metadata.spi.MutableMetaData;
+import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
+import org.jboss.metadata.spi.retrieval.MetaDataItem;
+import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
+import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
+
+/**
+ * ScopeHierarchyBuilder.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public final class ScopeHierarchyBuilder
+{
+   /**
+    * Create whole hierarchy.
+    * Fill in missing controllers.
+    *
+    * @param top the top controller
+    * @param mmdr the mutable metadata repository
+    * @param scopeKey the current scope key
+    * @return controller for current scope key
+    * @throws Throwable for any error
+    */
+   public static AbstractController buildControllerHierarchy(AbstractKernelController top, MutableMetaDataRepository mmdr, ScopeKey scopeKey) throws Throwable
+   {
+      if (scopeKey == null)
+         return top;
+
+      MetaDataRetrieval mdr = mmdr.getMetaDataRetrieval(scopeKey);
+      if (mdr != null)
+      {
+         MetaDataItem<ScopedKernelController> mdi = mdr.retrieveMetaData(ScopedKernelController.class);
+         if (mdi != null)
+            return mdi.getValue();
+      }
+      else
+      {
+         mdr = new MemoryMetaDataLoader(scopeKey);
+         mmdr.addMetaDataRetrieval(mdr);          
+      }
+
+      AbstractController parentController = buildControllerHierarchy(top, mmdr, scopeKey.getParent());
+      ScopedKernelController scopedKernelController = new ScopedKernelController(top.getKernel(), parentController, scopeKey);
+      ((MutableMetaData)mdr).addMetaData(scopedKernelController, ScopedKernelController.class);
+
+      return scopedKernelController;
+   }
+
+   /**
+    * Clean controller hierarchy.
+    *
+    * @param mmdr the mutable metadata repository
+    * @param scopeKey the current scope key
+    * @param context the context to remove
+    */
+   public static void cleanControllerHierarchy(MutableMetaDataRepository mmdr, ScopeKey scopeKey, ControllerContext context)
+   {
+      if (scopeKey == null)
+         return;
+
+      MetaDataRetrieval mdr = mmdr.getMetaDataRetrieval(scopeKey);
+      if (mdr == null)
+      {
+         throw new IllegalArgumentException("Expecting MetaDataRetrieval instance in scope: " + scopeKey);
+      }
+      MetaDataItem<ScopedKernelController> controllerItem = mdr.retrieveMetaData(ScopedKernelController.class);
+      if (controllerItem == null)
+      {
+         throw new IllegalArgumentException("Expecting ScopedKernelController instance in scope:" + scopeKey);
+      }
+      ScopedKernelController scopedController = controllerItem.getValue();
+      if (context != null)
+         scopedController.removeScopedControllerContext(context);
+
+      if (scopedController.isActive() == false)
+      {
+         try
+         {
+            ((MutableMetaData)mdr).removeMetaData(ScopedKernelController.class);
+         }
+         finally
+         {
+            scopedController.release();
+         }
+      }
+
+      cleanControllerHierarchy(mmdr, scopeKey.getParent(), null);
+   }
+}
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/AbstractSearchAnnotationSupportTest.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/AbstractSearchAnnotationSupportTest.java	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/AbstractSearchAnnotationSupportTest.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -21,8 +21,6 @@
 */
 package org.jboss.test.kernel.annotations.test.search;
 
-import java.util.UUID;
-
 import org.jboss.beans.metadata.api.annotations.Aliases;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
 import org.jboss.dependency.spi.ControllerContext;
@@ -44,6 +42,8 @@
  */
 public abstract class AbstractSearchAnnotationSupportTest extends AbstractBeanAnnotationAdapterTest
 {
+   protected static int counter = 0;
+
    protected AbstractSearchAnnotationSupportTest(String name)
    {
       super(name);
@@ -78,7 +78,7 @@
 
    protected ControllerContext install(String scope, String app, String deployment, int id) throws Throwable
    {
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(UUID.randomUUID().toString(), ScopeTester.class.getName());
+      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("tester" + (++counter), ScopeTester.class.getName());
       builder.addConstructorParameter(String.class.getName(), scope);
       builder.addAnnotation("@" + Aliases.class.getName() + "({\"bean\"})");
 

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/OrderSearchAnnotationSupportTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/OrderSearchAnnotationSupportTestCase.java	2008-07-09 11:49:34 UTC (rev 75542)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/search/OrderSearchAnnotationSupportTestCase.java	2008-07-09 12:01:02 UTC (rev 75543)
@@ -58,10 +58,11 @@
       List<ControllerContext> contexts = new ArrayList<ControllerContext>();
       try
       {
+         contexts.add(install("child", "main", "core", 1));
+         contexts.add(install("parent", "main", null, -1));
+         contexts.add(install("local", "main", "core", -1));
          contexts.add(install("top", null, null, -1));
-         contexts.add(install("local", "main", "core", -1));
 
-         contexts.add(install("child", "main", "core", 1));
          // here we need a little push - since by default we only do parent hierarchy resolution
          controller.change(context, ControllerState.INSTALLED);
 
@@ -73,7 +74,8 @@
          ListIterator<ControllerContext> iter = contexts.listIterator(contexts.size());
          while (iter.hasPrevious())
          {
-            getController().uninstall(iter.previous().getName());
+            Object name = iter.previous().getName();
+            getController().uninstall(name);
          }
       }
    }
@@ -83,7 +85,7 @@
       SearchInjection si = (SearchInjection)target;
       // ony check exact one's
       assertScopeTester(si.getTop(), "top");
-      assertScopeTester(si.getParent(), "top");
+      assertScopeTester(si.getParent(), "parent");
       assertScopeTester(si.getLocal(), "local");
       assertScopeTester(si.getChildrenOnly(), "child");
       assertScopeTester(si.getLeaves(), "child");




More information about the jboss-cvs-commits mailing list