diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-11-26 07:34:01 +0100 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-11-26 08:51:18 +0100 |
commit | cbdb8e067c1c2b0d8ac19015ea4f7aa224eb54de (patch) | |
tree | f2958db2719adda5efd3b5f07cdab336efece4e6 /tests/bugs198 | |
parent | bc2c65717d96e5e9cc1a454e5b0f8f258f2d802e (diff) | |
download | aspectj-cbdb8e067c1c2b0d8ac19015ea4f7aa224eb54de.tar.gz aspectj-cbdb8e067c1c2b0d8ac19015ea4f7aa224eb54de.zip |
Incorporate JDT Core fix + test for #105
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'tests/bugs198')
-rw-r--r-- | tests/bugs198/github_105/Application.java | 18 | ||||
-rw-r--r-- | tests/bugs198/github_105/BarAnnotation.java | 11 | ||||
-rw-r--r-- | tests/bugs198/github_105/FooAnnotation.java | 8 | ||||
-rw-r--r-- | tests/bugs198/github_105/FooAspect.aj | 4 |
4 files changed, 41 insertions, 0 deletions
diff --git a/tests/bugs198/github_105/Application.java b/tests/bugs198/github_105/Application.java new file mode 100644 index 000000000..bcf4f5624 --- /dev/null +++ b/tests/bugs198/github_105/Application.java @@ -0,0 +1,18 @@ +import java.lang.annotation.Annotation; + +/** + * {@code FooAspect} should add {@code @BarAnnotation(name = "from FooAspect")}. + * <p> + * This fails in AspectJ 1.9.5 to 1.9.8.RC2 due to a removed safeguard in JDT Core, + * if the aspect is in a separate library on the aspectpath. + * <p> + * See https://github.com/eclipse/org.aspectj/issues/105 + */ +@FooAnnotation +public class Application { + public static void main(String[] args) { + for (Annotation annotation : Application.class.getDeclaredAnnotations()) { + System.out.println(annotation); + } + } +} diff --git a/tests/bugs198/github_105/BarAnnotation.java b/tests/bugs198/github_105/BarAnnotation.java new file mode 100644 index 000000000..eaee4af2a --- /dev/null +++ b/tests/bugs198/github_105/BarAnnotation.java @@ -0,0 +1,11 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +public @interface BarAnnotation { + // Note: no default value + String name(); +} diff --git a/tests/bugs198/github_105/FooAnnotation.java b/tests/bugs198/github_105/FooAnnotation.java new file mode 100644 index 000000000..17e79deb4 --- /dev/null +++ b/tests/bugs198/github_105/FooAnnotation.java @@ -0,0 +1,8 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface FooAnnotation {} diff --git a/tests/bugs198/github_105/FooAspect.aj b/tests/bugs198/github_105/FooAspect.aj new file mode 100644 index 000000000..0d8e10d9b --- /dev/null +++ b/tests/bugs198/github_105/FooAspect.aj @@ -0,0 +1,4 @@ +public aspect FooAspect { + declare @type:(@FooAnnotation *) : + @BarAnnotation(name = "from FooAspect"); +} |