[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