[jboss-cvs] JBossAS SVN: r63325 - in projects/microcontainer/trunk: aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jndi and 9 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jun 4 04:33:23 EDT 2007
Author: kabir.khan at jboss.com
Date: 2007-06-04 04:33:23 -0400 (Mon, 04 Jun 2007)
New Revision: 63325
Added:
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractLifecycleCallbackItem.java
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/LifecycleCallbackItem.java
Removed:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleCallbackMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/LifecycleCallbackMetaData.java
Modified:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMXLifecycleCallback.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jndi/JndiLifecycleCallback.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/integration/LifecycleAspectDependencyBuilderListItem.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallback.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallbackWithBeanDependency.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/NonDefaultMethodsLifecycleCallback.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/SimpleLifecycleCallback.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackWithDependencyTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackWithDependencyTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/LifecycleTestCase.java
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractDependencyInfo.java
projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DependencyInfo.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/KernelControllerContext.java
Log:
Move configuration of Lifecycle callback aspects from BeanMetaData to DependencyInfo. The chain is now driven by AbstractController rather than KernelControllerContextAction
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMXLifecycleCallback.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMXLifecycleCallback.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMXLifecycleCallback.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -25,6 +25,7 @@
import javax.management.ObjectName;
import javax.management.StandardMBean;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.logging.Logger;
@@ -43,7 +44,7 @@
this.server = server;
}
- public void install(KernelControllerContext context) throws Exception
+ public void install(ControllerContext context) throws Exception
{
validateServer();
JMX jmx = readJmxAnnotation(context);
@@ -62,7 +63,7 @@
log.info("Registered MBean " + objectName);
}
- public void uninstall(KernelControllerContext context) throws Exception
+ public void uninstall(ControllerContext context) throws Exception
{
validateServer();
JMX jmx = readJmxAnnotation(context);
@@ -80,16 +81,19 @@
}
}
- private JMX readJmxAnnotation(KernelControllerContext context) throws Exception
+ private JMX readJmxAnnotation(ControllerContext context) throws Exception
{
- if (context.getMetaData() != null)
+ if (context instanceof KernelControllerContext)
{
- return context.getMetaData().getAnnotation(JMX.class);
+ if (((KernelControllerContext)context).getMetaData() != null)
+ {
+ return ((KernelControllerContext)context).getMetaData().getAnnotation(JMX.class);
+ }
}
return null;
}
- private ObjectName createObjectName(KernelControllerContext context, JMX jmx) throws Exception
+ private ObjectName createObjectName(ControllerContext context, JMX jmx) throws Exception
{
ObjectName objectName = null;
if (jmx != null)
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jndi/JndiLifecycleCallback.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jndi/JndiLifecycleCallback.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jndi/JndiLifecycleCallback.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -27,6 +27,7 @@
import org.jboss.aop.joinpoint.Invocation;
import org.jboss.aop.joinpoint.MethodInvocation;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.logging.Logger;
import org.jboss.util.naming.Util;
@@ -126,7 +127,7 @@
return null;
}
- public void install(KernelControllerContext context) throws Exception
+ public void install(ControllerContext context) throws Exception
{
JndiBinding bindingInfo = readJndiAnnotation(context);
boolean trace = log.isTraceEnabled();
@@ -150,7 +151,7 @@
}
}
- public void uninstall(KernelControllerContext context) throws Exception
+ public void uninstall(ControllerContext context) throws Exception
{
JndiBinding bindingInfo = readJndiAnnotation(context);
boolean trace = log.isTraceEnabled();
@@ -170,11 +171,14 @@
}
}
- private JndiBinding readJndiAnnotation(KernelControllerContext context)
+ private JndiBinding readJndiAnnotation(ControllerContext context)
{
- if (context.getMetaData() != null)
+ if (context instanceof KernelControllerContext)
{
- return context.getMetaData().getAnnotation(JndiBinding.class);
+ if (((KernelControllerContext)context).getMetaData() != null)
+ {
+ return ((KernelControllerContext)context).getMetaData().getAnnotation(JndiBinding.class);
+ }
}
return null;
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/integration/LifecycleAspectDependencyBuilderListItem.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/integration/LifecycleAspectDependencyBuilderListItem.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/integration/LifecycleAspectDependencyBuilderListItem.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -25,10 +25,10 @@
import java.util.List;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractLifecycleCallbackMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.LifecycleCallbackMetaData;
+import org.jboss.dependency.plugins.AbstractLifecycleCallbackItem;
import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.DependencyInfo;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
/**
@@ -69,17 +69,10 @@
public void addDependency(KernelControllerContext context)
{
- BeanMetaData metaData = context.getBeanMetaData();
- List<LifecycleCallbackMetaData> callbacks = metaData.getLifecycleCallbacks();
- if (callbacks == null)
- {
- callbacks = new ArrayList<LifecycleCallbackMetaData>();
- ((AbstractBeanMetaData)metaData).setLifecycleCallbacks(callbacks);
- }
- AbstractLifecycleCallbackMetaData callback = new AbstractLifecycleCallbackMetaData(dependencyName, state, ControllerState.INSTALLED, installMethod, uninstallMethod);
- callbacks.add(callback);
-
- //We need to manually add the dependency since this is happening after the metadata visitors run
+ AbstractLifecycleCallbackItem callback = new AbstractLifecycleCallbackItem(dependencyName, state, ControllerState.INSTALLED, installMethod, uninstallMethod);
+ DependencyInfo di = context.getDependencyInfo();
+ di.addLifecycleCallback(callback);
+
super.addDependency(context);
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallback.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallback.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallback.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -25,6 +25,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.metadata.spi.MetaData;
@@ -42,31 +43,38 @@
return this.getClass().getName();
}
- public void install(KernelControllerContext context)
+ public void install(ControllerContext context)
{
handle(context);
}
- public void uninstall(KernelControllerContext context)
+ public void uninstall(ControllerContext context)
{
handle(context);
}
@SuppressWarnings("unchecked")
- private void handle(KernelControllerContext context)
+ private void handle(ControllerContext context)
{
- for (int i = 0 ; i < lifecycleAnnotations.length ; i++)
+ if (context instanceof KernelControllerContext)
{
- MetaData metaData = context.getMetaData();
- Object cur = metaData.getAnnotation(lifecycleAnnotations[i]);
- if (cur != null)
+ for (int i = 0 ; i < lifecycleAnnotations.length ; i++)
{
- addInterception(context, lifecycleAnnotations[i]);
+ MetaData metaData = ((KernelControllerContext)context).getMetaData();
+ Object cur = metaData.getAnnotation(lifecycleAnnotations[i]);
+ if (cur != null)
+ {
+ addInterception(context, lifecycleAnnotations[i]);
+ }
}
}
+ else
+ {
+ throw new RuntimeException(context + " is not a KCC!");
+ }
}
- private void addInterception(KernelControllerContext context, Class annotation)
+ private void addInterception(ControllerContext context, Class annotation)
{
String name = (String)context.getName();
ArrayList<Class> beanInterceptions = interceptions.get(name);
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallbackWithBeanDependency.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallbackWithBeanDependency.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/LifecycleCallbackWithBeanDependency.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -23,8 +23,8 @@
import java.util.ArrayList;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
-import org.jboss.kernel.spi.dependency.KernelControllerContext;
/**
*
@@ -35,12 +35,12 @@
{
Object dependency;
public static ArrayList<Handled> interceptions = new ArrayList<Handled>();
- public void install(KernelControllerContext context)
+ public void install(ControllerContext context)
{
interceptions.add(new Handled((String)context.getName(), context.getState()));
}
- public void uninstall(KernelControllerContext context)
+ public void uninstall(ControllerContext context)
{
interceptions.add(new Handled((String)context.getName(), context.getState()));
}
@@ -48,13 +48,13 @@
public static class Handled
{
public String contextName;
- public ControllerState fromState;
+ public ControllerState toState;
- public Handled(String contextName, ControllerState fromState)
+ public Handled(String contextName, ControllerState toState)
{
super();
this.contextName = contextName;
- this.fromState = fromState;
+ this.toState = toState;
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/NonDefaultMethodsLifecycleCallback.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/NonDefaultMethodsLifecycleCallback.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/NonDefaultMethodsLifecycleCallback.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -21,7 +21,7 @@
*/
package org.jboss.test.microcontainer.support;
-import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.dependency.spi.ControllerContext;
/**
*
@@ -33,17 +33,17 @@
public static boolean inited;
public static boolean uninited;
- public void install(KernelControllerContext context)
+ public void install(ControllerContext context)
{
throw new IllegalStateException("install should not have been called");
}
- public void uninstall(KernelControllerContext context)
+ public void uninstall(ControllerContext context)
{
throw new IllegalStateException("uninstall should not have been called");
}
- public void init(KernelControllerContext context)
+ public void init(ControllerContext context)
{
if (inited)
{
@@ -52,7 +52,7 @@
inited = true;
}
- public void uninit(KernelControllerContext context)
+ public void uninit(ControllerContext context)
{
if (uninited)
{
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/SimpleLifecycleCallback.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/SimpleLifecycleCallback.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/support/SimpleLifecycleCallback.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -23,8 +23,8 @@
import java.util.ArrayList;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
-import org.jboss.kernel.spi.dependency.KernelControllerContext;
/**
*
@@ -35,12 +35,12 @@
{
public static ArrayList<Handled> interceptions = new ArrayList<Handled>();
private String testProperty;
- public void install(KernelControllerContext context)
+ public void install(ControllerContext context)
{
interceptions.add(new Handled((String)context.getName(), context.getState()));
}
- public void uninstall(KernelControllerContext context)
+ public void uninstall(ControllerContext context)
{
interceptions.add(new Handled((String)context.getName(), context.getState()));
}
@@ -58,13 +58,13 @@
public static class Handled
{
public String contextName;
- public ControllerState fromState;
+ public ControllerState toState;
- public Handled(String contextName, ControllerState fromState)
+ public Handled(String contextName, ControllerState toState)
{
super();
this.contextName = contextName;
- this.fromState = fromState;
+ this.toState = toState;
}
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackTestCase.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackTestCase.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -58,7 +58,7 @@
assertEquals(1, SimpleLifecycleCallback.interceptions.size());
SimpleLifecycleCallback.Handled handled = SimpleLifecycleCallback.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
itworked = true;
@@ -72,7 +72,7 @@
assertEquals(1, SimpleLifecycleCallback.interceptions.size());
SimpleLifecycleCallback.Handled handled = SimpleLifecycleCallback.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackWithDependencyTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackWithDependencyTestCase.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/CreatedBeansLifecycleCallbackWithDependencyTestCase.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -67,7 +67,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertEquals(dependency, lifecycle.getDependency());
itworked = true;
@@ -81,7 +81,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
}
@@ -121,7 +121,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertEquals(dependency, lifecycle.getDependency());
@@ -137,7 +137,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
try
@@ -189,7 +189,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertEquals(dependency, lifecycle.getDependency());
@@ -205,7 +205,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
try
@@ -244,7 +244,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertTrue("Should not be caching the lifecycle's callback across rebinding", dependency == lifecycle.getDependency());
@@ -259,7 +259,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
try
@@ -299,7 +299,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertTrue(dependency == lifecycle.getDependency());
itworked = true;
@@ -313,7 +313,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
@@ -329,7 +329,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertTrue(dependency == lifecycle.getDependency());
itworked = true;
@@ -343,7 +343,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackTestCase.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackTestCase.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -56,7 +56,7 @@
assertEquals(1, SimpleLifecycleCallback.interceptions.size());
SimpleLifecycleCallback.Handled handled = SimpleLifecycleCallback.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
SimpleLifecycleCallback callback = (SimpleLifecycleCallback)getBean("LifecycleCallback");
assertEquals("Test123", callback.getTestProperty());
@@ -72,7 +72,7 @@
assertEquals(1, SimpleLifecycleCallback.interceptions.size());
SimpleLifecycleCallback.Handled handled = SimpleLifecycleCallback.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
}
@@ -83,7 +83,4 @@
assertNotNull(bean);
return bean;
}
-
-
- //InitialLifecycleTestCaseNotAutomatic.xml
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackWithDependencyTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackWithDependencyTestCase.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/InitialLifecycleCallbackWithDependencyTestCase.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -65,7 +65,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertEquals(dependency, lifecycle.getDependency());
itworked = true;
@@ -79,7 +79,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
}
@@ -119,7 +119,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertEquals(dependency, lifecycle.getDependency());
@@ -135,7 +135,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
try
@@ -187,7 +187,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertEquals(dependency, lifecycle.getDependency());
@@ -203,7 +203,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
try
@@ -242,7 +242,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertTrue("Should not be caching the lifecycle's callback across rebinding", dependency == lifecycle.getDependency());
@@ -257,7 +257,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
try
@@ -297,7 +297,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertTrue(dependency == lifecycle.getDependency());
itworked = true;
@@ -311,7 +311,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
@@ -327,7 +327,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.INSTANTIATED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
assertNotNull(lifecycle.getDependency());
assertTrue(dependency == lifecycle.getDependency());
itworked = true;
@@ -341,7 +341,7 @@
assertEquals(1, LifecycleCallbackWithBeanDependency.interceptions.size());
LifecycleCallbackWithBeanDependency.Handled handled = LifecycleCallbackWithBeanDependency.interceptions.get(0);
assertEquals("Intercepted", handled.contextName);
- assertEquals(ControllerState.CONFIGURED, handled.fromState);
+ assertEquals(ControllerState.CONFIGURED, handled.toState);
}
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/LifecycleTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/LifecycleTestCase.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/test/LifecycleTestCase.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -26,6 +26,7 @@
import junit.framework.Test;
import org.jboss.aop.microcontainer.junit.AOPMicrocontainerTest;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.test.microcontainer.support.Configure;
import org.jboss.test.microcontainer.support.Create;
import org.jboss.test.microcontainer.support.Describe;
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 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -36,6 +36,7 @@
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyInfo;
import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.spi.LifecycleCallbackItem;
import org.jboss.util.JBossObject;
import org.jboss.util.collection.CollectionsFactory;
@@ -552,7 +553,8 @@
toContexts.add(context);
context.setState(toState);
- resolveCallbacks(context, toState, true);
+ handleInstallLifecycleCallbacks(context, toState);
+ resolveCallbacks(context, toState, true);
}
catch (Throwable t)
{
@@ -815,6 +817,7 @@
try
{
resolveCallbacks(context, fromState, false);
+ handleUninstallLifecycleCallbacks(context, toState);
uninstall(context, fromState, toState);
@@ -1026,6 +1029,38 @@
}
}
+ protected void handleInstallLifecycleCallbacks(ControllerContext context, ControllerState state) throws Throwable
+ {
+ handleLifecycleCallbacks(context, state, true);
+ }
+
+ protected void handleUninstallLifecycleCallbacks(ControllerContext context, ControllerState state) throws Throwable
+ {
+ int index = states.indexOf(state);
+ ControllerState newState = states.get(index + 1);
+ handleLifecycleCallbacks(context, newState, false);
+ }
+
+ protected void handleLifecycleCallbacks(ControllerContext context, ControllerState state, boolean install) throws Throwable
+ {
+ DependencyInfo di = context.getDependencyInfo();
+ List<LifecycleCallbackItem> callbacks = di.getLifecycleCallbacks();
+ for (LifecycleCallbackItem callback : callbacks)
+ {
+ if (callback.getWhenRequired().equals(state))
+ {
+ if (install)
+ {
+ callback.install(context);
+ }
+ else if (!install)
+ {
+ callback.uninstall(context);
+ }
+ }
+ }
+ }
+
/**
* Can we use this context for autowiring.
*
Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractDependencyInfo.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractDependencyInfo.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractDependencyInfo.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -22,6 +22,7 @@
package org.jboss.dependency.plugins;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.jboss.dependency.spi.CallbackItem;
@@ -29,6 +30,7 @@
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyInfo;
import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.spi.LifecycleCallbackItem;
import org.jboss.util.JBossObject;
import org.jboss.util.JBossStringBuilder;
import org.jboss.util.collection.CollectionsFactory;
@@ -55,6 +57,11 @@
/** Uninstall callbacks */
private Set<CallbackItem> uninstallCallbacks = CollectionsFactory.createCopyOnWriteSet();
+
+ /** Lifecycle callbacks */
+ private List<LifecycleCallbackItem> lifecycleCallbacks = CollectionsFactory.createCopyOnWriteList();
+
+
/**
* Create an abstract dependency info
@@ -177,6 +184,16 @@
return uninstallCallbacks;
}
+ public void addLifecycleCallback(LifecycleCallbackItem lifecycleCallbackItem)
+ {
+ lifecycleCallbacks.add(lifecycleCallbackItem);
+ }
+
+ public List<LifecycleCallbackItem> getLifecycleCallbacks()
+ {
+ return lifecycleCallbacks;
+ }
+
public void toString(JBossStringBuilder buffer)
{
buffer.append("idependOn=").append(iDependOn);
Added: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractLifecycleCallbackItem.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractLifecycleCallbackItem.java (rev 0)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractLifecycleCallbackItem.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -0,0 +1,111 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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;
+
+import org.jboss.dependency.spi.Controller;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.LifecycleCallbackItem;
+import org.jboss.dependency.spi.dispatch.InvokeDispatchContext;
+import org.jboss.logging.Logger;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class AbstractLifecycleCallbackItem implements LifecycleCallbackItem
+{
+ private static final Logger log = Logger.getLogger(AbstractLifecycleCallbackItem.class);
+
+ ControllerState dependentState;
+ ControllerState whenRequired;
+ String installMethod;
+ String uninstallMethod;
+ String bean;
+
+ public AbstractLifecycleCallbackItem(
+ String bean,
+ ControllerState whenRequired,
+ ControllerState dependentState,
+ String installMethod,
+ String uninstallMethod)
+ {
+ this.bean = bean;
+ this.whenRequired = whenRequired;
+ this.dependentState = dependentState;
+ this.installMethod = installMethod;
+ this.uninstallMethod = uninstallMethod;
+ }
+
+ public ControllerState getDependentState()
+ {
+ return dependentState;
+ }
+
+ public ControllerState getWhenRequired()
+ {
+ return whenRequired;
+ }
+
+ public void install(ControllerContext ctx) throws Exception
+ {
+ Controller controller = ctx.getController();
+ ControllerContext callbackContext = controller.getContext(bean, dependentState);
+ if (callbackContext instanceof InvokeDispatchContext)
+ {
+ try
+ {
+ ((InvokeDispatchContext)callbackContext).invoke(installMethod, new Object[]{ctx}, new String[]{ControllerContext.class.getName()});
+ }
+ catch(Throwable t)
+ {
+ throw new Exception("Error calling callback " + bean + " for target context " + ctx.getName(), t);
+ }
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot install " + ctx.getName() + ". Lifecycle callback context " + bean + " does not implement InvokeDispatchContext");
+ }
+ }
+
+ public void uninstall(ControllerContext ctx)
+ {
+ Controller controller = ctx.getController();
+ ControllerContext callbackContext = controller.getContext(bean, dependentState);
+ if (callbackContext instanceof InvokeDispatchContext)
+ {
+ try
+ {
+ ((InvokeDispatchContext)callbackContext).invoke(uninstallMethod, new Object[]{ctx}, new String[]{ControllerContext.class.getName()});
+ }
+ catch (Throwable ignored)
+ {
+ log.warn("Ignored error uninstalling context " + ctx.getName() + "; callback=" + bean, ignored);
+ }
+ }
+ else
+ {
+ log.warn("Cannot uninstall " + ctx.getName() + ". Lifecycle callback context " + bean + " does not implement InvokeDispatchContext");
+ }
+ }
+}
Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DependencyInfo.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DependencyInfo.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DependencyInfo.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -21,6 +21,7 @@
*/
package org.jboss.dependency.spi;
+import java.util.List;
import java.util.Set;
import org.jboss.util.JBossInterface;
@@ -134,4 +135,18 @@
* @return our uninstall callbacks
*/
Set<CallbackItem> getUninstallItems();
+
+ /**
+ * Add a lifecycle callback
+ *
+ * @param lifecycleCallbackItem The lifecycle callback to add
+ */
+ void addLifecycleCallback(LifecycleCallbackItem lifecycleCallbackItem);
+
+ /**
+ * Get the lifecycle callbacks
+ *
+ * @return our lifecycle callbacks
+ */
+ List<LifecycleCallbackItem> getLifecycleCallbacks();
}
\ No newline at end of file
Added: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/LifecycleCallbackItem.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/LifecycleCallbackItem.java (rev 0)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/LifecycleCallbackItem.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -0,0 +1,54 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.spi;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public interface LifecycleCallbackItem
+{
+ /**
+ * Get the target state of the bean this callback applies to indicating when this callback should trigger
+ * @return the state
+ */
+ ControllerState getWhenRequired();
+
+ /**
+ * The required state of the lifecycle callback bean
+ * @return the dependant state
+ */
+ ControllerState getDependentState();
+
+ /**
+ * Call when the target bean is installed
+ * @param ctx the context of the target bean
+ */
+ void install(ControllerContext ctx) throws Exception;
+
+ /**
+ * Call when the target bean is uninstalled
+ * @param ctx the context of the target bean
+ */
+ void uninstall(ControllerContext ctx);
+}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -37,7 +37,6 @@
import org.jboss.beans.metadata.spi.DemandMetaData;
import org.jboss.beans.metadata.spi.DependencyMetaData;
import org.jboss.beans.metadata.spi.InstallMetaData;
-import org.jboss.beans.metadata.spi.LifecycleCallbackMetaData;
import org.jboss.beans.metadata.spi.LifecycleMetaData;
import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
@@ -65,8 +64,6 @@
{
private static final long serialVersionUID = 2L;
- private static final List<LifecycleCallbackMetaData> EMPTY_LIFECYCLE_CALLBACKS = Collections.unmodifiableList(new ArrayList<LifecycleCallbackMetaData>());
-
/** The bean fully qualified class name */
protected String bean;
@@ -124,9 +121,6 @@
/** The uninstall callback List<InstallMetaData> */
protected List<CallbackMetaData> uninstallCallbacks;
- /** The uninstall operations List<LifecycleCallbackMetaData> */
- protected List<LifecycleCallbackMetaData> lifecycleCallbacks;
-
/** The context */
protected transient ControllerContext context;
@@ -461,17 +455,6 @@
return installs;
}
- public List<LifecycleCallbackMetaData> getLifecycleCallbacks()
- {
- return lifecycleCallbacks;
- }
-
- public void setLifecycleCallbacks(List<LifecycleCallbackMetaData> lifecycleCallbacks)
- {
- this.lifecycleCallbacks = lifecycleCallbacks;
- flushJBossObjectCache();
- }
-
/**
* Set the installs
*
@@ -569,8 +552,6 @@
children.addAll(installCallbacks);
if (uninstallCallbacks != null)
children.addAll(uninstallCallbacks);
- if (lifecycleCallbacks != null)
- children.addAll(lifecycleCallbacks);
}
public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
@@ -662,37 +643,8 @@
buffer.append(" uninstallCallbacks=");
JBossObject.list(buffer, uninstallCallbacks);
}
- if (lifecycleCallbacks != null)
- {
- buffer.append(" lifecycleCallbacks=");
- JBossObject.list(buffer, lifecycleCallbacks);
- }
}
- public List<LifecycleCallbackMetaData> getLifecycleCallbacks(ControllerState state)
- {
- if (state == null)
- throw new IllegalArgumentException("ControllerState cannot be null!");
-
- List<LifecycleCallbackMetaData> callbacks = EMPTY_LIFECYCLE_CALLBACKS;
- List<LifecycleCallbackMetaData> allCallbacks = getLifecycleCallbacks();
- if (allCallbacks != null && allCallbacks.size() > 0)
- {
- for (LifecycleCallbackMetaData lifecycleCallback : allCallbacks)
- {
- if (state.equals(lifecycleCallback.getWhenRequired()))
- {
- if (callbacks == EMPTY_LIFECYCLE_CALLBACKS)
- {
- callbacks = new ArrayList<LifecycleCallbackMetaData>();
- }
- callbacks.add(lifecycleCallback);
- }
- }
- }
- return callbacks;
- }
-
public void toShortString(JBossStringBuilder buffer)
{
buffer.append(bean);
Deleted: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleCallbackMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleCallbackMetaData.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleCallbackMetaData.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -1,118 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file 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.beans.metadata.plugins;
-
-import java.util.Iterator;
-
-import org.jboss.beans.metadata.spi.LifecycleCallbackMetaData;
-import org.jboss.beans.metadata.spi.MetaDataVisitor;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.util.JBossObject;
-import org.jboss.util.JBossStringBuilder;
-
-/**
- * Metadata about lifecycle callbacks that should be invoked once a
- * bean reaches a certain lifecycle state
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class AbstractLifecycleCallbackMetaData extends JBossObject
-implements LifecycleCallbackMetaData, MetaDataVisitorNode
-{
- String bean;
- ControllerState whenRequired;
- ControllerState dependentState;
- String installMethod;
- String uninstallMethod;
-
- public AbstractLifecycleCallbackMetaData(String bean, ControllerState whenRequired, ControllerState dependentState, String installMethod, String uninstallMethod)
- {
- super();
- this.bean = bean;
- this.whenRequired = whenRequired;
- this.dependentState = dependentState;
- this.installMethod = installMethod;
- this.uninstallMethod = uninstallMethod;
- }
-
- public String getBean()
- {
- return bean;
- }
-
- public ControllerState getDependentState()
- {
- return dependentState;
- }
-
- public ControllerState getWhenRequired()
- {
- return whenRequired;
- }
-
- public String getInstallMethod()
- {
- return installMethod;
- }
-
- public String getUninstallMethod()
- {
- return uninstallMethod;
- }
-
- public void describeVisit(MetaDataVisitor visitor)
- {
- visitor.describeVisit(this);
- }
-
- public Iterator<? extends MetaDataVisitorNode> getChildren()
- {
- return null;
- }
-
- public void initialVisit(MetaDataVisitor visitor)
- {
- visitor.initialVisit(this);
- }
-
- public String toShortString()
- {
- JBossStringBuilder buffer = new JBossStringBuilder();
- toShortString(buffer);
- return buffer.toString();
- }
-
- public void toShortString(JBossStringBuilder buffer)
- {
- if (bean != null)
- buffer.append(bean);
- if (whenRequired != null)
- buffer.append("." + whenRequired.toString());
- }
-
- public String toString()
- {
- return toShortString();
- }
-}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -197,19 +197,4 @@
* @return List<InstallMetaData>
*/
List<CallbackMetaData> getUninstallCallbacks();
-
- /**
- * Get the lifecycle callbacks.
- *
- * @return List<LifecycleCallbackMetaData>
- */
- List<LifecycleCallbackMetaData> getLifecycleCallbacks();
-
- /**
- * Get the lifecycle callbacks for a particular state.
- *
- * @param state the state callbacks refer to
- * @return List<LifecycleCallbackMetaData>
- */
- List<LifecycleCallbackMetaData> getLifecycleCallbacks(ControllerState state);
}
Deleted: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/LifecycleCallbackMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/LifecycleCallbackMetaData.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/LifecycleCallbackMetaData.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -1,66 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file 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.beans.metadata.spi;
-
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.util.JBossInterface;
-
-/**
- * Metadata about lifecycle callbacks
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public interface LifecycleCallbackMetaData extends JBossInterface, MetaDataVisitorNode
-{
- /**
- * Get the target state of the bean this callback applies to indicating when this callback should trigger
- * @return the state
- */
- ControllerState getWhenRequired();
-
- /**
- * The required state of the lifecycle callback bean
- * @return the dependant state
- */
- ControllerState getDependentState();
-
- /**
- * Get the bean this callback should be made on
- * @return the state
- */
- String getBean();
-
- /**
- * Get the method on the bean that should be called when reaching the required state on installation
- * @return name of the install method
- */
- public String getInstallMethod();
-
-
- /**
- * Get the method on the bean that should be called when reaching the required state on uninstallation
- * @return name of the uninstall method
- */
- public String getUninstallMethod();
-
-}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -31,7 +31,6 @@
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.LifecycleCallbackMetaData;
import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.dependency.plugins.AbstractControllerContext;
@@ -180,12 +179,6 @@
this.installScope = key;
}
- public List<LifecycleCallbackMetaData> getLifecycleCallbacks(ControllerState state)
- {
- return metaData.getLifecycleCallbacks(state);
- }
-
-
public void toString(JBossStringBuilder buffer)
{
if (metaData != null)
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 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -27,7 +27,6 @@
import java.util.List;
import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.LifecycleCallbackMetaData;
import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.dependency.plugins.action.SimpleControllerContextAction;
import org.jboss.dependency.spi.Controller;
@@ -149,7 +148,6 @@
{
installActionInternal(context);
setKernelControllerContext(context);
- installLifecycleCallbacks(context);
}
private void setKernelControllerContext(KernelControllerContext context) throws Throwable
@@ -168,31 +166,6 @@
}
}
- private void installLifecycleCallbacks(KernelControllerContext context) throws Throwable
- {
- Controller controller = context.getController();
- List<ControllerState> states = controller.getStates();
- int toIndex = states.indexOf(context.getState());
- ControllerState toState = states.get(toIndex + 1);
-
- List<LifecycleCallbackMetaData> callbacks = context.getLifecycleCallbacks(toState);
- if (callbacks.size() > 0)
- {
- for (LifecycleCallbackMetaData callback : callbacks)
- {
- ControllerContext callbackContext = controller.getContext(callback.getBean(), callback.getDependentState());
- if (callbackContext instanceof InvokeDispatchContext)
- {
- ((InvokeDispatchContext)callbackContext).invoke(callback.getInstallMethod(), new Object[]{context}, new String[]{KernelControllerContext.class.getName()});
- }
- else
- {
- throw new IllegalArgumentException("Cannot install, context " + callbackContext + " does not implement InvokeDispatchContext");
- }
- }
- }
- }
-
protected void installActionInternal(KernelControllerContext context) throws Throwable
{
}
@@ -204,10 +177,8 @@
public void uninstallAction(KernelControllerContext context)
{
- uninstallLifecycleCallbacks(context);
unsetKernelControllerContext(context);
uninstallActionInternal(context);
-
}
protected void uninstallActionInternal(KernelControllerContext context)
@@ -238,36 +209,6 @@
}
}
- private void uninstallLifecycleCallbacks(KernelControllerContext context)
- {
-
- List<LifecycleCallbackMetaData> callbacks = context.getLifecycleCallbacks(context.getState());
- if (callbacks.size() > 0)
- {
- Controller controller = context.getController();
- for (LifecycleCallbackMetaData callback : callbacks)
- {
- ControllerContext callbackContext = controller.getContext(callback.getBean(), callback.getDependentState());
- if (callbackContext instanceof InvokeDispatchContext)
- {
-
- try
- {
- ((InvokeDispatchContext)callbackContext).invoke(callback.getUninstallMethod(), new Object[]{context}, new String[]{KernelControllerContext.class.getName()});
- }
- catch (Throwable ignored)
- {
- log.debug("Ignored error uninstalling context " + context.getName(), ignored);
- }
- }
- else
- {
- throw new IllegalArgumentException("Cannot uninstall, context " + callbackContext + " does not implement InvokeDispatchContext");
- }
- }
- }
- }
-
// DispatchContext util methods
protected Object invoke(KernelConfigurator configurator, InvokeDispatchContext context, String name, List<ParameterMetaData> params) throws Throwable
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/KernelControllerContext.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/KernelControllerContext.java 2007-06-03 18:26:05 UTC (rev 63324)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/dependency/KernelControllerContext.java 2007-06-04 08:33:23 UTC (rev 63325)
@@ -25,7 +25,6 @@
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.LifecycleCallbackMetaData;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.dispatch.InvokeDispatchContext;
import org.jboss.kernel.Kernel;
@@ -117,12 +116,4 @@
* @return true if context can be used for autowiring
*/
boolean isAutowireCandidate();
-
- /**
- * Get the lifecycle callbacks for a particular state.
- *
- * @param state the state callbacks refer to
- * @return List<LifecycleCallbackMetaData>
- */
- List<LifecycleCallbackMetaData> getLifecycleCallbacks(ControllerState state);
}
More information about the jboss-cvs-commits
mailing list