[jboss-cvs] JBossAS SVN: r59227 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/kernel/plugins/dependency main/org/jboss/kernel/spi/dependency resources/org/jboss/test/kernel/deployment/test tests/org/jboss/test/kernel/deployment/support tests/org/jboss/test/kernel/deployment/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 25 09:48:33 EST 2006


Author: alesj
Date: 2006-12-25 09:48:09 -0500 (Mon, 25 Dec 2006)
New Revision: 59227

Added:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/ConfigureKernelControllerContextAware.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/CreateKernelControllerContextAware.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/DescribeKernelControllerContextAware.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstallKernelControllerContextAware.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstantiateKernelControllerContextAware.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/StartKernelControllerContextAware.java
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.xml
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/FineGrainedBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.java
Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/LifecycleAction.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java
Log:
JBMICROCONT-134; initial introduction of fine grained action aware interfaces

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -32,6 +32,7 @@
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.ConfigureKernelControllerContextAware;
 
 /**
  * ConfigureAction.
@@ -41,7 +42,7 @@
  */
 public class ConfigureAction extends KernelControllerContextAction
 {
-   public void installAction(KernelControllerContext context) throws Throwable
+   protected void installActionInternal(KernelControllerContext context) throws Throwable
    {
       KernelController controller = (KernelController) context.getController();
       Kernel kernel = controller.getKernel();
@@ -52,14 +53,19 @@
       BeanMetaData metaData = context.getBeanMetaData();
       Set joinPoints = configurator.getPropertySetterJoinPoints(info, metaData);
       setAttributes(context, object, joinPoints, false);
-      
+
       if (object instanceof KernelControllerContextAware)
          ((KernelControllerContextAware) object).setKernelControllerContext(context);
 
    }
 
-   public void uninstallAction(KernelControllerContext context)
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
    {
+      return ConfigureKernelControllerContextAware.class;
+   }
+
+   protected void uninstallActionInternal(KernelControllerContext context)
+   {
       KernelController controller = (KernelController) context.getController();
       Kernel kernel = controller.getKernel();
       KernelConfigurator configurator = kernel.getConfigurator();
@@ -78,8 +84,7 @@
       {
          log.debug("Ignored error unsetting context ", ignored);
       }
-      
-      
+
       BeanInfo info = context.getBeanInfo();
       BeanMetaData metaData = context.getBeanMetaData();
       try

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -28,6 +28,8 @@
 import org.jboss.beans.metadata.spi.ParameterMetaData;
 import org.jboss.beans.metadata.spi.annotations.CreateLifecycle;
 import org.jboss.beans.metadata.spi.annotations.DestroyLifecycle;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.CreateKernelControllerContextAware;
 
 /**
  * CreateDestroyLifecycleAction.
@@ -63,6 +65,11 @@
       return null;
    }
 
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
+   {
+      return CreateKernelControllerContextAware.class;
+   }
+
    public String getUninstallMethod(BeanMetaData beanMetaData)
    {
       LifecycleMetaData lifecycle = beanMetaData.getDestroy();

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -32,6 +32,8 @@
 import org.jboss.kernel.spi.config.KernelConfigurator;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.DescribeKernelControllerContextAware;
 import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
 import org.jboss.metadata.spi.MetaData;
 
@@ -43,7 +45,7 @@
  */
 public class DescribeAction extends KernelControllerContextAction
 {
-   public void installAction(KernelControllerContext context) throws Throwable
+   protected void installActionInternal(KernelControllerContext context) throws Throwable
    {
       KernelController controller = (KernelController) context.getController();
       Kernel kernel = controller.getKernel();
@@ -79,8 +81,13 @@
       }
    }
 
-   public void uninstallAction(KernelControllerContext context)
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
    {
+      return DescribeKernelControllerContextAware.class;
+   }
+
+   protected void uninstallActionInternal(KernelControllerContext context)
+   {
       removeMetaData(context);
       context.setBeanInfo(null);
    }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -33,6 +33,8 @@
 import org.jboss.kernel.spi.config.KernelConfigurator;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.InstallKernelControllerContextAware;
 import org.jboss.kernel.spi.registry.KernelRegistry;
 
 /**
@@ -43,7 +45,7 @@
  */
 public class InstallAction extends KernelControllerContextAction
 {
-   public void installAction(KernelControllerContext context) throws Throwable
+   protected void installActionInternal(KernelControllerContext context) throws Throwable
    {
       KernelController controller = (KernelController) context.getController();
       Kernel kernel = controller.getKernel();
@@ -67,9 +69,14 @@
          }
       }
    }
-   
-   public void uninstallAction(KernelControllerContext context)
+
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
    {
+      return InstallKernelControllerContextAware.class;
+   }
+
+   protected void uninstallActionInternal(KernelControllerContext context)
+   {
       KernelController controller = (KernelController) context.getController();
       Kernel kernel = controller.getKernel();
       KernelRegistry registry = kernel.getRegistry();
@@ -99,7 +106,6 @@
             catch (Throwable t)
             {
                log.warn("Ignoring uninstall action on target " + uninstall, t);
-               continue;
             }
          }
       }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -28,6 +28,8 @@
 import org.jboss.kernel.spi.config.KernelConfigurator;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.InstantiateKernelControllerContextAware;
 
 /**
  * InstantiateAction.
@@ -37,7 +39,7 @@
  */
 public class InstantiateAction extends KernelControllerContextAction
 {
-   public void installAction(KernelControllerContext context) throws Throwable
+   protected void installActionInternal(KernelControllerContext context) throws Throwable
    {
       KernelController controller = (KernelController) context.getController();
       Kernel kernel = controller.getKernel();
@@ -73,8 +75,13 @@
       }
    }
 
