[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