[jboss-cvs] JBossAS SVN: r63283 - in projects/aop/trunk/aop/src: main/org/jboss/aop/advice/annotation and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 31 15:30:59 EDT 2007
Author: flavia.rainone at jboss.com
Date: 2007-05-31 15:30:59 -0400 (Thu, 31 May 2007)
New Revision: 63283
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AdviceMethodProperties.java
projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/AdviceMethodFactory.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByConJoinPointGenerator.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByMethodJoinPointGenerator.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorJoinPointGenerator.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java
Log:
[JBAOP-408] Problem solved.
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AdviceMethodProperties.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AdviceMethodProperties.java 2007-05-31 19:27:18 UTC (rev 63282)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/AdviceMethodProperties.java 2007-05-31 19:30:59 UTC (rev 63283)
@@ -45,7 +45,7 @@
public static final CtClass[] EMPTY_PARAMETERS = {};
- public static enum OptionalParameters {NONE, TARGET, CALLER, TARGET_CALLER}
+ public static enum OptionalParameters {TARGET, TARGET_CALLER}
//find properties
private Class aspectClass;
@@ -72,7 +72,9 @@
Class invocationType,
Class joinpointReturnType,
Class[] joinpointParameters,
- Class[] joinpointExceptions)
+ Class[] joinpointExceptions,
+ Class target,
+ boolean targetAvailable)
{
this.aspectClass = aspectClass;
this.adviceName = adviceName;
@@ -81,30 +83,14 @@
this.joinpointReturnType = joinpointReturnType;
this.joinpointParameters = joinpointParameters;
this.joinpointExceptions = joinpointExceptions;
- this.optionalParameters = OptionalParameters.NONE;
- }
-
- public AdviceMethodProperties(
- Class aspectClass,
- String adviceName,
- Class infoType,
- Class invocationType,
- Class joinpointReturnType,
- Class[] joinpointParameters,
- Class[] joinpointExceptions,
- Class target,
- boolean targetAvailable)
- {
- this(aspectClass, adviceName, infoType, invocationType, joinpointReturnType,
- joinpointParameters, joinpointExceptions);
this.target = target;
this.targetAvailable = targetAvailable;
this.optionalParameters = OptionalParameters.TARGET;
}
public AdviceMethodProperties(
- Class aspectClass,
- String adviceName,
+ Class aspectClass,
+ String adviceName,
Class infoType,
Class invocationType,
Class joinpointReturnType,
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/AdviceMethodFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/AdviceMethodFactory.java 2007-05-31 19:27:18 UTC (rev 63282)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/AdviceMethodFactory.java 2007-05-31 19:30:59 UTC (rev 63283)
@@ -175,20 +175,11 @@
static final short NOT_ASSIGNABLE_DEGREE = Short.MAX_VALUE;
static final short MAX_DEGREE = NOT_ASSIGNABLE_DEGREE - 1;
- static final ParameterAnnotationRule[] FULLY_STATIC =
- new ParameterAnnotationRule[] {ParameterAnnotationRule.ARGS,
- ParameterAnnotationRule.ARG};
- static final int[][] FS_INCOMPATIBILITY = new int[][]{{0, 1}};
- static final ParameterAnnotationRule[] CALLER_AVAILABLE =
- new ParameterAnnotationRule[] {ParameterAnnotationRule.CALLER,
- ParameterAnnotationRule.ARGS, ParameterAnnotationRule.ARG};
- static final int[][] CA_INCOMPATIBILITY = new int[][]{{1, 2}};
-
static final ParameterAnnotationRule[] TARGET_AVAILABLE =
new ParameterAnnotationRule[] {ParameterAnnotationRule.TARGET,
ParameterAnnotationRule.ARGS, ParameterAnnotationRule.ARG};
- static final int[][] TA_INCOMPATIBILITY = CA_INCOMPATIBILITY;
+ static final int[][] TA_INCOMPATIBILITY = new int[][]{{1, 2}};;
static final ParameterAnnotationRule[] TARGET_CALLER_AVAILABLE =
new ParameterAnnotationRule[] {ParameterAnnotationRule.TARGET,
@@ -262,18 +253,10 @@
int[][] mutuallyExclusive = null;
switch(properties.getOptionalParameters())
{
- case NONE:
- contextRules = FULLY_STATIC;
- mutuallyExclusive = FS_INCOMPATIBILITY;
- break;
case TARGET:
contextRules = TARGET_AVAILABLE;
mutuallyExclusive = TA_INCOMPATIBILITY;
break;
- case CALLER:
- contextRules = CALLER_AVAILABLE;
- mutuallyExclusive = CA_INCOMPATIBILITY;
- break;
case TARGET_CALLER:
contextRules = TARGET_CALLER_AVAILABLE;
mutuallyExclusive = TCA_INCOMPATIBILITY;
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByConJoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByConJoinPointGenerator.java 2007-05-31 19:27:18 UTC (rev 63282)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByConJoinPointGenerator.java 2007-05-31 19:30:59 UTC (rev 63283)
@@ -126,10 +126,9 @@
ctor.getDeclaringClass(),
ctor.getParameterTypes(),
ctor.getExceptionTypes(),
- null, false,
+ ((ConByConInfo) info).getCalledClass(), false,
((ConByConInfo) info).getCallingClass(),
true);
- properties.setOptionalParameters(AdviceMethodProperties.OptionalParameters.CALLER);
return properties;
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByMethodJoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByMethodJoinPointGenerator.java 2007-05-31 19:27:18 UTC (rev 63282)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConByMethodJoinPointGenerator.java 2007-05-31 19:30:59 UTC (rev 63283)
@@ -136,11 +136,10 @@
ctor.getDeclaringClass(),
ctor.getParameterTypes(),
ctor.getExceptionTypes(),
- null,
+ ((ConByMethodInfo) info).getCalledClass(),
false,
((ConByMethodInfo) info).getCallingClass(),
hasCallingObject());
- properties.setOptionalParameters(OptionalParameters.CALLER);
return properties;
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorJoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorJoinPointGenerator.java 2007-05-31 19:27:18 UTC (rev 63282)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorJoinPointGenerator.java 2007-05-31 19:30:59 UTC (rev 63283)
@@ -118,7 +118,9 @@
INVOCATION_TYPE,
ctor.getDeclaringClass(),
ctor.getParameterTypes(),
- ctor.getExceptionTypes());
+ ctor.getExceptionTypes(),
+ ctor.getDeclaringClass(),
+ false);
}
protected boolean hasTargetObject()
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java 2007-05-31 19:27:18 UTC (rev 63282)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java 2007-05-31 19:30:59 UTC (rev 63283)
@@ -63,7 +63,8 @@
public void test1()
{
new TargetCallerPOJO(1);
- assertStaticAdvices(false);
+ assertAllAdvices(false);
+ assertTarget(null, false);
}
public void test2()
@@ -78,7 +79,8 @@
thrown = true;
}
assertTrue(thrown);
- assertStaticAdvices(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(null, thrown);
}
public void test3()
@@ -158,7 +160,8 @@
public void test11()
{
pojo.method5();
- assertStaticAdvices(false);
+ assertAllAdvices(false);
+ assertTarget(null, false);
}
public void test12()
@@ -173,7 +176,8 @@
thrown = true;
}
assertTrue(thrown);
- assertStaticAdvices(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(null, thrown);
}
public void test13()
@@ -225,7 +229,8 @@
public void test17()
{
TargetCallerPOJO.method11();
- assertStaticAdvices(false);
+ assertAllAdvices(false);
+ assertTarget(null, false);
}
public void test18()
@@ -274,6 +279,13 @@
assertTarget(null, thrown);
}
+ public void test22() throws POJOException
+ {
+ new TargetCallerPOJO(CallType.CONSTRUCTOR, false);
+ assertAllAdvices(false);
+ assertTarget(null, false);
+ }
+
private void assertAllAdvices(boolean error)
{
assertTrue(TargetAspect.before1);
@@ -315,24 +327,4 @@
}
assertSame(TargetAspect.around2Target, TargetAspect.finally2Target);
}
-
- private void assertStaticAdvices(boolean error)
- {
- assertTrue(TargetAspect.before1);
- assertFalse(TargetAspect.before2);
- assertTrue(TargetAspect.around1);
- assertFalse(TargetAspect.around2);
- assertEquals(!error, TargetAspect.after1);
- assertFalse(TargetAspect.after2);
- assertFalse(TargetAspect.throwing1);
- assertEquals(error, TargetAspect.throwing2);
- assertTrue(TargetAspect.finally1);
- assertFalse(TargetAspect.finally2);
-
- assertNull(TargetAspect.before2Target);
- assertNull(TargetAspect.around2Target);
- assertNull(TargetAspect.after2Target);
- assertNull(TargetAspect.throwing1Target);
- assertNull(TargetAspect.finally2Target);
- }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list