[jboss-cvs] JBossAS SVN: r67447 - in projects/microcontainer/trunk/aop-mc-int/src: main/org/jboss/aop/microcontainer/beans/beanmetadatafactory and 10 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 26 14:48:45 EST 2007


Author: kabir.khan at jboss.com
Date: 2007-11-26 14:48:44 -0500 (Mon, 26 Nov 2007)
New Revision: 67447

Added:
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayBinding.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayReplacement.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Binding.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayTest.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ClassWithArray.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareTest.java
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/TestArrayAspect.java
Modified:
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Aspect.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/AspectBinding.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/BindingEntry.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/InterceptorEntry.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Stack.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/StackEntry.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java
   projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AnnotationOverrideBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectFactorySimpleBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectSimpleBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyBeansTestCaseNotAutomatic1.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DynamicCFlowBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorFactorySimpleBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorSimpleBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorWithDependencyBeansTestCaseNotAutomatic1.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionClassesBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionExprBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/LightweightAspectBeanTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinClassesBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinExprBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdviceBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithMultipleDependencyBeansTestCaseNotAutomatic2.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithSingleDependencyBeansTestCaseNotAutomatic1.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleStackBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NamedPointcutBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NonStandardNameAspectBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/PrecedenceBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ScopedAspectBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithMultipleDependencyBeansTestCaseNotAutomatic2.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithSingleDependencyBeansTestCaseNotAutomatic1.xml
   projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/TypeDefBeansTestCase.xml
   projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java
Log:
[JBAOP-468] Add support for arrayreplacement + arraybind 


Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayBinding.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayBinding.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayBinding.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,141 @@
+/*
+* 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;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.advice.InterceptorFactory;
+import org.jboss.aop.array.Type;
+import org.jboss.logging.Logger;
+import org.jboss.util.id.GUID;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ArrayBinding implements Binding
+{
+   private static final Logger log = Logger.getLogger(ArrayBinding.class);
+   AspectManager manager;
+   String name = GUID.asString();
+   String type;
+   List<BindingEntry> advices;
+   
+   public AspectManager getManager()
+   {
+      return manager;
+   }
+   
+   public void setManager(AspectManager manager)
+   {
+      this.manager = manager;
+   }
+   
+   public String getName()
+   {
+      return name;
+   }
+   
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   public String getType()
+   {
+      return type;
+   }
+   
+   public void setType(String type)
+   {
+      this.type = type;
+   }
+   
+   public List<BindingEntry> getAdvices()
+   {
+      return advices;
+   }
+   
+   public void setAdvices(List<BindingEntry> advices)
+   {
+      this.advices = advices;
+   }
+   
+   public void start() throws Exception
+   {
+      if (manager == null)
+      {
+         throw new IllegalArgumentException("Null manager");
+      }
+      if (type == null)
+      {
+         throw new IllegalArgumentException("Null type");
+      }
+      Type theType = Type.valueOf(type);
+
+      ArrayList<InterceptorFactory> interceptors = null;
+      if (advices != null)
+      {
+         interceptors = new ArrayList<InterceptorFactory>();
+         int i = 0;
+         for (BindingEntry entry : advices)
+         {
+            entry.start();
+            InterceptorFactory[] factories = entry.getInterceptorFactories();
+            for (InterceptorFactory ifac : factories)
+            {
+               interceptors.add(ifac);
+            }
+         }
+      }
+      InterceptorFactory[] facs = interceptors != null ? interceptors.toArray(new InterceptorFactory[interceptors.size()]) : new InterceptorFactory[0];
+      org.jboss.aop.array.ArrayBinding binding = new org.jboss.aop.array.ArrayBinding(name, facs, theType);
+      manager.addArrayBinding(binding);
+      log.debug("Bound array binding " + name);
+   }
+
+   public void stop() throws Exception
+   {
+      manager.removeArrayBinding(name);
+      if (advices != null)
+      {
+         for (BindingEntry entry : advices)
+         {
+            entry.stop();
+         }
+      }
+   }
+
+   public void uninstall() throws Exception
+   {
+      stop();
+   }
+
+   public void rebind() throws Exception
+   {
+      stop();
+      start();
+   }   
+}

Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayReplacement.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayReplacement.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/ArrayReplacement.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,125 @@
+/*
+* 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;
+
+import java.io.StringReader;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.pointcut.ast.ASTStart;
+import org.jboss.aop.pointcut.ast.ParseException;
+import org.jboss.aop.pointcut.ast.TypeExpressionParser;
+import org.jboss.util.id.GUID;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ArrayReplacement
+{
+   AspectManager manager;
+   String name = GUID.asString();
+   String classes;
+   String expr;
+   
+   public AspectManager getManager()
+   {
+      return manager;
+   }
+   
+   public void setManager(AspectManager manager)
+   {
+      this.manager = manager;
+   }
+   
+   public String getName()
+   {
+      return name;
+   }
+   
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   public String getClasses()
+   {
+      return classes;
+   }
+   
+   public void setClasses(String classes)
+   {
+      this.classes = classes;
+   }
+   
+   public String getExpr()
+   {
+      return expr;
+   }
+   
+   public void setExpr(String expr)
+   {
+      this.expr = expr;
+   }
+   
+   public void start()
+   {
+      if (manager == null)
+      {
+         throw new IllegalArgumentException("Null manager");
+      }
+      if (classes == null && expr == null)
+      {
+         throw new IllegalArgumentException("Must define either expr or classes");
+      }
+      if (classes != null && expr != null)
+      {
+         throw new IllegalArgumentException("Cannot define both expr and classes");
+      }
+
+      org.jboss.aop.array.ArrayReplacement pcut = null;
+      if (classes != null)
+      {
+         pcut = new org.jboss.aop.array.ArrayReplacement(name, classes);
+      }
+      else
+      {
+         try
+         {
+            ASTStart start = new TypeExpressionParser(new StringReader(expr)).Start();
+            pcut = new org.jboss.aop.array.ArrayReplacement(name, start);
+         }
+         catch (ParseException e)
+         {
+            throw new IllegalArgumentException("Could not parse type expression " + expr, e);
+         }
+      }
+      manager.addArrayReplacement(pcut);
+      
+   }
+   
+   public void stop()
+   {
+      manager.removeArrayReplacement(name);
+   }
+   
+}

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Aspect.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Aspect.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Aspect.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -99,7 +99,7 @@
    /**
     * All the AspectBindings referencing this Aspect
     */