-   public void uninstallAction(KernelControllerContext context)
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
    {
+      return InstantiateKernelControllerContextAware.class;
+   }
+
+   protected void uninstallActionInternal(KernelControllerContext context)
+   {
       try
       {
          Object object = context.getTarget();

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -30,6 +30,7 @@
 import org.jboss.kernel.plugins.config.Configurator;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
 import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.spi.MetaData;
@@ -178,9 +179,56 @@
    
    public void installAction(KernelControllerContext context) throws Throwable
    {
+      installActionInternal(context);
+      Object target = context.getTarget();
+      if (target != null)
+      {
+         Class<? extends KernelControllerContextAware> awareInterface = getActionAwareInterface();
+         // only applying interfaces that explicitly extend KernelControllerContextAware
+         if (awareInterface != null &&
+             awareInterface.equals(KernelControllerContextAware.class) == false &&
+             awareInterface.isAssignableFrom(target.getClass()))
+         {
+            ((KernelControllerContextAware)target).setKernelControllerContext(context);
+         }
+      }
    }
 
+   protected void installActionInternal(KernelControllerContext context) throws Throwable
+   {
+   }
+
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
+   {
+      return null;
+   }
+
    public void uninstallAction(KernelControllerContext context)
    {
+      Object target = context.getTarget();
+      if (target != null)
+      {
+         Class<? extends KernelControllerContextAware> awareInterface = getActionAwareInterface();
+         // only applying interfaces that explicitly extend KernelControllerContextAware
+         if (awareInterface != null &&
+             awareInterface.equals(KernelControllerContextAware.class) == false &&
+             awareInterface.isAssignableFrom(target.getClass()))
+         {
+            try
+            {
+               ((KernelControllerContextAware)target).unsetKernelControllerContext(context);
+            }
+            catch (Exception ignored)
+            {
+               log.debug("Ignored error unsetting context ", ignored);
+            }
+         }
+      }
+      uninstallActionInternal(context);
    }
+
+   protected void uninstallActionInternal(KernelControllerContext context)
+   {
+   }
+
 }
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/LifecycleAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/LifecycleAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/LifecycleAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -111,7 +111,7 @@
     */
    public abstract List<ParameterMetaData> getUninstallParameters(BeanMetaData beanMetaData);
 
-   public void installAction(KernelControllerContext context) throws Throwable
+   protected void installActionInternal(KernelControllerContext context) throws Throwable
    {
       boolean trace = log.isTraceEnabled();
 
@@ -145,7 +145,7 @@
       dispatchJoinPoint(context, joinpoint);
    }
 
-   public void uninstallAction(KernelControllerContext context)
+   protected void uninstallActionInternal(KernelControllerContext context)
    {
       boolean trace = log.isTraceEnabled();
 

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -28,6 +28,8 @@
 import org.jboss.beans.metadata.spi.ParameterMetaData;
 import org.jboss.beans.metadata.spi.annotations.StartLifecycle;
 import org.jboss.beans.metadata.spi.annotations.StopLifecycle;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.StartKernelControllerContextAware;
 
 /**
  * StartStopLifecycleAction.
@@ -63,6 +65,11 @@
       return null;
    }
 
+   protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
+   {
+      return StartKernelControllerContextAware.class;
+   }
+
    public String getUninstallMethod(BeanMetaData beanMetaData)
    {
       LifecycleMetaData lifecycle = beanMetaData.getStop();

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/ConfigureKernelControllerContextAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/ConfigureKernelControllerContextAware.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/ConfigureKernelControllerContextAware.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,32 @@
+/*
+* 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.spi.dependency;
+
+/**
+ * A Configure KernelControllerContextAware.
+ * @see org.jboss.kernel.plugins.dependency.KernelControllerContextAction
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface ConfigureKernelControllerContextAware extends KernelControllerContextAware
+{
+}

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/CreateKernelControllerContextAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/CreateKernelControllerContextAware.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/CreateKernelControllerContextAware.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,32 @@
+/*
+* 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.spi.dependency;
+
+/**
+ * A Create KernelControllerContextAware.
+ * @see org.jboss.kernel.plugins.dependency.KernelControllerContextAction
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface CreateKernelControllerContextAware extends KernelControllerContextAware
+{
+}

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/DescribeKernelControllerContextAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/DescribeKernelControllerContextAware.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/DescribeKernelControllerContextAware.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,32 @@
+/*
+* 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.spi.dependency;
+
+/**
+ * A Describe KernelControllerContextAware.
+ * @see org.jboss.kernel.plugins.dependency.KernelControllerContextAction
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface DescribeKernelControllerContextAware extends KernelControllerContextAware
+{
+}

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstallKernelControllerContextAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstallKernelControllerContextAware.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstallKernelControllerContextAware.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,32 @@
+/*
+* 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.spi.dependency;
+
+/**
+ * An Install KernelControllerContextAware.
+ * @see org.jboss.kernel.plugins.dependency.KernelControllerContextAction
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface InstallKernelControllerContextAware extends KernelControllerContextAware
+{
+}

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstantiateKernelControllerContextAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstantiateKernelControllerContextAware.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/InstantiateKernelControllerContextAware.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,32 @@
+/*
+* 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.spi.dependency;
+
+/**
+ * An Instantiate KernelControllerContextAware.
+ * @see org.jboss.kernel.plugins.dependency.KernelControllerContextAction
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface InstantiateKernelControllerContextAware extends KernelControllerContextAware
+{
+}

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/StartKernelControllerContextAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/StartKernelControllerContextAware.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/StartKernelControllerContextAware.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,32 @@
+/*
+* 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.spi.dependency;
+
+/**
+ * A Start KernelControllerContextAware.
+ * @see org.jboss.kernel.plugins.dependency.KernelControllerContextAction
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface StartKernelControllerContextAware extends KernelControllerContextAware
+{
+}

Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.xml	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.xml	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="FineGrainedBean" class="org.jboss.test.kernel.deployment.support.FineGrainedBean" mode="Manual" />
+
+</deployment>

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/FineGrainedBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/FineGrainedBean.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/FineGrainedBean.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -0,0 +1,61 @@
+/*
+* 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.test.kernel.deployment.support;
+
+import org.jboss.kernel.spi.dependency.*;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class FineGrainedBean implements
+      DescribeKernelControllerContextAware, InstantiateKernelControllerContextAware,
+      ConfigureKernelControllerContextAware, CreateKernelControllerContextAware,
+      StartKernelControllerContextAware, InstallKernelControllerContextAware
+{
+   private int index;
+
+   public static String[] states = {
+         "NOT_INSTALLED (DESCRIBED)",
+         "INSTANTIATED",
+         "CONFIGURED", // since ConfigureAction calls this as well, remove this once we remove that from CA
+         "CONFIGURED",
+         "CREATE",
+         "START",
+         "INSTALLED",
+   };
+
+   public String getStateString()
+   {
+      return states[index];
+   }
+
+   public void setKernelControllerContext(KernelControllerContext context) throws Exception
+   {
+      ++index;
+   }
+
+   public void unsetKernelControllerContext(KernelControllerContext context) throws Exception
+   {
+      --index;
+   }
+
+}

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -48,6 +48,7 @@
       suite.addTest(WildcardClassLoaderTestCase.suite());
       suite.addTest(BeanMetaDataFactoryTestCase.suite());
       suite.addTest(AnnotatedLifecycleTestCase.suite());
+      suite.addTest(FineGrainedActionTestCase.suite());
 
       return suite;
    }

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.java	2006-12-25 13:21:50 UTC (rev 59226)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FineGrainedActionTestCase.java	2006-12-25 14:48:09 UTC (rev 59227)
@@ -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.test.kernel.deployment.test;
+
+import junit.framework.Test;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.test.kernel.deployment.support.FineGrainedBean;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class FineGrainedActionTestCase extends AbstractDeploymentTest
+{
+
+   private static final String BEAN_NAME = "FineGrainedBean";
+
+   public FineGrainedActionTestCase(String name) throws Throwable
+   {
+      super(name);
+   }
+
+   public static Test suite()
+   {
+      return suite(FineGrainedActionTestCase.class);
+   }
+
+   public void testFineGrainedActions() throws Throwable
+   {
+      KernelControllerContext context = getControllerContext(FineGrainedActionTestCase.BEAN_NAME, ControllerState.NOT_INSTALLED);      
+      FineGrainedBean target;
+
+      change(context, ControllerState.DESCRIBED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNull(target);
+
+      change(context, ControllerState.INSTANTIATED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("INSTANTIATED", target.getStateString());
+
+      change(context, ControllerState.CONFIGURED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("CONFIGURED", target.getStateString());
+
+      change(context, ControllerState.CREATE);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("CREATE", target.getStateString());
+
+      change(context, ControllerState.START);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("START", target.getStateString());
+
+      change(context, ControllerState.INSTALLED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("INSTALLED", target.getStateString());
+
+      change(context, ControllerState.START);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("START", target.getStateString());
+
+      change(context, ControllerState.CREATE);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("CREATE", target.getStateString());
+
+      change(context, ControllerState.CONFIGURED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("CONFIGURED", target.getStateString());
+
+      change(context, ControllerState.INSTANTIATED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNotNull(target);
+      assertEquals("INSTANTIATED", target.getStateString());
+
+      change(context, ControllerState.DESCRIBED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNull(target);
+
+      change(context, ControllerState.NOT_INSTALLED);
+      target = (FineGrainedBean) context.getTarget();
+      assertNull(target);
+   }
+}




More information about the jboss-cvs-commits mailing list