[jboss-cvs] JBossAS SVN: r63263 - in projects/aop/trunk/aop/src/main/org/jboss/aop: advice and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 30 17:27:17 EDT 2007
Author: kabir.khan at jboss.com
Date: 2007-05-30 17:27:17 -0400 (Wed, 30 May 2007)
New Revision: 63263
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AspectDefinition.java
Log:
Fix ScopedAttachUnitTestCase when running on JBoss 4.0.x (we still need to implement ScopedAttach on jboss 5). Make sure that PER_CLASS_JOINPOINT aspects are removed from the (GeneratedClass)Advisor when undeployed, so that when redeploying the aspect we use the new classloader
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java 2007-05-30 20:57:20 UTC (rev 63262)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java 2007-05-30 21:27:17 UTC (rev 63263)
@@ -881,8 +881,14 @@
{
joinpoints.put(joinpoint, def.getFactory().createPerJoinpoint(this, joinpoint));
}
+ def.registerAdvisor(this);
}
+ public synchronized void removePerClassJoinpointAspect(AspectDefinition def)
+ {
+ perClassJoinpointAspectDefinitions.remove(def);
+ }
+
/**
* @see Advisor#chainOverridingForInheritedMethods()
*/
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AspectDefinition.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AspectDefinition.java 2007-05-30 20:57:20 UTC (rev 63262)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AspectDefinition.java 2007-05-30 21:27:17 UTC (rev 63263)
@@ -26,6 +26,7 @@
import java.util.WeakHashMap;
import org.jboss.aop.Advisor;
+import org.jboss.aop.GeneratedClassAdvisor;
/**
* Contains definition of aspect or interceptor
@@ -86,6 +87,14 @@
{
advisor.removePerClassAspect(this);
}
+ else if (scope == Scope.PER_CLASS_JOINPOINT)
+ {
+ if (advisor instanceof GeneratedClassAdvisor)
+ {
+ //GeneratedClassAdvisors handle PER_CLASS_JOINPOINT aspects slightly differently
+ ((GeneratedClassAdvisor)advisor).removePerClassJoinpointAspect(this);
+ }
+ }
}
}
}
More information about the jboss-cvs-commits
mailing list