aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs169/pr292584/AbstractAspect.java13
-rw-r--r--tests/bugs169/pr292584/ClassWithJoinPoint.java17
-rw-r--r--tests/bugs169/pr292584/ConcreteAspect.java10
-rw-r--r--tests/bugs169/pr295491/SpringConfigurableMixin.java30
-rw-r--r--tests/bugs169/pr298388/PR298388.java42
-rw-r--r--tests/src/org/aspectj/systemtest/ajc169/Ajc169Tests.java10
-rw-r--r--tests/src/org/aspectj/systemtest/ajc169/ajc169.xml23
7 files changed, 144 insertions, 1 deletions
diff --git a/tests/bugs169/pr292584/AbstractAspect.java b/tests/bugs169/pr292584/AbstractAspect.java
new file mode 100644
index 000000000..767be601f
--- /dev/null
+++ b/tests/bugs169/pr292584/AbstractAspect.java
@@ -0,0 +1,13 @@
+
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public abstract class AbstractAspect {
+ @Around("execution(* ClassWithJoinPoint.getValue(..))")
+ public Object ClassWithJoinPoint_getValue() {
+ return getValueReplacement();
+ }
+
+ protected abstract Boolean getValueReplacement();
+} \ No newline at end of file
diff --git a/tests/bugs169/pr292584/ClassWithJoinPoint.java b/tests/bugs169/pr292584/ClassWithJoinPoint.java
new file mode 100644
index 000000000..32b646fc8
--- /dev/null
+++ b/tests/bugs169/pr292584/ClassWithJoinPoint.java
@@ -0,0 +1,17 @@
+
+public class ClassWithJoinPoint {
+ public Boolean getValue() {
+ return Boolean.FALSE;
+ }
+
+ public static void main(String[] arguments) {
+/*
+ System.out.println("Testing aspect style (should print \"true\"):");
+ System.out.println(new aspect_style.ClassWithJoinPoint().getValue());
+
+ System.out.println();
+*/
+ System.out.println("Testing annotation style (should print \"true\"):");
+ System.out.println(new ClassWithJoinPoint().getValue());
+ }
+}
diff --git a/tests/bugs169/pr292584/ConcreteAspect.java b/tests/bugs169/pr292584/ConcreteAspect.java
new file mode 100644
index 000000000..0f0f02011
--- /dev/null
+++ b/tests/bugs169/pr292584/ConcreteAspect.java
@@ -0,0 +1,10 @@
+
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public class ConcreteAspect extends AbstractAspect {
+ @Override
+ protected Boolean getValueReplacement() {
+ return Boolean.TRUE;
+ }
+}
diff --git a/tests/bugs169/pr295491/SpringConfigurableMixin.java b/tests/bugs169/pr295491/SpringConfigurableMixin.java
new file mode 100644
index 000000000..bfcda0f81
--- /dev/null
+++ b/tests/bugs169/pr295491/SpringConfigurableMixin.java
@@ -0,0 +1,30 @@
+package com.j4fe.aspects;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Entity;
+import org.springframework.beans.factory.annotation.Configurable;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public aspect SpringConfigurableMixin {
+
+ public static interface EntityManagerAware {
+ EntityManager getEntityManager();
+ }
+
+
+ // not working
+ // declare @type : (@Entity *) : @Configurable(autowire = Autowire.BY_TYPE, preConstruction = true);
+
+ // also not working
+ // declare @type : (@Entity *) : @Configurable
+
+ declare parents : (@Entity *) implements EntityManagerAware;
+
+ @PersistenceContext
+ transient private EntityManager EntityManagerAware.entityManager;
+
+ public EntityManager EntityManagerAware.getEntityManager() {
+ return entityManager;
+ }
+}
diff --git a/tests/bugs169/pr298388/PR298388.java b/tests/bugs169/pr298388/PR298388.java
new file mode 100644
index 000000000..dae3c1013
--- /dev/null
+++ b/tests/bugs169/pr298388/PR298388.java
@@ -0,0 +1,42 @@
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.DeclareMixin;
+
+@Aspect
+public class PR298388 {
+
+ @DeclareMixin("Thing2")
+ public static <T> Thing<T> createThingImplementation() {
+ return new ThingImpl<T>();
+ }
+
+ public static void main(String[] args) {
+ Thing<String> ts = (Thing<String>) new Thing2<String>();
+ ts.wibble();
+ ts.wibble("abc");
+ String s = ts.wibbleBack("wobble");
+ System.out.println("done");
+ }
+
+}
+
+class Thing2<X> {
+}
+
+interface Thing<X> {
+ void wibble();
+ void wibble(X x);
+ X wibbleBack(X x);
+}
+
+class ThingImpl<X> implements Thing<X> {
+ ThingImpl() {
+ }
+
+ public void wibble() {
+ }
+
+ public void wibble(X x) {}
+
+ public X wibbleBack(X x) { return x;}
+
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc169/Ajc169Tests.java b/tests/src/org/aspectj/systemtest/ajc169/Ajc169Tests.java
index 501325f11..54872e40d 100644
--- a/tests/src/org/aspectj/systemtest/ajc169/Ajc169Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc169/Ajc169Tests.java
@@ -18,6 +18,14 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
public class Ajc169Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+ public void testPr298388() {
+ runTest("declare mixin and generics");
+ }
+
+ public void testPr292584() {
+ runTest("annotation around advice verifyerror");
+ }
+
// ---
public static Test suite() {
@@ -26,7 +34,7 @@ public class Ajc169Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
@Override
protected File getSpecFile() {
- return new File("../tests/src/org/aspectj/systemtest/ajc167/ajc167.xml");
+ return new File("../tests/src/org/aspectj/systemtest/ajc169/ajc169.xml");
}
} \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc169/ajc169.xml b/tests/src/org/aspectj/systemtest/ajc169/ajc169.xml
index a701d65b8..9f2408c2a 100644
--- a/tests/src/org/aspectj/systemtest/ajc169/ajc169.xml
+++ b/tests/src/org/aspectj/systemtest/ajc169/ajc169.xml
@@ -2,4 +2,27 @@
<suite>
+ <ajc-test dir="bugs169/pr298388" title="declare mixin and generics">
+ <compile files="PR298388.java" options="-1.5"/>
+ <run class="PR298388">
+ <stdout>
+ <line text="done"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
+ <ajc-test dir="bugs169/pr295491" title="model annotation npe">
+ <compile files="SpringConfigurableMixin.java" options="-1.5 -emacssym"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs169/pr292584" title="annotation around advice verifyerror">
+ <compile files="AbstractAspect.java,ClassWithJoinPoint.java,ConcreteAspect.java" options="-1.5"/>
+ <run class="ClassWithJoinPoint">
+ <stdout>
+ <line text="Testing annotation style (should print &quot;true&quot;):"/>
+ <line text="true"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
</suite> \ No newline at end of file