[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