[jboss-cvs] JBossAS SVN: r89243 - in projects/microcontainer/branches/Branch_2_0/aop-mc-int/src: main/java/org/jboss/aop/microcontainer/beans/metadata and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 21 07:01:02 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-05-21 07:01:01 -0400 (Thu, 21 May 2009)
New Revision: 89243

Added:
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AOPBeanMetaDataBuilder.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testAllAopTurnedOff.xml
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testLifecycleTurnedOff.xml
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testPointcutsTurnedOff.xml
Removed:
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.xml
Modified:
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/annotations/DisableAOP.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractAnnotationBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractDeclareBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractPointcutBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayBindBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayReplacementBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AspectBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/BindBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/CFlowStackBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DynamicCflowBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/IntroductionBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LifecycleBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LoaderRepositoryBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/PrecedenceBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/StackBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/TypeDefBeanMetaDataFactory.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPConstructorJoinpoint.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPDependencyBuilder.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/DisableAOPHelper.java
   projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.java
Log:
[JBKERNEL-31] Make @DisableAop more fine-grained

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/annotations/DisableAOP.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/annotations/DisableAOP.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/annotations/DisableAOP.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -37,4 +37,10 @@
 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
 public @interface DisableAOP 
 {
+   /**
+    * The disabled types.
+    *
+    * @return the disabled types
+    */
+   DisabledType[] value() default {DisabledType.ALL};
 }

Copied: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AOPBeanMetaDataBuilder.java (from rev 89040, projects/microcontainer/trunk/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AOPBeanMetaDataBuilder.java)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AOPBeanMetaDataBuilder.java	                        (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AOPBeanMetaDataBuilder.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -0,0 +1,92 @@
+/*
+* 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.aop.microcontainer.beans.metadata;
+
+import org.jboss.aop.microcontainer.annotations.DisableAOP;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+
+/**
+ * Wrapper factory class to obtain a {@link BeanMetaDataBuilder} which adds the @{@link DisableAOP} annotation
+ * to the underlying bean being built 
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class AOPBeanMetaDataBuilder
+{
+   /**
+    * Create builder from bean name and add the @{@link DisableAOP} annotation 
+    * to the underlying bean being built.
+    *
+    * @param bean bean class name
+    * @return new Builder
+    */
+   public static BeanMetaDataBuilder createBuilder(String bean)
+   {
+      BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(bean);
+      addDisableAopAnnotation(builder);
+      return builder;
+   }
+
+   /**
+    * Create builder from name and bean and add the @{@link DisableAOP} annotation 
+    * to the underlying bean being built.
+    * @param name bean name
+    * @param bean bean class name
+    * @return new Builder
+    */
+   public static BeanMetaDataBuilder createBuilder(String name, String bean)
+   {
+      BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, bean);
+      addDisableAopAnnotation(builder);
+      return builder;
+   }
+   
+   /**
+    * Create builder from BeanMetaData and add the @{@link DisableAOP} annotation 
+    * to the underlying bean being built.
+    * 
+    * @param beanMetaData the bean metadata
+    * @return new Builder()
+    */
+   public static BeanMetaDataBuilder createBuilder(BeanMetaData beanMetaData)
+   {
+      if (beanMetaData instanceof AbstractBeanMetaData)
+      {
+         BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder((AbstractBeanMetaData)beanMetaData);
+         addDisableAopAnnotation(builder);
+         return builder;
+      }
+      else
+      {
+         throw new IllegalArgumentException("Invalid type of bean metadata: " + beanMetaData);
+      }
+   }
+   
+   private static void addDisableAopAnnotation(BeanMetaDataBuilder builder)
+   {
+      builder.addAnnotation("@" + DisableAOP.class.getName());
+   }
+}

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractAnnotationBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractAnnotationBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractAnnotationBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -87,7 +87,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, getBeanClassName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, getBeanClassName());
       builder.addPropertyMetaData("invisible", invisible);
       builder.addPropertyMetaData("expr", expr);
       builder.addPropertyMetaData("annotation", annotation);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractDeclareBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractDeclareBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractDeclareBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -74,7 +74,7 @@
       {
           name = GUID.asString();
       }
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, DeclareDefinition.class.getName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, DeclareDefinition.class.getName());
       builder.addPropertyMetaData("expr", expr);
       builder.addPropertyMetaData("name", name);
       builder.addPropertyMetaData("message", message);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractPointcutBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractPointcutBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AbstractPointcutBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -62,7 +62,7 @@
          name = GUID.asString();
       }
       
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, getBeanClass());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, getBeanClass());
       builder.addPropertyMetaData("name", name);
       builder.addPropertyMetaData("expr", expr);
       setAspectManagerProperty(builder);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayBindBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayBindBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayBindBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -76,7 +76,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder bindingBuilder = BeanMetaDataBuilder.createBuilder(name, ArrayBinding.class.getName());
