[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