[jboss-cvs] JBossAS SVN: r78640 - in trunk: server/src/etc/conf/default and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Sep 17 07:00:35 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-09-17 07:00:35 -0400 (Wed, 17 Sep 2008)
New Revision: 78640

Modified:
   trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
   trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AspectDeployer.java
   trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/JBoss5Integration.java
   trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/VFSClassLoaderScopingPolicy.java
   trunk/server/src/etc/conf/default/aop.xml
   trunk/server/src/etc/conf/default/deployers.xml
Log:
[JBAS-5969] Remove dependency of AOP on VFSDeploymentUnit

Modified: trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2008-09-17 09:15:11 UTC (rev 78639)
+++ trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AOPClassLoaderDeployer.java	2008-09-17 11:00:35 UTC (rev 78640)
@@ -23,8 +23,9 @@
 
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.Domain;
-import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
-import org.jboss.aop.domain.DomainInitializer;
+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.vfs.spi.deployer.AbstractVFSRealDeployer;
@@ -62,22 +63,10 @@
       //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
-      AOPClassLoaderScopingPolicy policy = AspectManager.getClassLoaderScopingPolicy();
+      VFSClassLoaderScopingPolicy policy = (VFSClassLoaderScopingPolicy)AspectManager.getClassLoaderScopingPolicy();
 
       AspectManager manager = aspectManager;
-      if (policy != null)
-      {
-         if (policy instanceof DomainInitializer == false)
-         {
-            throw new RuntimeException(policy + " must implement DomainInitializer");
-         }
-         DomainInitializer initializer = (DomainInitializer)policy;
-         Domain domain  = initializer.initializeDomain(unit);
-         if (domain != null)
-         {
-            manager = domain;
-         }
-      }
+      manager = initializeDomain(policy, unit);
       
       unit.getTransientManagedObjects().addAttachment(AspectManager.class, manager);
    }
@@ -90,4 +79,56 @@
          aspectManager.unregisterClassLoader(unit.getClassLoader());
       }
    }
+
+   private Domain initializeDomain(VFSClassLoaderScopingPolicy policy, VFSDeploymentUnit unit)
+   {
+      Module module = unit.getTopLevel().getAttachment(Module.class);
+      ClassLoader loader = unit.getClassLoader();
+      ClassLoader topLoader = unit.getTopLevel().getClassLoader();
+      
+      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;
+      }      
+   }
 }

Modified: trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AspectDeployer.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AspectDeployer.java	2008-09-17 09:15:11 UTC (rev 78639)
+++ trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/AspectDeployer.java	2008-09-17 11:00:35 UTC (rev 78640)
@@ -35,7 +35,9 @@
 import org.jboss.aop.AspectXmlLoader;
 import org.jboss.aop.Domain;
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
-import org.jboss.aop.domain.DomainInitializer;
+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.vfs.spi.deployer.AbstractVFSRealDeployer;
@@ -355,19 +357,17 @@
       //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
-      AOPClassLoaderScopingPolicy policy = AspectManager.getClassLoaderScopingPolicy();
-
-      Domain domain = null;
-      if (policy != null)
+      VFSClassLoaderScopingPolicy policy = null;
+      try
       {
-         if (policy instanceof DomainInitializer == false)
-         {
-            throw new RuntimeException(policy + " must implement DomainInitializer");
-         }
-         DomainInitializer initializer = (DomainInitializer)policy;
-         domain = initializer.initializeDomain(unit); 
+         policy = (VFSClassLoaderScopingPolicy)AspectManager.getClassLoaderScopingPolicy();
       }
+      catch(ClassCastException e)
+      {
+         throw new RuntimeException("Wrong policy configured " + policy);
+      }
       
+      Domain domain = initializeDomain(policy, unit);
       if (domain != null)
       {
          return domain;
@@ -391,6 +391,55 @@
       }
    }
 
-   
-   
+   private Domain initializeDomain(VFSClassLoaderScopingPolicy policy, VFSDeploymentUnit unit)
+   {
+      Module module = unit.getTopLevel().getAttachment(Module.class);
+      ClassLoader loader = unit.getClassLoader();
+      ClassLoader topLoader = unit.getTopLevel().getClassLoader();
+      
+      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;
+      }      
+   }
 }

Modified: trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/JBoss5Integration.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/JBoss5Integration.java	2008-09-17 09:15:11 UTC (rev 78639)
+++ trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/JBoss5Integration.java	2008-09-17 11:00:35 UTC (rev 78640)
@@ -47,7 +47,7 @@
 {
    /** The delegate classpool factory */
    private ScopedClassPoolFactory delegateClassPoolFactory;
-   private AOPClassLoaderScopingPolicy policy;
+   private AOPClassLoaderScopingPolicy policy = new VFSClassLoaderScopingPolicy();
    private AspectManager manager = AspectManager.getTopLevelAspectManager();
    DefaultTranslator translator = new DefaultTranslator(manager);
    
@@ -106,16 +106,6 @@
       return false;
    }
 