-   protected Map<String, AspectBinding> aspectBindings = new LinkedHashMap<String, AspectBinding>();
+   protected Map<String, Binding> bindings = new LinkedHashMap<String, Binding>();
    
    /**
     * Get the adviceName.
@@ -267,15 +267,15 @@
       }
       
       //Copy the aspectbindings to avoid ConcurrentModificationExceptions
-      ArrayList<AspectBinding> clonedBindings = new ArrayList<AspectBinding>();
-      for (AspectBinding aspectBinding : aspectBindings.values())
+      ArrayList<Binding> clonedBindings = new ArrayList<Binding>();
+      for (Binding aspectBinding : bindings.values())
       {
          clonedBindings.add(aspectBinding);
       }
       
-      for (AspectBinding aspectBinding : clonedBindings)
+      for (Binding binding : clonedBindings)
       {
-         aspectBinding.rebind();
+         binding.rebind();
       }
          
       log.debug("Bound aspect " + aspectDefName + "; deployed:" + definition.isDeployed());
@@ -325,13 +325,13 @@
       }
    }
    
-   void addAspectBinding(AspectBinding binding)
+   void addBinding(Binding binding)
    {
-      aspectBindings.put(binding.getName(), binding);
+      bindings.put(binding.getName(), binding);
    }
    
-   void removeAspectBinding(AspectBinding binding)
+   void removeBinding(Binding binding)
    {
-      aspectBindings.remove(binding.getName());
+      bindings.remove(binding.getName());
    }
 }
\ No newline at end of file

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/AspectBinding.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/AspectBinding.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/AspectBinding.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -36,7 +36,7 @@
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision$
  */
