diff options
author | avasseur <avasseur> | 2005-10-21 16:08:10 +0000 |
---|---|---|
committer | avasseur <avasseur> | 2005-10-21 16:08:10 +0000 |
commit | 1232fbba13b21df11d0a9c58a04657441c447f98 (patch) | |
tree | 90107611785dcae008493f8155c76da66391a60c /tests/java5/ataspectj | |
parent | 5e17799ef005829b992198048e4b18abff288f78 (diff) | |
download | aspectj-1232fbba13b21df11d0a9c58a04657441c447f98.tar.gz aspectj-1232fbba13b21df11d0a9c58a04657441c447f98.zip |
fix issue in test for -1.5 and @AJ ITD with @anno
impl error message for reweavable and not declared in aop.xml as per David Knibb patch, #104218
Diffstat (limited to 'tests/java5/ataspectj')
6 files changed, 126 insertions, 2 deletions
diff --git a/tests/java5/ataspectj/ajc-ant.xml b/tests/java5/ataspectj/ajc-ant.xml index 6659b3f69..077fc2667 100644 --- a/tests/java5/ataspectj/ajc-ant.xml +++ b/tests/java5/ataspectj/ajc-ant.xml @@ -148,7 +148,6 @@ debug="true"> <classpath> <path refid="aj.path"/> - <pathelement path="${aj.sandbox}"/> </classpath> </javac> @@ -160,4 +159,31 @@ <jvmarg value="-Daj5.def=ataspectj/aop-decptest2.xml"/> </java> </target> + + <target name="ltw.oldAspectsDeclared"> + <!--Aspects woven at compile time must be declared in an aop.xml file. + If they are not declared, then they will be lost during reweaving--> + + <!--First test that the error is produced if the declaration is not made--> + <java fork="yes" classname="ataspectj.ltwreweavable.MainReweavableLogging" failonerror="yes"> + <classpath refid="aj.path"/> + <classpath> + <pathelement path="${aj.sandbox}/main1.jar"/> + </classpath> + <jvmarg value="-javaagent:${aj.root}/lib/test/loadtime5.jar"/> + <jvmarg value="-Daj5.def=ataspectj/ltwreweavable/aop-ltwreweavable-declared.xml"/> + <jvmarg value="-DaspectDeclared=true"/> + </java> + <!--Now ensure that the error is not produced when the declaration is made.--> + <java fork="yes" classname="ataspectj.ltwreweavable.MainReweavableLogging" failonerror="yes"> + <classpath refid="aj.path"/> + <classpath> + <pathelement path="${aj.sandbox}/main1.jar"/> + </classpath> + <jvmarg value="-javaagent:${aj.root}/lib/test/loadtime5.jar"/> + <jvmarg value="-Daj5.def=ataspectj/ltwreweavable/aop-ltwreweavable-omitted.xml"/> + <jvmarg value="-DaspectDeclared=false"/> + </java> + </target> + </project>
\ No newline at end of file diff --git a/tests/java5/ataspectj/ataspectj/aop-decptest.xml b/tests/java5/ataspectj/ataspectj/aop-decptest.xml index fe04e96b1..3e607df7d 100644 --- a/tests/java5/ataspectj/ataspectj/aop-decptest.xml +++ b/tests/java5/ataspectj/ataspectj/aop-decptest.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <aspectj> - <weaver options="-XmessageHandlerClass:ataspectj.TestHelper"/> + <weaver options="-XmessageHandlerClass:ataspectj.TestHelper -1.5 -Xlint:ignore"/> <aspects> <aspect name="ataspectj.DeclareParentsImplementsTest.TestAspect"/> <aspect name="ataspectj.DeclareParentsInterfaceTest.TestAspect"/> diff --git a/tests/java5/ataspectj/ataspectj/ltwreweavable/AspectReweavableLogging.java b/tests/java5/ataspectj/ataspectj/ltwreweavable/AspectReweavableLogging.java new file mode 100644 index 000000000..e921147ba --- /dev/null +++ b/tests/java5/ataspectj/ataspectj/ltwreweavable/AspectReweavableLogging.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2005 Contributors. + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alexandre Vasseur initial implementation + *******************************************************************************/ +package ataspectj.ltwreweavable; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; + +/** + * Contributed by David Knibb + * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> + */ +@Aspect +public class AspectReweavableLogging { + + @Before("execution(void ataspectj.ltwreweavable.MainReweavableLogging.test1()) && this(a)") + public void before(Advisable a, JoinPoint thisJoinPoint) { + System.err.println(thisJoinPoint); + a.addJoinPoint(thisJoinPoint.getSignature().getName()); + } +} +
\ No newline at end of file diff --git a/tests/java5/ataspectj/ataspectj/ltwreweavable/MainReweavableLogging.java b/tests/java5/ataspectj/ataspectj/ltwreweavable/MainReweavableLogging.java new file mode 100644 index 000000000..caa4a9ac7 --- /dev/null +++ b/tests/java5/ataspectj/ataspectj/ltwreweavable/MainReweavableLogging.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2005 Contributors. + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alexandre Vasseur initial implementation + *******************************************************************************/ +package ataspectj.ltwreweavable; + +import ataspectj.ltwlog.MessageHolder; + +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; + +/** + * Contributed by David Knibb + * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> + */ +public class MainReweavableLogging implements Advisable { + private static List joinPoints = new ArrayList(); + + public void test1 () { + + } + + public void test2 () { + + } + + public void addJoinPoint (String name) { + joinPoints.add(name); + } + + public static void main (String[] args) { + String ERROR_STRING = "error aspect 'ataspectj.ltwreweavable.AspectReweavableLogging' woven into 'ataspectj.ltwreweavable.MainReweavableLogging' must be declared in an aop.xml file."; + if(Boolean.getBoolean("aspectDeclared")){ + //if the aspect is declared there should not be an error + if (MessageHolder.startsAs( Arrays.asList( new String[]{ ERROR_STRING } )) ) { + MessageHolder.dump(); + throw new RuntimeException("Error in MainReweavableLogging - unexpected error message - \"" + ERROR_STRING + "\""); + } + } + else{ + //and if the aspect is not declared then there should + if (!MessageHolder.startsAs( Arrays.asList( new String[]{ ERROR_STRING } )) ) { + MessageHolder.dump(); + throw new RuntimeException("Error in MainReweavableLogging - missing expected error message - \"" + ERROR_STRING + "\""); + } + } + } +} diff --git a/tests/java5/ataspectj/ataspectj/ltwreweavable/aop-ltwreweavable-declared.xml b/tests/java5/ataspectj/ataspectj/ltwreweavable/aop-ltwreweavable-declared.xml new file mode 100644 index 000000000..d89b5b3aa --- /dev/null +++ b/tests/java5/ataspectj/ataspectj/ltwreweavable/aop-ltwreweavable-declared.xml @@ -0,0 +1,6 @@ +<aspectj> + <weaver options="-XmessageHandlerClass:ataspectj.ltwlog.MessageHolder"/> + <aspects> + <aspect name="ataspectj.ltwreweavable.AspectReweavableLogging"/> + </aspects> +</aspectj>
\ No newline at end of file diff --git a/tests/java5/ataspectj/ataspectj/ltwreweavable/aop-ltwreweavable-omitted.xml b/tests/java5/ataspectj/ataspectj/ltwreweavable/aop-ltwreweavable-omitted.xml new file mode 100644 index 000000000..4b53f2b1f --- /dev/null +++ b/tests/java5/ataspectj/ataspectj/ltwreweavable/aop-ltwreweavable-omitted.xml @@ -0,0 +1,5 @@ +<aspectj> + <weaver options="-XmessageHandlerClass:ataspectj.ltwlog.MessageHolder"/> + <!--aspect is not declared here so as to produce an error --> + <aspects/> +</aspectj>
\ No newline at end of file |