-   public void setScopingPolicy(AOPClassLoaderScopingPolicy policy)
-   {
-      this.policy = policy;
-   }
-   
-   public AOPClassLoaderScopingPolicy getScopingPolicy()
-   {
-      return policy;
-   }
-   
    public AOPClassLoaderScopingPolicy createAOPClassLoaderScopingPolicy()
    {
       return policy;

Modified: trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/VFSClassLoaderScopingPolicy.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/VFSClassLoaderScopingPolicy.java	2008-09-17 09:15:11 UTC (rev 78639)
+++ trunk/aspects/src/main/org/jboss/aop/asintegration/jboss5/VFSClassLoaderScopingPolicy.java	2008-09-17 11:00:35 UTC (rev 78640)
@@ -28,11 +28,7 @@
 import org.jboss.aop.Domain;
 import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
 import org.jboss.aop.classpool.ExtraClassPoolFactoryParameters;
-import org.jboss.aop.domain.DomainInitializer;
-import org.jboss.classloader.spi.ClassLoaderDomain;
-import org.jboss.classloader.spi.ClassLoaderSystem;
 import org.jboss.classloading.spi.dependency.Module;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.logging.Logger;
 
 /**
@@ -40,62 +36,17 @@
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision: 1.1 $
  */
-public class VFSClassLoaderScopingPolicy implements AOPClassLoaderScopingPolicy, DomainInitializer
+public class VFSClassLoaderScopingPolicy implements AOPClassLoaderScopingPolicy
 {
    static Logger log = Logger.getLogger(VFSClassLoaderScopingPolicy.class);
    VFSClassLoaderDomainRegistry registry = new VFSClassLoaderDomainRegistry();
    
-   public Domain initializeDomain(VFSDeploymentUnit unit)
+   VFSClassLoaderDomainRegistry getRegistry()
    {
-      Module module = unit.getTopLevel().getAttachment(Module.class);
-      ClassLoader loader = unit.getClassLoader();
-      ClassLoader topLoader = unit.getTopLevel().getClassLoader();
-      
-      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);
-         }
-
-         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);
-            
-            registerClassLoader(module, isWar, loader);
-         }
-         return scopedDomain;
-      }      
+      return registry;
    }
 
-   private void registerClassLoader(Module module, boolean isWar, ClassLoader loader)
+   void registerClassLoader(Module module, boolean isWar, ClassLoader loader)
    {
       //Need to pass some data through to the classpoolfactory here
       Map properties = new HashMap();

Modified: trunk/server/src/etc/conf/default/aop.xml
===================================================================
--- trunk/server/src/etc/conf/default/aop.xml	2008-09-17 09:15:11 UTC (rev 78639)
+++ trunk/server/src/etc/conf/default/aop.xml	2008-09-17 11:00:35 UTC (rev 78640)
@@ -14,10 +14,7 @@
    </classloader>
 
    <!-- Integration -->
-   <bean name="AOPClassLoaderScopingPolicy" class="org.jboss.aop.asintegration.jboss5.VFSClassLoaderScopingPolicy"/>
-   <bean name="AOPJBossIntegration" class="org.jboss.aop.asintegration.jboss5.JBoss5Integration">
-      <property name="scopingPolicy"><inject bean="AOPClassLoaderScopingPolicy"/></property>
-   </bean>
+   <bean name="AOPJBossIntegration" class="org.jboss.aop.asintegration.jboss5.JBoss5Integration"/>
 
    <!-- For use once the aop-mc-int metadata stuff goes live 
    <bean name="DefaultAspectManager" class="org.jboss.aop.microcontainer.beans.metadata.DefaultAspectManager">

Modified: trunk/server/src/etc/conf/default/deployers.xml
===================================================================
--- trunk/server/src/etc/conf/default/deployers.xml	2008-09-17 09:15:11 UTC (rev 78639)
+++ trunk/server/src/etc/conf/default/deployers.xml	2008-09-17 11:00:35 UTC (rev 78640)
@@ -115,7 +115,7 @@
 
     <!-- AOP deployment -->
     <bean name="AspectAppParsingDeployer" class="org.jboss.aop.asintegration.jboss5.AspectAppParsingDeployer"/>
-    <bean name="AspectDeployer" class="org.jboss.aop.deployers.AspectDeployer">
+    <bean name="AspectDeployer" class="org.jboss.aop.asintegration.jboss5.AspectDeployer">
        <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
    </bean>
 
@@ -141,6 +141,10 @@
       <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
       <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
    </bean>
+   <bean name="BeansDeploymentAopMetaDataDeployer" class="org.jboss.aop.asintegration.jboss5.BeansDeploymentAopMetaDataDeployer">
+      <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
+      <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
+   </bean>
    -->
 
    <!-- POJO Deployment -->




More information about the jboss-cvs-commits mailing list