aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs186
diff options
context:
space:
mode:
authorAndy Clement <aclement@gopivotal.com>2015-03-23 12:54:54 -0700
committerAndy Clement <aclement@gopivotal.com>2015-03-23 12:54:54 -0700
commita1cfe944a602101d144c8efd7df217ab20e4b9ee (patch)
treeddb06c095990717713c90a2efb7cf0c0ab49f194 /tests/bugs186
parent3869f363bc6e473f4063faf2c296825283a21f1a (diff)
downloadaspectj-a1cfe944a602101d144c8efd7df217ab20e4b9ee.tar.gz
aspectj-a1cfe944a602101d144c8efd7df217ab20e4b9ee.zip
462821: invokedynamic detection in hierarchy of aspects
Diffstat (limited to 'tests/bugs186')
-rw-r--r--tests/bugs186/462821/AbstractLoggerAspect.java59
-rw-r--r--tests/bugs186/462821/FooService.java10
-rw-r--r--tests/bugs186/462821/FooServiceLoggerAspect.java23
-rw-r--r--tests/bugs186/462821/java1
4 files changed, 93 insertions, 0 deletions
diff --git a/tests/bugs186/462821/AbstractLoggerAspect.java b/tests/bugs186/462821/AbstractLoggerAspect.java
new file mode 100644
index 000000000..5b9e3c14b
--- /dev/null
+++ b/tests/bugs186/462821/AbstractLoggerAspect.java
@@ -0,0 +1,59 @@
+//package no.kantega;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+
+@Aspect
+public abstract class AbstractLoggerAspect {
+
+ @Pointcut
+ public abstract void debugJoinPoints();
+
+ @Pointcut
+ public abstract void infoJoinPoints();
+
+ @Pointcut
+ public abstract void excludedJoinPoints();
+
+
+ @Pointcut("execution(public String Object+.toString()) || call(public String Object.toString())"
+ + "|| call(public int Object.hashCode()) || call(public boolean Object.equals())"
+ + "|| execution(public static void Object+.main(String[])) ")
+ public void defaultExcludedJoinPoints() {}
+
+ @Pointcut("(infoJoinPoints() && !defaultExcludedJoinPoints() && !excludedJoinPoints())")
+ public void infoJoinPointsToLog() {}
+
+/*
+ @Pointcut("(debugJoinPoints() && !defaultExcludedJoinPoints() && !infoJoinPointsToLog() && !excludedJoinPoints())")
+ public void debugJoinPointsToLog() {}
+
+
+ @Around("debugJoinPointsToLog()")
+ public Object handleDebugJoinPointsToLog(ProceedingJoinPoint thisJoinPoint)
+ {
+ // do stuff
+ try {
+ return thisJoinPoint.proceed();
+ } catch (Throwable throwable) {
+ throw new RuntimeException("foo");
+ }
+ // then do other stuff
+ }
+*/
+
+ @Around("infoJoinPoints()")
+ public Object handleInfoJoinPointsToLog(ProceedingJoinPoint thisJoinPoint)
+ {
+ // first do stuff
+ try {
+ return thisJoinPoint.proceed();
+ } catch (Throwable throwable) {
+ throw new RuntimeException("foo");
+ }
+ // then do other stuff
+ }
+}
+
diff --git a/tests/bugs186/462821/FooService.java b/tests/bugs186/462821/FooService.java
new file mode 100644
index 000000000..5d9ab18bf
--- /dev/null
+++ b/tests/bugs186/462821/FooService.java
@@ -0,0 +1,10 @@
+//package no.kantega;
+
+public class FooService {
+
+ /** Adviced method */
+ public String doSomething() {
+ return "foo";
+ }
+
+}
diff --git a/tests/bugs186/462821/FooServiceLoggerAspect.java b/tests/bugs186/462821/FooServiceLoggerAspect.java
new file mode 100644
index 000000000..f471694e1
--- /dev/null
+++ b/tests/bugs186/462821/FooServiceLoggerAspect.java
@@ -0,0 +1,23 @@
+//package no.kantega;
+
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+
+@Aspect
+public class FooServiceLoggerAspect extends AbstractLoggerAspect {
+
+ @Pointcut
+ @Override
+ public void debugJoinPoints() {
+ }
+
+ @Pointcut("execution(public * FooService.*(..)) && !debugJoinPoints()")
+ @Override
+ public void infoJoinPoints() {
+ }
+
+ @Pointcut
+ @Override
+ public void excludedJoinPoints() {
+ }
+}
diff --git a/tests/bugs186/462821/java b/tests/bugs186/462821/java
new file mode 100644
index 000000000..f1d45a49f
--- /dev/null
+++ b/tests/bugs186/462821/java
@@ -0,0 +1 @@
+[?25l[?12l[?25h[?1049h[?1h=[?12;25h[?12l[?25h[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ VIM - Vi IMprovedversion 7.3by Bram Moolenaar et al.Vim is open source and freely distributableBecome a registered Vim user!type :help register<Enter> for information type :q<Enter> to exit type :help<Enter> or <F1> for on-line helptype :help version7<Enter> for version infoRunning in Vi compatible modetype :set nocp<Enter> for Vim defaultstype :help cp-default<Enter> for info on this[?12l[?25h[?25lType :quit<Enter> to exit Vim[?12l[?25h[?25l[?12l[?25h \ No newline at end of file