[jboss-cvs] JBossAS SVN: r66284 - in projects/aop/trunk: aop/src/main/org/jboss/aop/instrument and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Oct 19 09:23:18 EDT 2007


Author: kabir.khan at jboss.com
Date: 2007-10-19 09:23:18 -0400 (Fri, 19 Oct 2007)
New Revision: 66284

Added:
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/classpool/
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/classpool/AbstractJBossClassPoolFactory.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/DefaultTranslator.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/NewClassLoaderDomainInitializer.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/RepositoryClassLoaderDomainIntializer.java
Removed:
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainInitializer.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderDomainIntializer.java
Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java
   projects/aop/trunk/asintegration/build.xml
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/AspectDeployer.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/JBossAspectLibrary.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPool.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPoolFactory.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5Integration.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainRegistry.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderScopingPolicy.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderScopingPolicy.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/ScopedJBoss5ClassPool.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java
   projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/ScopedRepositoryClassLoaderDomain.java
Log:
[JBAOP-409] Tidy up code a bit


Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -66,6 +66,9 @@
 			AOPClassPool pool = (AOPClassPool) manager.registerClassLoader(loader);
 
 			CtClassTransformationInfo info = obtainCtClassInfo(pool, className, classfileBuffer);
+			
+//			if (className.startsWith("org.jboss.test.aop.scopedextender.")) System.out.println("********** Weaving " + className + " " + loader);
+			
 			CtClass clazz = instrumentClass(manager, pool, info, true);
 			if (clazz != null)
 			{
@@ -129,6 +132,9 @@
 			CtClass superClass = info.getClazz().getSuperclass();
 			if (superClass != null && !Instrumentor.implementsAdvised(info.getClazz()))
 			{
+//			   String DEBUGNAME = info.getClazz().getName();
+//	         if (DEBUGNAME.startsWith("org.jboss.test.aop.scopedextender.")) System.out.println("---- Instrument " + DEBUGNAME + " " + pool);
+//
 				CtClassTransformationInfo superInfo = new CtClassTransformationInfo(superClass, superClass.getName());
 
             ClassPool superPool = superClass.getClassPool();

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -363,7 +363,7 @@
    {
       String initBody =
          "{" +
-         "   String domainName = org.jboss.aop.Domain.getDomainName(" + DECLARING_CLASS + ", $2);" + 
+         "   java.lang.String domainName = org.jboss.aop.Domain.getDomainName(" + DECLARING_CLASS + ", $2);" + 
          "   " + DOMAIN + "= new org.jboss.aop.GeneratedAdvisorDomain($1, domainName, " + DECLARING_CLASS + ", $2); " +
          "   ((org.jboss.aop.Domain)" + DOMAIN + ").setInheritsBindings(true); " +
          "   super.initialise(" + DECLARING_CLASS + ", " + DOMAIN + ");" +

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -212,6 +212,15 @@
       }
       catch (Exception e)
       {
+         e.printStackTrace();
+         StringBuffer sb = new StringBuffer();
+         debugClass(sb, newInfo.getAdvisor().getClass());
+         System.out.println("==================== Error");
+         System.out.println("Field: " + joinpointField);
+         System.out.println("Field: " + joinpointField.getDeclaringClass() + " " + joinpointField.getDeclaringClass().getClassLoader());
+         System.out.println("Value: " + newInfo.getAdvisor().getClass() + " " + newInfo.getAdvisor().getClass().getClassLoader());
+         System.out.println(sb.toString());
+         
          throw new RuntimeException(e);
       }   
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -748,7 +748,7 @@
    private String getClassName()
    {
       String packageName = clazz.getPackage().getName();
-      if (packageName.indexOf("java.") != -1 && packageName.indexOf("sun.") != -1)
+      if (!packageName.startsWith("java.") && !packageName.startsWith("sun."))
       {
          packageName += ".";
       }

Modified: projects/aop/trunk/asintegration/build.xml
===================================================================
--- projects/aop/trunk/asintegration/build.xml	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/build.xml	2007-10-19 13:23:18 UTC (rev 66284)
@@ -216,6 +216,7 @@
          update="${jar.update}" index="${jar.index}">
          <fileset dir="${build.classes}">
             <!-- Include everything else -->
+            <include name="org/jboss/aop/classpool/**"/>
             <include name="org/jboss/aop/deploy*/**"/>
             <include name="org/jboss/aop/domain/**"/>
          </fileset>
@@ -227,6 +228,7 @@
          update="${jar.update}" index="${jar.index}">
          <fileset dir="${build.classes}">
             <!-- Include everything else -->
+            <include name="org/jboss/aop/classpool/**"/>
             <include name="org/jboss/aop/deploy*/**"/>
             <include name="org/jboss/aop/domain/**"/>
             <exclude name="org/jboss/aop/deployers/*.class"/>
@@ -244,6 +246,7 @@
          update="${jar.update}" index="${jar.index}">
          <fileset dir="${build.classes.retro}">
             <!-- Include everything else -->
+            <include name="org/jboss/aop/classpool/**"/>
             <include name="org/jboss/aop/deploy*/**"/>
             <include name="org/jboss/aop/domain/**"/>
             <exclude name="org/jboss/aop/deployers/*.class"/>

Added: projects/aop/trunk/asintegration/src/main/org/jboss/aop/classpool/AbstractJBossClassPoolFactory.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/classpool/AbstractJBossClassPoolFactory.java	                        (rev 0)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/classpool/AbstractJBossClassPoolFactory.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -0,0 +1,56 @@
+/*
+* 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.classpool;
+
+import javassist.ClassPool;
+import javassist.scopedpool.ScopedClassPool;
+import javassist.scopedpool.ScopedClassPoolRepository;
+
+import org.jboss.aop.deployment.SecurityActions;
+import org.jboss.aop.deployment.TempJBossClassPool;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class AbstractJBossClassPoolFactory
+{
+   protected ClassPool getCreateParentClassPools(final ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository)
+   {
+      //Make sure that we get classpools for all the parent classloaders
+      ClassLoader parent = SecurityActions.getParent(cl);
+
+      if (parent != null)
+      {
+         return repository.registerClassLoader(parent);
+      }
+      return src;
+   }
+   
+   public ScopedClassPool create(ClassPool src, ScopedClassPoolRepository repository)
+   {
+      return new TempJBossClassPool(src, repository);
+   }
+
+
+}

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/AspectDeployer.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/AspectDeployer.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/AspectDeployer.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -35,8 +35,8 @@
 import org.jboss.aop.AspectXmlLoader;
 import org.jboss.aop.Domain;
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
-import org.jboss.aop.deployers.temp.NewClassLoaderDomainInitializer;
-import org.jboss.aop.deployers.temp.RepositoryClassLoaderDomainIntializer;
+import org.jboss.aop.domain.NewClassLoaderDomainInitializer;
+import org.jboss.aop.domain.RepositoryClassLoaderDomainIntializer;
 import org.jboss.deployers.plugins.classloading.Module;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
@@ -200,9 +200,6 @@
       {
          undeployXml(manager, vf);
       }
-      
-      //FIXME isn't this a bit too early?
-      aspectManager.unregisterClassLoader(unit.getClassLoader());
    }
    
    private void undeployXml(AspectManager manager, VirtualFile vf)

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/JBossAspectLibrary.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/JBossAspectLibrary.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/JBossAspectLibrary.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -51,10 +51,6 @@
     */
    public void start() throws Exception
    {
-      System.out.println("***************************");
-      System.out.println("TCL  " + Thread.currentThread().getContextClassLoader() + " - " + Thread.currentThread().getContextClassLoader());
-      System.out.println("MyCl " + this.getClass().getClassLoader() + " - " + this.getClass().getClassLoader());
-      
       aspectManager.deployBaseAspects();
    }
 

Added: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/DefaultTranslator.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/DefaultTranslator.java	                        (rev 0)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/DefaultTranslator.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -0,0 +1,68 @@
+/*
+* 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.deployers.temp;
+
+import java.security.ProtectionDomain;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.util.loading.Translator;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class DefaultTranslator implements Translator
+{
+   AspectManager manager;
+   boolean translate;
+   
+   public DefaultTranslator(AspectManager manager)
+   {
+      this.manager = manager;
+   }
+
+   public void setTranslate(boolean translate)
+   {
+      this.translate = translate;
+   }
+   
+   public boolean getTranslate()
+   {
+      return translate;
+   }
+   
+   public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined,
+         ProtectionDomain protectionDomain, byte[] classfileBuffer) throws Exception
+   {
+      if (translate)
+      {
+         return manager.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
+      }
+      return classfileBuffer;   
+   }
+
+   public void unregisterClassLoader(ClassLoader loader)
+   {
+      manager.unregisterClassLoader(loader);
+   }
+}

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPool.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPool.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPool.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -21,10 +21,18 @@
 */ 
 package org.jboss.aop.deployers.temp;
 
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.lang.reflect.Field;
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.security.ProtectionDomain;
+import java.util.Set;
 
 import javassist.CannotCompileException;
 import javassist.ClassPool;
@@ -32,7 +40,10 @@
 import javassist.scopedpool.ScopedClassPoolRepository;
 
 import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.classloader.spi.base.BaseClassLoader;
 import org.jboss.mx.loading.RepositoryClassLoader;
+import org.jboss.virtual.plugins.context.memory.MemoryContextFactory;
+import org.jboss.virtual.spi.VFSContext;
 
 /**
  * 
@@ -41,18 +52,13 @@
  */
 public class JBoss5ClassPool extends AOPClassPool
 {
-   /**
-    * Used for dynamically created classes (see loadClass(String, byte[]), ClassLoader)
-    */
-   protected File tempdir = null;
    protected URL tempURL = null;
    // For loadClass tmpdir creation for UCL
    protected final Object tmplock = new Object();
    
-   protected JBoss5ClassPool(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository, File tmp, URL tmpURL)
+   protected JBoss5ClassPool(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository, URL tmpURL)
    {
       super(cl, src, repository);
-      tempdir = tmp;
       tempURL = tmpURL;
    }
 
@@ -71,11 +77,113 @@
       return false;
    }
 
-   public Class toClass(CtClass cc, ClassLoader loader, ProtectionDomain domain)
+   
+   public Class toClass(CtClass cc, ClassLoader loader, ProtectionDomain domain) throws CannotCompileException
+   {
+      lockInCache(cc);
+      final ClassLoader myloader = getClassLoader();
+      if (myloader == null || tempURL == null)
+      {
+         return super.toClass(cc, loader, domain);
+      }
+      
+      try
+      {
+         String classFileName = getResourceName(cc.getName());
+         URL outputURL = new URL(tempURL.toString() + "/" + classFileName);
+         //Write the classfile to the temporary url
+         synchronized (tmplock)
+         {
+            ByteArrayOutputStream byteout = new ByteArrayOutputStream();
+            BufferedOutputStream out = new BufferedOutputStream(byteout);
+            out.write(cc.toBytecode());
+            out.flush();
+            out.close();
+            
+            byte[] classBytes = byteout.toByteArray();
+            MemoryContextFactory factory = MemoryContextFactory.getInstance();
+            factory.putFile(outputURL, classBytes);
+
+            clearCacheOnLoaderHack(myloader);
+            
+            Class clazz = myloader.loadClass(cc.getName());
+//System.out.println("====> created " + clazz.getName() + " on " + myloader + " loaded with " + clazz.getClassLoader());
+            return clazz;
+         }
+      }
+      catch(Exception e)
+      {
+       ClassFormatError cfe = new ClassFormatError("Failed to load dyn class: " + cc.getName());
+       cfe.initCause(e);
+       throw cfe;
+      }
+   }
+   
+   
+   private void clearCacheOnLoaderHack(final ClassLoader loader)
+   {
+      if (loader instanceof BaseClassLoader)
+      {
+         try
+         {
+            AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
+
+               public Object run() throws Exception
+               {
+                  Class clazz = loader.getClass();
+                  while (clazz != null && clazz != BaseClassLoader.class)
+                  {
+                     clazz = clazz.getSuperclass();
+                  }
+                  Field field = clazz.getDeclaredField("blackList");
+                  field.setAccessible(true);
+                  Set<String> set = (Set<String>)field.get(loader);
+                  set.clear();
+                  return null;
+               }});
+         }
+         catch (PrivilegedActionException e)
+         {
+            // AutoGenerated
+            throw new RuntimeException(e.getCause());
+         }
+      }
+   }
+   
+   public Class toClassOld(CtClass cc, ClassLoader loader, ProtectionDomain domain)
    throws CannotCompileException
    {
-      ClassLoader useLoader = getClassLoader() == null ? loader : getClassLoader(); 
-      return super.toClass(cc, useLoader, domain);
+      ClassLoader useLoader = getClassLoader() == null ? loader : getClassLoader();
+      localResources.put(getResourceName(cc.getName()), Boolean.TRUE);
+      System.out.println("===> Creating class " + cc.getName() + " on loader " + useLoader);
+      
+      if ("org.jboss.test.aop.scopedextender.Child_A2$Child_A2Advisor".equals(cc.getName()))
+      {
+         try
+         {
+            useLoader.loadClass("org.jboss.test.aop.scopedextender.Base_A1$Base_A1Advisor");
+            System.out.println("Got BaseAdvisor");
+         }
+         catch (ClassNotFoundException e)
+         {
+            System.out.println("Could not get BaseAdvisor");
+         }
+      }
+      
+      Class clazz = super.toClass(cc, useLoader, domain);
+      try
+      {
+         if ("org.jboss.test.aop.scopedextender.Base_A1$Base_A1Advisor".equals(cc.getName()))
+         {
+            Class clazz2 = useLoader.loadClass(cc.getName());
+            System.out.println("Found recently created class");
+         }
+      }
+      catch (ClassNotFoundException e)
+      {
+         System.out.println("Not found recently created class");
+      }
+      return clazz;
 //      lockInCache(cc);
 //      if (getClassLoader() == null || tempdir == null)
 //      {
@@ -119,20 +227,20 @@
 //      return dynClass;
    }
 
-   protected boolean isLocalResource(String resourceName)
-   {
-      if (super.isLocalResource(resourceName))
-      {
-         return true;
-      }
-      
-      File file = new File(tempdir, resourceName);
-      if (file.exists())
-      {
-         return true;
-      }
-      
-      return false;
-   }
+//   protected boolean isLocalResource(String resourceName)
+//   {
+//      if (super.isLocalResource(resourceName))
+//      {
+//         return true;
+//      }
+//      
+//      File file = new File(tempdir, resourceName);
+//      if (file.exists())
+//      {
+//         return true;
+//      }
+//      
+//      return false;
+//   }
 
 }

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPoolFactory.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPoolFactory.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5ClassPoolFactory.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -23,12 +23,14 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Map;
 
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
 import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.aop.classpool.AbstractJBossClassPoolFactory;
 import org.jboss.aop.deployment.JBossClassPool;
 import org.jboss.aop.deployment.JBossClassPoolFactory;
 import org.jboss.aop.deployment.ScopedJBossClassPool;
