diff options
Diffstat (limited to 'weaver/src')
9 files changed, 93 insertions, 122 deletions
diff --git a/weaver/src/main/java/org/aspectj/weaver/ltw/LTWWorld.java b/weaver/src/main/java/org/aspectj/weaver/ltw/LTWWorld.java index 1fc72dd06..c9f1ecffc 100644 --- a/weaver/src/main/java/org/aspectj/weaver/ltw/LTWWorld.java +++ b/weaver/src/main/java/org/aspectj/weaver/ltw/LTWWorld.java @@ -80,7 +80,7 @@ public class LTWWorld extends BcelWorld implements IReflectionWorld { classLoaderString = loader.getClass().getName()+":"+Integer.toString(System.identityHashCode(loader)); } classLoaderParentString = (loader.getParent() == null ? "<NullParent>" : loader.getParent().toString()); - setBehaveInJava5Way(LangUtil.is15VMOrGreater()); + setBehaveInJava5Way(true); annotationFinder = ReflectionWorld.makeAnnotationFinderIfAny(loader, this); } diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/WeavingAdaptor.java b/weaver/src/main/java/org/aspectj/weaver/tools/WeavingAdaptor.java index d3a194fcc..5571ad51f 100644 --- a/weaver/src/main/java/org/aspectj/weaver/tools/WeavingAdaptor.java +++ b/weaver/src/main/java/org/aspectj/weaver/tools/WeavingAdaptor.java @@ -200,9 +200,7 @@ public class WeavingAdaptor implements IMessageContext { bcelWorld = new BcelWorld(classPath, messageHandler, null); bcelWorld.setXnoInline(false); bcelWorld.getLint().loadDefaultProperties(); - if (LangUtil.is15VMOrGreater()) { - bcelWorld.setBehaveInJava5Way(true); - } + bcelWorld.setBehaveInJava5Way(true); weaver = new BcelWeaver(bcelWorld); registerAspectLibraries(aspectPath); diff --git a/weaver/src/test/java/org/aspectj/weaver/TypeXTestCase.java b/weaver/src/test/java/org/aspectj/weaver/TypeXTestCase.java index d6b60eb5f..067e12a4c 100644 --- a/weaver/src/test/java/org/aspectj/weaver/TypeXTestCase.java +++ b/weaver/src/test/java/org/aspectj/weaver/TypeXTestCase.java @@ -107,42 +107,38 @@ public class TypeXTestCase extends TestCase { } public void testTypeXForParameterizedTypes() { - if (LangUtil.is15VMOrGreater()) { // no funny types pre 1.5 - World world = new BcelWorld(); - UnresolvedType stringType = UnresolvedType.forName("java/lang/String"); - ResolvedType listOfStringType = - TypeFactory.createParameterizedType( - UnresolvedType.forName("java/util/List").resolve(world), - new UnresolvedType[] {stringType}, - world); - assertEquals("1 type param",1,listOfStringType.typeParameters.length); - assertEquals(stringType,listOfStringType.typeParameters[0]); - assertTrue(listOfStringType.isParameterizedType()); - assertFalse(listOfStringType.isGenericType()); - } + World world = new BcelWorld(); + UnresolvedType stringType = UnresolvedType.forName("java/lang/String"); + ResolvedType listOfStringType = + TypeFactory.createParameterizedType( + UnresolvedType.forName("java/util/List").resolve(world), + new UnresolvedType[] {stringType}, + world); + assertEquals("1 type param",1,listOfStringType.typeParameters.length); + assertEquals(stringType,listOfStringType.typeParameters[0]); + assertTrue(listOfStringType.isParameterizedType()); + assertFalse(listOfStringType.isGenericType()); } public void testTypeFactoryForParameterizedTypes() { - if (LangUtil.is15VMOrGreater()) { // no funny types pre 1.5 - UnresolvedType enumOfSimpleType = - TypeFactory.createTypeFromSignature("Pjava/lang/Enum<Ljava/lang/String;>;"); - assertEquals(1, enumOfSimpleType.getTypeParameters().length); - - UnresolvedType enumOfNestedType = - TypeFactory.createTypeFromSignature("Pjava/lang/Enum<Ljavax/jws/soap/SOAPBinding$ParameterStyle;>;"); - assertEquals(1, enumOfNestedType.getTypeParameters().length); - - // is this signature right? - UnresolvedType nestedTypeOfParameterized = - TypeFactory.createTypeFromSignature("PMyInterface<Ljava/lang/String;>$MyOtherType;"); - assertEquals(0, nestedTypeOfParameterized.getTypeParameters().length); - - // how about this one? is this valid? - UnresolvedType doublyNestedTypeSignatures = - TypeFactory.createTypeFromSignature("PMyInterface<Ljava/lang/String;Ljava/lang/String;>$MyOtherType<Ljava/lang/Object;>;"); - assertEquals(1, doublyNestedTypeSignatures.getTypeParameters().length); - - } + UnresolvedType enumOfSimpleType = + TypeFactory.createTypeFromSignature("Pjava/lang/Enum<Ljava/lang/String;>;"); + assertEquals(1, enumOfSimpleType.getTypeParameters().length); + + UnresolvedType enumOfNestedType = + TypeFactory.createTypeFromSignature("Pjava/lang/Enum<Ljavax/jws/soap/SOAPBinding$ParameterStyle;>;"); + assertEquals(1, enumOfNestedType.getTypeParameters().length); + + // is this signature right? + UnresolvedType nestedTypeOfParameterized = + TypeFactory.createTypeFromSignature("PMyInterface<Ljava/lang/String;>$MyOtherType;"); + assertEquals(0, nestedTypeOfParameterized.getTypeParameters().length); + + // how about this one? is this valid? + UnresolvedType doublyNestedTypeSignatures = + TypeFactory.createTypeFromSignature("PMyInterface<Ljava/lang/String;Ljava/lang/String;>$MyOtherType<Ljava/lang/Object;>;"); + assertEquals(1, doublyNestedTypeSignatures.getTypeParameters().length); + } private void checkTX(UnresolvedType tx,boolean shouldBeParameterized,int numberOfTypeParameters) { diff --git a/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternMatchingTestCase.java b/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternMatchingTestCase.java index eb5c50948..ea276614c 100644 --- a/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternMatchingTestCase.java +++ b/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternMatchingTestCase.java @@ -81,14 +81,12 @@ public class AnnotationPatternMatchingTestCase extends TestCase { } public void testAnnotationPatternMatchingOnTypes() { - if (LangUtil.is15VMOrGreater()) { - ResolvedType rtx = loadType("AnnotatedClass"); - initAnnotationTypePatterns(); + ResolvedType rtx = loadType("AnnotatedClass"); + initAnnotationTypePatterns(); - // One should match - assertTrue("@Foo should not match on the AnnotatedClass", fooTP.matches(rtx).alwaysFalse()); - assertTrue("@SimpleAnnotation should match on the AnnotatedClass", simpleAnnotationTP.matches(rtx).alwaysTrue()); - } + // One should match + assertTrue("@Foo should not match on the AnnotatedClass", fooTP.matches(rtx).alwaysFalse()); + assertTrue("@SimpleAnnotation should match on the AnnotatedClass", simpleAnnotationTP.matches(rtx).alwaysTrue()); } @@ -167,35 +165,31 @@ public class AnnotationPatternMatchingTestCase extends TestCase { } public void testAnnotationPatternMatchingOnMethods() { - if (LangUtil.is15VMOrGreater()) { - ResolvedType rtx = loadType("AnnotatedClass"); - ResolvedMember aMethod = rtx.getDeclaredMethods()[1]; + ResolvedType rtx = loadType("AnnotatedClass"); + ResolvedMember aMethod = rtx.getDeclaredMethods()[1]; - assertTrue("Haven't got the right method, I'm looking for 'm1()': " + aMethod.getName(), aMethod.getName().equals("m1")); + assertTrue("Haven't got the right method, I'm looking for 'm1()': " + aMethod.getName(), aMethod.getName().equals("m1")); - initAnnotationTypePatterns(); + initAnnotationTypePatterns(); - // One should match - assertTrue("@Foo should not match on the AnnotatedClass.m1() method", fooTP.matches(aMethod).alwaysFalse()); - assertTrue("@SimpleAnnotation should match on the AnnotatedClass.m1() method", simpleAnnotationTP.matches(aMethod) - .alwaysTrue()); - } + // One should match + assertTrue("@Foo should not match on the AnnotatedClass.m1() method", fooTP.matches(aMethod).alwaysFalse()); + assertTrue("@SimpleAnnotation should match on the AnnotatedClass.m1() method", simpleAnnotationTP.matches(aMethod) + .alwaysTrue()); } public void testAnnotationPatternMatchingOnFields() { - if (LangUtil.is15VMOrGreater()) { - ResolvedType rtx = loadType("AnnotatedClass"); - ResolvedMember aField = rtx.getDeclaredFields()[0]; + ResolvedType rtx = loadType("AnnotatedClass"); + ResolvedMember aField = rtx.getDeclaredFields()[0]; - assertTrue("Haven't got the right field, I'm looking for 'i'" + aField.getName(), aField.getName().equals("i")); + assertTrue("Haven't got the right field, I'm looking for 'i'" + aField.getName(), aField.getName().equals("i")); - initAnnotationTypePatterns(); + initAnnotationTypePatterns(); - // One should match - assertTrue("@Foo should not match on the AnnotatedClass.i field", fooTP.matches(aField).alwaysFalse()); - assertTrue("@SimpleAnnotation should match on the AnnotatedClass.i field", simpleAnnotationTP.matches(aField) - .alwaysTrue()); - } + // One should match + assertTrue("@Foo should not match on the AnnotatedClass.i field", fooTP.matches(aField).alwaysFalse()); + assertTrue("@SimpleAnnotation should match on the AnnotatedClass.i field", simpleAnnotationTP.matches(aField) + .alwaysTrue()); } diff --git a/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternTestCase.java b/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternTestCase.java index 0433846fb..05291af1f 100644 --- a/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternTestCase.java +++ b/weaver/src/test/java/org/aspectj/weaver/patterns/AnnotationPatternTestCase.java @@ -253,52 +253,46 @@ public class AnnotationPatternTestCase extends TestCase { } public void testExactAnnotationPatternMatching() { - if (LangUtil.is15VMOrGreater()) { - PatternParser p = new PatternParser("@Foo"); - AnnotationTypePattern ap = p.maybeParseAnnotationPattern(); - ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); - AnnotatedElementImpl ae = new AnnotatedElementImpl(new String[] { "Foo" }); - assertTrue("matches element with Foo", ap.matches(ae).alwaysTrue()); - AnnotatedElementImpl ae2 = new AnnotatedElementImpl(new String[] { "Boo" }); - assertTrue("does not match element with Boo", ap.matches(ae2).alwaysFalse()); - } + PatternParser p = new PatternParser("@Foo"); + AnnotationTypePattern ap = p.maybeParseAnnotationPattern(); + ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); + AnnotatedElementImpl ae = new AnnotatedElementImpl(new String[] { "Foo" }); + assertTrue("matches element with Foo", ap.matches(ae).alwaysTrue()); + AnnotatedElementImpl ae2 = new AnnotatedElementImpl(new String[] { "Boo" }); + assertTrue("does not match element with Boo", ap.matches(ae2).alwaysFalse()); } public void testBindingAnnotationPatternMatching() { - if (LangUtil.is15VMOrGreater()) { - PatternParser p = new PatternParser("foo"); - AnnotationTypePattern ap = p.parseAnnotationNameOrVarTypePattern(); - try { - ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); - } catch (AbortException abEx) { - assertEquals("Binding not supported in @pcds (1.5.0 M1 limitation): null", abEx.getMessage()); - } - // uncomment these next lines once binding is supported - // AnnotatedElementImpl ae = new AnnotatedElementImpl(new - // String[]{"Foo"}); - // assertTrue("matches element with Foo",ap.matches(ae).alwaysTrue()) - // ; - // AnnotatedElementImpl ae2 = new AnnotatedElementImpl(new - // String[]{"Boo"}); - // assertTrue("does not match element with Boo",ap.matches(ae2). - // alwaysFalse()); + PatternParser p = new PatternParser("foo"); + AnnotationTypePattern ap = p.parseAnnotationNameOrVarTypePattern(); + try { + ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); + } catch (AbortException abEx) { + assertEquals("Binding not supported in @pcds (1.5.0 M1 limitation): null", abEx.getMessage()); } + // uncomment these next lines once binding is supported + // AnnotatedElementImpl ae = new AnnotatedElementImpl(new + // String[]{"Foo"}); + // assertTrue("matches element with Foo",ap.matches(ae).alwaysTrue()) + // ; + // AnnotatedElementImpl ae2 = new AnnotatedElementImpl(new + // String[]{"Boo"}); + // assertTrue("does not match element with Boo",ap.matches(ae2). + // alwaysFalse()); } public void testAndAnnotationPatternMatching() { - if (LangUtil.is15VMOrGreater()) { - PatternParser p = new PatternParser("@Foo @Boo"); - AnnotationTypePattern ap = p.maybeParseAnnotationPattern(); - ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); - AnnotatedElementImpl ae = new AnnotatedElementImpl(new String[] { "Foo", "Boo" }); - assertTrue("matches foo and boo", ap.matches(ae).alwaysTrue()); - ae = new AnnotatedElementImpl(new String[] { "Foo" }); - assertTrue("does not match foo", ap.matches(ae).alwaysFalse()); - ae = new AnnotatedElementImpl(new String[] { "Boo" }); - assertTrue("does not match boo", ap.matches(ae).alwaysFalse()); - ae = new AnnotatedElementImpl(new String[] { "Goo" }); - assertTrue("does not match goo", ap.matches(ae).alwaysFalse()); - } + PatternParser p = new PatternParser("@Foo @Boo"); + AnnotationTypePattern ap = p.maybeParseAnnotationPattern(); + ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); + AnnotatedElementImpl ae = new AnnotatedElementImpl(new String[] { "Foo", "Boo" }); + assertTrue("matches foo and boo", ap.matches(ae).alwaysTrue()); + ae = new AnnotatedElementImpl(new String[] { "Foo" }); + assertTrue("does not match foo", ap.matches(ae).alwaysFalse()); + ae = new AnnotatedElementImpl(new String[] { "Boo" }); + assertTrue("does not match boo", ap.matches(ae).alwaysFalse()); + ae = new AnnotatedElementImpl(new String[] { "Goo" }); + assertTrue("does not match goo", ap.matches(ae).alwaysFalse()); } // @@ -318,15 +312,13 @@ public class AnnotationPatternTestCase extends TestCase { // } // public void testNotAnnotationPatternMatching() { - if (LangUtil.is15VMOrGreater()) { - PatternParser p = new PatternParser("!@Foo"); - AnnotationTypePattern ap = p.maybeParseAnnotationPattern(); - ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); - AnnotatedElementImpl ae = new AnnotatedElementImpl(new String[] { "Foo", "Boo" }); - assertTrue("does not match foo and boo", ap.matches(ae).alwaysFalse()); - ae = new AnnotatedElementImpl(new String[] { "Boo" }); - assertTrue("matches boo", ap.matches(ae).alwaysTrue()); - } + PatternParser p = new PatternParser("!@Foo"); + AnnotationTypePattern ap = p.maybeParseAnnotationPattern(); + ap = ap.resolveBindings(makeSimpleScope(), new Bindings(3), true); + AnnotatedElementImpl ae = new AnnotatedElementImpl(new String[] { "Foo", "Boo" }); + assertTrue("does not match foo and boo", ap.matches(ae).alwaysFalse()); + ae = new AnnotatedElementImpl(new String[] { "Boo" }); + assertTrue("matches boo", ap.matches(ae).alwaysTrue()); } public void testAnyAnnotationPatternMatching() { diff --git a/weaver/src/test/java/org/aspectj/weaver/tools/PointcutDesignatorHandlerTest.java b/weaver/src/test/java/org/aspectj/weaver/tools/PointcutDesignatorHandlerTest.java index 1ea33c465..8d910baf5 100644 --- a/weaver/src/test/java/org/aspectj/weaver/tools/PointcutDesignatorHandlerTest.java +++ b/weaver/src/test/java/org/aspectj/weaver/tools/PointcutDesignatorHandlerTest.java @@ -30,7 +30,6 @@ public class PointcutDesignatorHandlerTest extends TestCase { /** this condition can occur on the build machine only, and is way too complex to fix right now... */ private boolean needToSkipPointcutParserTests() { - if (!LangUtil.is15VMOrGreater()) return false; try { Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate",false,this.getClass().getClassLoader());//ReflectionBasedReferenceTypeDelegate.class.getClassLoader()); } catch (ClassNotFoundException cnfEx) { diff --git a/weaver/src/test/java/org/aspectj/weaver/tools/PointcutExpressionTest.java b/weaver/src/test/java/org/aspectj/weaver/tools/PointcutExpressionTest.java index ab7762525..d98d1e30e 100644 --- a/weaver/src/test/java/org/aspectj/weaver/tools/PointcutExpressionTest.java +++ b/weaver/src/test/java/org/aspectj/weaver/tools/PointcutExpressionTest.java @@ -448,11 +448,7 @@ public class PointcutExpressionTest extends TestCase { assertFalse("Matches maybe", ex.matchesMethodExecution(foo).alwaysMatches()); // never match ex = p.parsePointcutExpression("args(String,Integer,Number)"); - if (LangUtil.is15VMOrGreater()) { - assertTrue("matches", ex.matchesMethodExecution(foo).alwaysMatches()); - } else { - assertTrue("Does not match", ex.matchesMethodExecution(foo).neverMatches()); - } + assertTrue("matches", ex.matchesMethodExecution(foo).alwaysMatches()); } // public void testMatchesDynamically() { diff --git a/weaver/src/test/java/org/aspectj/weaver/tools/PointcutParserTest.java b/weaver/src/test/java/org/aspectj/weaver/tools/PointcutParserTest.java index 46f841666..589fd6c9b 100644 --- a/weaver/src/test/java/org/aspectj/weaver/tools/PointcutParserTest.java +++ b/weaver/src/test/java/org/aspectj/weaver/tools/PointcutParserTest.java @@ -34,9 +34,6 @@ public class PointcutParserTest extends TestCase { /** this condition can occur on the build machine only, and is way too complex to fix right now... */ private boolean needToSkipPointcutParserTests() { - if (!LangUtil.is15VMOrGreater()) { - return false; - } try { Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate", false, this.getClass() .getClassLoader());// ReflectionBasedReferenceTypeDelegate.class.getClassLoader()); diff --git a/weaver/src/test/java/org/aspectj/weaver/tools/TypePatternMatcherTest.java b/weaver/src/test/java/org/aspectj/weaver/tools/TypePatternMatcherTest.java index 523ee4a83..0096b5482 100644 --- a/weaver/src/test/java/org/aspectj/weaver/tools/TypePatternMatcherTest.java +++ b/weaver/src/test/java/org/aspectj/weaver/tools/TypePatternMatcherTest.java @@ -25,7 +25,6 @@ public class TypePatternMatcherTest extends TestCase { /** this condition can occur on the build machine only, and is way too complex to fix right now... */ private boolean needToSkipPointcutParserTests() { - if (!LangUtil.is15VMOrGreater()) return false; try { Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate",false,this.getClass().getClassLoader());//ReflectionBasedReferenceTypeDelegate.class.getClassLoader()); } catch (ClassNotFoundException cnfEx) { |