-public class AspectBinding
+public class AspectBinding implements Binding
 {
    private static final Logger log = Logger.getLogger(AspectBinding.class);
 

Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Binding.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Binding.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Binding.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,34 @@
+/*
+* 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;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public interface Binding
+{
+   String getName();
+   
+   void rebind() throws Exception;
+}

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/BindingEntry.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/BindingEntry.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/BindingEntry.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -35,7 +35,7 @@
 {
    String name = new GUID().toString();
    AspectManager manager;
-   AspectBinding aspectBinding;
+   Binding binding;
 
    public abstract InterceptorFactory[] getInterceptorFactories();
    
@@ -43,14 +43,14 @@
    
    public abstract void stop();
 
-   public AspectBinding getAspectBinding()
+   public Binding getBinding()
    {
-      return aspectBinding;
+      return binding;
    }
 
-   public void setAspectBinding(AspectBinding aspectBinding)
+   public void setBinding(Binding binding)
    {
-      this.aspectBinding = aspectBinding;
+      this.binding = binding;
    }
 
    public AspectManager getManager()

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/InterceptorEntry.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/InterceptorEntry.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/InterceptorEntry.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -91,7 +91,7 @@
       {
          throw new IllegalArgumentException("Null manager");
       }
-      if (aspectBinding == null && !forStack)
+      if (binding == null && !forStack)
       {
          throw new IllegalArgumentException("Null aspect binding");
       }
@@ -103,18 +103,18 @@
             new ScopedInterceptorFactory(aspect.getDefinition()) : new AdviceFactory(aspect.getDefinition(), aspectMethod);
             
       manager.addInterceptorFactory(name, interceptorFactory);
-      if (aspectBinding != null)
+      if (binding != null)
       {
-         aspect.addAspectBinding(aspectBinding);
+         aspect.addBinding(binding);
       }
    }
    
    public void stop()
    {
       manager.removeInterceptorFactory(name);
-      if (aspectBinding != null)
+      if (binding != null)
       {
-         aspect.removeAspectBinding(aspectBinding);
+         aspect.removeBinding(binding);
       }
       interceptorFactory = null;
    }
@@ -123,7 +123,7 @@
    {
       InterceptorEntry entry = new InterceptorEntry();
       entry.manager = manager;
-      entry.aspectBinding = aspectBinding;
+      entry.binding = binding;
       entry.aspect = aspect;
       entry.aspectMethod = aspectMethod;
       return entry;

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Stack.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Stack.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/Stack.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -70,14 +70,14 @@
       this.advices = advices;
    }
    
-   public List<InterceptorEntry> getClonedAdvices(AspectBinding binding)
+   public List<InterceptorEntry> getClonedAdvices(Binding binding)
    {
       List<InterceptorEntry> entries = new ArrayList<InterceptorEntry>();
  
       for (InterceptorEntry entry : advices)
       {
          InterceptorEntry cloned = (InterceptorEntry)entry.clone();
-         cloned.setAspectBinding(binding);
+         cloned.setBinding(binding);
          entries.add(cloned);
       }
       

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/StackEntry.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/StackEntry.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/StackEntry.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -58,7 +58,7 @@
       {
          throw new IllegalArgumentException("Null manager");
       }
-      if (aspectBinding == null)
+      if (binding == null)
       {
          throw new IllegalArgumentException("Null aspect binding");
       }
@@ -66,7 +66,7 @@
       {
          throw new IllegalArgumentException("Null stack");
       }
-      advices = stack.getClonedAdvices(aspectBinding);
+      advices = stack.getClonedAdvices(binding);
       if (advices == null)
       {
          throw new IllegalArgumentException("Null advices");

Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,124 @@
+/*
+* 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.beanmetadatafactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.aop.microcontainer.beans.ArrayBinding;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
+import org.jboss.beans.metadata.plugins.AbstractListMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.util.id.GUID;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ArrayBindBeanMetaDataFactory extends AspectManagerAwareBeanMetaDataFactory
+{
+
+   private static final long serialVersionUID = 1L;
+   
+   String name;
+   
+   String type;
+
+   private List<BaseInterceptorData> interceptors = new ArrayList<BaseInterceptorData>();
+   
+   public ArrayBindBeanMetaDataFactory()
+   {
+      setBeanClass("IGNORED");
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+
+   public void setType(String type)
+   {
+      this.type = type;
+   }
+   
+   @Override
+   public List<BeanMetaData> getBeans()
+   {
+      ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
+
+      //Create AspectBinding
+      AbstractBeanMetaData binding = new AbstractBeanMetaData();
+      if (name == null)
+      {
+         name = GUID.asString();
+      }
+      binding.setName(name);
+      BeanMetaDataUtil.setSimpleProperty(binding, "name", name);
+      binding.setBean(ArrayBinding.class.getName());
+      BeanMetaDataUtil.setSimpleProperty(binding, "type", type);
+      util.setAspectManagerProperty(binding, "manager");
+      result.add(binding);
+      
+      if (interceptors.size() > 0)
+      {
+         AbstractListMetaData almd = new AbstractListMetaData();
+         int i = 0;
+         for (BaseInterceptorData interceptor : interceptors)
+         {
+            AbstractBeanMetaData bmd = new AbstractBeanMetaData(interceptor.getBeanClassName());
+            String intName = name + "$" + i++; 
+            bmd.setName(intName);
+            util.setAspectManagerProperty(bmd, "manager");
+            BeanMetaDataUtil.DependencyBuilder builder = new BeanMetaDataUtil.DependencyBuilder(bmd, "binding", name).setState("Instantiated");
+            BeanMetaDataUtil.setDependencyProperty(builder);
+            
+            if (interceptor instanceof AdviceData)
+            {
+               BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "aspect", interceptor.getRefName()); 
+               BeanMetaDataUtil.setDependencyProperty(db);
+               if (((AdviceData)interceptor).getAdviceMethod() != null)
+               {
+                  BeanMetaDataUtil.setSimpleProperty(bmd, "aspectMethod", ((AdviceData)interceptor).getAdviceMethod());
+               }
+               BeanMetaDataUtil.setSimpleProperty(bmd, "type", ((AdviceData)interceptor).getType());
+            }
+            else
+            {
+               BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "stack", interceptor.getRefName());
+               BeanMetaDataUtil.setDependencyProperty(db);
+            }
+            result.add(bmd);
+            almd.add(new AbstractInjectionValueMetaData(intName));
+            BeanMetaDataUtil.setSimpleProperty(binding, "advices", almd);
+         }         
+      }
+      
+      return result;
+   }
+   
+   public void addInterceptor(BaseInterceptorData interceptorData)
+   {
+      interceptors.add(interceptorData);
+   }
+}

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -99,37 +99,14 @@
       AbstractBeanMetaData aspect = new AbstractBeanMetaData();
       aspect.setName(aspectName);
       aspect.setBean(Aspect.class.getName());
-      util.setSimpleProperty(aspect, "scope", scope);
+      BeanMetaDataUtil.setSimpleProperty(aspect, "scope", scope);
       util.setAspectManagerProperty(aspect, "manager");
       if (factory != null)
       {
-         util.setSimpleProperty(aspect, "factory", Boolean.TRUE);
+         BeanMetaDataUtil.setSimpleProperty(aspect, "factory", Boolean.TRUE);
       }
       result.add(aspect);
       
-//      String aspectBindingName = name + "$AspectBinding";
-//      AbstractBeanMetaData aspectBinding = new AbstractBeanMetaData();
-//      aspectBinding.setName(aspectBindingName);
-//      aspectBinding.setBean(AspectBinding.class.getName());
-//      util.setSimpleProperty(aspectBinding, "pointcut", pointcut);
-//      util.setDependencyProperty(aspectBinding, "aspect", aspectName, "definition");
-//      util.setAspectManagerProperty(aspectBinding, "manager");
-//      if (adviceMethod != null)
-//      {
-//         util.setSimpleProperty(aspectBinding, "method", adviceMethod);
-//      }
-//      result.add(aspectBinding);
-//      
-//      if (hasInjectedBeans())
-//      {
-//         configureWithDependencies(aspect, aspectBinding);
-//      }
-//      else
-//      {
-//         configureNoDependencies(aspect, aspectBinding);
-//      }
-      
-      
       if (hasInjectedBeans())
       {
          configureWithDependencies(aspect);
@@ -153,23 +130,6 @@
       parameters.add(new AbstractParameterMetaData(new ThisValueMetaData()));
       installAspect.setParameters(parameters);
       
-/*      <beanfactory name="Factory$org.jboss.test.microcontainer.beans2.TestAspectWithDependency" class="org.jboss.test.microcontainer.beans2.TestAspectWithDependency">
-      <property name="dependency"><inject bean="Dependency"/></property>
-      <!-- Need to be able to configure with attributes and stuff -->
-      <install bean="org.jboss.test.microcontainer.beans2.TestAspectWithDependency" method="install">
-         <parameter><this/></parameter>
-      </install>
-      <uninstall bean="org.jboss.test.microcontainer.beans2.TestAspectWithDependency" method="uninstall"/>
-   </beanfactory>
-*/      
-      
-//      AbstractInstallMetaData installBinding = new AbstractInstallMetaData();
-//      installBinding.setBean(aspectBinding.getName());
-//      installBinding.setMethodName("rebind");
-//      parameters = new ArrayList<ParameterMetaData>();
-//      parameters.add(new AbstractParameterMetaData(new AbstractDependencyValueMetaData(aspect.getName(), "definition")));
-//      installBinding.setParameters(parameters);
-
       List<InstallMetaData> installs = getInstalls();
       if (installs == null)
          installs = new ArrayList<InstallMetaData>();

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -93,7 +93,7 @@
             String intName = name + "$" + i++; 
             bmd.setName(intName);
             util.setAspectManagerProperty(bmd, "manager");
-            BeanMetaDataUtil.DependencyBuilder builder = new BeanMetaDataUtil.DependencyBuilder(bmd, "aspectBinding", name).setState("Instantiated");
+            BeanMetaDataUtil.DependencyBuilder builder = new BeanMetaDataUtil.DependencyBuilder(bmd, "binding", name).setState("Instantiated");
             BeanMetaDataUtil.setDependencyProperty(builder);
             
             if (interceptor instanceof AdviceData)

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -27,6 +27,7 @@
 import org.jboss.aop.advice.AdviceType;
 import org.jboss.aop.microcontainer.beans.AnnotationIntroduction;
 import org.jboss.aop.microcontainer.beans.AnnotationOverride;
+import org.jboss.aop.microcontainer.beans.ArrayReplacement;
 import org.jboss.aop.microcontainer.beans.CFlowStackEntry;
 import org.jboss.aop.microcontainer.beans.DynamicCFlowDef;
 import org.jboss.aop.microcontainer.beans.MixinEntry;
@@ -34,6 +35,7 @@
 import org.jboss.aop.microcontainer.beans.Prepare;
 import org.jboss.aop.microcontainer.beans.TypeDef;
 import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AdviceData;
+import org.jboss.aop.microcontainer.beans.beanmetadatafactory.ArrayBindBeanMetaDataFactory;
 import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AspectBeanMetaDataFactory;
 import org.jboss.aop.microcontainer.beans.beanmetadatafactory.BeanMetaDataUtil;
 import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AspectManagerAwareBeanMetaDataFactory;
@@ -190,11 +192,15 @@
    private static final QName constructionQName = new QName(AOP_BEANS_NS, "construction");
 
    private static final QName constructionTypeQName = new QName(AOP_BEANS_NS, "constructionType");
+  
+   private static final QName arrayreplacementQName = new QName(AOP_BEANS_NS, "arrayreplacement");
+
+   private static final QName arrayreplacementTypeQName = new QName(AOP_BEANS_NS, "arrayreplacementType");
+
+   private static final QName arraybindQName = new QName(AOP_BEANS_NS, "arraybind");
+
+   private static final QName arraybindTypeQName = new QName(AOP_BEANS_NS, "arraybindType");
    
-//   private static final QName propertyQName = new QName(AOP_BEANS_NS, "property");
-//
-//   private static final QName attributeQName = new QName(AOP_BEANS_NS, "attribute");
-   
    /** The lifecycle configure aspect binding */
    private static final QName lifecycleTypeQName = new QName(AOP_BEANS_NS, "lifecycleType");
    
@@ -233,6 +239,8 @@
       initAnnotationType(schema);
       initPrecedenceType(schema);
       initIntroductionType(schema);
+      initArrayBindType(schema);
+      initArrayReplacementType(schema);
       initLifecycleType(schema);
    }
 
