[jboss-cvs] JBossAS SVN: r62042 - 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:56:46 EDT 2007


Author: kabir.khan at jboss.com
Date: 2007-04-03 11:56:46 -0400 (Tue, 03 Apr 2007)
New Revision: 62042

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] Move more code that it is not necessary to generate into the generated class advisor base class 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:26:27 UTC (rev 62041)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java	2007-04-03 15:56:46 UTC (rev 62042)
@@ -134,6 +134,29 @@
    {
       super.rebuildInterceptors();
    }
+
+   /**
+    * Callback for generated instance advisors to check if the version has been updates 
+    */
+   protected void checkVersion()
+   {
+      GeneratedClassAdvisor classAdvisor = getParentAdvisor();
+      if (classAdvisor != null)
+      {
+         if (classAdvisor.version != this.version)
+         {
+            doRebuildForInstance();
+         }
+      }
+   }
+
+   /**
+    * Will be overridden by generated instanceadvisor classes and perform a rebuild
+    */
+   protected void doRebuildForInstance()
+   {
+      
+   }
    
    protected void handleOverriddenMethods(AdviceBinding binding)
    {

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:26:27 UTC (rev 62041)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2007-04-03 15:56:46 UTC (rev 62042)
@@ -72,6 +72,7 @@
    private static final String INITIALISE_CONSTRUCTORS = "initialiseConstructors";
    private static final String INITIALISE_METHODS = "initialiseMethods";
    public static final String GET_CLASS_ADVISOR = "_getClassAdvisor";
+   private static final String DO_REBUILD_FOR_INSTANCE = "doRebuildForInstance";
 
    private static final String DECLARING_CLASS = "this.getClass().getDeclaringClass()";
 
@@ -319,27 +320,23 @@
 
       implementInstanceAdvisorMethods();
 
-      String cvBody =
+      String drfiBody =
          "{" +
-         "   if (classAdvisor." + VERSION + " != super." + VERSION + ") " +
-         "   { " +
-         "      super." + VERSION + " = classAdvisor." + VERSION +";" +
-         "      internalRebuildInterceptors(); " +
-         "      if (" + INSTANCE_ADVISOR_MIXIN + ".hasInterceptors())" +
-         "      {" +
-         "          " + ADVICES_UPDATED + "();" +
-         "      }" +
-         "   } " +
+         "   internalRebuildInterceptors(); " +
+         "   if (" + INSTANCE_ADVISOR_MIXIN + ".hasInterceptors())" +
+         "   {" +
+         "       " + ADVICES_UPDATED + "();" +
+         "   }" +
          "}";
-      CtMethod checkVersion = CtNewMethod.make(
+      CtMethod doRebuildForInstance = CtNewMethod.make(
             Modifier.PROTECTED,
             CtClass.voidType,
-            CHECK_VERSION,
+            DO_REBUILD_FOR_INSTANCE,
             EMPTY_SIG,
             EMPTY_EXCEPTIONS,
-            cvBody,
+            drfiBody,
             genInstanceAdvisor);
-      genInstanceAdvisor.addMethod(checkVersion);
+      genInstanceAdvisor.addMethod(doRebuildForInstance);
 
       String body =
          "{" +




More information about the jboss-cvs-commits mailing list