[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