[jboss-cvs] JBossAS SVN: r79750 - trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Oct 20 10:58:57 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-10-20 10:58:56 -0400 (Mon, 20 Oct 2008)
New Revision: 79750

Modified:
   trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
Log:
[JBAOP-6062] Reapply fix following rollback

Modified: trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2008-10-20 14:58:52 UTC (rev 79749)
+++ trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2008-10-20 14:58:56 UTC (rev 79750)
@@ -23,9 +23,6 @@
 
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.Domain;
-import org.jboss.classloader.spi.ClassLoaderDomain;
-import org.jboss.classloader.spi.ClassLoaderSystem;
-import org.jboss.classloading.spi.dependency.Module;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
 import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
@@ -63,11 +60,9 @@
    {
       //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
-      //Linking a standalone -aop.xml file onto a scoped deployment is not possible at the moment
-      VFSClassLoaderScopingPolicy policy = (VFSClassLoaderScopingPolicy)AspectManager.getClassLoaderScopingPolicy();
 
       AspectManager manager = aspectManager;
-      Domain domain = initializeDomain(policy, unit);
+      Domain domain = AOPClassLoaderInitializer.initializeForUnit(unit);
       if (domain != null)
       {
          manager = domain;
@@ -79,82 +74,9 @@
    @Override
    public void internalUndeploy(DeploymentUnit unit)
    {
-      if (unit.getTopLevel() == unit)
-      {
-         aspectManager.unregisterClassLoader(unit.getClassLoader());
-      }
+      AOPClassLoaderInitializer.unregisterLoaders(aspectManager, unit);
    }
+   
+   
 
-   private Domain initializeDomain(VFSClassLoaderScopingPolicy policy, DeploymentUnit unit)
-   {
-      Module module = unit.getTopLevel().getAttachment(Module.class);
-      ClassLoader loader = unit.getClassLoader();
-      ClassLoader topLoader = unit.getTopLevel().getClassLoader();
-      
-//      System.out.println("====> DEPLOYMENT:    " + unit);
-//      System.out.println("====> Loader:        " + loader);
-//      System.out.println("====> Top Loader:    " + topLoader);
-//      System.out.println("====> Loader Parent: " + loader.getParent());
-//      
-//      
-      VFSClassLoaderDomainRegistry registry = policy.getRegistry();
-      
-      boolean isWar = unit.isAttachmentPresent("org.jboss.metadata.web.jboss.JBossWebMetaData");
-
-      if (isWar && loader != topLoader)
-      {
-         ScopedVFSClassLoaderDomain scopedDomain = (ScopedVFSClassLoaderDomain)registry.getRegisteredDomain(loader);
-         if (scopedDomain == null) 
-         {
-            scopedDomain = (ScopedVFSClassLoaderDomain)registry.getRegisteredDomain(topLoader);
-         }
-         
-         if (scopedDomain != null)
-         {
-            registry.initMapsForLoader(loader, module, scopedDomain);
-         }
-
-         policy.registerClassLoader(module, isWar, loader);
-         
-         return scopedDomain;
-      }
-      else
-      {
-         ScopedVFSClassLoaderDomain scopedDomain = (ScopedVFSClassLoaderDomain)registry.getRegisteredDomain(loader);
-         if (scopedDomain == null)
-         {
-            if (!module.getDeterminedDomainName().equals(ClassLoaderSystem.DEFAULT_DOMAIN_NAME))
-            {
-               ClassLoaderSystem system = ClassLoaderSystem.getInstance();
-               String domainName = module.getDeterminedDomainName();
-               ClassLoaderDomain domain = system.getDomain(domainName);
-      
-               boolean parentDelegation = module.isJ2seClassLoadingCompliance();
-               String name = String.valueOf(System.identityHashCode(loader));
-               
-               scopedDomain = new ScopedVFSClassLoaderDomain(loader, name, parentDelegation, AspectManager.getTopLevelAspectManager(), false, domain, registry);
-            }
-      
-            registry.initMapsForLoader(loader, module, scopedDomain);
-            
-            policy.registerClassLoader(module, isWar, loader);
-         }
-         return scopedDomain;
-      }      
-   }
-
-//   private void registerParentLoaders(DeploymentUnit unit)
-//   {
-//      ClassLoader childLoader = unit.getClassLoader();
-//      DeploymentUnit parent = unit.getParent();
-//      while (parent != null)
-//      {
-//         ClassLoader parentLoader = parent.getClassLoader();
-//         if (parentLoader != childLoader)
-//         {
-//            
-//         }
-//         parent = unit.getParent();
-//      }
-//   }
 }




More information about the jboss-cvs-commits mailing list