@@ -271,6 +279,8 @@
       type.pushInterceptor(annotationIntroductionQName, DomainBeanMetaDataInterceptor.INTERCEPTOR);
       type.pushInterceptor(precedenceQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
       type.pushInterceptor(introductionQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
+      type.pushInterceptor(arrayreplacementQName, DomainBeanMetaDataInterceptor.INTERCEPTOR);
+      type.pushInterceptor(arraybindQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
 
    }
    
@@ -296,6 +306,16 @@
       type.setHandler(new BindBeanFactoryHandler());
    }
    
+   private void initArrayBindType(SchemaBinding schema)
+   {
+      TypeBinding type = schema.getType(arraybindTypeQName);
+      type.pushInterceptor(stackRefQName, ArrayBindContentInterceptor.INTERCEPTOR);
+      type.pushInterceptor(interceptorRefQName, ArrayBindContentInterceptor.INTERCEPTOR);
+      type.pushInterceptor(adviceQName, ArrayBindContentInterceptor.INTERCEPTOR);
+      type.pushInterceptor(aroundQName, ArrayBindContentInterceptor.INTERCEPTOR);
+      type.setHandler(new ArrayBindBeanFactoryHandler());
+   }
+   
    private void initStackType(SchemaBinding schema)
    {
       TypeBinding type = schema.getType(stackTypeQName);
@@ -342,6 +362,12 @@
       type.setHandler(PrepareHandler.HANDLER);
    }
 
+   private void initArrayReplacementType(SchemaBinding schema)
+   {
+      TypeBinding type = schema.getType(arrayreplacementTypeQName);
+      type.setHandler(ArrayReplacementHandler.HANDLER);
+   }
+
    private void initAnnotationIntroductionType(SchemaBinding schema)
    {
       TypeBinding type = schema.getType(annotationIntroductionTypeQName);
@@ -661,6 +687,41 @@
       }
    }
    
+   private static class ArrayBindBeanFactoryHandler extends AspectManagerAwareBeanFactoryHandler
+   {
+      @Override
+      public Object startElement(Object parent, QName name, ElementBinding element)
+      {
+         return new ArrayBindBeanMetaDataFactory();
+      }
+      
+      @Override
+      public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
+      {
+         super.attributes(o, elementName, element, attrs, nsCtx);
+
+         ArrayBindBeanMetaDataFactory factory = (ArrayBindBeanMetaDataFactory) o;
+         for (int i = 0; i < attrs.getLength(); ++i)
+         {
+            String localName = attrs.getLocalName(i);
+            if ("type".equals(localName))
+            {
+               factory.setType(attrs.getValue(i));
+            }
+            else if ("name".equals(localName))
+            {
+               factory.setName(attrs.getValue(i));
+            }
+         }
+      }
+
+      @Override
+      public Object endElement(Object o, QName name, ElementBinding element)
+      {
+         return super.endElement(o, name, element);
+      }
+   }
+   
    private static class StackBeanFactoryHandler extends AspectManagerAwareBeanFactoryHandler
    {
       @Override
@@ -751,7 +812,60 @@
          }
       }
    }
+   
+   private static class ArrayReplacementHandler  extends DefaultElementHandler
+   {
+      public static final ArrayReplacementHandler HANDLER = new ArrayReplacementHandler();
 
+      @Override
+      public Object startElement(Object parent, QName name, ElementBinding element)
+      {
+         return new AbstractBeanMetaData(ArrayReplacement.class.getName());
+      }
+
+      @Override
+      public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
+      {
+         AbstractBeanMetaData arrayReplacement = (AbstractBeanMetaData)o;
+         BeanMetaDataUtil util = new BeanMetaDataUtil();
+         String name = null;
+         for (int i = 0; i < attrs.getLength(); ++i)
+         {
+            String localName = attrs.getLocalName(i);
+            if ("name".equals(localName))
+            {
+               name = attrs.getValue(i);
+            }
+            else if ("class".equals(localName))
+            {
+               BeanMetaDataUtil.setSimpleProperty(arrayReplacement, "classes", attrs.getValue(i));
+            }
+            else if ("expr".equals(localName))
+            {
+               BeanMetaDataUtil.setSimpleProperty(arrayReplacement, "expr", attrs.getValue(i));
+            }
+            else if (MANAGER_BEAN_NAME.equals(localName))
+            {
+               util.setManagerBean(attrs.getValue(i));
+            }
+            else if (MANAGER_PROPERTY_NAME.equals(localName))
+            {
+               util.setManagerProperty(attrs.getValue(i));
+            }
+         }
+         util.setAspectManagerProperty(arrayReplacement, "manager");
+         
+         if (name == null)
+         {
+            name = GUID.asString();
+         }
+         arrayReplacement.setName(name);
+         BeanMetaDataUtil.setSimpleProperty(arrayReplacement, "name", name);
+      }
+   }
+
+   
+   
    private static class StackRefHandler  extends DefaultElementHandler
    {
       public static final StackRefHandler HANDLER = new StackRefHandler();
@@ -981,14 +1095,13 @@
       {
          BeanMetaDataUtil util = new BeanMetaDataUtil();
          AbstractBeanMetaData pointcut = (AbstractBeanMetaData)o;
-
+         String name = null;
          for (int i = 0; i < attrs.getLength(); ++i)
          {
             String localName = attrs.getLocalName(i);
             if ("name".equals(localName))
             {
-               pointcut.setName(attrs.getValue(i));
-               BeanMetaDataUtil.setSimpleProperty(pointcut, "name", attrs.getValue(i));
+               name = attrs.getValue(i);
             }
             else if ("expr".equals(localName))
             {
@@ -1004,6 +1117,13 @@
             }
          }
          util.setAspectManagerProperty(pointcut, "manager");
+         
+         if (name == null)
+         {
+            name = GUID.asString();
+         }
+         pointcut.setName(name);
+         BeanMetaDataUtil.setSimpleProperty(pointcut, "name", name);
       }
    }
    
