[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