瀏覽代碼

296533: generics info in generated accessor names

tags/V1_6_7
aclement 14 年之前
父節點
當前提交
41c8b34427

+ 43
- 0
tests/bugs167/pr296533/testing/AbstractCache.aj 查看文件

@@ -0,0 +1,43 @@
package testing;

import java.util.HashMap;
import java.util.Map;

public abstract aspect AbstractCache<Key,Value> {

public abstract pointcut cachePoint(Key key);

private Map<Object,Object> cache = new HashMap<Object,Object>();
private Integer hitCount = 0;
private Integer missCount = 0;
Value around(Key key) : cachePoint(key){
Value value = get(key);
if(value == null){
value = proceed(key);
put(key,value);
missCount++;
} else {
hitCount++;
}
return value;
}

@SuppressWarnings("unchecked")
private Value get(Key key){
return (Value) cache.get(key);
}
private void put(Key key, Value value) {
cache.put(key, value);
}

public Integer getHitCount() {
return hitCount;
}

public Integer getMissCount() {
return missCount;
}
}

+ 15
- 0
tests/bugs167/pr296533/testing/Resource.java 查看文件

@@ -0,0 +1,15 @@
package testing;

public class Resource {

private final String id;

public Resource(String id){
this.id = id;
}

public String getId(){
return id;
}
}


+ 10
- 0
tests/bugs167/pr296533/testing/ResourceCache.aj 查看文件

@@ -0,0 +1,10 @@
package testing;

public aspect ResourceCache extends AbstractCache<String,Resource> {

public pointcut cachePoint(String key):
args(key) &&
execution(public Resource ResourceManager.lookupResource(String));


}

+ 8
- 0
tests/bugs167/pr296533/testing/ResourceManager.java 查看文件

@@ -0,0 +1,8 @@
package testing;

public class ResourceManager {

public Resource lookupResource(String resourceId){
return new Resource(resourceId);
}
}

+ 24
- 0
tests/bugs167/pr296533/testing/TestRunner.java 查看文件

@@ -0,0 +1,24 @@
package testing;

import java.lang.reflect.Method;

public class TestRunner {

public static void main(String[] args) {
ResourceManager manager = new ResourceManager();
ResourceCache cache = ResourceCache.aspectOf();
Resource r1_1 = manager.lookupResource("1");
Resource r1_2 = manager.lookupResource("1");
Resource r1_3 = manager.lookupResource("1");
Resource r1_4 = manager.lookupResource("1");
Resource r1_5 = manager.lookupResource("1");
Resource r2_1 = manager.lookupResource("2");
Resource r2_2 = manager.lookupResource("2");

System.out.println("Cache hits: " + cache.getHitCount());
System.out.println("Cache hits: " + cache.getMissCount());
}

}

+ 8
- 5
tests/src/org/aspectj/systemtest/ajc167/Ajc167Tests.java 查看文件

@@ -18,6 +18,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase;

public class Ajc167Tests extends org.aspectj.testing.XMLBasedAjcTestCase {

public void testGenericAspectSignatures_296533() {
runTest("generic aspect signatures");
}

public void testOptimizingAnnotationStringValueBinding() {
runTest("optimizing string anno value binding");
}
@@ -29,11 +33,10 @@ public class Ajc167Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testOptimizingAnnotationBindingPerfTest() {
runTest("optimizing annotation binding - 2");
}
/*
public void testPerThisLTW_295092() {
runTest("perthis ltw");
}
*/

/*
* public void testPerThisLTW_295092() { runTest("perthis ltw"); }
*/

public void testNpeOnBrokenCode_296054() {
runTest("npe on broken code");

+ 10
- 0
tests/src/org/aspectj/systemtest/ajc167/ajc167.xml 查看文件

@@ -3,6 +3,16 @@
<suite>


<ajc-test dir="bugs167/pr296533" title="generic aspect signatures">
<compile files="testing/AbstractCache.aj testing/Resource.java testing/ResourceCache.aj testing/ResourceManager.java testing/TestRunner.java" options="-1.5"/>
<run class="testing.TestRunner">
<stdout>
<line text="Cache hits: 5"/>
<line text="Cache hits: 2"/>
</stdout>
</run>
</ajc-test>

<ajc-test dir="bugs167/pr296501" title="optimizing string anno value binding">
<compile files="StringBinding.java" options="-1.5"/>
<run class="StringBinding">

Loading…
取消
儲存