@@ -51,13 +53,8 @@
  * @version $Revision: 64815 $
  **/
 @Deprecated
-public class JBoss5ClassPoolFactory extends JBossClassPoolFactory implements ScopedClassPoolFactory
+public class JBoss5ClassPoolFactory extends AbstractJBossClassPoolFactory implements ScopedClassPoolFactory
 {
-   public JBoss5ClassPoolFactory(File tmpClassesDir) throws IOException
-   {
-      super(tmpClassesDir);
-   }
-   
    static ThreadLocal<Boolean> reentry = new ThreadLocal<Boolean>();    
    public ScopedClassPool create(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository)
    {
@@ -68,18 +65,6 @@
          Map props = ExtraClassPoolFactoryParameters.peekThreadProperties();
          Module module = (Module)props.get(Module.class);
             
-         File tempdir = getTempDirectory(cl);
-         
-         //Do we need a way to add urls to the repository
-         URL tmpCP;
-         try
-         {
-            tmpCP = createURLAndAddToLoader(cl, tempdir);
-         }
-         catch (IOException e)
-         {
-            throw new RuntimeException(e);
-         }
          if (module != null && module.getParentDomain() != null)
          {
             //It is scoped
@@ -87,27 +72,23 @@
             ClassLoaderDomain domain = sys.getDomain(module.getDomainName());
             boolean parentFirst = module.getMetadata().isJ2seClassLoadingCompliance();
             
-            return new ScopedJBoss5ClassPool(cl, parent, repository, tempdir, tmpCP, parentFirst, domain);
+            return new ScopedJBoss5ClassPool(cl, parent, repository, getTempURL(module), parentFirst, domain);
          }
-         return new JBoss5ClassPool(cl, parent, repository, tempdir, tmpCP);
+         return new JBoss5ClassPool(cl, parent, repository, getTempURL(module));
       }
       return new AOPClassPool(cl, parent, repository);
    }
