[jboss-cvs] JBossAS SVN: r62041 - in projects/aop/trunk/aop/src/main/org/jboss/aop: instrument and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 3 11:26:28 EDT 2007


Author: kabir.khan at jboss.com
Date: 2007-04-03 11:26:27 -0400 (Tue, 03 Apr 2007)
New Revision: 62041

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
Log:
[JBAOP-378] Some code it is not necessary to generate can live in the class advisor instead

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java	2007-04-03 15:05:23 UTC (rev 62040)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java	2007-04-03 15:26:27 UTC (rev 62041)
@@ -87,6 +87,11 @@
 
    boolean initialisedSuperClasses; 
 
+   /**
+    * If protected, the generated subclasses cannot access it
+    */
+   public int version;
+
    protected GeneratedClassAdvisor(String classname)
    {
       //Generated advisors will not pass in an aspectmanager
@@ -114,6 +119,22 @@
       manager.initialiseClassAdvisor(clazz, this);
    }
    
+   @Override
+   protected void rebuildInterceptors()
+   {
+      version++;
+      super.rebuildInterceptors();
+   }
+   
+   /**
+    * Callback for instance advisors to rebuild their interceptors when their
+    * version number is out of sync
+    */
+   protected void internalRebuildInterceptors()
+   {
+      super.rebuildInterceptors();
+   }
+   
    protected void handleOverriddenMethods(AdviceBinding binding)
    {
       if (overriddenMethods != null && overriddenMethods.size() > 0)

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2007-04-03 15:05:23 UTC (rev 62040)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2007-04-03 15:26:27 UTC (rev 62041)
@@ -74,7 +74,6 @@
    public static final String GET_CLASS_ADVISOR = "_getClassAdvisor";
 
    private static final String DECLARING_CLASS = "this.getClass().getDeclaringClass()";
-   private static final String CONTAINER_CLASS = "this.getClass().getDeclaringClass()";
 
 
    private static final CtClass[] EMPTY_EXCEPTIONS = new CtClass[0];
@@ -211,10 +210,6 @@
       final CtClass untransformable = getClassPool().get("org.jboss.aop.instrument.Untransformable");
       genadvisor.addInterface(untransformable);
 
-      //Add version field
-      CtField version = new CtField(CtClass.intType, VERSION, genadvisor);
-      genadvisor.addField(version);
-
       //Add domain
       CtField domain = new CtField(forName("org.jboss.aop.Domain"), DOMAIN, genadvisor);
       domain.setModifiers(Modifier.PROTECTED);
@@ -222,30 +217,6 @@
       CtMethod getter = CtNewMethod.getter("getDomain", domain);
       genadvisor.addMethod(getter);
 
-      if (isBaseClass(clazz))
-      {
-         CtMethod rebuildInterceptors = CtNewMethod.make(
-               Modifier.PROTECTED,
-               CtClass.voidType,
-               "rebuildInterceptors",
-               EMPTY_SIG,
-               EMPTY_EXCEPTIONS,
-               "{" + VERSION + "++;super.rebuildInterceptors();}",
-               genadvisor);
-         genadvisor.addMethod(rebuildInterceptors);
-
-         //Will be called by instance advisors when version ids are out of sync
-         CtMethod internalRebuildInterceptors = CtNewMethod.make(
-               Modifier.PROTECTED,
-               CtClass.voidType,
-               "internalRebuildInterceptors",
-               EMPTY_SIG,
-               EMPTY_EXCEPTIONS,
-               "{super.rebuildInterceptors();}",
-               genadvisor);
-         genadvisor.addMethod(internalRebuildInterceptors);
-      }
-
       CtMethod initialiseMethods = CtNewMethod.make(
             Modifier.PROTECTED,
             CtClass.voidType,




More information about the jboss-cvs-commits mailing list