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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 12 04:14:25 EDT 2009


Author: alesj
Date: 2009-05-12 04:14:24 -0400 (Tue, 12 May 2009)
New Revision: 88707

Modified:
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/DescribeAction.java
Log:
Check for DependencyBuilder in MetaData.

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/DescribeAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/DescribeAction.java	2009-05-12 07:54:42 UTC (rev 88706)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/DescribeAction.java	2009-05-12 08:14:24 UTC (rev 88707)
@@ -24,6 +24,8 @@
 import java.util.List;
 
 import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.Kernel;
 import org.jboss.kernel.spi.config.KernelConfig;
 import org.jboss.kernel.spi.dependency.DependencyBuilder;
 import org.jboss.kernel.spi.dependency.DependencyBuilderListItem;
@@ -31,16 +33,35 @@
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
 import org.jboss.metadata.spi.MetaData;
-import org.jboss.dependency.spi.ControllerState;
 
 /**
  * DescribeAction.
  *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision$
  */
 public class DescribeAction extends AnnotationsAction
 {
+   /**
+    * Get dependency builder.
+    *
+    * @param md the metadata
+    * @param kernel the kernel
+    * @return dependency builder
+    * @throws Throwable for any error
+    */
+   protected DependencyBuilder getDependencyBuilder(MetaData md, Kernel kernel) throws Throwable
+   {
+      DependencyBuilder dependencyBuilder = md.getMetaData(DependencyBuilder.class);
+      if (dependencyBuilder == null)
+      {
+         KernelConfig config = kernel.getConfig();
+         dependencyBuilder = config.getDependencyBuilder();
+      }
+      return dependencyBuilder;
+   }
+
    @SuppressWarnings("unchecked")
    protected void installActionInternal(KernelControllerContext context) throws Throwable
    {
@@ -48,10 +69,10 @@
       if (info != null)
       {
          KernelController controller = (KernelController)context.getController();
-         KernelConfig config = controller.getKernel().getConfig();
-         DependencyBuilder dependencyBuilder = config.getDependencyBuilder();
-         KernelMetaDataRepository repository = controller.getKernel().getMetaDataRepository();
+         Kernel kernel = controller.getKernel();
+         KernelMetaDataRepository repository = kernel.getMetaDataRepository();
          MetaData md = repository.getMetaData(context);
+         DependencyBuilder dependencyBuilder = getDependencyBuilder(md, kernel);
          // add custom dependencies (e.g. AOP layer).
          List<DependencyBuilderListItem> dependencies = dependencyBuilder.getDependencies(info, md);
          if (log.isTraceEnabled())
@@ -77,20 +98,22 @@
          cleanAnnotations(context);
 
          KernelController controller = (KernelController)context.getController();
-         KernelConfig config = controller.getKernel().getConfig();
+         Kernel kernel = controller.getKernel();
+         KernelMetaDataRepository repository = kernel.getMetaDataRepository();
+         MetaData md = repository.getMetaData(context);
+
          DependencyBuilder dependencyBuilder;
          try
          {
-            dependencyBuilder = config.getDependencyBuilder();
+            dependencyBuilder = getDependencyBuilder(md, kernel);
          }
          catch (Throwable e)
          {
             log.debug("Error while cleaning the annotations: " + e);
             return;
          }
-         KernelMetaDataRepository repository = controller.getKernel().getMetaDataRepository();
-         MetaData md = repository.getMetaData(context);
-         // add custom dependencies (e.g. AOP layer).
+
+         // remove custom dependencies (e.g. AOP layer).
          List<DependencyBuilderListItem> dependencies = dependencyBuilder.getDependencies(info, md);
          if (log.isTraceEnabled())
             log.trace("Unwind extra dependencies for " + context.getName() + " " + dependencies);




More information about the jboss-cvs-commits mailing list