[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