[jboss-cvs] JBossAS SVN: r75215 - projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jun 30 09:37:55 EDT 2008


Author: alesj
Date: 2008-06-30 09:37:54 -0400 (Mon, 30 Jun 2008)
New Revision: 75215

Added:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java
Removed:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AliasScopeAction.java
Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopedKernelController.java
Log:
[JBMICROCONT-309]; fix uninstall on install scope action.

Deleted: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AliasScopeAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AliasScopeAction.java	2008-06-30 13:13:25 UTC (rev 75214)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AliasScopeAction.java	2008-06-30 13:37:54 UTC (rev 75215)
@@ -1,86 +0,0 @@
-/*
-* 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.action.SimpleControllerContextAction;
-import org.jboss.dependency.spi.Controller;
-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.repository.MutableMetaDataRepository;
-import org.jboss.metadata.spi.retrieval.MetaDataItem;
-import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
-import org.jboss.metadata.spi.scope.ScopeKey;
-
-/**
- * Alias scope action.
- *
- * @author <a href="ales.justin at jboss.com">Ales Justin</a>
- */
-public class AliasScopeAction extends SimpleControllerContextAction<ControllerContext>
-{
-   protected ControllerContext contextCast(ControllerContext context)
-   {
-      return context;
-   }
-
-   protected boolean validateContext(ControllerContext context)
-   {
-      return true;
-   }
-
-   protected void installAction(ControllerContext context) throws Throwable
-   {
-      KernelController controller = (KernelController)context.getController();
-      KernelMetaDataRepository repository = controller.getKernel().getMetaDataRepository();
-      ScopeKey scopeKey = context.getScopeInfo().getInstallScope();
-      if (scopeKey != null)
-      {
-         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
-            throw new IllegalArgumentException("Scoped controller should exist: " + scopeKey);
-
-         scopedController.addScopedControllerContext(context);
-      }
-   }
-
-   protected void uninstallAction(ControllerContext context)
-   {
-      Controller controller = context.getController();
-      if (controller instanceof ScopedKernelController == false)
-         throw new IllegalArgumentException("Current controller should be scoped: " + controller);
-
-      ScopedKernelController scopedController = (ScopedKernelController)controller;
-      scopedController.removeScopedControllerContext(context);
-   }
-}
\ No newline at end of file

Copied: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java (from rev 75214, projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AliasScopeAction.java)
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallScopeAction.java	2008-06-30 13:37:54 UTC (rev 75215)
@@ -0,0 +1,109 @@
+/*
+* 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.action.SimpleControllerContextAction;
+import org.jboss.dependency.spi.Controller;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ScopeInfo;
+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.repository.MutableMetaDataRepository;
+import org.jboss.metadata.spi.retrieval.MetaDataItem;
+import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
+import org.jboss.metadata.spi.scope.ScopeKey;
+
+/**
+ * Install scope action.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class InstallScopeAction extends SimpleControllerContextAction<ControllerContext>
+{
+   protected ControllerContext contextCast(ControllerContext context)
+   {
+      return context;
+   }
+
+   protected boolean validateContext(ControllerContext context)
+   {
+      return true;
+   }
+
+   /**
+    * Get install scope key.
+    *
+    * @param context the context
+    * @return install scope key
+    */
+   protected ScopeKey getScopeKey(ControllerContext context)
+   {
+      ScopeInfo scopeInfo = context.getScopeInfo();
+      if (scopeInfo != null)
+         return scopeInfo.getInstallScope();
+
+      return null;
+   }
+
+   protected void installAction(ControllerContext context) throws Throwable
+   {
+      ScopeKey scopeKey = getScopeKey(context);
+      if (scopeKey != null)
+      {
+         Controller controller = context.getController();
+         if (controller instanceof KernelController == false)
+            throw new IllegalArgumentException("Can only handle kernel controller: " + controller);
+
+         KernelController kernelController = (KernelController)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
+            throw new IllegalArgumentException("Scoped controller should exist: " + scopeKey);
+
+         scopedController.addScopedControllerContext(context);
+      }
+   }
+
+   protected void uninstallAction(ControllerContext context)
+   {
+      if (getScopeKey(context) != null)
+      {
+         Controller controller = context.getController();
+         if (controller instanceof ScopedKernelController == false)
+            throw new IllegalArgumentException("Current controller should be scoped: " + controller);
+
+         ScopedKernelController scopedController = (ScopedKernelController)controller;
+         scopedController.removeScopedControllerContext(context);
+      }
+   }
+}
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopedKernelController.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopedKernelController.java	2008-06-30 13:13:25 UTC (rev 75214)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ScopedKernelController.java	2008-06-30 13:37:54 UTC (rev 75215)
@@ -57,7 +57,7 @@
 public class ScopedKernelController extends AbstractKernelController
 {
    /** Alias scope action instance */
-   private static final AliasScopeAction ALIAS_SCOPE_ACTION = new AliasScopeAction();
+   private static final InstallScopeAction ALIAS_SCOPE_ACTION = new InstallScopeAction();
 
    protected Kernel parentKernel;
    private ScopeKey scopeKey;




More information about the jboss-cvs-commits mailing list