Просмотр исходного кода

292584, 295491, 298388: testcode

tags/V1_6_9M1
aclement 14 лет назад
Родитель
Сommit
d36b87d2f0

+ 13
- 0
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();
}

+ 17
- 0
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());
}
}

+ 10
- 0
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;
}
}

+ 30
- 0
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;
}
}

+ 42
- 0
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;}

}

+ 9
- 1
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");
}

}

+ 23
- 0
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>

Загрузка…
Отмена
Сохранить