]> source.dussan.org Git - aspectj.git/commitdiff
194314: testcode
authoraclement <aclement>
Thu, 29 Jan 2009 03:59:59 +0000 (03:59 +0000)
committeraclement <aclement>
Thu, 29 Jan 2009 03:59:59 +0000 (03:59 +0000)
tests/bugs164/pr194314/IService.java [new file with mode: 0644]
tests/bugs164/pr194314/ITDOne.java [new file with mode: 0644]
tests/bugs164/pr194314/ITDTwo.java [new file with mode: 0644]
tests/bugs164/pr194314/Main.java [new file with mode: 0644]
tests/bugs164/pr194314/Service.java [new file with mode: 0644]
tests/bugs164/pr194314/ServiceInterceptor.java [new file with mode: 0644]
tests/bugs164/pr194314/ServiceInterceptorCodeStyle.java [new file with mode: 0644]

diff --git a/tests/bugs164/pr194314/IService.java b/tests/bugs164/pr194314/IService.java
new file mode 100644 (file)
index 0000000..ed383d0
--- /dev/null
@@ -0,0 +1,4 @@
+
+public interface IService {
+    void method(long l) throws Exception;
+}
diff --git a/tests/bugs164/pr194314/ITDOne.java b/tests/bugs164/pr194314/ITDOne.java
new file mode 100644 (file)
index 0000000..2a568ba
--- /dev/null
@@ -0,0 +1,18 @@
+interface I {
+
+} 
+
+class C implements I {
+
+  public void m() {
+    foo(null,1,null);
+    fooStatic(6,1,null);
+  }
+}
+
+aspect X {
+  void around(): call(* foo(..)) {}
+  public void I.foo(String s,int i,String[] ss) {}
+  void around(): call(* fooStatic(..)) {}
+  public static void C.fooStatic(long l,int i,String[] ss) {}
+}
diff --git a/tests/bugs164/pr194314/ITDTwo.java b/tests/bugs164/pr194314/ITDTwo.java
new file mode 100644 (file)
index 0000000..b533d8d
--- /dev/null
@@ -0,0 +1,15 @@
+interface I {
+
+} 
+
+class C implements I {
+
+  public void m() {
+    foo(null,1,null);
+  }
+}
+
+aspect X {
+  void around(): call(* foo(..)) {}
+  public void I.foo(String s,int i,String[] ss) {}
+}
diff --git a/tests/bugs164/pr194314/Main.java b/tests/bugs164/pr194314/Main.java
new file mode 100644 (file)
index 0000000..f901076
--- /dev/null
@@ -0,0 +1,8 @@
+
+public class Main {
+
+    public static void main(String[] args) throws Exception {
+        IService service = new Service();
+        service.method(42L);
+    }
+}
diff --git a/tests/bugs164/pr194314/Service.java b/tests/bugs164/pr194314/Service.java
new file mode 100644 (file)
index 0000000..f3302fa
--- /dev/null
@@ -0,0 +1,7 @@
+
+public class Service implements IService {
+
+    public void method(long l) throws Exception {
+        System.err.println("Original impl of service method, arg " + l);
+    }
+}
diff --git a/tests/bugs164/pr194314/ServiceInterceptor.java b/tests/bugs164/pr194314/ServiceInterceptor.java
new file mode 100644 (file)
index 0000000..9ce6e8e
--- /dev/null
@@ -0,0 +1,17 @@
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public class ServiceInterceptor {
+
+    @Around("execution(void Service.method(long))")
+    public void method(ProceedingJoinPoint pjp) throws Throwable {
+        Object[] args = pjp.getArgs();
+        long id = (Long) args[0];
+        System.out.println("in advice, arg = " + id + " (before proceed)");
+        pjp.proceed(pjp.getArgs());
+        System.out.println("in advice (after proceed)");
+    }
+}
diff --git a/tests/bugs164/pr194314/ServiceInterceptorCodeStyle.java b/tests/bugs164/pr194314/ServiceInterceptorCodeStyle.java
new file mode 100644 (file)
index 0000000..b08047d
--- /dev/null
@@ -0,0 +1,15 @@
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+public aspect ServiceInterceptorCodeStyle {
+
+    void around(): execution(void Service.method(long)) {
+        Object[] args = thisJoinPoint.getArgs();
+        long id = (Long) args[0];
+        System.out.println("in advice, arg = " + id + " (before proceed)");
+        proceed();
+        System.out.println("in advice (after proceed)");
+    }
+}