@@ -1128,6 +1248,19 @@
       }
    }
    
+   private static class ArrayBindContentInterceptor extends DefaultElementInterceptor
+   {
+      public static final ArrayBindContentInterceptor INTERCEPTOR = new ArrayBindContentInterceptor();
+      
+      @Override
+      public void add (Object parent, Object child, QName name)
+      {
+         ArrayBindBeanMetaDataFactory factory = (ArrayBindBeanMetaDataFactory) parent;
+         BaseInterceptorData interceptorData = (BaseInterceptorData)child;
+         factory.addInterceptor(interceptorData);
+      }
+   }
+   
    private static class StackContentInterceptor extends DefaultElementInterceptor
    {
       public static final StackContentInterceptor INTERCEPTOR = new StackContentInterceptor();

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd	2007-11-26 19:48:44 UTC (rev 67447)
@@ -53,6 +53,8 @@
          <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="precedence" type="precedenceType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="introduction" type="introductionType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="arrayreplacement" type="arrayreplacementType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="arraybind" type="arraybindType" minOccurs="0" maxOccurs="unbounded"/>
       </xsd:choice>
       <xsd:attribute name="name" type="xsd:string" use="required"/>
       <xsd:attribute name="parentFirst" type="xsd:string" use="optional" default="false"/>
@@ -569,7 +571,7 @@
       <xsd:annotation>
          <xsd:documentation>
             <![CDATA[
-           A class within an interface/mixin
+           How to construct an interface/mixin
            ]]>
          </xsd:documentation>
       </xsd:annotation>
@@ -582,7 +584,7 @@
       <xsd:annotation>
          <xsd:documentation>
             <![CDATA[
-           A class within an interface/mixin
+           Whether an interface/mixin should be transient
            ]]>
          </xsd:documentation>
       </xsd:annotation>
@@ -591,6 +593,63 @@
       </xsd:simpleContent>
    </xsd:complexType>
 
+   <xsd:element name="arrayreplacement" type="arrayreplacementType">
+      <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+           A interface introduction
+           ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+   </xsd:element>
+
+   <xsd:complexType name="arrayreplacementType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+           A interface introduction
+           ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+      <xsd:attribute name="name" type="xsd:string" use="optional"></xsd:attribute>
+      <xsd:attribute name="class" type="xsd:string" use="optional"></xsd:attribute>
+      <xsd:attribute name="expr" type="xsd:string" use="optional"></xsd:attribute>
+   </xsd:complexType>
+
+   <xsd:element name="arraybind" type="arraybindType">
+      <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+           A interface introduction
+           ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+   </xsd:element>
+
+   <xsd:complexType name="arraybindType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+           A interface introduction
+           ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+      <xsd:choice minOccurs="1" maxOccurs="unbounded">
+         <xsd:element name="interceptor-ref" type="interceptorRefType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="stack-ref" type="stackRefType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="advice" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="around" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
+         <!-- b/a/t/f is not supported yet for arrays 
+         <xsd:element name="before" type="beforeType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="after" type="afterType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="throwing" type="throwingType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="finally" type="finallyType" minOccurs="0" maxOccurs="unbounded"/>
+         -->
+      </xsd:choice>
+      <xsd:attribute name="name" type="xsd:string" use="optional"></xsd:attribute>
+      <xsd:attribute name="type" type="xsd:string" use="required"></xsd:attribute>
+   </xsd:complexType>
+
    <xsd:complexType name="lifecycleType">
       <xsd:annotation>
          <xsd:documentation>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AnnotationOverrideBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AnnotationOverrideBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AnnotationOverrideBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -21,12 +21,12 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
-   
+
    <bean name="TestAspectBinding" class="org.jboss.aop.microcontainer.beans.AspectBinding">
       <property name="pointcut">execution(* @org.jboss.test.microcontainer.beans.Annotation1->@org.jboss.test.microcontainer.beans.Annotation2(..))</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -36,12 +36,12 @@
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
                <property name="aspectMethod">advice</property>
-               <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+               <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
             </bean>
          </list>
    	</property>
    </bean>
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectFactorySimpleBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectFactorySimpleBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectFactorySimpleBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.SimpleAspectFactory" class="org.jboss.test.microcontainer.beans.SimpleAspectFactory"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.SimpleAspectFactory" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.SimpleAspectFactory"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -27,10 +27,10 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.SimpleAspectFactory"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectSimpleBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectSimpleBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectSimpleBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -27,9 +27,9 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyBeansTestCaseNotAutomatic1.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -13,7 +13,7 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspectWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestAspectWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -32,9 +32,9 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -46,9 +46,9 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -28,7 +28,7 @@
 	</bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" class="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -43,12 +43,12 @@
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/></property>
                <property name="aspectMethod">advice</property>
-               <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+               <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
             </bean>
          </list>
    	</property>
    </bean>
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
 
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -26,7 +26,7 @@
 	</bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" class="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -41,12 +41,12 @@
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/></property>
                <property name="aspectMethod">advice</property>
-               <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+               <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
             </bean>
          </list>
    	</property>
    </bean>
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
 
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -157,18 +157,38 @@
       <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspectWithProperty"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$3" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
       <property name="stack"><inject bean="TestStack"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
-   
+
+   <bean name="TestArrayReplacement" class="org.jboss.aop.microcontainer.beans.ArrayReplacement">
+      <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
+      <property name="classes">org.jboss.test.microcontainer.beans.woven.test.ClassWithArray</property>
+   </bean>
+
+   <bean name="TestArrayBinding" class="org.jboss.aop.microcontainer.beans.ArrayBinding">
+      <property name="name">TestArrayBinding</property>
+      <property name="type">READ_WRITE</property>
+      <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
+      <property name="advices">
+         <list>
+            <inject bean="TestArrayBinding$1"/>
+         </list>
+      </property>
+   </bean>
+   <bean name="TestArrayBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
+      <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
+      <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
+      <property name="binding"><inject bean="TestArrayBinding" state="Instantiated"/></property>
+   </bean>
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DynamicCFlowBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DynamicCFlowBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DynamicCFlowBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -29,15 +29,15 @@
          </list>
    	</property>
    </bean>
-	
+
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorFactorySimpleBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorFactorySimpleBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorFactorySimpleBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -27,7 +27,7 @@
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.SimpleInterceptorFactory"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorSimpleBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorSimpleBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorSimpleBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -22,13 +22,13 @@
          </list>
    	</property>
    </bean>
-	
+
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorWithDependencyBeansTestCaseNotAutomatic1.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorWithDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/InterceptorWithDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -13,7 +13,7 @@
       </install>
       <uninstall bean="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestInterceptorWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -32,9 +32,9 @@
    <bean name="TestInterceptorBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency"/></property>
-      <property name="aspectBinding"><inject bean="TestInterceptorBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestInterceptorBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionClassesBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionClassesBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionClassesBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -15,9 +15,9 @@
          </list>
    	</property>
    </bean>
-	
+
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -36,10 +36,10 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionExprBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionExprBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/IntroductionExprBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -15,9 +15,9 @@
          </list>
    	</property>
    </bean>
-	
+
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -36,10 +36,10 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/LightweightAspectBeanTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/LightweightAspectBeanTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/LightweightAspectBeanTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,14 +7,14 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.LightweightAspect" class="org.jboss.test.microcontainer.beans.LightweightAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.LightweightAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.LightweightAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -39,37 +39,37 @@
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.LightweightAspect"/></property>
       <property name="aspectMethod">before</property>
       <property name="type">BEFORE</property>
-      <property name="aspectBinding"><inject bean="Binding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="Binding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="Binding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="Binding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$3" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.LightweightAspect"/></property>
       <property name="aspectMethod">after</property>
       <property name="type">AFTER</property>
-      <property name="aspectBinding"><inject bean="Binding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="Binding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$4" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.LightweightAspect"/></property>
       <property name="aspectMethod">throwing</property>
       <property name="type">THROWING</property>
-      <property name="aspectBinding"><inject bean="Binding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="Binding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$5" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.LightweightAspect"/></property>
       <property name="aspectMethod">finally</property>
       <property name="type">FINALLY</property>
-      <property name="aspectBinding"><inject bean="Binding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="Binding" state="Instantiated"/></property>
    </bean>
-	
-<!-- TODO: Test should be run with weaving	
+
+<!-- TODO: Test should be run with weaving
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
- -->   
+ -->
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinClassesBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinClassesBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinClassesBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -23,9 +23,9 @@
       </property>
       <property name="mixin">org.jboss.test.microcontainer.beans.MixinImpl</property>
    </bean>
-	
+
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -44,10 +44,10 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinExprBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinExprBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MixinExprBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -24,9 +24,9 @@
       </property>
       <property name="mixin">org.jboss.test.microcontainer.beans.MixinImpl</property>
    </bean>
-	
+
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -45,10 +45,10 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdviceBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdviceBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdviceBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,14 +7,14 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -29,19 +29,19 @@
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
                <property name="aspectMethod">advice</property>
-               <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+               <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
             </bean>
             <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
-               <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+               <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
             </bean>
          </list>
    	</property>
    </bean>
-	
 
-   
+
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithMultipleDependencyBeansTestCaseNotAutomatic2.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithMultipleDependencyBeansTestCaseNotAutomatic2.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithMultipleDependencyBeansTestCaseNotAutomatic2.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -14,7 +14,7 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspectWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestAspectWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -27,7 +27,7 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestInterceptorWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -46,9 +46,9 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
+
    <bean name="TestInterceptorBinding" class="org.jboss.aop.microcontainer.beans.AspectBinding">
       <property name="pointcut">execution(* @org.jboss.test.microcontainer.beans.Annotation2->*(..))</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -61,20 +61,20 @@
    <bean name="TestInterceptorBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency"/></property>
-      <property name="aspectBinding"><inject bean="TestInterceptorBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestInterceptorBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Intercepted1" class="org.jboss.test.microcontainer.beans.POJO">
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation1</annotation>
    </bean>
-   
+
    <bean name="Intercepted2" class="org.jboss.test.microcontainer.beans.POJO">
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation2</annotation>
    </bean>
-   
+
    <bean name="Intercepted3" class="org.jboss.test.microcontainer.beans.POJO">
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation1</annotation>
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation2</annotation>
    </bean>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithSingleDependencyBeansTestCaseNotAutomatic1.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithSingleDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleAdvicesWithSingleDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -14,14 +14,14 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspectWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestAspectWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -41,14 +41,14 @@
    <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleStackBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleStackBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/MultipleStackBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -93,12 +93,12 @@
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="stack"><inject bean="TestStackA"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="stack"><inject bean="TestStackB"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
 
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NamedPointcutBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NamedPointcutBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NamedPointcutBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -32,9 +32,9 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NonStandardNameAspectBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NonStandardNameAspectBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/NonStandardNameAspectBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
-	
+
    <bean name="AspectManager" class="org.jboss.aop.AspectManager">
       <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
    </bean>
@@ -9,7 +9,7 @@
    <beanfactory name="Factory$AspectA" class="org.jboss.test.microcontainer.beans.TestAspectWithProperty">
    	<property name="someProperty">PropertyA</property>
    </beanfactory>
-   
+
    <bean name="AspectA" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$AspectA"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -18,7 +18,7 @@
    <beanfactory name="Factory$AspectB" class="org.jboss.test.microcontainer.beans.TestAspectWithProperty">
    	<property name="someProperty">PropertyB</property>
    </beanfactory>
-   
+
    <bean name="AspectB" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$AspectB"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -33,7 +33,7 @@
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="AspectA"/></property>
                <property name="aspectMethod">advice</property>
-               <property name="aspectBinding"><inject bean="BindingA" state="Instantiated"/></property>
+               <property name="binding"><inject bean="BindingA" state="Instantiated"/></property>
             </bean>
          </list>
    	</property>
@@ -48,16 +48,16 @@
 			      <property name="manager"><inject bean="AspectManager"/></property>
                <property name="aspect"><inject bean="AspectB"/></property>
                <property name="aspectMethod">advice</property>
-               <property name="aspectBinding"><inject bean="BindingB" state="Instantiated"/></property>
+               <property name="binding"><inject bean="BindingB" state="Instantiated"/></property>
             </bean>
          </list>
    	</property>
    </bean>
 
 	<bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>
 
 
 
-   
+

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/PrecedenceBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/PrecedenceBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/PrecedenceBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,14 +7,14 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -51,14 +51,14 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ScopedAspectBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ScopedAspectBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ScopedAspectBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -5,7 +5,7 @@
    <bean name="AspectManager" class="org.jboss.aop.AspectManager">
       <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
    </bean>
-   
+
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.PerVmAspect" class="org.jboss.test.microcontainer.beans.PerVmAspect"/>
    <bean name="org.jboss.test.microcontainer.beans.PerVmAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.PerVmAspect"/></property>
@@ -26,7 +26,7 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="scope">PER_INSTANCE</property>
    </bean>
-   
+
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.PerJoinPointAspect" class="org.jboss.test.microcontainer.beans.PerJoinPointAspect"/>
    <bean name="org.jboss.test.microcontainer.beans.PerJoinPointAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.PerJoinPointAspect"/></property>
@@ -58,37 +58,37 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.PerVmAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.PerClassAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$3" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.PerInstanceAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$4" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.PerJoinPointAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
    <bean name="TestAspectBinding$5" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.PerClassJoinPointAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="POJO1A" class="org.jboss.test.microcontainer.beans.POJO"/>
 
    <bean name="POJO1B" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
    <bean name="POJO2" class="org.jboss.test.microcontainer.beans.POJO2"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.SimpleAspectFactory" class="org.jboss.test.microcontainer.beans.SimpleAspectFactory"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.SimpleAspectFactory" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.SimpleAspectFactory"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -15,7 +15,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -56,11 +56,11 @@
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="stack"><inject bean="TestStack"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
 
-   
+
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithMultipleDependencyBeansTestCaseNotAutomatic2.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithMultipleDependencyBeansTestCaseNotAutomatic2.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithMultipleDependencyBeansTestCaseNotAutomatic2.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -14,14 +14,14 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspectWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestAspectWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -36,14 +36,14 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptorWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestInterceptorWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -105,9 +105,9 @@
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="stack"><inject bean="AspectStack"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
+
    <bean name="TestInterceptorBinding" class="org.jboss.aop.microcontainer.beans.AspectBinding">
       <property name="pointcut">execution(* @org.jboss.test.microcontainer.beans.Annotation2->*(..))</property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -120,20 +120,20 @@
    <bean name="TestInterceptorBinding$1" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="stack"><inject bean="InterceptorStack"/></property>
-      <property name="aspectBinding"><inject bean="TestInterceptorBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestInterceptorBinding" state="Instantiated"/></property>
    </bean>
-   
+
    <bean name="Intercepted1" class="org.jboss.test.microcontainer.beans.POJO">
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation1</annotation>
    </bean>
-   
+
    <bean name="Intercepted2" class="org.jboss.test.microcontainer.beans.POJO">
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation2</annotation>
    </bean>
-   
+
    <bean name="Intercepted3" class="org.jboss.test.microcontainer.beans.POJO">
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation1</annotation>
    	<annotation>@org.jboss.test.microcontainer.beans.Annotation2</annotation>
    </bean>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithSingleDependencyBeansTestCaseNotAutomatic1.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithSingleDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/StackWithSingleDependencyBeansTestCaseNotAutomatic1.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -13,14 +13,14 @@
 	   </install>
 	   <uninstall bean="org.jboss.test.microcontainer.beans.TestAspectWithDependency" method="uninstall"/>
    </beanfactory>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspectWithDependency" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="adviceBean">Factory$org.jboss.test.microcontainer.beans.TestAspectWithDependency</property>
       <property name="manager"><inject bean="AspectManager"/></property>
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -61,11 +61,11 @@
    <bean name="TestAspectBinding$1" class="org.jboss.aop.microcontainer.beans.StackEntry">
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="stack"><inject bean="TestStack"/></property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
 
-   
+
+
    <bean name="Intercepted" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/TypeDefBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/TypeDefBeansTestCase.xml	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/TypeDefBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -7,7 +7,7 @@
    </bean>
 
    <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.test.microcontainer.beans.TestAspect"/>
-   
+
    <bean name="org.jboss.test.microcontainer.beans.TestAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
       <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="manager"><inject bean="AspectManager"/></property>
@@ -32,9 +32,9 @@
       <property name="manager"><inject bean="AspectManager"/></property>
       <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestAspect"/></property>
       <property name="aspectMethod">advice</property>
-      <property name="aspectBinding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
+      <property name="binding"><inject bean="TestAspectBinding" state="Instantiated"/></property>
    </bean>
-	
+
    <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
-   
+
 </deployment>

Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.xml	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <aspect xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect"/>
+
+   <interceptor xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
+
+   <prepare xmlns="urn:jboss:aop-beans:1.0" expr="field(* org.jboss.test.microcontainer.beans.woven.test.ClassWithArray->*)"/>
+
+   <arrayreplacement xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.woven.test.ClassWithArray"/>
+
+   <arraybind xmlns="urn:jboss:aop-beans:1.0" type="READ_WRITE">
+      <advice aspect="org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect" name="advice"/>
+      <interceptor-ref name="org.jboss.test.microcontainer.beans.TestInterceptor"/> 
+   </arraybind>
+  
+   <bean name="Bean" class="org.jboss.test.microcontainer.beans.woven.test.ClassWithArray"/>
+
+</deployment>

Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.xml	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <beanfactory name="Factory$org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect" class="org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect"/>
+
+   <bean name="org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect" class="org.jboss.aop.microcontainer.beans.Aspect">
+      <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect"/></property>
+      <property name="manager"><inject bean="AspectManager"/></property>
+   </bean>
+
+   <beanfactory name="Factory$org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.test.microcontainer.beans.TestInterceptor"/>
+
+   <bean name="org.jboss.test.microcontainer.beans.TestInterceptor" class="org.jboss.aop.microcontainer.beans.Aspect">
+      <property name="advice"><inject bean="Factory$org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
+      <property name="manager"><inject bean="AspectManager"/></property>
+   </bean>
+
+   <bean name="TestArrayReplacement" class="org.jboss.aop.microcontainer.beans.ArrayReplacement">
+      <property name="manager"><inject bean="AspectManager"/></property>
+      <property name="classes">org.jboss.test.microcontainer.beans.woven.test.ClassWithArray</property>
+   </bean>
+
+   <bean name="Prepare" class="org.jboss.aop.microcontainer.beans.Prepare">
+      <property name="manager"><inject bean="AspectManager"/></property>
+      <property name="name">Prepare</property>
+      <property name="expr">field(* org.jboss.test.microcontainer.beans.woven.test.ClassWithArray->*)</property>
+   </bean>
+
+   <bean name="TestArrayBinding" class="org.jboss.aop.microcontainer.beans.ArrayBinding">
+      <property name="type">READ_WRITE</property>
+      <property name="manager"><inject bean="AspectManager"/></property>
+      <property name="advices">
+         <list>
+            <inject bean="TestArrayBinding$1"/>
+            <inject bean="TestArrayBinding$2"/>
+         </list>
+      </property>
+   </bean>
+   <bean name="TestArrayBinding$1" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
+      <property name="manager"><inject bean="AspectManager"/></property>
+      <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.woven.test.TestArrayAspect"/></property>
+      <property name="aspectMethod">advice</property>
+      <property name="binding"><inject bean="TestArrayBinding" state="Instantiated"/></property>
+   </bean>
+   <bean name="TestArrayBinding$2" class="org.jboss.aop.microcontainer.beans.InterceptorEntry">
+      <property name="manager"><inject bean="AspectManager"/></property>
+      <property name="aspect"><inject bean="org.jboss.test.microcontainer.beans.TestInterceptor"/></property>
+      <property name="binding"><inject bean="TestArrayBinding" state="Instantiated"/></property>
+   </bean>
+
+   <bean name="Bean" class="org.jboss.test.microcontainer.beans.woven.test.ClassWithArray"/>
+
+</deployment>

Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.xml	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <prepare xmlns="urn:jboss:aop-beans:1.0" expr="all(org.jboss.test.microcontainer.beans.POJO)"/>
+   
+   <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+   
+</deployment>

Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.xml	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.xml	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+      <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+   </bean>
+
+   <bean name="Prepare" class="org.jboss.aop.microcontainer.beans.Prepare">
+      <property name="manager"><inject bean="AspectManager"/></property>
+      <property name="name">Prepare</property>
+      <property name="expr">all(org.jboss.test.microcontainer.beans.POJO)</property>
+   </bean>
+
+	
+   <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+   
+</deployment>

Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java	2007-11-26 18:05:21 UTC (rev 67446)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -105,6 +105,20 @@
       
       Map map = manager.getPrecedenceDefs();
       checkShouldBeThere(map, shouldBeThere);
+      
+      map = manager.getArrayReplacements();
+      checkShouldBeThere(map, shouldBeThere);
+      
+      try
+      {
+         o = manager.getArrayBinding("TestArrayBinding");
+         checkShouldBeThere(o, shouldBeThere);
+      }
+      catch (ClassCastException expected)
+      {
+         // TODO remove after AOP 2.0.0.CR1 which fixes the bug
+      }
+      
    }
    
    private void checkShouldBeThere(Object o, boolean shouldBeThere)

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayAopTestCase.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,44 @@
+/*
+* 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.test.microcontainer.beans.woven.test;
+
+import junit.framework.Test;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ArrayAopTestCase extends ArrayTest
+{
+
+   public static Test suite()
+   {
+      return suite(ArrayAopTestCase.class);
+   }
+
+   public ArrayAopTestCase(String name)
+   {
+      super(name);
+   }
+
+}

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayBeansTestCase.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,42 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.microcontainer.beans.woven.test;
+
+import junit.framework.Test;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ArrayBeansTestCase extends ArrayTest
+{
+   public static Test suite()
+   {
+      return suite(ArrayBeansTestCase.class);
+   }
+   
+   public ArrayBeansTestCase(String test)
+   {
+      super(test);
+   }
+}

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayTest.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ArrayTest.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,60 @@
+/*
+* 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.test.microcontainer.beans.woven.test;
+
+import org.jboss.aop.Advised;
+import org.jboss.aop.microcontainer.junit.AOPMicrocontainerTest;
+import org.jboss.test.microcontainer.beans.TestInterceptor;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class ArrayTest extends AOPMicrocontainerTest
+{
+   public ArrayTest(String name)
+   {
+      super(name);
+   }
+
+   public void testIntercepted() throws Exception
+   {
+      ClassWithArray pojo = (ClassWithArray)getBean("Bean");
+      assertTrue(pojo instanceof Advised);
+      
+      TestInterceptor.invoked = false;
+      TestArrayAspect.reset();
+      pojo.setValue(1, 100);
+      assertEquals(1, TestArrayAspect.index);
+      assertEquals(100, TestArrayAspect.value);
+      assertTrue(TestInterceptor.invoked);
+      
+      TestInterceptor.invoked = false;
+      TestArrayAspect.reset();
+      int i = pojo.getValue(1);
+      assertEquals(1, TestArrayAspect.index);
+      assertEquals(100, i);
+      assertTrue(TestInterceptor.invoked);
+   }
+   
+}
\ No newline at end of file

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ClassWithArray.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ClassWithArray.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/ClassWithArray.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,42 @@
+/*
+* 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.test.microcontainer.beans.woven.test;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ClassWithArray
+{
+   public int[] array = new int[10];
+   
+   public void setValue(int index, int value)
+   {
+      array[index] = value;
+   }
+   
+   public int getValue(int index)
+   {
+      return array[index];
+   }
+}

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareAopTestCase.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,44 @@
+/*
+* 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.test.microcontainer.beans.woven.test;
+
+import junit.framework.Test;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class PrepareAopTestCase extends PrepareTest
+{
+
+   public static Test suite()
+   {
+      return suite(PrepareAopTestCase.class);
+   }
+
+   public PrepareAopTestCase(String name)
+   {
+      super(name);
+   }
+
+}

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareBeansTestCase.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,42 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.microcontainer.beans.woven.test;
+
+import junit.framework.Test;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class PrepareBeansTestCase extends PrepareTest
+{
+   public static Test suite()
+   {
+      return suite(PrepareBeansTestCase.class);
+   }
+   
+   public PrepareBeansTestCase(String test)
+   {
+      super(test);
+   }
+}

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareTest.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/PrepareTest.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,47 @@
+/*
+* 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.test.microcontainer.beans.woven.test;
+
+import org.jboss.aop.Advised;
+import org.jboss.aop.microcontainer.junit.AOPMicrocontainerTest;
+import org.jboss.test.microcontainer.beans.POJO;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class PrepareTest extends AOPMicrocontainerTest
+{
+   public PrepareTest(String name)
+   {
+      super(name);
+   }
+
+   public void testIntercepted() throws Exception
+   {
+
+      POJO pojo = (POJO)getBean("Bean");
+      assertTrue(pojo instanceof Advised);
+   }
+   
+}
\ No newline at end of file

Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/TestArrayAspect.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/TestArrayAspect.java	                        (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/woven/test/TestArrayAspect.java	2007-11-26 19:48:44 UTC (rev 67447)
@@ -0,0 +1,55 @@
+/*
+* 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.test.microcontainer.beans.woven.test;
+
+import org.jboss.aop.array.IntArrayElementReadInvocation;
+import org.jboss.aop.array.IntArrayElementWriteInvocation;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class TestArrayAspect
+{
+   public static int value;
+   public static int index;
+   
+   public Object advice(IntArrayElementWriteInvocation invocation) throws Throwable
+   {
+      value = invocation.getIntValue();
+      index = invocation.getIndex();
+      return invocation.invokeNext();
+   }
+   
+   public Object advice(IntArrayElementReadInvocation invocation) throws Throwable
+   {
+      index = invocation.getIndex();
+      return invocation.invokeNext();
+   }
+
+   public static void reset()
+   {
+      value = -1;
+      index = -1;
+   }
+}




More information about the jboss-cvs-commits mailing list