-
-   private URL createURLAndAddToLoader(ClassLoader cl, File tempdir) throws IOException
+   
+   private URL getTempURL(Module module)
    {
-      URL tmpURL = tempdir.toURL();
-      URL tmpCP = new URL(tmpURL, "?dynamic=true");
-
-      //FIXME IS this needed
-//      RepositoryClassLoader ucl = (RepositoryClassLoader) cl;
-//
-//      // We may be undeploying.
-//      if (ucl.getLoaderRepository() != null)
-//      {
-//         ucl.addURL(tmpCP);
-//      }
-      
-      return tmpCP;
+      try
+      {
+         URL tempUrl = module.getDynamicClassRoot();
+         return new URL(tempUrl,  "/classes");
+      }
+      catch (MalformedURLException e)
+      {
+         throw new RuntimeException(e);
+      } 
    }
 }

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5Integration.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5Integration.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/JBoss5Integration.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -44,7 +44,31 @@
    /** The delegate classpool factory */
    private ScopedClassPoolFactory delegateClassPoolFactory;
    private AOPClassLoaderScopingPolicy policy;
+   private AspectManager manager = AspectManager.getTopLevelAspectManager();
+   DefaultTranslator translator = new DefaultTranslator(manager);
+
+   NewClassLoaderDomainRegistry registry;
    
