diff options
author | aclement <aclement> | 2010-01-25 22:47:06 +0000 |
---|---|---|
committer | aclement <aclement> | 2010-01-25 22:47:06 +0000 |
commit | d36b87d2f0b22991ffc8d111367fdb7c97943477 (patch) | |
tree | 85355c0aedc8e8b4ca4510f5d948e9bf94cc842f /tests/bugs169 | |
parent | 046261e20078530352a063c6c1eef9f44bb98f23 (diff) | |
download | aspectj-d36b87d2f0b22991ffc8d111367fdb7c97943477.tar.gz aspectj-d36b87d2f0b22991ffc8d111367fdb7c97943477.zip |
292584, 295491, 298388: testcode
Diffstat (limited to 'tests/bugs169')
-rw-r--r-- | tests/bugs169/pr292584/AbstractAspect.java | 13 | ||||
-rw-r--r-- | tests/bugs169/pr292584/ClassWithJoinPoint.java | 17 | ||||
-rw-r--r-- | tests/bugs169/pr292584/ConcreteAspect.java | 10 | ||||
-rw-r--r-- | tests/bugs169/pr295491/SpringConfigurableMixin.java | 30 | ||||
-rw-r--r-- | tests/bugs169/pr298388/PR298388.java | 42 |
5 files changed, 112 insertions, 0 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;} + +} |