[jboss-cvs] JBossAS SVN: r86755 - in branches/Branch_5_x: aspects/src/main/org/jboss/aop/asintegration/jboss5 and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Apr 3 12:42:41 EDT 2009


Author: jason.greene at jboss.com
Date: 2009-04-03 12:42:41 -0400 (Fri, 03 Apr 2009)
New Revision: 86755

Added:
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java
Removed:
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java
   branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java
Modified:
   branches/Branch_5_x/build/build-distr.xml
   branches/Branch_5_x/component-matrix/pom.xml
   branches/Branch_5_x/server/src/etc/conf/default/bootstrap/aop.xml
   branches/Branch_5_x/thirdparty/pom.xml
Log:
Revert AOP update 86656, 86202, 86201


Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5 (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5)

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,188 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import java.io.BufferedInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javassist.bytecode.ClassFile;
-
-import org.jboss.aop.AspectAnnotationLoader;
-import org.jboss.aop.microcontainer.beans.metadata.AOPDeployment;
-import org.jboss.aop.microcontainer.beans.metadata.AspectManagerAwareBeanMetaDataFactory;
-import org.jboss.aop.microcontainer.beans.metadata.MicrocontainerAnnotationLoaderStrategy;
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VirtualFileFilter;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
-import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
-import org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter;
-
-/**
- * Reads the annotations and converts them into AOP metadata to be deployed properly 
- * by the AOPDeploymentAopMetaDataDeployer
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class AOPAnnotationMetaDataParserDeployer extends AbstractDeployer
-{
-   public AOPAnnotationMetaDataParserDeployer(int xmlParserOrder)
-   {
-      super.setOutput(AOPDeployment.class);
-      super.setStage(DeploymentStages.PARSE);
-      //Make this come after the AOPXMLMetaDataParserDeployer
-      super.setRelativeOrder(xmlParserOrder + 1);
-   }
-
-   public void deploy(DeploymentUnit unit) throws DeploymentException
-   {
-      // Ignore non-vfs deployments
-      if (unit instanceof VFSDeploymentUnit == false)
-      {
-         log.trace("Not a vfs deployment: " + unit.getName());
-         return;
-      }
-      // See if the suffix matches the .aop requirement
-      if (unit.getSimpleName().endsWith(".aop") == false)
-      {
-         log.trace("Unit name does not end in .aop: " + unit.getSimpleName());
-         return;
-      }
-      internalDeploy((VFSDeploymentUnit)unit);
-   }
-   
-   private void internalDeploy(VFSDeploymentUnit unit) throws DeploymentException
-   {
-      MicrocontainerAnnotationLoaderStrategy strategy = new MicrocontainerAnnotationLoaderStrategy(); 
-      AspectAnnotationLoader loader = new AspectAnnotationLoader(null, strategy);
-      
-      List<VirtualFile> files = getClasses(unit);
-      for(VirtualFile file : files)
-      {
-         try
-         {
-            ClassFile cf = loadClassFile(file);
-            log.debug("Deploying possibly annotated class " + cf.getName());
-            loader.deployClassFile(cf);
-         }
-         catch (Exception e)
-         {
-            throw new DeploymentException("Error reading annotations for " + file, e);
-         }
-      }
-      
-      List<AspectManagerAwareBeanMetaDataFactory> factories = strategy.getFactories();
-      
-      AOPDeployment deployment = unit.getAttachment(AOPDeployment.class);
-      if (factories != null && factories.size() > 0)
-      {
-         if (deployment == null)
-         {
-            deployment = new AOPDeployment();
-            unit.addAttachment(AOPDeployment.class.getName(), deployment, AOPDeployment.class);
-         }
-         if (deployment.getBeanFactories() == null)
-         {
-            deployment.setBeanFactories(new ArrayList<BeanMetaDataFactory>());
-         }
-         deployment.getBeanFactories().addAll(factories);
-      }  
-   }
-
-   private ClassFile loadClassFile(VirtualFile file)
-   {
-      DataInputStream din = null;
-      ClassFile cf = null;
-      try
-      {
-         InputStream in = file.openStream();
-         din = new DataInputStream(new BufferedInputStream(in));
-         cf = new ClassFile(din);
-      }
-      catch (IOException e)
-      {
-         throw new RuntimeException("Error reading " + file, e);
-      }
-      finally
-      {
-         try
-         {
-            din.close();
-         }
-         catch (IOException ignored)
-         {
-         }
-      }
-      
-      return cf;
-   }
-
-   private List<VirtualFile> getClasses(VFSDeploymentUnit unit)
-   {
-      VisitorAttributes va = new VisitorAttributes();
-      va.setLeavesOnly(true);
-      ClassFileFilter filter = new ClassFileFilter();
-      SuffixesExcludeFilter noJars = new SuffixesExcludeFilter(JarUtils.getSuffixes());
-      va.setRecurseFilter(noJars);
-      FilterVirtualFileVisitor visitor = new FilterVirtualFileVisitor(filter, va);
-
-      for (VirtualFile vf : unit.getClassPath())
-      {
-         try
-         {
-            vf.visit(visitor);
-         }
-         catch (IOException e)
-         {
-            throw new RuntimeException(e);
-         }
-      }
-      return visitor.getMatched();
-
-   }
-   
-   private static class ClassFileFilter implements VirtualFileFilter
-   {
-      public boolean accepts(VirtualFile file)
-      {
-         try
-         {
-            return file.isLeaf() && file.getName().endsWith(".class");
-         }
-         catch (IOException e)
-         {
-            throw new RuntimeException("Error visiting file: " + file.getName(), e);
-         }
-      }
-   }
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,188 @@
+/*
+* 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.asintegration.jboss5;
+
+import java.io.BufferedInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javassist.bytecode.ClassFile;
+
+import org.jboss.aop.AspectAnnotationLoader;
+import org.jboss.aop.microcontainer.beans.metadata.AOPDeployment;
+import org.jboss.aop.microcontainer.beans.metadata.AspectManagerAwareBeanMetaDataFactory;
+import org.jboss.aop.microcontainer.beans.metadata.MicrocontainerAnnotationLoaderStrategy;
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.virtual.VirtualFile;
+import org.jboss.virtual.VirtualFileFilter;
+import org.jboss.virtual.VisitorAttributes;
+import org.jboss.virtual.plugins.context.jar.JarUtils;
+import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
+import org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter;
+
+/**
+ * Reads the annotations and converts them into AOP metadata to be deployed properly 
+ * by the AOPDeploymentAopMetaDataDeployer
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class AOPAnnotationMetaDataParserDeployer extends AbstractDeployer
+{
+   public AOPAnnotationMetaDataParserDeployer(int xmlParserOrder)
+   {
+      super.setOutput(AOPDeployment.class);
+      super.setStage(DeploymentStages.PARSE);
+      //Make this come after the AOPXMLMetaDataParserDeployer
+      super.setRelativeOrder(xmlParserOrder + 1);
+   }
+
+   public void deploy(DeploymentUnit unit) throws DeploymentException
+   {
+      // Ignore non-vfs deployments
+      if (unit instanceof VFSDeploymentUnit == false)
+      {
+         log.trace("Not a vfs deployment: " + unit.getName());
+         return;
+      }
+      // See if the suffix matches the .aop requirement
+      if (unit.getSimpleName().endsWith(".aop") == false)
+      {
+         log.trace("Unit name does not end in .aop: " + unit.getSimpleName());
+         return;
+      }
+      internalDeploy((VFSDeploymentUnit)unit);
+   }
+   
+   private void internalDeploy(VFSDeploymentUnit unit) throws DeploymentException
+   {
+      MicrocontainerAnnotationLoaderStrategy strategy = new MicrocontainerAnnotationLoaderStrategy(); 
+      AspectAnnotationLoader loader = new AspectAnnotationLoader(null, strategy);
+      
+      List<VirtualFile> files = getClasses(unit);
+      for(VirtualFile file : files)
+      {
+         try
+         {
+            ClassFile cf = loadClassFile(file);
+            log.debug("Deploying possibly annotated class " + cf.getName());
+            loader.deployClassFile(cf);
+         }
+         catch (Exception e)
+         {
+            throw new DeploymentException("Error reading annotations for " + file, e);
+         }
+      }
+      
+      List<AspectManagerAwareBeanMetaDataFactory> factories = strategy.getFactories();
+      
+      AOPDeployment deployment = unit.getAttachment(AOPDeployment.class);
+      if (factories != null && factories.size() > 0)
+      {
+         if (deployment == null)
+         {
+            deployment = new AOPDeployment();
+            unit.addAttachment(AOPDeployment.class.getName(), deployment, AOPDeployment.class);
+         }
+         if (deployment.getBeanFactories() == null)
+         {
+            deployment.setBeanFactories(new ArrayList<BeanMetaDataFactory>());
+         }
+         deployment.getBeanFactories().addAll(factories);
+      }  
+   }
+
+   private ClassFile loadClassFile(VirtualFile file)
+   {
+      DataInputStream din = null;
+      ClassFile cf = null;
+      try
+      {
+         InputStream in = file.openStream();
+         din = new DataInputStream(new BufferedInputStream(in));
+         cf = new ClassFile(din);
+      }
+      catch (IOException e)
+      {
+         throw new RuntimeException("Error reading " + file, e);
+      }
+      finally
+      {
+         try
+         {
+            din.close();
+         }
+         catch (IOException ignored)
+         {
+         }
+      }
+      
+      return cf;
+   }
+
+   private List<VirtualFile> getClasses(VFSDeploymentUnit unit)
+   {
+      VisitorAttributes va = new VisitorAttributes();
+      va.setLeavesOnly(true);
+      ClassFileFilter filter = new ClassFileFilter();
+      SuffixesExcludeFilter noJars = new SuffixesExcludeFilter(JarUtils.getSuffixes());
+      va.setRecurseFilter(noJars);
+      FilterVirtualFileVisitor visitor = new FilterVirtualFileVisitor(filter, va);
+
+      for (VirtualFile vf : unit.getClassPath())
+      {
+         try
+         {
+            vf.visit(visitor);
+         }
+         catch (IOException e)
+         {
+            throw new RuntimeException(e);
+         }
+      }
+      return visitor.getMatched();
+
+   }
+   
+   private static class ClassFileFilter implements VirtualFileFilter
+   {
+      public boolean accepts(VirtualFile file)
+      {
+         try
+         {
+            return file.isLeaf() && file.getName().endsWith(".class");
+         }
+         catch (IOException e)
+         {
+            throw new RuntimeException("Error visiting file: " + file.getName(), e);
+         }
+      }
+   }
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,82 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import org.jboss.aop.AspectManager;
-import org.jboss.aop.Domain;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class AOPClassLoaderDeployer extends AbstractRealDeployer
-{
-   AspectManager aspectManager;
-   
-   public AOPClassLoaderDeployer()
-   {
-      setStage(DeploymentStages.CLASSLOADER);
-
-      //This makes it come after the ClassLoaderDeployer
-      addInput(ClassLoader.class);
-   }
-
-   public AspectManager getAspectManager()
-   {
-      return aspectManager;
-   }
-
-   public void setAspectManager(AspectManager aspectManager)
-   {
-      this.aspectManager = aspectManager;
-   }
-
-   @Override
-   protected void internalDeploy(DeploymentUnit unit) throws DeploymentException
-   {
-      //Scoped AOP deployments are only available when deployed as part of a scoped sar, ear etc.
-      //It can contain an aop.xml file, or it can be part of a .aop file
-
-      AspectManager manager = aspectManager;
-      Domain domain = AOPClassLoaderInitializer.initializeForUnit(unit);
-      if (domain != null)
-      {
-         manager = domain;
-      }
-      log.debug("Adding AspectManager attachment " + manager + " for " + unit);
-      unit.addAttachment(AspectManager.class, manager);
-   }
-
-   @Override
-   public void internalUndeploy(DeploymentUnit unit)
-   {
-      AOPClassLoaderInitializer.unregisterLoaders(aspectManager, unit);
-   }
-   
-   
-
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,82 @@
+/*
+* 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.asintegration.jboss5;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.Domain;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class AOPClassLoaderDeployer extends AbstractRealDeployer
+{
+   AspectManager aspectManager;
+   
+   public AOPClassLoaderDeployer()
+   {
+      setStage(DeploymentStages.CLASSLOADER);
+
+      //This makes it come after the ClassLoaderDeployer
+      addInput(ClassLoader.class);
+   }
+
+   public AspectManager getAspectManager()
+   {
+      return aspectManager;
+   }
+
+   public void setAspectManager(AspectManager aspectManager)
+   {
+      this.aspectManager = aspectManager;
+   }
+
+   @Override
+   protected void internalDeploy(DeploymentUnit unit) throws DeploymentException
+   {
+      //Scoped AOP deployments are only available when deployed as part of a scoped sar, ear etc.
+      //It can contain an aop.xml file, or it can be part of a .aop file
+
+      AspectManager manager = aspectManager;
+      Domain domain = AOPClassLoaderInitializer.initializeForUnit(unit);
+      if (domain != null)
+      {
+         manager = domain;
+      }
+      log.debug("Adding AspectManager attachment " + manager + " for " + unit);
+      unit.addAttachment(AspectManager.class, manager);
+   }
+
+   @Override
+   public void internalUndeploy(DeploymentUnit unit)
+   {
+      AOPClassLoaderInitializer.unregisterLoaders(aspectManager, unit);
+   }
+   
+   
+
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,61 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, Red Hat Middleware LLC., 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.aop.asintegration.jboss5;
-
-import java.util.List;
-
-import org.jboss.aop.microcontainer.beans.metadata.AOPDeployment;
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-
-/**
- * Deployer for Aspects in a -aop.xml or .aop
- *
- * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
- */
-public class AOPDeploymentAopMetaDataDeployer extends AbstractAopMetaDataDeployer<AOPDeployment>
-{
-   public AOPDeploymentAopMetaDataDeployer()
-   {
-      super(AOPDeployment.class);
-   }
-
-   @Override
-   public void deploy(VFSDeploymentUnit unit, AOPDeployment aopDeployment) throws DeploymentException
-   {
-      super.deploy(unit, aopDeployment);
-   }
-   
-   @Override
-   public void undeploy(VFSDeploymentUnit unit, AOPDeployment aopDeployment)
-   {
-      super.undeploy(unit, aopDeployment);
-   }
-
-
-   @Override
-   protected List<BeanMetaDataFactory> getFactories(AOPDeployment deployment)
-   {
-      return deployment.getBeanFactories();
-   }
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPDeploymentAopMetaDataDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,61 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, Red Hat Middleware LLC., 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.aop.asintegration.jboss5;
+
+import java.util.List;
+
+import org.jboss.aop.microcontainer.beans.metadata.AOPDeployment;
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+
+/**
+ * Deployer for Aspects in a -aop.xml or .aop
+ *
+ * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
+ */
+public class AOPDeploymentAopMetaDataDeployer extends AbstractAopMetaDataDeployer<AOPDeployment>
+{
+   public AOPDeploymentAopMetaDataDeployer()
+   {
+      super(AOPDeployment.class);
+   }
+
+   @Override
+   public void deploy(VFSDeploymentUnit unit, AOPDeployment aopDeployment) throws DeploymentException
+   {
+      super.deploy(unit, aopDeployment);
+   }
+   
+   @Override
+   public void undeploy(VFSDeploymentUnit unit, AOPDeployment aopDeployment)
+   {
+      super.undeploy(unit, aopDeployment);
+   }
+
+
+   @Override
+   protected List<BeanMetaDataFactory> getFactories(AOPDeployment deployment)
+   {
+      return deployment.getBeanFactories();
+   }
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,554 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.jboss.aop.AspectManager;
-import org.jboss.aop.microcontainer.beans.metadata.AspectManagerAwareBeanMetaDataFactory;
-import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
-import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.classloader.spi.ClassLoaderSystem;
-import org.jboss.classloading.spi.dependency.Module;
-import org.jboss.dependency.spi.ScopeInfo;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.kernel.Kernel;
-import org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext;
-import org.jboss.kernel.spi.dependency.KernelController;
-import org.jboss.kernel.spi.dependency.KernelControllerContext;
-import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
-import org.jboss.metadata.spi.scope.CommonLevels;
-import org.jboss.metadata.spi.scope.Scope;
-import org.jboss.metadata.spi.scope.ScopeKey;
-
-/**
- * Deployer for deployments containing AOP metadata. It makes sure that the metadata is deployed to the 
- * right aop domain in the case of scoped classloaders. The AOP metadata is stripped out of the deployment
- * to avoid deploying it twice.
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public abstract class AbstractAopMetaDataDeployer<T> extends AbstractSimpleVFSRealDeployer<T>
-{
-   private AspectManager aspectManager;
-   private KernelController controller;
-   private MyBeanMetaDataDeployer beanMetaDataDeployer = new MyBeanMetaDataDeployer();
-   private static int sequence;
-   
-   
-   public AbstractAopMetaDataDeployer(Class<T> input)
-   {
-      super(input);
-      super.setStage(DeploymentStages.POST_CLASSLOADER);
-      super.setOutput(AopMetaDataDeployerOutput.class);
-   }
-
-   /**
-    * Get the aspectManager.
-    * 
-    * @return the aspectManager.
-    */
-   public AspectManager getAspectManager()
-   {
-      return aspectManager;
-   }
-
-   /**
-    * Set the aspectManager.
-    * 
-    * @param aspectManager the aspectManager.
-    */
-   public void setAspectManager(AspectManager aspectManager)
-   {
-      this.aspectManager = aspectManager;
-   }
-   
-   /**
-    * Set the kernel.
-    * 
-    * @param kernel the kernel
-    */
-   public void setKernel(Kernel kernel)
-   {
-      this.controller = kernel.getController();
-   }
-   
-   /**
-    * Method for subclasses to call upon deployment 
-    */
-   @Override
-   public void deploy(VFSDeploymentUnit unit, T deployment) throws DeploymentException
-   {
-      log.debug("Deploying " + unit + " " + deployment);
-      
-      AopMetaDataDeployerOutput output = new AopMetaDataDeployerOutput();
-      unit.addAttachment(AopMetaDataDeployerOutput.class, output);
-      
-      if (extractAopBeanMetaDataFactories(unit, deployment, output))
-      {
-         AspectManager correctManager = unit.getAttachment(AspectManager.class);
-         log.debug("Got AspectManager attachment " + correctManager + " for " + unit);
-         if (correctManager != aspectManager)
-         {
-            int sequence = getSequence();
-            String scopedManagerName = registerScopedManagerBean(sequence, unit, correctManager, output);
-            massageScopedDeployment(sequence, unit, deployment, output, scopedManagerName);
-         }
-      }
-      
-      try
-      {
-         deployBeans(unit, output);
-      }
-      catch (Throwable t)
-      {
-         unregisterScopedManagerBean(output.getScopedAspectManagerBeanName(), false);
-         if (t instanceof DeploymentException)
-         {
-            throw (DeploymentException)t;
-         }
-         else
-         {
-            throw new DeploymentException(t);
-         }
-      }
-      log.debug("Finished deploying " + unit);
-   }
-
-   
-   /**
-    * Method for subclasses to call upon undeployment 
-    */
-   @Override
-   public void undeploy(VFSDeploymentUnit unit, T deployment)
-   {
-      log.debug("Undeploying " + unit + " " + deployment);
-      
-      AopMetaDataDeployerOutput output = unit.getAttachment(AopMetaDataDeployerOutput.class);
-      
-      undeployBeans(unit, output);
-   }
-
-   protected abstract List<BeanMetaDataFactory> getFactories(T deployment);
-   
-   private boolean extractAopBeanMetaDataFactories(VFSDeploymentUnit unit, T deployment, AopMetaDataDeployerOutput output)
-   {
-      log.debug("Extracting aop bean metadata factories for  " + unit);
-      List<AspectManagerAwareBeanMetaDataFactory> aopFactories = new ArrayList<AspectManagerAwareBeanMetaDataFactory>();
-      
-      List<BeanMetaDataFactory> factories = getFactories(deployment);
-      if (factories != null && factories.size() > 0)
-      {
-         for (Iterator<BeanMetaDataFactory> it = factories.iterator() ; it.hasNext() ; )
-         {
-            BeanMetaDataFactory factory = it.next();
-            if (factory instanceof AspectManagerAwareBeanMetaDataFactory)
-            {
-               it.remove();
-               aopFactories.add((AspectManagerAwareBeanMetaDataFactory)factory);
-            }
-         }     
-      }
-      
-      if (aopFactories.size() > 0)
-      {
-         output.setFactories(aopFactories);
-         return true;
-      }
-      return false;
-   }
-   
-   private String registerScopedManagerBean(int sequence, VFSDeploymentUnit unit, AspectManager scopedManager, AopMetaDataDeployerOutput output) throws DeploymentException
-   {
-      String name = "ScopedManager_" + getSequence() + "_" + unit.getName();
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, scopedManager.getClass().getName());
-      unit.getMutableMetaData().addMetaData(scopedManager, AspectManager.class);
-      
-      try
-      {
-         controller.install(builder.getBeanMetaData(), scopedManager);
-         return name;
-      }
-      catch (Throwable e)
-      {
-         throw new DeploymentException("Error registering scoped manager" + name + " " + scopedManager, e);
-      }
-   }
- 
-   private synchronized int getSequence()
-   {
-      return ++sequence;
-   }
-   
-   private void unregisterScopedManagerBean(String name, boolean logError)
-   {
-      if (name == null)
-      {
-         return;
-      }
-      
-      try
-      {
-         controller.uninstall(name);
-      }
-      catch(Throwable t)
-      {
-         if (logError)
-         {
-            log.debug("Error unregistering scoped aspect manager " + name, t);
-         }
-      }
-   }
-   
-   private void massageScopedDeployment(int sequence, VFSDeploymentUnit unit, T deployment, AopMetaDataDeployerOutput output, String scopedManagerName) throws DeploymentException
-   {
-      log.debug("Massaging scoped deployment " + unit + " setting manager to " + scopedManagerName);
-      String domainName = getDomainName(unit);
-      output.setScopedInformation(scopedManagerName, domainName, sequence);
-      unit.getMutableMetaData().addAnnotation(output.getScopeAnnotation());
-   }
-   
-   private String getDomainName(VFSDeploymentUnit unit)
-   {
-      Module module = unit.getTopLevel().getAttachment(Module.class);
-      if (module != null && !module.getDeterminedDomainName().equals(ClassLoaderSystem.DEFAULT_DOMAIN_NAME))
-      {
-         return module.getDeterminedDomainName();
-      }
-      
-      return null;
-   }
-   
-   private void deployBeans(VFSDeploymentUnit unit, AopMetaDataDeployerOutput output) throws DeploymentException
-   {
-      List<BeanMetaData> aopBeans = output.getBeans();
-      List<BeanMetaData> done = new ArrayList<BeanMetaData>();
-      try
-      {
-         if (aopBeans != null && aopBeans.size() > 0)
-         {
-            for (BeanMetaData bean : aopBeans)
-            {
-               //Register the component deployment context so we get the correct mutable metadata scope
-               //This has been replaced by a "fake" implementation to avoid the overhead of the real one
-               //which registers everything in JMX, which is pointless since we throw it away immediately
-               FakeComponentUnit componentUnit = deployComponentDeploymentContext(unit, bean);
-               try
-               {
-                  beanMetaDataDeployer.deploy(componentUnit, bean);
-                  done.add(bean);
-               }
-               finally
-               {
-                  //Unregister the component deployment context so that this bean does not get deployed
-                  //again by the real BeanMetaDataDeployer
-                  undeployComponentDeploymentContext(componentUnit, bean);
-               }
-            }
-         }
-      }
-      catch (Throwable t)
-      {
-         for (int i = done.size() - 1 ; i >= 0 ; i--)
-         {
-            try
-            {
-               beanMetaDataDeployer.undeploy(unit, done.get(i));
-               controller.uninstall(done.get(i));
-            }
-            catch (Throwable e)
-            {
-               log.debug("Error undeploying " + done.get(i) + " for " + unit);
-            }
-         }
-         throw new DeploymentException(t);
-      }
-   }
-   
-   private void undeployBeans(VFSDeploymentUnit unit, AopMetaDataDeployerOutput output)
-   {
-      if (output != null)
-      {
-         List<BeanMetaData> aopBeans = output.getBeans();
-         if (aopBeans != null && aopBeans.size() > 0)
-         {
-            for (int i = aopBeans.size() - 1 ; i >= 0 ; i--)
-            {
-               BeanMetaData bean = aopBeans.get(i);
-               beanMetaDataDeployer.undeploy(unit, bean);
-            }
-         }
-      }
-   }
-   
-   /**
-    * Wrap the deployment unit in a component deployment unit similar to what the KernelDeploymentDeployer does
-    */
-   private FakeComponentUnit deployComponentDeploymentContext(VFSDeploymentUnit unit, BeanMetaData deployment)
-   {
-      //This used to make the following calls which has the overhead of registering the unit in JMX.
-      //All we really want are the scopes, which is handled by FakeComponentUnit
-//      DeploymentUnit componentUnit = unit.addComponent(deployment.getName());
-//      componentUnit.addAttachment(BeanMetaData.class.getName(), deployment);
-//      return componentUnit;
-      return new FakeComponentUnit(unit, deployment);
-   }
-   
-   /**
-    * Undeploy the component deployment unit similar to what the KernelDeploymentDeployer does 
-    */
-   private void undeployComponentDeploymentContext(FakeComponentUnit unit, BeanMetaData bean)
-   {
-      unit.cleanup();
-   }
-   
-   private class MyBeanMetaDataDeployer
-   {   
-      /**
-       * Copied from the real org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer
-       */
-      private void deploy(FakeComponentUnit unit, BeanMetaData deployment) throws DeploymentException
-      {
-         // No explicit classloader, use the deployment's classloader
-         if (deployment.getClassLoader() == null)
-         {
-            try
-            {
-               // Check the unit has a classloader
-               unit.getClassLoader();
-               // TODO clone the metadata?
-               deployment.setClassLoader(new DeploymentClassLoaderMetaData(unit));
-            }
-            catch (Exception e)
-            {
-               log.debug("Unable to retrieve classloader for deployment: " + unit.getName() + " reason=" + e.toString());
-            }
-         }
-         KernelControllerContext context = new AbstractKernelControllerContext(null, deployment, null);
-         //Make sure that the metadata from the deployment gets put into the context
-         ScopeInfo scopeInfo = context.getScopeInfo();
-         if (scopeInfo != null)
-         {
-            mergeScopes(scopeInfo.getScope(), unit.getScope());
-            mergeScopes(scopeInfo.getMutableScope(), unit.getMutableScope());
-         }
-         
-//         KernelControllerContext context = new AbstractKernelControllerContext(null, deployment, null);
-//         ScopeInfo scopeInfo2 = context.getScopeInfo();
-//         if (scopeInfo2 != null)
-//         {
-//            ScopeKey key = unit.getScope().clone();
-//            key.removeScopeLevel(CommonLevels.INSTANCE);
-//            key.addScope(CommonLevels.INSTANCE, deployment.getName());
-//            
-//            ScopeKey mutable = new ScopeKey();
-//            key.addScope(CommonLevels.INSTANCE, deployment.getName());
-//            
-//            mergeScopes(scopeInfo2.getScope(), key);
-//            mergeScopes(scopeInfo2.getMutableScope(), mutable);
-//         }
-         
-         try
-         {
-            //System.out.println("==============> Installing " + context.getName());
-            controller.install(context);
-         }
-         catch (Throwable t)
-         {
-            throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + deployment.getName(), t);
-         }
-         
-         
-      }
-   
-      /**
-       * Copied from the real org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer
-       * Merge scope keys.
-       *
-       * @param contextKey the context key
-       * @param unitKey the unit key
-       */
-      protected void mergeScopes(ScopeKey contextKey, ScopeKey unitKey)
-      {
-         if (contextKey == null)
-            return;
-         if (unitKey == null)
-            return;
-
-         Collection<Scope> unitScopes = unitKey.getScopes();
-         if (unitScopes == null || unitScopes.isEmpty())
-            return;
-
-         for (Scope scope : unitScopes)
-            contextKey.addScope(scope);
-      }
-
-      /**
-       * Copied from the real org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer
-       */
-      private void undeploy(DeploymentUnit unit, BeanMetaData deployment)
-      {
-         try
-         {
-            controller.uninstall(deployment.getName());
-            
-            // Remove any classloader metadata we added (not necessary if we clone above)
-            ClassLoaderMetaData classLoader = deployment.getClassLoader();
-            if (classLoader instanceof DeploymentClassLoaderMetaData)
-               deployment.setClassLoader(null);
-         }
-         catch(Throwable t)
-         {
-            log.info("Error undeploying " + deployment + " for " + unit);
-         }
-      }
-   }
-   
-   /**
-    * Copied from BeanMetaDataDeployer
-    */
-   private static class DeploymentClassLoaderMetaData extends AbstractClassLoaderMetaData
-   {
-      /** The serialVersionUID */
-      private static final long serialVersionUID = 1L;
-      
-      /** The deployment unit */
-      private FakeComponentUnit unit;
-
-      /**
-       * Create a new DeploymentClassLoaderMetaData.
-       * 
-       * @param unit the deployment unit
-       */
-      public DeploymentClassLoaderMetaData(FakeComponentUnit unit)
-      {
-         if (unit == null)
-            throw new IllegalArgumentException("Null unit");
-         this.unit = unit;
-      }
-      
-      @Override
-      public ValueMetaData getClassLoader()
-      {
-         return new AbstractValueMetaData(unit.getClassLoader());
-      }
-   }
-   
-   /**
-    * BeanMetaDatadeployer uses AbstractComponentUnit per bean, but that has the overhead of
-    * registering things in JMX. Create a Fake one here to encapsulate the methods that we use
-    * without registering things in JMX
-    * 
-    * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
-    * @version $Revision$
-    */
-   private static class FakeComponentUnit
-   {
-      VFSDeploymentUnit parent;
-      BeanMetaData bmd;
-      ScopeKey scope;
-      ScopeKey mutableScope;
-      
-      FakeComponentUnit(VFSDeploymentUnit parent, BeanMetaData bmd)
-      {
-         this.parent = parent;
-         this.bmd = bmd;
-      }
-      
-      ScopeKey getScope()
-      {
-         if (scope == null)
-         {
-            ScopeKey key = parent.getScope().clone();
-            key.removeScopeLevel(CommonLevels.INSTANCE);
-            key.addScope(CommonLevels.INSTANCE, bmd.getName());
-         }
-         return scope;
-      }
-      
-      ScopeKey getMutableScope()
-      {
-         if (mutableScope == null)
-         {
-            mutableScope = new ScopeKey();
-            mutableScope.addScope(CommonLevels.INSTANCE, bmd.getName());
-         }
-         return mutableScope;
-      }
-
-      ClassLoader getClassLoader()
-      {
-         return parent.getClassLoader();
-      }
-      
-      String getName()
-      {
-         return bmd.getName();
-      }
-      
-      void cleanup()
-      {
-         MutableMetaDataRepository repository = null; 
-         DeploymentUnit unit = parent;
-         while (repository == null && unit != null)
-         {
-            repository = unit.getAttachment(MutableMetaDataRepository.class);
-            unit = parent.getParent();
-         }
-         if (repository == null)
-         {
-            return;
-         }
-         
-         try
-         {
-            ScopeKey scope = getScope();
-            repository.removeMetaDataRetrieval(scope);
-         }
-         catch (Throwable ignored)
-         {
-         }
-
-         try
-         {
-            ScopeKey scope = getMutableScope();
-            repository.removeMetaDataRetrieval(scope);
-         }
-         catch (Throwable ignored)
-         {
-         }
-      }
-   }
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AbstractAopMetaDataDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,554 @@
+/*
+* 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.asintegration.jboss5;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.microcontainer.beans.metadata.AspectManagerAwareBeanMetaDataFactory;
+import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
+import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+import org.jboss.classloading.spi.dependency.Module;
+import org.jboss.dependency.spi.ScopeInfo;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
+import org.jboss.metadata.spi.scope.CommonLevels;
+import org.jboss.metadata.spi.scope.Scope;
+import org.jboss.metadata.spi.scope.ScopeKey;
+
+/**
+ * Deployer for deployments containing AOP metadata. It makes sure that the metadata is deployed to the 
+ * right aop domain in the case of scoped classloaders. The AOP metadata is stripped out of the deployment
+ * to avoid deploying it twice.
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public abstract class AbstractAopMetaDataDeployer<T> extends AbstractSimpleVFSRealDeployer<T>
+{
+   private AspectManager aspectManager;
+   private KernelController controller;
+   private MyBeanMetaDataDeployer beanMetaDataDeployer = new MyBeanMetaDataDeployer();
+   private static int sequence;
+   
+   
+   public AbstractAopMetaDataDeployer(Class<T> input)
+   {
+      super(input);
+      super.setStage(DeploymentStages.POST_CLASSLOADER);
+      super.setOutput(AopMetaDataDeployerOutput.class);
+   }
+
+   /**
+    * Get the aspectManager.
+    * 
+    * @return the aspectManager.
+    */
+   public AspectManager getAspectManager()
+   {
+      return aspectManager;
+   }
+
+   /**
+    * Set the aspectManager.
+    * 
+    * @param aspectManager the aspectManager.
+    */
+   public void setAspectManager(AspectManager aspectManager)
+   {
+      this.aspectManager = aspectManager;
+   }
+   
+   /**
+    * Set the kernel.
+    * 
+    * @param kernel the kernel
+    */
+   public void setKernel(Kernel kernel)
+   {
+      this.controller = kernel.getController();
+   }
+   
+   /**
+    * Method for subclasses to call upon deployment 
+    */
+   @Override
+   public void deploy(VFSDeploymentUnit unit, T deployment) throws DeploymentException
+   {
+      log.debug("Deploying " + unit + " " + deployment);
+      
+      AopMetaDataDeployerOutput output = new AopMetaDataDeployerOutput();
+      unit.addAttachment(AopMetaDataDeployerOutput.class, output);
+      
+      if (extractAopBeanMetaDataFactories(unit, deployment, output))
+      {
+         AspectManager correctManager = unit.getAttachment(AspectManager.class);
+         log.debug("Got AspectManager attachment " + correctManager + " for " + unit);
+         if (correctManager != aspectManager)
+         {
+            int sequence = getSequence();
+            String scopedManagerName = registerScopedManagerBean(sequence, unit, correctManager, output);
+            massageScopedDeployment(sequence, unit, deployment, output, scopedManagerName);
+         }
+      }
+      
+      try
+      {
+         deployBeans(unit, output);
+      }
+      catch (Throwable t)
+      {
+         unregisterScopedManagerBean(output.getScopedAspectManagerBeanName(), false);
+         if (t instanceof DeploymentException)
+         {
+            throw (DeploymentException)t;
+         }
+         else
+         {
+            throw new DeploymentException(t);
+         }
+      }
+      log.debug("Finished deploying " + unit);
+   }
+
+   
+   /**
+    * Method for subclasses to call upon undeployment 
+    */
+   @Override
+   public void undeploy(VFSDeploymentUnit unit, T deployment)
+   {
+      log.debug("Undeploying " + unit + " " + deployment);
+      
+      AopMetaDataDeployerOutput output = unit.getAttachment(AopMetaDataDeployerOutput.class);
+      
+      undeployBeans(unit, output);
+   }
+
+   protected abstract List<BeanMetaDataFactory> getFactories(T deployment);
+   
+   private boolean extractAopBeanMetaDataFactories(VFSDeploymentUnit unit, T deployment, AopMetaDataDeployerOutput output)
+   {
+      log.debug("Extracting aop bean metadata factories for  " + unit);
+      List<AspectManagerAwareBeanMetaDataFactory> aopFactories = new ArrayList<AspectManagerAwareBeanMetaDataFactory>();
+      
+      List<BeanMetaDataFactory> factories = getFactories(deployment);
+      if (factories != null && factories.size() > 0)
+      {
+         for (Iterator<BeanMetaDataFactory> it = factories.iterator() ; it.hasNext() ; )
+         {
+            BeanMetaDataFactory factory = it.next();
+            if (factory instanceof AspectManagerAwareBeanMetaDataFactory)
+            {
+               it.remove();
+               aopFactories.add((AspectManagerAwareBeanMetaDataFactory)factory);
+            }
+         }     
+      }
+      
+      if (aopFactories.size() > 0)
+      {
+         output.setFactories(aopFactories);
+         return true;
+      }
+      return false;
+   }
+   
+   private String registerScopedManagerBean(int sequence, VFSDeploymentUnit unit, AspectManager scopedManager, AopMetaDataDeployerOutput output) throws DeploymentException
+   {
+      String name = "ScopedManager_" + getSequence() + "_" + unit.getName();
+      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, scopedManager.getClass().getName());
+      unit.getMutableMetaData().addMetaData(scopedManager, AspectManager.class);
+      
+      try
+      {
+         controller.install(builder.getBeanMetaData(), scopedManager);
+         return name;
+      }
+      catch (Throwable e)
+      {
+         throw new DeploymentException("Error registering scoped manager" + name + " " + scopedManager, e);
+      }
+   }
+ 
+   private synchronized int getSequence()
+   {
+      return ++sequence;
+   }
+   
+   private void unregisterScopedManagerBean(String name, boolean logError)
+   {
+      if (name == null)
+      {
+         return;
+      }
+      
+      try
+      {
+         controller.uninstall(name);
+      }
+      catch(Throwable t)
+      {
+         if (logError)
+         {
+            log.debug("Error unregistering scoped aspect manager " + name, t);
+         }
+      }
+   }
+   
+   private void massageScopedDeployment(int sequence, VFSDeploymentUnit unit, T deployment, AopMetaDataDeployerOutput output, String scopedManagerName) throws DeploymentException
+   {
+      log.debug("Massaging scoped deployment " + unit + " setting manager to " + scopedManagerName);
+      String domainName = getDomainName(unit);
+      output.setScopedInformation(scopedManagerName, domainName, sequence);
+      unit.getMutableMetaData().addAnnotation(output.getScopeAnnotation());
+   }
+   
+   private String getDomainName(VFSDeploymentUnit unit)
+   {
+      Module module = unit.getTopLevel().getAttachment(Module.class);
+      if (module != null && !module.getDeterminedDomainName().equals(ClassLoaderSystem.DEFAULT_DOMAIN_NAME))
+      {
+         return module.getDeterminedDomainName();
+      }
+      
+      return null;
+   }
+   
+   private void deployBeans(VFSDeploymentUnit unit, AopMetaDataDeployerOutput output) throws DeploymentException
+   {
+      List<BeanMetaData> aopBeans = output.getBeans();
+      List<BeanMetaData> done = new ArrayList<BeanMetaData>();
+      try
+      {
+         if (aopBeans != null && aopBeans.size() > 0)
+         {
+            for (BeanMetaData bean : aopBeans)
+            {
+               //Register the component deployment context so we get the correct mutable metadata scope
+               //This has been replaced by a "fake" implementation to avoid the overhead of the real one
+               //which registers everything in JMX, which is pointless since we throw it away immediately
+               FakeComponentUnit componentUnit = deployComponentDeploymentContext(unit, bean);
+               try
+               {
+                  beanMetaDataDeployer.deploy(componentUnit, bean);
+                  done.add(bean);
+               }
+               finally
+               {
+                  //Unregister the component deployment context so that this bean does not get deployed
+                  //again by the real BeanMetaDataDeployer
+                  undeployComponentDeploymentContext(componentUnit, bean);
+               }
+            }
+         }
+      }
+      catch (Throwable t)
+      {
+         for (int i = done.size() - 1 ; i >= 0 ; i--)
+         {
+            try
+            {
+               beanMetaDataDeployer.undeploy(unit, done.get(i));
+               controller.uninstall(done.get(i));
+            }
+            catch (Throwable e)
+            {
+               log.debug("Error undeploying " + done.get(i) + " for " + unit);
+            }
+         }
+         throw new DeploymentException(t);
+      }
+   }
+   
+   private void undeployBeans(VFSDeploymentUnit unit, AopMetaDataDeployerOutput output)
+   {
+      if (output != null)
+      {
+         List<BeanMetaData> aopBeans = output.getBeans();
+         if (aopBeans != null && aopBeans.size() > 0)
+         {
+            for (int i = aopBeans.size() - 1 ; i >= 0 ; i--)
+            {
+               BeanMetaData bean = aopBeans.get(i);
+               beanMetaDataDeployer.undeploy(unit, bean);
+            }
+         }
+      }
+   }
+   
+   /**
+    * Wrap the deployment unit in a component deployment unit similar to what the KernelDeploymentDeployer does
+    */
+   private FakeComponentUnit deployComponentDeploymentContext(VFSDeploymentUnit unit, BeanMetaData deployment)
+   {
+      //This used to make the following calls which has the overhead of registering the unit in JMX.
+      //All we really want are the scopes, which is handled by FakeComponentUnit
+//      DeploymentUnit componentUnit = unit.addComponent(deployment.getName());
+//      componentUnit.addAttachment(BeanMetaData.class.getName(), deployment);
+//      return componentUnit;
+      return new FakeComponentUnit(unit, deployment);
+   }
+   
+   /**
+    * Undeploy the component deployment unit similar to what the KernelDeploymentDeployer does 
+    */
+   private void undeployComponentDeploymentContext(FakeComponentUnit unit, BeanMetaData bean)
+   {
+      unit.cleanup();
+   }
+   
+   private class MyBeanMetaDataDeployer
+   {   
+      /**
+       * Copied from the real org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer
+       */
+      private void deploy(FakeComponentUnit unit, BeanMetaData deployment) throws DeploymentException
+      {
+         // No explicit classloader, use the deployment's classloader
+         if (deployment.getClassLoader() == null)
+         {
+            try
+            {
+               // Check the unit has a classloader
+               unit.getClassLoader();
+               // TODO clone the metadata?
+               deployment.setClassLoader(new DeploymentClassLoaderMetaData(unit));
+            }
+            catch (Exception e)
+            {
+               log.debug("Unable to retrieve classloader for deployment: " + unit.getName() + " reason=" + e.toString());
+            }
+         }
+         KernelControllerContext context = new AbstractKernelControllerContext(null, deployment, null);
+         //Make sure that the metadata from the deployment gets put into the context
+         ScopeInfo scopeInfo = context.getScopeInfo();
+         if (scopeInfo != null)
+         {
+            mergeScopes(scopeInfo.getScope(), unit.getScope());
+            mergeScopes(scopeInfo.getMutableScope(), unit.getMutableScope());
+         }
+         
+//         KernelControllerContext context = new AbstractKernelControllerContext(null, deployment, null);
+//         ScopeInfo scopeInfo2 = context.getScopeInfo();
+//         if (scopeInfo2 != null)
+//         {
+//            ScopeKey key = unit.getScope().clone();
+//            key.removeScopeLevel(CommonLevels.INSTANCE);
+//            key.addScope(CommonLevels.INSTANCE, deployment.getName());
+//            
+//            ScopeKey mutable = new ScopeKey();
+//            key.addScope(CommonLevels.INSTANCE, deployment.getName());
+//            
+//            mergeScopes(scopeInfo2.getScope(), key);
+//            mergeScopes(scopeInfo2.getMutableScope(), mutable);
+//         }
+         
+         try
+         {
+            //System.out.println("==============> Installing " + context.getName());
+            controller.install(context);
+         }
+         catch (Throwable t)
+         {
+            throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + deployment.getName(), t);
+         }
+         
+         
+      }
+   
+      /**
+       * Copied from the real org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer
+       * Merge scope keys.
+       *
+       * @param contextKey the context key
+       * @param unitKey the unit key
+       */
+      protected void mergeScopes(ScopeKey contextKey, ScopeKey unitKey)
+      {
+         if (contextKey == null)
+            return;
+         if (unitKey == null)
+            return;
+
+         Collection<Scope> unitScopes = unitKey.getScopes();
+         if (unitScopes == null || unitScopes.isEmpty())
+            return;
+
+         for (Scope scope : unitScopes)
+            contextKey.addScope(scope);
+      }
+
+      /**
+       * Copied from the real org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer
+       */
+      private void undeploy(DeploymentUnit unit, BeanMetaData deployment)
+      {
+         try
+         {
+            controller.uninstall(deployment.getName());
+            
+            // Remove any classloader metadata we added (not necessary if we clone above)
+            ClassLoaderMetaData classLoader = deployment.getClassLoader();
+            if (classLoader instanceof DeploymentClassLoaderMetaData)
+               deployment.setClassLoader(null);
+         }
+         catch(Throwable t)
+         {
+            log.info("Error undeploying " + deployment + " for " + unit);
+         }
+      }
+   }
+   
+   /**
+    * Copied from BeanMetaDataDeployer
+    */
+   private static class DeploymentClassLoaderMetaData extends AbstractClassLoaderMetaData
+   {
+      /** The serialVersionUID */
+      private static final long serialVersionUID = 1L;
+      
+      /** The deployment unit */
+      private FakeComponentUnit unit;
+
+      /**
+       * Create a new DeploymentClassLoaderMetaData.
+       * 
+       * @param unit the deployment unit
+       */
+      public DeploymentClassLoaderMetaData(FakeComponentUnit unit)
+      {
+         if (unit == null)
+            throw new IllegalArgumentException("Null unit");
+         this.unit = unit;
+      }
+      
+      @Override
+      public ValueMetaData getClassLoader()
+      {
+         return new AbstractValueMetaData(unit.getClassLoader());
+      }
+   }
+   
+   /**
+    * BeanMetaDatadeployer uses AbstractComponentUnit per bean, but that has the overhead of
+    * registering things in JMX. Create a Fake one here to encapsulate the methods that we use
+    * without registering things in JMX
+    * 
+    * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+    * @version $Revision$
+    */
+   private static class FakeComponentUnit
+   {
+      VFSDeploymentUnit parent;
+      BeanMetaData bmd;
+      ScopeKey scope;
+      ScopeKey mutableScope;
+      
+      FakeComponentUnit(VFSDeploymentUnit parent, BeanMetaData bmd)
+      {
+         this.parent = parent;
+         this.bmd = bmd;
+      }
+      
+      ScopeKey getScope()
+      {
+         if (scope == null)
+         {
+            ScopeKey key = parent.getScope().clone();
+            key.removeScopeLevel(CommonLevels.INSTANCE);
+            key.addScope(CommonLevels.INSTANCE, bmd.getName());
+         }
+         return scope;
+      }
+      
+      ScopeKey getMutableScope()
+      {
+         if (mutableScope == null)
+         {
+            mutableScope = new ScopeKey();
+            mutableScope.addScope(CommonLevels.INSTANCE, bmd.getName());
+         }
+         return mutableScope;
+      }
+
+      ClassLoader getClassLoader()
+      {
+         return parent.getClassLoader();
+      }
+      
+      String getName()
+      {
+         return bmd.getName();
+      }
+      
+      void cleanup()
+      {
+         MutableMetaDataRepository repository = null; 
+         DeploymentUnit unit = parent;
+         while (repository == null && unit != null)
+         {
+            repository = unit.getAttachment(MutableMetaDataRepository.class);
+            unit = parent.getParent();
+         }
+         if (repository == null)
+         {
+            return;
+         }
+         
+         try
+         {
+            ScopeKey scope = getScope();
+            repository.removeMetaDataRetrieval(scope);
+         }
+         catch (Throwable ignored)
+         {
+         }
+
+         try
+         {
+            ScopeKey scope = getMutableScope();
+            repository.removeMetaDataRetrieval(scope);
+         }
+         catch (Throwable ignored)
+         {
+         }
+      }
+   }
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,57 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import java.lang.annotation.Annotation;
-
-import org.jboss.beans.metadata.api.annotations.Aliases;
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class AliasesImpl implements Aliases
-{
-   String[] names;
-   
-   public AliasesImpl(String name)
-   {
-      super();
-      this.names = new String[] {name};
-   }
-
-   public boolean replace()
-   {
-      return false;
-   }
-
-   public String[] value()
-   {
-      return names;
-   }
-
-   public Class<? extends Annotation> annotationType()
-   {
-      return Aliases.class;
-   }
-
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AliasesImpl.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,57 @@
+/*
+* 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.asintegration.jboss5;
+
+import java.lang.annotation.Annotation;
+
+import org.jboss.beans.metadata.api.annotations.Aliases;
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class AliasesImpl implements Aliases
+{
+   String[] names;
+   
+   public AliasesImpl(String name)
+   {
+      super();
+      this.names = new String[] {name};
+   }
+
+   public boolean replace()
+   {
+      return false;
+   }
+
+   public String[] value()
+   {
+      return names;
+   }
+
+   public Class<? extends Annotation> annotationType()
+   {
+      return Aliases.class;
+   }
+
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,143 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.jboss.aop.microcontainer.beans.Aspect;
-import org.jboss.aop.microcontainer.beans.metadata.AspectManagerAwareBeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.PropertyMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-class AopMetaDataDeployerOutput
-{
-   List<AspectManagerAwareBeanMetaDataFactory> factories;
-   List<BeanMetaData> beans;
-   boolean scoped;
-   String scopedAspectManagerBeanName;
-   String domainName;
-   int sequence;
-   ClassLoaderDomainScope scopeAnnotation;
-   
-   AopMetaDataDeployerOutput()
-   {
-      
-   }
-
-   String getScopedAspectManagerBeanName()
-   {
-      return scopedAspectManagerBeanName;
-   }
-
-   ClassLoaderDomainScope getScopeAnnotation()
-   {
-      return scopeAnnotation;
-   }
-   
-   void setFactories(List<AspectManagerAwareBeanMetaDataFactory> factories)
-   {
-      this.factories = factories;
-   }
-   
-   void setScopedInformation(String scopedAspectManagerBeanName, String domainName, int sequence)
-   {
-      scoped = true;
-      this.scopedAspectManagerBeanName = scopedAspectManagerBeanName;
-      this.domainName = domainName;
-      this.sequence = sequence;
-      if (domainName == null)
-      {
-         throw new IllegalStateException("Should not have null domainName for scoped bean");
-      }
-      scopeAnnotation = new ClassLoaderDomainScopeImpl(domainName);
-   }
-   
-   List<BeanMetaData> getBeans()
-   {
-      if (beans == null && factories != null && factories.size() > 0)
-      {
-         beans = new ArrayList<BeanMetaData>();
-         
-         for (AspectManagerAwareBeanMetaDataFactory factory : factories)
-         {
-            if (scopedAspectManagerBeanName != null)
-            {
-               factory.setManagerBean(scopedAspectManagerBeanName);
-               factory.setManagerProperty(null);
-            }
-
-            List<BeanMetaData> mybeans = factory.getBeans();
-            if (mybeans != null && mybeans.size() > 0)
-            {
-               for (BeanMetaData bean : mybeans)
-               {
-                  massageScopedBean(bean);
-               }
-               beans.addAll(mybeans);
-            }
-         }
-      }
-      return beans;
-   }
-
-   private void massageScopedBean(BeanMetaData bean)
-   {
-      if (scoped)
-      {         
-         String name = bean.getName();
-         String newName = "ScopedAlias_" + sequence + "_" + name;
-      
-         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(bean);
-         
-         //Set the alias to the original name
-         builder.addAnnotation(new AliasesImpl(name));
-         
-         //Set the domain name
-         builder.addAnnotation(scopeAnnotation);
-      
-         //set the new name used by the controller for managing beans
-         builder.setName(newName);
-         
-         //Debug stuff
-         if (bean.getBean().equals(Aspect.class.getName()))
-         {
-            Object scope = null;
-            Set<PropertyMetaData> properties = bean.getProperties();
-            for (PropertyMetaData property : properties)
-            {
-               if (property.getName().equals("scope"))
-               {
-                  scope = property.getValue().getUnderlyingValue();
-               }
-            }
-         }
-      }
-   }
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/AopMetaDataDeployerOutput.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,143 @@
+/*
+* 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.asintegration.jboss5;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.jboss.aop.microcontainer.beans.Aspect;
+import org.jboss.aop.microcontainer.beans.metadata.AspectManagerAwareBeanMetaDataFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.PropertyMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+class AopMetaDataDeployerOutput
+{
+   List<AspectManagerAwareBeanMetaDataFactory> factories;
+   List<BeanMetaData> beans;
+   boolean scoped;
+   String scopedAspectManagerBeanName;
+   String domainName;
+   int sequence;
+   ClassLoaderDomainScope scopeAnnotation;
+   
+   AopMetaDataDeployerOutput()
+   {
+      
+   }
+
+   String getScopedAspectManagerBeanName()
+   {
+      return scopedAspectManagerBeanName;
+   }
+
+   ClassLoaderDomainScope getScopeAnnotation()
+   {
+      return scopeAnnotation;
+   }
+   
+   void setFactories(List<AspectManagerAwareBeanMetaDataFactory> factories)
+   {
+      this.factories = factories;
+   }
+   
+   void setScopedInformation(String scopedAspectManagerBeanName, String domainName, int sequence)
+   {
+      scoped = true;
+      this.scopedAspectManagerBeanName = scopedAspectManagerBeanName;
+      this.domainName = domainName;
+      this.sequence = sequence;
+      if (domainName == null)
+      {
+         throw new IllegalStateException("Should not have null domainName for scoped bean");
+      }
+      scopeAnnotation = new ClassLoaderDomainScopeImpl(domainName);
+   }
+   
+   List<BeanMetaData> getBeans()
+   {
+      if (beans == null && factories != null && factories.size() > 0)
+      {
+         beans = new ArrayList<BeanMetaData>();
+         
+         for (AspectManagerAwareBeanMetaDataFactory factory : factories)
+         {
+            if (scopedAspectManagerBeanName != null)
+            {
+               factory.setManagerBean(scopedAspectManagerBeanName);
+               factory.setManagerProperty(null);
+            }
+
+            List<BeanMetaData> mybeans = factory.getBeans();
+            if (mybeans != null && mybeans.size() > 0)
+            {
+               for (BeanMetaData bean : mybeans)
+               {
+                  massageScopedBean(bean);
+               }
+               beans.addAll(mybeans);
+            }
+         }
+      }
+      return beans;
+   }
+
+   private void massageScopedBean(BeanMetaData bean)
+   {
+      if (scoped)
+      {         
+         String name = bean.getName();
+         String newName = "ScopedAlias_" + sequence + "_" + name;
+      
+         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(bean);
+         
+         //Set the alias to the original name
+         builder.addAnnotation(new AliasesImpl(name));
+         
+         //Set the domain name
+         builder.addAnnotation(scopeAnnotation);
+      
+         //set the new name used by the controller for managing beans
+         builder.setName(newName);
+         
+         //Debug stuff
+         if (bean.getBean().equals(Aspect.class.getName()))
+         {
+            Object scope = null;
+            Set<PropertyMetaData> properties = bean.getProperties();
+            for (PropertyMetaData property : properties)
+            {
+               if (property.getName().equals("scope"))
+               {
+                  scope = property.getValue().getUnderlyingValue();
+               }
+            }
+         }
+      }
+   }
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,62 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, Red Hat Middleware LLC., 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.aop.asintegration.jboss5;
-
-import java.util.List;
-
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.kernel.spi.deployment.KernelDeployment;
-
-/**
- * Deployer for Aspects in a -beans.xml
- *
- * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
- */
-public class BeansDeploymentAopMetaDataDeployer extends AbstractAopMetaDataDeployer<KernelDeployment>
-{
-   public BeansDeploymentAopMetaDataDeployer()
-   {
-      super(KernelDeployment.class);
-   }
-
-   @Override
-   public void deploy(VFSDeploymentUnit unit, KernelDeployment kernelDeployment) throws DeploymentException
-   {
-      super.deploy(unit, kernelDeployment);
-   }
-   
-   @Override
-   public void undeploy(VFSDeploymentUnit unit, KernelDeployment kernelDeployment)
-   {
-      super.undeploy(unit, kernelDeployment);
-   }
-
-
-   @Override
-   protected List<BeanMetaDataFactory> getFactories(KernelDeployment kernelDeployment)
-   {
-      return kernelDeployment.getBeanFactories();
-   }
-   
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/BeansDeploymentAopMetaDataDeployer.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,62 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, Red Hat Middleware LLC., 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.aop.asintegration.jboss5;
+
+import java.util.List;
+
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+
+/**
+ * Deployer for Aspects in a -beans.xml
+ *
+ * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
+ */
+public class BeansDeploymentAopMetaDataDeployer extends AbstractAopMetaDataDeployer<KernelDeployment>
+{
+   public BeansDeploymentAopMetaDataDeployer()
+   {
+      super(KernelDeployment.class);
+   }
+
+   @Override
+   public void deploy(VFSDeploymentUnit unit, KernelDeployment kernelDeployment) throws DeploymentException
+   {
+      super.deploy(unit, kernelDeployment);
+   }
+   
+   @Override
+   public void undeploy(VFSDeploymentUnit unit, KernelDeployment kernelDeployment)
+   {
+      super.undeploy(unit, kernelDeployment);
+   }
+
+
+   @Override
+   protected List<BeanMetaDataFactory> getFactories(KernelDeployment kernelDeployment)
+   {
+      return kernelDeployment.getBeanFactories();
+   }
+   
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,42 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.jboss.metadata.spi.scope.ScopeFactoryLookup;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
- at ScopeFactoryLookup(ClassLoaderDomainScopeFactory.class)
- at Retention(RetentionPolicy.RUNTIME)
- at Target({ElementType.TYPE})
-public @interface ClassLoaderDomainScope
-{
-   String value();
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScope.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -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.aop.asintegration.jboss5;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.jboss.metadata.spi.scope.ScopeFactoryLookup;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+ at ScopeFactoryLookup(ClassLoaderDomainScopeFactory.class)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({ElementType.TYPE})
+public @interface ClassLoaderDomainScope
+{
+   String value();
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,41 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import org.jboss.metadata.spi.scope.CommonLevels;
-import org.jboss.metadata.spi.scope.Scope;
-import org.jboss.metadata.spi.scope.ScopeFactory;
-import org.jboss.metadata.spi.scope.ScopeLevel;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class ClassLoaderDomainScopeFactory implements ScopeFactory<ClassLoaderDomainScope>
-{
-   public Scope create(ClassLoaderDomainScope annotation)
-   {
-      return new Scope(new ScopeLevel(CommonLevels.APPLICATION.getLevel() + 10, "ClassLoaderDomainScope"), annotation.value());
-   }
-
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeFactory.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,41 @@
+/*
+* 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.asintegration.jboss5;
+
+import org.jboss.metadata.spi.scope.CommonLevels;
+import org.jboss.metadata.spi.scope.Scope;
+import org.jboss.metadata.spi.scope.ScopeFactory;
+import org.jboss.metadata.spi.scope.ScopeLevel;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class ClassLoaderDomainScopeFactory implements ScopeFactory<ClassLoaderDomainScope>
+{
+   public Scope create(ClassLoaderDomainScope annotation)
+   {
+      return new Scope(new ScopeLevel(CommonLevels.APPLICATION.getLevel() + 10, "ClassLoaderDomainScope"), annotation.value());
+   }
+
+}

Deleted: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java	2009-04-02 10:48:22 UTC (rev 86655)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -1,50 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors. 
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/ 
-package org.jboss.aop.asintegration.jboss5;
-
-import java.lang.annotation.Annotation;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class ClassLoaderDomainScopeImpl implements ClassLoaderDomainScope
-{
-   String name;
-   
-   public ClassLoaderDomainScopeImpl(String name)
-   {
-      this.name = name;
-   }
-   
-   public String value()
-   {
-      return name;
-   }
-
-   public Class<? extends Annotation> annotationType()
-   {
-      return ClassLoaderDomainScope.class;
-   }
-
-}

Copied: branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java (from rev 86655, branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java)
===================================================================
--- branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java	                        (rev 0)
+++ branches/Branch_5_x/aspects/src/main/org/jboss/aop/asintegration/jboss5/ClassLoaderDomainScopeImpl.java	2009-04-03 16:42:41 UTC (rev 86755)
@@ -0,0 +1,50 @@
+/*
+* 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.asintegration.jboss5;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class ClassLoaderDomainScopeImpl implements ClassLoaderDomainScope
+{
+   String name;
+   
+   public ClassLoaderDomainScopeImpl(String name)
+   {
+      this.name = name;
+   }
+   
+   public String value()
+   {
+      return name;
+   }
+
+   public Class<? extends Annotation> annotationType()
+   {
+      return ClassLoaderDomainScope.class;
+   }
+
+}

Modified: branches/Branch_5_x/build/build-distr.xml
===================================================================
--- branches/Branch_5_x/build/build-distr.xml	2009-04-03 16:04:17 UTC (rev 86754)
+++ branches/Branch_5_x/build/build-distr.xml	2009-04-03 16:42:41 UTC (rev 86755)
@@ -251,7 +251,6 @@
         <include name="jboss-aop-asintegration-core.jar"/>
         <include name="jboss-aop-asintegration-jmx.jar"/>
         <include name="jboss-aop-asintegration-mc.jar"/>
-        <include name="jboss-aop-deployers.jar"/>
       </fileset>
     </copy>
 

Modified: branches/Branch_5_x/component-matrix/pom.xml
===================================================================
--- branches/Branch_5_x/component-matrix/pom.xml	2009-04-03 16:04:17 UTC (rev 86754)
+++ branches/Branch_5_x/component-matrix/pom.xml	2009-04-03 16:42:41 UTC (rev 86755)
@@ -47,7 +47,7 @@
     <version.org.hibernate.entity.manager>3.4.0.GA</version.org.hibernate.entity.manager>
     <version.org.hibernate.validator>3.1.0.GA</version.org.hibernate.validator>
     <version.org.hibernate>3.3.1.GA</version.org.hibernate>
-    <version.org.jboss.aop>2.1.0.CR2</version.org.jboss.aop>
+    <version.org.jboss.aop>2.0.1.GA</version.org.jboss.aop>
     <version.org.jboss.aspects.currentinvocation>1.0.0.GA</version.org.jboss.aspects.currentinvocation>
     <version.org.jboss.aspects.remoting>1.0.1.GA</version.org.jboss.aspects.remoting>
     <version.org.jboss.aspects.security>1.0.0.GA</version.org.jboss.aspects.security>
@@ -693,26 +693,6 @@
           </exclusion>
         </exclusions>
       </dependency>
-
-      <dependency>
-        <groupId>org.jboss.aop</groupId>
-        <artifactId>jboss-aop-deployers</artifactId>
-        <version>${version.org.jboss.aop}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.jboss.microcontainer</groupId>
-            <artifactId>jboss-kernel</artifactId>
-          </exclusion>        
-          <exclusion>
-            <groupId>org.jboss.microcontainer</groupId>
-            <artifactId>jboss-aop-mc-int</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.jboss</groupId>
-            <artifactId>jboss-vfs</artifactId>
-          </exclusion>          
-        </exclusions>        
-      </dependency>
       
       <dependency>
         <groupId>org.jboss.aop</groupId>

Modified: branches/Branch_5_x/server/src/etc/conf/default/bootstrap/aop.xml
===================================================================
--- branches/Branch_5_x/server/src/etc/conf/default/bootstrap/aop.xml	2009-04-03 16:04:17 UTC (rev 86754)
+++ branches/Branch_5_x/server/src/etc/conf/default/bootstrap/aop.xml	2009-04-03 16:42:41 UTC (rev 86755)
@@ -11,41 +11,18 @@
       <root>${jboss.lib.url}jboss-aop-asintegration-core.jar</root>
       <root>${jboss.lib.url}jboss-aop-asintegration-jmx.jar</root>
       <root>${jboss.lib.url}jboss-aop-asintegration-mc.jar</root>
-      <root>${jboss.lib.url}jboss-aop-deployers.jar</root>
       <root>${jboss.lib.url}jboss-aop-jboss5.jar</root>
    </classloader>
 
    <!-- Integration -->
-   <bean name="AOPClassLoaderScopingPolicy" class="org.jboss.aop.asintegration.jboss5.VFSClassLoaderScopingPolicy"/>
-   
-   <bean name="AOPClassPoolFactory" class="org.jboss.aop.classpool.jbosscl.JBossClDelegatingClassPoolFactory">
-      <constructor>
-         <parameter><inject bean="AOPClassLoaderScopingPolicy" property="registry"/></parameter>
-         <parameter><inject bean="AOPRegisterModuleCallback"/></parameter>
-      </constructor>
-   </bean>
+   <bean name="AOPJBossIntegration" class="org.jboss.aop.asintegration.jboss5.JBoss5Integration"/>
 
-   <bean name="AOPJBossIntegration" class="org.jboss.aop.asintegration.jboss5.JBoss5Integration">
-      <property name="classPoolFactory"><inject bean="AOPClassPoolFactory"/></property>
-      <property name="aopClassLoaderScopingPolicy"><inject bean="AOPClassLoaderScopingPolicy"/></property>
-   </bean>
-
    <bean name="DefaultAspectManager" class="org.jboss.aop.microcontainer.beans.metadata.DefaultAspectManager">
       <property name="managerBean">AspectManager</property>
       <property name="managerProperty">aspectManager</property>
    </bean>
 
-   <!-- bean name="AOPBootstrap" class="org.jboss.aop.asintegration.jboss5.AOPBootstrap" -->
-      <!--  This one lives in AS 5 source tree -->
-      <!-- property name="policy"><inject bean="AOPClassLoaderScopingPolicy"/></property>
-       <property name="manager"><inject bean="AspectManager" property="aspectManager"/></property>
-   </bean-->
 
-   <bean name="AOPRegisterModuleCallback" class="org.jboss.aop.asintegration.jboss5.RegisterModuleCallback">
-      <!-- classloader><null/></classloader -->
-      <incallback method="addModule" state="Installed"/>
-      <uncallback method="removeModule" state="Installed"/>
-   </bean>
    <!--
       Valid values for the AspectManager bean for use with enableTransformer=true are:
       * org.jboss.aop.deployers.AspectManagerJDK5 - works with the -javaagent:pluggable-instrumentor.jar switch

Modified: branches/Branch_5_x/thirdparty/pom.xml
===================================================================
--- branches/Branch_5_x/thirdparty/pom.xml	2009-04-03 16:04:17 UTC (rev 86754)
+++ branches/Branch_5_x/thirdparty/pom.xml	2009-04-03 16:42:41 UTC (rev 86755)
@@ -403,14 +403,6 @@
             </dependency>
             <dependency>
               <groupId>org.jboss.aop</groupId>
-              <artifactId>jboss-aop-deployers</artifactId>
-              <version>${version.org.jboss.aop}</version>
-              <mapping>
-                <componentId>jboss.aop</componentId>
-              </mapping>
-            </dependency>
-             <dependency>
-              <groupId>org.jboss.aop</groupId>
               <artifactId>jboss-aop</artifactId>
               <version>${version.org.jboss.aop}</version>
               <mapping>
@@ -1124,10 +1116,6 @@
     </dependency>
     <dependency>
       <groupId>org.jboss.aop</groupId>
-      <artifactId>jboss-aop-deployers</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.aop</groupId>
       <artifactId>jrockit-pluggable-instrumentor</artifactId>
     </dependency>
     <dependency>




More information about the jboss-cvs-commits mailing list