+   public NewClassLoaderDomainRegistry getRegistry()
+   {
+      return registry;
+   }
+
+   public void setRegistry(NewClassLoaderDomainRegistry registry)
+   {
+      this.registry = registry;
+   }
+   
+   public void start()
+   {
+      ClassLoaderSystem.getInstance().setTranslator(translator);
+   }
+
+   public void stop()
+   {
+      ClassLoaderSystem.getInstance().setTranslator(null);
+   }
+   
    public boolean isValidClassLoader(ClassLoader loader)
    {
       if (!(loader instanceof RepositoryClassLoader)) return false;
@@ -68,7 +92,7 @@
 
    public ScopedClassPoolFactory createScopedClassPoolFactory(File tmpDir) throws Exception
    {
-      delegateClassPoolFactory = new JBoss5ClassPoolFactory(tmpDir);
+      delegateClassPoolFactory = new JBoss5ClassPoolFactory();
       return this;
    }
    
@@ -84,12 +108,11 @@
    
    public void attachDeprecatedTranslator()
    {
-      AspectManager mgr = AspectManager.instance();
-      ClassLoaderSystem.getInstance().setTranslator(mgr);
+      translator.setTranslate(true);
    }
 
    public void detachDeprecatedTranslator()
    {
-      ClassLoaderSystem.getInstance().setTranslator(null);
+      translator.setTranslate(false);
    }
 }