+      BeanMetaDataBuilder bindingBuilder = AOPBeanMetaDataBuilder.createBuilder(name, ArrayBinding.class.getName());
       bindingBuilder.addPropertyMetaData("name", name);
       bindingBuilder.addPropertyMetaData("type", type);
       setAspectManagerProperty(bindingBuilder);
@@ -90,7 +90,7 @@
          for (BaseInterceptorData interceptor : interceptors)
          {
             String intName = name + "$" + i++; 
-            BeanMetaDataBuilder interceptorBuilder = BeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
+            BeanMetaDataBuilder interceptorBuilder = AOPBeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
             setAspectManagerProperty(interceptorBuilder);
             ValueMetaData injectBinding = interceptorBuilder.createInject(name, null, null, ControllerState.INSTANTIATED);
             interceptorBuilder.addPropertyMetaData("binding", injectBinding);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayReplacementBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayReplacementBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/ArrayReplacementBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -84,7 +84,7 @@
          name = GUID.asString();
       }
 
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ArrayReplacement.class.getName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, ArrayReplacement.class.getName());
       builder.addPropertyMetaData("name", name);
       builder.addPropertyMetaData("classes", clazz);
       builder.addPropertyMetaData("expr", expr);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AspectBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AspectBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/AspectBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -140,12 +140,12 @@
          throw new RuntimeException("Wrong number of beans" + beans);
       }
       BeanMetaData factory = beans.get(0);
-      BeanMetaDataBuilder factoryBuilder = BeanMetaDataBuilder.createBuilder(factory);
+      BeanMetaDataBuilder factoryBuilder = AOPBeanMetaDataBuilder.createBuilder(factory);
       factoryBuilder.setBean(ClassLoaderAwareGenericBeanFactory.class.getName());
       result.add(factory);
       
       //Add the Aspect
