[jboss-cvs] JBossAS SVN: r75959 - in projects/aop/trunk/aop/src: test/org/jboss/test/aop/jdk15annotated and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 17 10:51:24 EDT 2008
Author: stalep
Date: 2008-07-17 10:51:24 -0400 (Thu, 17 Jul 2008)
New Revision: 75959
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/AspectAnnotationLoader.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/AspectPerInstance.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/CFlowAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/TypedefAspect.java
Log:
[JBAOP-610] added support for "this" for typedefs, pointcuts, interceptors, and cflow.
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/AspectAnnotationLoader.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/AspectAnnotationLoader.java 2008-07-17 13:50:40 UTC (rev 75958)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/AspectAnnotationLoader.java 2008-07-17 14:51:24 UTC (rev 75959)
@@ -408,8 +408,8 @@
javassist.bytecode.annotation.Annotation binfo = mgroup.getAnnotation(Bind.class.getName());
if (binfo == null) continue;
Bind binding = (Bind) AnnotationProxy.createProxy(binfo, Bind.class);
- String pointcutString = binding.pointcut();
- String cflow = binding.cflow();
+ String pointcutString = replaceThisInExpr(binding.pointcut(), cf.getName());
+ String cflow = replaceThisInExpr(binding.cflow(), cf.getName());
if (cflow == null || cflow.trim().equals("")) cflow = null;
ASTCFlowExpression cflowExpression = null;
if (cflow != null)
@@ -480,8 +480,8 @@
javassist.bytecode.annotation.Annotation binfo = visible.getAnnotation(Bind.class.getName());
if (binfo == null) return;
Bind bind = (Bind) AnnotationProxy.createProxy(binfo, Bind.class);
- String pointcutString = bind.pointcut();
- String cflow = bind.cflow();
+ String pointcutString = replaceThisInExpr(bind.pointcut(), cf.getName());
+ String cflow = replaceThisInExpr(bind.cflow(), cf.getName());
if (cflow == null || cflow.trim().equals("")) cflow = null;
ASTCFlowExpression cflowExpression = null;
if (cflow != null)
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/AspectPerInstance.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/AspectPerInstance.java 2008-07-17 13:50:40 UTC (rev 75958)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/AspectPerInstance.java 2008-07-17 14:51:24 UTC (rev 75959)
@@ -23,6 +23,7 @@
import org.jboss.aop.Aspect;
import org.jboss.aop.Bind;
+import org.jboss.aop.PointcutDef;
import org.jboss.aop.advice.Scope;
import org.jboss.aop.joinpoint.FieldReadInvocation;
import org.jboss.aop.joinpoint.FieldWriteInvocation;
@@ -38,8 +39,14 @@
public int methodCalled;
public int fieldRead;
public int fieldWrite;
+
+ @PointcutDef("execution(void org.jboss.test.aop.jdk15annotated.POJO*->someMethod())")
+ Object pointcut;
+
+ @PointcutDef("set(* org.jboss.test.aop.jdk15annotated.POJO*->field)")
+ Object pointcut2;
- @Bind(pointcut = "execution(void org.jboss.test.aop.jdk15annotated.POJO*->someMethod())")
+ @Bind(pointcut = "this.pointcut")
public Object methodAdvice(MethodInvocation invocation) throws Throwable
{
System.out.println("AspectPerInstance.methodAdvice accessing: " + invocation.getMethod().toString());
@@ -47,7 +54,7 @@
return invocation.invokeNext();
}
- @Bind(pointcut = "set(* org.jboss.test.aop.jdk15annotated.POJO*->field)")
+ @Bind(pointcut = "org.jboss.test.aop.jdk15annotated.AspectPerInstance.pointcut2")
public Object fieldAdvice(FieldWriteInvocation invocation) throws Throwable
{
System.out.println("AspectPerInstance.fieldAdvice writing to field: " + invocation.getField().getName());
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/CFlowAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/CFlowAspect.java 2008-07-17 13:50:40 UTC (rev 75958)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/CFlowAspect.java 2008-07-17 14:51:24 UTC (rev 75959)
@@ -44,7 +44,7 @@
public static CFlowStack cfNot1And2Stack;
- @org.jboss.aop.Bind (pointcut="execution(void org.jboss.test.aop.jdk15annotated.VariaPOJO*->privateMethod())", cflow="(org.jboss.test.aop.jdk15annotated.CFlowAspect.cf1And2Stack OR org.jboss.test.aop.jdk15annotated.CFlowAspect.cfNot1And2Stack)")
+ @org.jboss.aop.Bind (pointcut="execution(void org.jboss.test.aop.jdk15annotated.VariaPOJO*->privateMethod())", cflow="(this.cf1And2Stack OR org.jboss.test.aop.jdk15annotated.CFlowAspect.cfNot1And2Stack)")
public Object cflowAdvice(Invocation invocation) throws Throwable
{
System.out.println("CFlowAspect.cflowAdvice");
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/TypedefAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/TypedefAspect.java 2008-07-17 13:50:40 UTC (rev 75958)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/jdk15annotated/TypedefAspect.java 2008-07-17 14:51:24 UTC (rev 75959)
@@ -41,7 +41,7 @@
@TypeDef ("class(org.jboss.test.aop.jdk15annotated.VariaPOJO)")
public static Typedef myTypedef;
- @Bind (pointcut="execution(* $typedef{org.jboss.test.aop.jdk15annotated.TypedefAspect.myTypedef}->methodWithTypedef())")
+ @Bind (pointcut="execution(* $typedef{this.myTypedef}->methodWithTypedef())")
public Object typedefAdvice(Invocation invocation) throws Throwable
{
intercepted = true;
More information about the jboss-cvs-commits
mailing list