]> source.dussan.org Git - aspectj.git/commitdiff
testcode for 148285
authoraclement <aclement>
Fri, 23 Jun 2006 12:18:06 +0000 (12:18 +0000)
committeraclement <aclement>
Fri, 23 Jun 2006 12:18:06 +0000 (12:18 +0000)
tests/multiIncremental/PR148285/base/Main.java [new file with mode: 0644]
tests/multiIncremental/PR148285/inc1/Main.java [new file with mode: 0644]
tests/multiIncremental/PR148285/inc1/Monitor.java [new file with mode: 0644]

diff --git a/tests/multiIncremental/PR148285/base/Main.java b/tests/multiIncremental/PR148285/base/Main.java
new file mode 100644 (file)
index 0000000..ad0202a
--- /dev/null
@@ -0,0 +1,48 @@
+package test;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+
+public class Main {
+        public static void main(String[] args) {
+                new Main().foo();
+        }
+
+        @PerformenceMonitor(expected=1000)
+        public void foo() {
+
+        }
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+@interface PerformenceMonitor {
+        public int expected();
+}
+
+@Aspect
+class Monitor {
+        @Pointcut("execution(@PerformenceMonitor * *(..)) && @annotation(monitoringAnnot)")
+        public void monitored(PerformenceMonitor monitoringAnnot) {}
+
+        @Around("monitored(monitoringAnnot)")
+        public Object flagExpectationMismatch(ProceedingJoinPoint pjp, PerformenceMonitor monitoringAnnot) {
+                long start = System.nanoTime();
+                Object ret = pjp.proceed();
+                long end = System.nanoTime();
+
+                if(end - start > monitoringAnnot.expected()) {
+                        System.out.println("Method " + pjp.getSignature().toShortString() + " took longer than expected\n\t"
+                                        + "Max expected = " + monitoringAnnot.expected() + ", actual = " + (end-start));
+                }
+                return ret;
+        }
+
+}
diff --git a/tests/multiIncremental/PR148285/inc1/Main.java b/tests/multiIncremental/PR148285/inc1/Main.java
new file mode 100644 (file)
index 0000000..683d4a4
--- /dev/null
@@ -0,0 +1,29 @@
+package test;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+
+public class Main {
+        public static void main(String[] args) {
+                new Main().foo();
+        }
+
+        @PerformenceMonitor(expected=1000)
+        public void foo() {
+
+        }
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+@interface PerformenceMonitor {
+        public int expected();
+}
+
diff --git a/tests/multiIncremental/PR148285/inc1/Monitor.java b/tests/multiIncremental/PR148285/inc1/Monitor.java
new file mode 100644 (file)
index 0000000..a222a93
--- /dev/null
@@ -0,0 +1,23 @@
+package test;
+
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+class Monitor {
+        @Pointcut("execution(@PerformenceMonitor * *(..)) && @annotation(monitoringAnnot)")
+        public void monitored(PerformenceMonitor monitoringAnnot) {}
+
+        @Around("monitored(monitoringAnnot)")
+        public Object flagExpectationMismatch(ProceedingJoinPoint pjp, PerformenceMonitor monitoringAnnot) {
+                long start = System.nanoTime();
+                Object ret = pjp.proceed();
+                long end = System.nanoTime();
+
+                if(end - start > monitoringAnnot.expected()) {
+                        System.out.println("Method " + pjp.getSignature().toShortString() + " took longer than expected\n\t" + 
+"Max expected = " + monitoringAnnot.expected() + ", actual = " + (end-start));
+                }
+                return ret;
+        }
+
+}