-      BeanMetaDataBuilder aspectBuilder = BeanMetaDataBuilder.createBuilder(aspectName, Aspect.class.getName());
+      BeanMetaDataBuilder aspectBuilder = AOPBeanMetaDataBuilder.createBuilder(aspectName, Aspect.class.getName());
       aspectBuilder.addPropertyMetaData("scope", scope);
       aspectBuilder.addPropertyMetaData("name", aspectName);
       HashMap<String, String> attributes = new HashMap<String, String>();

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/BindBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/BindBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/BindBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -80,7 +80,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder bindingBuilder = BeanMetaDataBuilder.createBuilder(name, AspectBinding.class.getName());
+      BeanMetaDataBuilder bindingBuilder = AOPBeanMetaDataBuilder.createBuilder(name, AspectBinding.class.getName());
       bindingBuilder.addPropertyMetaData("name", name);
       if (cflow != null)
       {
@@ -97,7 +97,7 @@
          for (BaseInterceptorData interceptor : interceptors)
          {
             String intName = name + "$" + i++; 
-            BeanMetaDataBuilder interceptorBuilder = BeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
+            BeanMetaDataBuilder interceptorBuilder = AOPBeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
             setAspectManagerProperty(interceptorBuilder);
             ValueMetaData injectBinding = interceptorBuilder.createInject(name, null, null, ControllerState.INSTANTIATED);
             interceptorBuilder.addPropertyMetaData("binding", injectBinding);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/CFlowStackBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/CFlowStackBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/CFlowStackBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -64,7 +64,7 @@
       ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
       
       //Add the Aspect
-      BeanMetaDataBuilder cflowStackBuilder = BeanMetaDataBuilder.createBuilder(getName(), CFlowStack.class.getName());
+      BeanMetaDataBuilder cflowStackBuilder = AOPBeanMetaDataBuilder.createBuilder(getName(), CFlowStack.class.getName());
       cflowStackBuilder.addPropertyMetaData("name", getName());
       setAspectManagerProperty(cflowStackBuilder);
       result.add(cflowStackBuilder.getBeanMetaData());
@@ -77,7 +77,7 @@
          for (CFlowEntry entry : calledEntries)
          {
             String entryName = getName() + "$" + i++;
-            BeanMetaDataBuilder entryBuilder = BeanMetaDataBuilder.createBuilder(entryName, CFlowStackEntry.class.getName());
+            BeanMetaDataBuilder entryBuilder = AOPBeanMetaDataBuilder.createBuilder(entryName, CFlowStackEntry.class.getName());
             entryBuilder.addPropertyMetaData("called", entry.getCalled());
             entryBuilder.addPropertyMetaData("expr", entry.getExpr());
             ValueMetaData injectEntry = entryBuilder.createInject(entryName);

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -155,7 +155,7 @@
    {
       ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
       
-      BeanMetaDataBuilder domainBuilder = BeanMetaDataBuilder.createBuilder(getName(), AOPDomain.class.getName());
+      BeanMetaDataBuilder domainBuilder = AOPBeanMetaDataBuilder.createBuilder(getName(), AOPDomain.class.getName());
       domainBuilder.addPropertyMetaData("name", getName());
     
       if (parentFirst != null)
@@ -189,7 +189,7 @@
                AspectManagerAwareBeanMetaDataFactory amChild = (AspectManagerAwareBeanMetaDataFactory)child;
                amChild.setManagerBean(name);
                amChild.setManagerProperty("domain");
-               amChild.setAspectManagerProperty(BeanMetaDataBuilder.createBuilder(bean));
+               amChild.setAspectManagerProperty(AOPBeanMetaDataBuilder.createBuilder(bean));
             }
             List<BeanMetaData> childResult = child.getBeans();
             if (childResult != null && childBeans.size() > 0)

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DynamicCflowBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DynamicCflowBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/DynamicCflowBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -80,7 +80,7 @@
    {
       ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
       
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, DynamicCFlowDef.class.getName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, DynamicCFlowDef.class.getName());
       builder.addPropertyMetaData("name", name);
       builder.addPropertyMetaData("className", clazz);
       HashMap<String, String> attributes = new HashMap<String, String>();

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/IntroductionBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/IntroductionBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/IntroductionBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -120,7 +120,7 @@
          name = GUID.asString();
       }
      
-      BeanMetaDataBuilder introductionBuilder = BeanMetaDataBuilder.createBuilder(name, IntroductionBinding.class.getName());
+      BeanMetaDataBuilder introductionBuilder = AOPBeanMetaDataBuilder.createBuilder(name, IntroductionBinding.class.getName());
       introductionBuilder.addPropertyMetaData("name", name);
       setAspectManagerProperty(introductionBuilder);
       if (clazz != null)
@@ -169,7 +169,7 @@
       for (MixinData mixin : mixins)
       {
          String name = introductionBuilder.getBeanMetaData().getName() + "$" + i++;
-         BeanMetaDataBuilder mixinBuilder = BeanMetaDataBuilder.createBuilder(name, MixinEntry.class.getName());
+         BeanMetaDataBuilder mixinBuilder = AOPBeanMetaDataBuilder.createBuilder(name, MixinEntry.class.getName());
          mixinBuilder.addPropertyMetaData("mixin", mixin.getMixin());
          addInterfaces(mixinBuilder, "interfaces", mixin.getInterfaces());
          mixinBuilder.addPropertyMetaData("transient", mixin.getTransient());

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LifecycleBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LifecycleBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LifecycleBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -81,7 +81,7 @@
       ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
 
       //Do not include the bean factory here, just install the bean directly and the binding
-      BeanMetaDataBuilder lifecycleBuilder = BeanMetaDataBuilder.createBuilder(name, getBean());
+      BeanMetaDataBuilder lifecycleBuilder = AOPBeanMetaDataBuilder.createBuilder(name, getBean());
       if (properties != null && properties.size() > 0)
       {
          for (PropertyMetaData pmd : properties)
@@ -102,7 +102,7 @@
       
       
       String aspectBindingName = name + "$AspectBinding";
-      BeanMetaDataBuilder bindingBuilder = BeanMetaDataBuilder.createBuilder(aspectBindingName, LifecycleBinding.class.getName());
+      BeanMetaDataBuilder bindingBuilder = AOPBeanMetaDataBuilder.createBuilder(aspectBindingName, LifecycleBinding.class.getName());
       bindingBuilder.addPropertyMetaData("callbackBean", name);
       setAspectManagerProperty(bindingBuilder);
       if (expr != null)

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LoaderRepositoryBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LoaderRepositoryBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/LoaderRepositoryBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -62,7 +62,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, LifecycleRepository.class.getName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, LifecycleRepository.class.getName());
       builder.addPropertyMetaData("repositoryName", contents);
       builder.addPropertyMetaData("name", name);
       

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -101,7 +101,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ClassMetaData.class.getName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, ClassMetaData.class.getName());
       builder.addPropertyMetaData("tag", tag);
       builder.addPropertyMetaData("className", clazz);
       HashMap<String, String> attributes = new HashMap<String, String>();

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -97,7 +97,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ClassMetaDataLoader.class.getName());
+      BeanMetaDataBuilder builder = AOPBeanMetaDataBuilder.createBuilder(name, ClassMetaDataLoader.class.getName());
       builder.addPropertyMetaData("tag", tag);
       builder.addPropertyMetaData("className", clazz);
       HashMap<String, String> attributes = new HashMap<String, String>();

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/PrecedenceBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/PrecedenceBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/PrecedenceBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -66,7 +66,7 @@
       {
          name = GUID.asString();
       }
-      BeanMetaDataBuilder precedenceBuilder = BeanMetaDataBuilder.createBuilder(name, PrecedenceDef.class.getName());
+      BeanMetaDataBuilder precedenceBuilder = AOPBeanMetaDataBuilder.createBuilder(name, PrecedenceDef.class.getName());
       precedenceBuilder.addPropertyMetaData("name", getName());
       setAspectManagerProperty(precedenceBuilder);
       result.add(precedenceBuilder.getBeanMetaData());
@@ -77,7 +77,7 @@
       for (BaseInterceptorData entry : entries)
       {
          String entryName = name + "$" + i++;
-         BeanMetaDataBuilder entryBuilder = BeanMetaDataBuilder.createBuilder(entryName, PrecedenceDefEntry.class.getName());
+         BeanMetaDataBuilder entryBuilder = AOPBeanMetaDataBuilder.createBuilder(entryName, PrecedenceDefEntry.class.getName());
          
          entryBuilder.addPropertyMetaData("aspectName", entry.getRefName());
          if (entry instanceof AdviceOrInterceptorData)

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/StackBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/StackBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/StackBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -59,7 +59,7 @@
       ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
 
       //Create Stack
-      BeanMetaDataBuilder stackBuilder = BeanMetaDataBuilder.createBuilder(name, Stack.class.getName());
+      BeanMetaDataBuilder stackBuilder = AOPBeanMetaDataBuilder.createBuilder(name, Stack.class.getName());
       stackBuilder.addPropertyMetaData("name", name);
       setAspectManagerProperty(stackBuilder);
       result.add(stackBuilder.getBeanMetaData());
@@ -71,7 +71,7 @@
          for (BaseInterceptorData interceptor : interceptors)
          {
             String intName = name + "$" + i++; 
-            BeanMetaDataBuilder interceptorBuilder = BeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
+            BeanMetaDataBuilder interceptorBuilder = AOPBeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
             setAspectManagerProperty(interceptorBuilder);
             interceptorBuilder.addPropertyMetaData("forStack", Boolean.TRUE);
             

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/TypeDefBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/TypeDefBeanMetaDataFactory.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/TypeDefBeanMetaDataFactory.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -67,7 +67,7 @@
    {
       ArrayList<BeanMetaData> beans = new ArrayList<BeanMetaData>();
       
-      BeanMetaDataBuilder typedefBuilder = BeanMetaDataBuilder.createBuilder(getName(), TypeDef.class.getName());
+      BeanMetaDataBuilder typedefBuilder = AOPBeanMetaDataBuilder.createBuilder(getName(), TypeDef.class.getName());
       typedefBuilder.addPropertyMetaData("name", getName());
       typedefBuilder.addPropertyMetaData("expr", expr);
       

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPConstructorJoinpoint.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPConstructorJoinpoint.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPConstructorJoinpoint.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -30,7 +30,9 @@
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.advice.Interceptor;
 import org.jboss.aop.joinpoint.ConstructorInvocation;
+import org.jboss.aop.microcontainer.annotations.DisabledType;
 import org.jboss.aop.microcontainer.beans.AspectManagerFactory;
+import org.jboss.aop.microcontainer.annotations.DisabledType;
 import org.jboss.aop.proxy.container.AOPProxyFactory;
 import org.jboss.aop.proxy.container.AOPProxyFactoryParameters;
 import org.jboss.aop.proxy.container.ContainerCache;
@@ -87,10 +89,21 @@
       this.metaData = MetaData.class.cast(metaData);
    }
 
+   /**
+    * Should we bypass AOP.
+    *
+    * @param metaData the metadata instance
+    * @return true if we should bypass aop, false otherwise
+    */
+   protected boolean bypassAOP(MetaData metaData)
+   {
+      return DisableAOPHelper.isAOPDisabled(metaData, DisabledType.POINTCUTS);
+   }
+
    @SuppressWarnings("deprecation")
    public Object dispatch() throws Throwable
    {
-      if (DisableAOPHelper.isAOPDisabled(metaData))
+      if (bypassAOP(metaData))
       {
          return super.dispatch();
       }

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPDependencyBuilder.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPDependencyBuilder.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/AOPDependencyBuilder.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -39,6 +39,7 @@
 import org.jboss.aop.microcontainer.beans.AspectManagerFactory;
 import org.jboss.aop.microcontainer.beans.ManagedAspectDefinition;
 import org.jboss.aop.microcontainer.lifecycle.LifecycleCallbackDefinition;
+import org.jboss.aop.microcontainer.annotations.DisabledType;
 import org.jboss.aop.proxy.container.ContainerCache;
 import org.jboss.aop.util.Advisable;
 import org.jboss.aop.util.ClassInfoMethodHashing;
@@ -76,11 +77,24 @@
    private static final String DEPENDENCY_NAME_ATTRIBUTE = "name";
    private static final IntrospectionAnnotationHelper helper = new IntrospectionAnnotationHelper();
 
+   /**
+    * Should we bypass AOP.
+    *
+    * @param beanInfo the bean info
+    * @param metaData the metadata instance
+    * @param disabledType The type we want to check if is disabled
+    * @return true if we should bypass aop, false otherwise
+    */
+   protected boolean bypassAOP(BeanInfo beanInfo, MetaData metaData, DisabledType disabledType)
+   {
+      return DisableAOPHelper.isAOPDisabled(metaData, disabledType);
+   }
+
    @SuppressWarnings({"unchecked", "deprecation"})
    @Override
    public List<DependencyBuilderListItem> getDependencies(BeanInfo beanInfo, MetaData metaData)
    {
-      if (DisableAOPHelper.isAOPDisabled(metaData))
+      if (bypassAOP(beanInfo, metaData, DisabledType.ALL))
       {
          return super.getDependencies(beanInfo, metaData);
       }
@@ -106,39 +120,46 @@
                advisor = cache.getAdvisor();
             }
             ReflectiveAspectBinder binder = new ReflectiveAspectBinder(clazz, advisor);
-            Set aspects = binder.getAspects();
+            ArrayList<DependencyBuilderListItem> depends = new ArrayList<DependencyBuilderListItem>();
 
-            ArrayList<DependencyBuilderListItem> depends = new ArrayList<DependencyBuilderListItem>();
-            if (aspects != null && aspects.size() > 0)
+            if (bypassAOP(beanInfo, metaData, DisabledType.POINTCUTS) == false)
             {
-               Iterator it = aspects.iterator();
-               while (it.hasNext())
+               Set aspects = binder.getAspects();
+   
+               if (aspects != null && aspects.size() > 0)
                {
-                  AspectDefinition def = (AspectDefinition) it.next();
-                  if (def instanceof ManagedAspectDefinition)
+                  Iterator it = aspects.iterator();
+                  while (it.hasNext())
                   {
-                     String name = ((ManagedAspectDefinition)def).getDependentAspectName();
-                     if (name != null)
+                     AspectDefinition def = (AspectDefinition) it.next();
+                     if (def instanceof ManagedAspectDefinition)
                      {
-                        depends.add(new AspectDependencyBuilderListItem(name));
+                        String name = ((ManagedAspectDefinition)def).getDependentAspectName();
+                        if (name != null)
+                        {
+                           depends.add(new AspectDependencyBuilderListItem(name));
+                        }
                      }
                   }
                }
             }
 
-            Map<Object, Set<LifecycleCallbackDefinition>> lifecycleCallbacks = binder.getLifecycleCallbacks();
-            if (lifecycleCallbacks != null && lifecycleCallbacks.size() > 0)
+            if (bypassAOP(beanInfo, metaData, DisabledType.LIFECYCLE) == false)
             {
-               for (Entry<Object, Set<LifecycleCallbackDefinition>> states : lifecycleCallbacks.entrySet())
+               Map<Object, Set<LifecycleCallbackDefinition>> lifecycleCallbacks = binder.getLifecycleCallbacks();
+               if (lifecycleCallbacks != null && lifecycleCallbacks.size() > 0)
                {
-                  for (LifecycleCallbackDefinition callback : states.getValue())
+                  for (Entry<Object, Set<LifecycleCallbackDefinition>> states : lifecycleCallbacks.entrySet())
                   {
-                     depends.add(new LifecycleAspectDependencyBuilderListItem(
-                           callback.getBean(), (ControllerState)states.getKey(), callback.getInstallMethod(), callback.getUninstallMethod()));
+                     for (LifecycleCallbackDefinition callback : states.getValue())
+                     {
+                        depends.add(new LifecycleAspectDependencyBuilderListItem(
+                              callback.getBean(), (ControllerState)states.getKey(), callback.getInstallMethod(), callback.getUninstallMethod()));
+                     }
                   }
                }
             }
-
+            
             HashSet<String> annotationDependencies = getAnnotationDependencies(classInfo, metaData);
             for (String dependency : annotationDependencies)
             {

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/DisableAOPHelper.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/DisableAOPHelper.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/integration/DisableAOPHelper.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -21,8 +21,9 @@
  */
 package org.jboss.aop.microcontainer.integration;
 
+import org.jboss.aop.microcontainer.annotations.DisableAOP;
+import org.jboss.aop.microcontainer.annotations.DisabledType;
 import org.jboss.metadata.spi.MetaData;
-import org.jboss.aop.microcontainer.annotations.DisableAOP;
 
 /**
  * Diable AOP helper.
@@ -36,9 +37,29 @@
     *
     * @param metaData the metadata instance
     * @return true if AOP is disabled, false otherwise
+    * @deprecated use the method with a constraint
     */
+   @Deprecated
    public static boolean isAOPDisabled(MetaData metaData)
    {
-      return metaData != null && metaData.isAnnotationPresent(DisableAOP.class);
+      return isAOPDisabled(metaData, DisabledType.ALL);
    }
+
+   /**
+    * Is AOP disabled for this metadata instance.
+    *
+    * @param metaData the metadata instance
+    * @param constraint the constraint
+    * @return true if AOP is disabled, false otherwise
+    */
+   public static boolean isAOPDisabled(MetaData metaData, DisabledType constraint)
+   {
+      if (metaData != null)
+      {
+         DisableAOP aop = metaData.getAnnotation(DisableAOP.class);
+         if (aop != null)
+            return DisabledType.isDisabled(aop.value(), constraint);
+      }
+      return false;
+   }
 }

Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.java	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.java	2009-05-21 11:01:01 UTC (rev 89243)
@@ -27,6 +27,7 @@
 import junit.framework.Test;
 import org.jboss.aop.proxy.container.AspectManaged;
 import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyItem;
 import org.jboss.test.aop.junit.AOPMicrocontainerTest;
 import org.jboss.test.microcontainer.beans.POJO;
@@ -57,26 +58,66 @@
       // do nothing, so we ignore validate
    }
 
-   public void testBeanWithDependency() throws Exception
+   public void testAllAopTurnedOff() throws Exception
    {
+      assertMoreDependencies("Intercepted", "NotIntercepted");
+
+      POJO pojoNotIntercepted = (POJO)getBean("NotIntercepted");
+      assertFalse(pojoNotIntercepted instanceof AspectManaged);
+
+      assertMoreDependencies("WithLifecycle", "WithLifecycleDisabled");
+   }
+   
+   public void testPointcutsTurnedOff() throws Exception
+   {
+      assertMoreDependencies("Intercepted", "NotIntercepted");
+
+      POJO pojoNotIntercepted = (POJO)getBean("NotIntercepted");
+      assertFalse(pojoNotIntercepted instanceof AspectManaged);
+      
+      assertNotInstalledContext("WithLifecycle");
+      assertNotInstalledContext("WithLifecycleDisabled");
+   }
+   
+   public void testLifecycleTurnedOff() throws Exception
+   {
+      assertNotInstalledContext("Intercepted");
+      assertNotInstalledContext("NotIntercepted");
+
+      assertMoreDependencies("WithLifecycle", "WithLifecycleDisabled");
+   }
+   
+   private void assertMoreDependencies(String aspectCtxName, String disabledCtxName)
+   {
+      ControllerContext aspectCtx = assertNotInstalledContext(aspectCtxName);
+      ControllerContext disabledCtx = assertInstalledContext(disabledCtxName);
+      
+      Set<DependencyItem> interceptedDependencies = new HashSet<DependencyItem>(aspectCtx.getDependencyInfo().getIDependOn(null));
+      Set<DependencyItem> notInterceptedDependencies = new HashSet<DependencyItem>(disabledCtx.getDependencyInfo().getIDependOn(null));
+      assertTrue(interceptedDependencies.size() > notInterceptedDependencies.size());
+   }
+   
+   private ControllerContext assertNotInstalledContext(String bean)
+   {
       try
       {
-         getControllerContext("Intercepted");
-         fail("'Intercepted' should not have been installed");
+         getControllerContext(bean);
+         fail("'" + bean + "' should not have been installed");
       }
       catch (Exception expected)
       {
       }
-      ControllerContext ctxIntercepted = getControllerContext("Intercepted", null);
-      ControllerContext ctxNotIntercepted = getControllerContext("NotIntercepted");
-      assertNotNull(ctxIntercepted);
-      assertNotNull(ctxNotIntercepted);
-
-      Set<DependencyItem> interceptedDependencies = new HashSet<DependencyItem>(ctxIntercepted.getDependencyInfo().getIDependOn(null));
-      Set<DependencyItem> notInterceptedDependencies = new HashSet<DependencyItem>(ctxNotIntercepted.getDependencyInfo().getIDependOn(null));
-      assertTrue(interceptedDependencies.size() > notInterceptedDependencies.size());
-
-      POJO pojoNotIntercepted = (POJO)getBean("NotIntercepted");
-      assertFalse(pojoNotIntercepted instanceof AspectManaged);
+      ControllerContext ctx = getControllerContext(bean, null);
+      assertNotNull(ctx);
+      assertNotSame(ControllerState.INSTALLED, ctx.getState());
+      return ctx;
    }
+   
+   private ControllerContext assertInstalledContext(String bean)
+   {
+      ControllerContext ctx = getControllerContext(bean);
+      assertNotNull(ctx);
+      assertSame(ControllerState.INSTALLED, ctx.getState());
+      return ctx;
+   }
 }

Copied: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testAllAopTurnedOff.xml (from rev 89242, projects/microcontainer/trunk/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testAllAopTurnedOff.xml)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testAllAopTurnedOff.xml	                        (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testAllAopTurnedOff.xml	2009-05-21 11:01:01 UTC (rev 89243)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <aspect class="org.jboss.test.microcontainer.beans.TestAspectWithDependency">
+      <property name="dependency"><inject bean="Dependency"/></property>
+   </aspect>
+
+   <bind pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+      <advice aspect="org.jboss.test.microcontainer.beans.TestAspectWithDependency" name="advice"/>
+   </bind>
+
+   <lifecycle-configure
+               name="LifecycleCallback"
+               class="org.jboss.test.microcontainer.support.LifecycleCallbackWithBeanDependency"
+               expr="class(org.jboss.test.microcontainer.beans.POJO2)"
+               manager-bean="AspectManager">
+      <property name="dependency"><inject bean="Dependency"/></property>
+   </lifecycle-configure>
+
+   <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
+   
+   <bean name="NotIntercepted" class="org.jboss.test.microcontainer.beans.POJO">
+      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP</annotation>
+   </bean>
+   
+   <bean name="WithLifecycle" class="org.jboss.test.microcontainer.beans.POJO2"/>
+   
+   <bean name="WithLifecycleDisabled"  class="org.jboss.test.microcontainer.beans.POJO2">
+      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP</annotation>
+   </bean>
+</aop>

Copied: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testLifecycleTurnedOff.xml (from rev 89242, projects/microcontainer/trunk/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testLifecycleTurnedOff.xml)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testLifecycleTurnedOff.xml	                        (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testLifecycleTurnedOff.xml	2009-05-21 11:01:01 UTC (rev 89243)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <aspect class="org.jboss.test.microcontainer.beans.TestAspectWithDependency">
+      <property name="dependency"><inject bean="Dependency"/></property>
+   </aspect>
+
+   <bind pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+      <advice aspect="org.jboss.test.microcontainer.beans.TestAspectWithDependency" name="advice"/>
+   </bind>
+
+   <lifecycle-configure
+               name="LifecycleCallback"
+               class="org.jboss.test.microcontainer.support.LifecycleCallbackWithBeanDependency"
+               expr="class(org.jboss.test.microcontainer.beans.POJO2)"
+               manager-bean="AspectManager">
+      <property name="dependency"><inject bean="Dependency"/></property>
+   </lifecycle-configure>
+
+   <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
+   
+   <bean name="NotIntercepted" class="org.jboss.test.microcontainer.beans.POJO">
+      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP({org.jboss.aop.microcontainer.annotations.DisabledType.LIFECYCLE})</annotation>
+   </bean>
+   
+   <bean name="WithLifecycle" class="org.jboss.test.microcontainer.beans.POJO2"/>
+   
+   <bean name="WithLifecycleDisabled"  class="org.jboss.test.microcontainer.beans.POJO2">
+      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP({org.jboss.aop.microcontainer.annotations.DisabledType.LIFECYCLE})</annotation>
+   </bean>
+</aop>

Copied: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testPointcutsTurnedOff.xml (from rev 89242, projects/microcontainer/trunk/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testPointcutsTurnedOff.xml)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testPointcutsTurnedOff.xml	                        (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase#testPointcutsTurnedOff.xml	2009-05-21 11:01:01 UTC (rev 89243)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <aspect class="org.jboss.test.microcontainer.beans.TestAspectWithDependency">
+      <property name="dependency"><inject bean="Dependency"/></property>
+   </aspect>
+
+   <bind pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+      <advice aspect="org.jboss.test.microcontainer.beans.TestAspectWithDependency" name="advice"/>
+   </bind>
+
+   <lifecycle-configure
+               name="LifecycleCallback"
+               class="org.jboss.test.microcontainer.support.LifecycleCallbackWithBeanDependency"
+               expr="class(org.jboss.test.microcontainer.beans.POJO2)"
+               manager-bean="AspectManager">
+      <property name="dependency"><inject bean="Dependency"/></property>
+   </lifecycle-configure>
+
+   <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
+   
+   <bean name="NotIntercepted" class="org.jboss.test.microcontainer.beans.POJO">
+      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP({org.jboss.aop.microcontainer.annotations.DisabledType.POINTCUTS})</annotation>
+   </bean>
+   
+   <bean name="WithLifecycle" class="org.jboss.test.microcontainer.beans.POJO2"/>
+   
+   <bean name="WithLifecycleDisabled"  class="org.jboss.test.microcontainer.beans.POJO2">
+      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP({org.jboss.aop.microcontainer.annotations.DisabledType.POINTCUTS})</annotation>
+   </bean>
+</aop>

Deleted: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.xml	2009-05-21 10:11:40 UTC (rev 89242)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/resources/org/jboss/test/microcontainer/beans/test/AspectWithDependencyTurnedOffAopTestCase.xml	2009-05-21 11:01:01 UTC (rev 89243)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<aop xmlns="urn:jboss:aop-beans:1.0">
-
-   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
-      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
-   </bean>
-
-   <aspect class="org.jboss.test.microcontainer.beans.TestAspectWithDependency">
-      <property name="dependency"><inject bean="Dependency"/></property>
-   </aspect>
-
-   <bind pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
-      <advice aspect="org.jboss.test.microcontainer.beans.TestAspectWithDependency" name="advice"/>
-   </bind>
-
-   <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
-   <bean name="NotIntercepted" class="org.jboss.test.microcontainer.beans.POJO">
-      <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP</annotation>
-   </bean>
-   
-</aop>




More information about the jboss-cvs-commits mailing list