Deleted: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainInitializer.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainInitializer.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainInitializer.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -1,36 +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.deployers.temp;
-
-import org.jboss.aop.Domain;
-import org.jboss.deployers.plugins.classloading.Module;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public interface NewClassLoaderDomainInitializer
-{
-   Domain initScopedDomain(ClassLoader loader, Module module);
-   
-}

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainRegistry.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainRegistry.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderDomainRegistry.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -35,7 +35,7 @@
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision: 1.1 $
  */
-class NewClassLoaderDomainRegistry
+public class NewClassLoaderDomainRegistry
 {
    final static ClassLoaderDomain domain = new ClassLoaderDomain("NOT_USED_PLACEHOLDER");
    

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderScopingPolicy.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderScopingPolicy.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/NewClassLoaderScopingPolicy.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -21,14 +21,13 @@
 */ 
 package org.jboss.aop.deployers.temp;
 
-import java.lang.ref.WeakReference;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.WeakHashMap;
 
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.Domain;
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
+import org.jboss.aop.domain.NewClassLoaderDomainInitializer;
 import org.jboss.classloader.spi.ClassLoaderDomain;
 import org.jboss.classloader.spi.ClassLoaderSystem;
 import org.jboss.deployers.plugins.classloading.Module;
@@ -43,8 +42,18 @@
 public class NewClassLoaderScopingPolicy implements AOPClassLoaderScopingPolicy, NewClassLoaderDomainInitializer
 {
    static Logger log = Logger.getLogger(NewClassLoaderScopingPolicy.class);
-   NewClassLoaderDomainRegistry registry = new NewClassLoaderDomainRegistry();
+   NewClassLoaderDomainRegistry registry;
    
+   public NewClassLoaderDomainRegistry getRegistry()
+   {
+      return registry;
+   }
+
+   public void setRegistry(NewClassLoaderDomainRegistry registry)
+   {
+      this.registry = registry;
+   }
+
    public Domain initScopedDomain(ClassLoader loader, Module module)
    {
       ScopedNewClassLoaderDomain scopedDomain = (ScopedNewClassLoaderDomain)registry.getRegisteredDomain(loader);

Deleted: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderDomainIntializer.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderDomainIntializer.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderDomainIntializer.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -1,34 +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.deployers.temp;
-
-import org.jboss.aop.Domain;
-
-/**
- * 
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public interface RepositoryClassLoaderDomainIntializer
-{
-   Domain initScopedDomain(ClassLoader loader);
-}

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderScopingPolicy.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderScopingPolicy.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/RepositoryClassLoaderScopingPolicy.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -29,6 +29,7 @@
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
 import org.jboss.aop.classpool.AOPClassPoolRepository;
 import org.jboss.aop.deployment.ScopedRepositoryClassLoaderHelper;
+import org.jboss.aop.domain.RepositoryClassLoaderDomainIntializer;
 import org.jboss.aop.domain.ScopedRepositoryClassLoaderDomain;
 import org.jboss.logging.Logger;
 import org.jboss.mx.loading.HeirarchicalLoaderRepository3;

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/ScopedJBoss5ClassPool.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/ScopedJBoss5ClassPool.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployers/temp/ScopedJBoss5ClassPool.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -36,8 +36,9 @@
 import org.jboss.aop.classpool.AOPClassPool;
 import org.jboss.aop.classpool.AOPClassPoolRepository;
 import org.jboss.classloader.spi.ClassLoaderDomain;
+import org.jboss.classloader.spi.Loader;
 import org.jboss.classloader.spi.base.BaseClassLoader;
-import org.jboss.mx.loading.RepositoryClassLoader;
+import org.jboss.logging.Logger;
 
 /**
  * 
@@ -46,91 +47,49 @@
  */
 public class ScopedJBoss5ClassPool extends JBoss5ClassPool
 {
-//   final static LoaderRepositoryUrlUtil LOADER_REPOSITORY_UTIL = new LoaderRepositoryUrlUtil();
-//   
-//   WeakReference repository = null;
-//   UrlInfo urlInfo;
-   ThreadLocal lastPool = new ThreadLocal();
+   Logger log = Logger.getLogger(ScopedJBoss5ClassPool.class);
+   
+   ThreadLocal<ClassPool> lastPool = new ThreadLocal<ClassPool>();
    WeakReference<ClassLoaderDomain> domainRef;
 
-   public ScopedJBoss5ClassPool(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository, File tmp,
+   public ScopedJBoss5ClassPool(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository, 
          URL tmpURL, boolean parentFirst, ClassLoaderDomain domain)
    {
-      super(cl, src, repository, tmp, tmpURL);
+      super(cl, src, repository, tmpURL);
       super.childFirstLookup = !parentFirst;
-      this.domainRef = new WeakReference(domain);
+      this.domainRef = new WeakReference<ClassLoaderDomain>(domain);
    }
 
-   
-
-//   public ScopedJBossClassPool(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository, File tmp, URL tmpURL)
-//   {
-//      super(cl, src, repository, tmp, tmpURL);
-//      
-//      boolean parentFirst = false;
-//      LoaderRepository loaderRepository = null;
-//      ClassLoader prnt = cl;
-//      while (prnt != null)
-//      {
-//         if (prnt instanceof RepositoryClassLoader)
-//         {
-//            loaderRepository = ((RepositoryClassLoader)prnt).getLoaderRepository();
-//            if (loaderRepository instanceof HeirarchicalLoaderRepository3)
-//            {
-//               parentFirst = ((HeirarchicalLoaderRepository3)loaderRepository).getUseParentFirst();
-//            }
-//            break;
-//         }
-//         prnt = SecurityActions.getParent(cl);
-//      }
-//      
-//      super.childFirstLookup = !parentFirst;
-//   }
-   
-
-//   private HeirarchicalLoaderRepository3 getRepository()
-//   {
-//      ClassLoader cl = getClassLoader0();
-//      if (cl != null)
-//      {
-//         return (HeirarchicalLoaderRepository3)((RepositoryClassLoader)cl).getLoaderRepository();
-//      }
-//      return null;
-//   }
-
    private URL getResourceUrlForClass(String resourcename)
    {
-//      HeirarchicalLoaderRepository3 repo = getRepository();
-//      return repo.getResource(resourcename, super.getClassLoader());
       ClassLoaderDomain domain = domainRef.get();
       return domain.getResource(resourcename);
    }
-   
-   private boolean isMine(URL url)
+
+   private boolean isMine(URL myURL, String resourceName)
    {
-//      HeirarchicalLoaderRepository3 repo = getRepository();
-//      if (repo != null)
-//      {
-//         //The URL of the class loaded with my scoped classloader
-//         if (url != null)
-//         {
-//            urlInfo = LOADER_REPOSITORY_UTIL.getURLInfo(getRepository(), urlInfo);
-//            
-//            URL[] myUrls = urlInfo.getLocalUrls();
-//            String resource = url.toString();
-//            for (int i = 0 ; i < myUrls.length ; i++)
-//            {
-//               if (resource.indexOf(myUrls[i].toString()) >= 0)
-//               {
-//                  return true;
-//               }
-//            }
-//            return false;
-//         }
-//      }
-      return true;
+      if (myURL == null)
+      {
+         return false;
+      }
+      
+      ClassLoaderDomain domain = domainRef.get();
+      Loader parent = domain.getParent();
+      URL parentURL = parent.getResource(resourceName);
+      
+      if (parentURL == null)
+      {
+         return true;
+      }
+      
+      if (!myURL.equals(parentURL))
+      {
+         return true;
+      }
+      
+      return false;
    }
-
+   
    public CtClass getCached(String classname)
    {
       if (classname == null)
@@ -151,9 +110,8 @@
       //Is this from the scoped classloader itself of from the parent?
       String resourcename = getResourceName(classname);
       URL url = getResourceUrlForClass(resourcename);
-      boolean isMine = isMine(url);
       
-      if (isMine)
+      if (isMine(url, resourcename))
       {
          if (super.childFirstLookup)
          {
@@ -174,11 +132,15 @@
          }
          return super.getCached(classname);
       }
+      else if (url == null)
+      {
+         return super.getCached(classname);
+      }
       
 
       try
       {
-         ClassPool pool = getCorrectPoolForResource(classname, url);
+         ClassPool pool = getCorrectPoolForResource(classname, resourcename, url);
          if (pool != lastPool.get())
          {
             lastPool.set(pool);
@@ -200,14 +162,49 @@
       return null;
    }
    
-   private ClassPool getCorrectPoolForResource(String classname, URL url)
+   private ClassPool getCorrectPoolForResource(String classname, String resourceName, URL url)
    {
+      boolean trace = log.isTraceEnabled();
       synchronized(AspectManager.getRegisteredCLs())
       {
          //JBoss 5 has an extra NoAnnotationURLCLassLoader that is not on the default path, make sure that that is checked at the end
          //FIXME This needs revisiting/removing once the 
-         ArrayList noAnnotationURLClassLoaderPools = null;
-         String resource = url.toString();
+         ArrayList<ClassPool> noAnnotationURLClassLoaderPools = null;
+         
+//         //EXTRA DEBUG STUFF
+//         if (classname.equals("org.jboss.test.aop.scopedextender.Base_A1"))
+//         {
+//            System.out.println("********** Looking for proper pool for Base_A1 - this pool " + this);
+//            boolean found = false;
+//            for(Iterator it = AspectManager.getRegisteredCLs().values().iterator() ; it.hasNext() ; )
+//            {
+//               AOPClassPool candidate = (AOPClassPool)it.next();
+//               if (candidate.isUnloadedClassLoader())
+//               {
+//                  System.out.println("Found something unloaded " + candidate);
+//                  continue;
+//               }
+//
+//               if (candidate.getClassLoader() instanceof BaseClassLoader)
+//               {
+//                  BaseClassLoader bcl = (BaseClassLoader)candidate.getClassLoader();
+//                  URL foundUrl = bcl.getResourceLocally(resourceName);
+//                  if (foundUrl != null)
+//                  {
+//                     System.out.println("=============> Found in " + bcl);
+//                     if (url.equals(foundUrl))
+//                     {
+//                        if (!found)
+//                        {
+//                           System.out.println("^^^ The one returned ^^^");
+//                           found = true;
+//                        }
+//                     }
+//                  }
+//               }
+//            }
+//         }         
+         
          for(Iterator it = AspectManager.getRegisteredCLs().values().iterator() ; it.hasNext() ; )
          {
             AOPClassPool candidate = (AOPClassPool)it.next();
@@ -220,12 +217,15 @@
             if (candidate.getClassLoader() instanceof BaseClassLoader)
             {
                //Sometimes the ClassLoader is a proxy for MBeanProxyExt?!
-               RepositoryClassLoader rcl = (RepositoryClassLoader)candidate.getClassLoader();
-               URL[] urls = rcl.getClasspath();
-               
-               for (int i = 0 ; i < urls.length ; i++)
+               BaseClassLoader bcl = (BaseClassLoader)candidate.getClassLoader();
+               URL foundUrl = bcl.getResourceLocally(resourceName);
+               if (trace)
                {
-                  if (resource.indexOf(urls[i].getFile()) >= 0)
+                  log.trace("Candidate classloader " + bcl + " has local resource " + foundUrl);
+               }
+               if (foundUrl != null)
+               {
+                  if (url.equals(foundUrl))
                   {
                      return candidate;
                   }
@@ -236,7 +236,7 @@
             {
                if (noAnnotationURLClassLoaderPools == null)
                {
-                  noAnnotationURLClassLoaderPools = new ArrayList(); 
+                  noAnnotationURLClassLoaderPools = new ArrayList<ClassPool>(); 
                }
                noAnnotationURLClassLoaderPools.add(candidate);
             }
@@ -245,10 +245,8 @@
          //FIXME Remove once we have the JBoss 5 version of pool
          if (noAnnotationURLClassLoaderPools != null)
          {
-            for (Iterator it = noAnnotationURLClassLoaderPools.iterator() ; it.hasNext() ; )
+            for (ClassPool pool : noAnnotationURLClassLoaderPools)
             {
-               ClassPool pool = (ClassPool)it.next();
-               
                try
                {
                   pool.get(classname);

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -28,6 +28,7 @@
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
 import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.aop.classpool.AbstractJBossClassPoolFactory;
 import org.jboss.mx.loading.RepositoryClassLoader;
 import javassist.ClassPool;
 import javassist.scopedpool.ScopedClassPool;
@@ -43,7 +44,7 @@
  * @version $Revision$
  **/
 @Deprecated
-public class JBossClassPoolFactory implements ScopedClassPoolFactory
+public class JBossClassPoolFactory extends AbstractJBossClassPoolFactory implements ScopedClassPoolFactory
 {
    protected File tmpClassesDir;
 
@@ -78,18 +79,6 @@
       return new AOPClassPool(cl, parent, repository);
    }
 
-   protected ClassPool getCreateParentClassPools(final ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository)
-   {
-      //Make sure that we get classpools for all the parent classloaders
-      ClassLoader parent = SecurityActions.getParent(cl);
-
-      if (parent != null)
-      {
-         return repository.registerClassLoader(parent);
-      }
-      return src;
-   }
-   
    protected File getTempDirectory(ClassLoader cl)
    {
       File tempdir = null;
@@ -116,11 +105,6 @@
       return tempdir;
    }
 
-   public ScopedClassPool create(ClassPool src, ScopedClassPoolRepository repository)
-   {
-      return new TempJBossClassPool(src, repository);
-   }
-
    public File createTempDir(ClassLoader cl) throws IOException
    {
       File tempdir = File.createTempFile("ucl", "", tmpClassesDir);

Added: projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/NewClassLoaderDomainInitializer.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/NewClassLoaderDomainInitializer.java	                        (rev 0)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/NewClassLoaderDomainInitializer.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -0,0 +1,36 @@
+/*
+* 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.domain;
+
+import org.jboss.aop.Domain;
+import org.jboss.deployers.plugins.classloading.Module;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public interface NewClassLoaderDomainInitializer
+{
+   Domain initScopedDomain(ClassLoader loader, Module module);
+   
+}

Added: projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/RepositoryClassLoaderDomainIntializer.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/RepositoryClassLoaderDomainIntializer.java	                        (rev 0)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/RepositoryClassLoaderDomainIntializer.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -0,0 +1,34 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.aop.domain;
+
+import org.jboss.aop.Domain;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public interface RepositoryClassLoaderDomainIntializer
+{
+   Domain initScopedDomain(ClassLoader loader);
+}

Modified: projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/ScopedRepositoryClassLoaderDomain.java
===================================================================
--- projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/ScopedRepositoryClassLoaderDomain.java	2007-10-19 12:39:44 UTC (rev 66283)
+++ projects/aop/trunk/asintegration/src/main/org/jboss/aop/domain/ScopedRepositoryClassLoaderDomain.java	2007-10-19 13:23:18 UTC (rev 66284)
@@ -37,7 +37,6 @@
  * @author adrian at jboss.org
  * @version $Revision: 1.1 $
  */
- at Deprecated
 public class ScopedRepositoryClassLoaderDomain extends ScopedClassLoaderDomain
 {
    public ScopedRepositoryClassLoaderDomain(ClassLoader loader, String name, boolean parentDelegation, AspectManager manager, boolean parentFirst)




More information about the jboss-cvs-commits mailing list