123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- <!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -->
- <!-- -->
- <!-- This file is part of the compiler and core tools for the AspectJ(tm) -->
- <!-- programming language; see http://aspectj.org -->
- <!-- -->
- <!-- The contents of this file are subject to the Mozilla Public License -->
- <!-- Version 1.1 (the "License"); you may not use this file except in -->
- <!-- compliance with the License. You may obtain a copy of the License at -->
- <!-- either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. -->
- <!-- -->
- <!-- Software distributed under the License is distributed on an "AS IS" basis, -->
- <!-- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -->
- <!-- for the specific language governing rights and limitations under the -->
- <!-- License. -->
- <!-- -->
- <!-- The Original Code is AspectJ. -->
- <!-- -->
- <!-- The Initial Developer of the Original Code is Xerox Corporation. Portions -->
- <!-- created by Xerox Corporation are Copyright (C) 1999, 2000 Xerox Corporation. -->
- <!-- All Rights Reserved. -->
-
- <!-- todo: non-distribution license?? -->
-
- <!DOCTYPE build SYSTEM "build.dtd">
-
- <project name="ant-example" default="test" basedir=".">
-
- <!-- define target init.product -->
- &aspectj_initProduct;
-
- <!-- ========================================================================== -->
- <!-- Init -->
- <!-- ========================================================================== -->
- <target name="init" depends="init.product"
- description="caller must define jdk.tools.jar and product.dir or run from product.dir">
- <echo message="init ant-examples.xml"/>
- <!-- directory produced during test install -->
- <property name="ajx.base.dir"
- location="${productTest.output.dir}/ajx-output"/>
- <property name="ajx.expect.dir"
- location="${productTest.expect.dir}/ajx"/>
- <property name="noclass"
- value="noclass"/>
- <property name="noclass.dir"
- location="${productTest.output.dir}/${noclass}"/>
- <property name="aj.public.taskdef.package"
- value="org.aspectj.tools.ant.taskdef"/>
- <property name="taskdef.classpath"
- value="${product.taskdefs.jar}${PS}${product.tools.jar}${PS}${jdk.tools.jar}"/>
- </target>
-
- <target name="init.taskdefs" depends="init,product.taskdefs.jar,product.tools.jar">
- <!-- define taskdefs used here - requires jars, etc. -->
- <taskdef name="ajc"
- classname="${aj.public.taskdef.package}.Ajc" >
- <classpath>
- <pathelement path="${product.taskdefs.jar}"/>
- <pathelement path="${product.tools.jar}"/>
- <pathelement path="${jdk.tools.jar}"/>
- </classpath>
- </taskdef>
- <taskdef name="ajdoc"
- classname="${aj.public.taskdef.package}.Ajdoc">
- <classpath>
- <pathelement path="${product.taskdefs.jar}"/>
- <pathelement path="${product.tools.jar}"/>
- <pathelement path="${jdk.tools.jar}"/>
- </classpath>
- </taskdef>
- </target>
-
-
- <!-- ========================================================================== -->
- <!-- Clean everything in created dirs -->
- <!-- ========================================================================== -->
-
- <target name="clean" depends="init"
- description="clean output created by this script">
- <antcall target="mkdir"><param name="dir" value="${ajx.base.dir}"/>
- </antcall>
- <antcall target="mkdir"><param name="dir" value="${noclass.dir}"/>
- </antcall>
- </target>
-
- <target name="noclass.setup" depends="init"
- description="setup no-op dummy class to invoke when test class n/a or requires gui">
- <echo file="${noclass}.java">
- public class ${noclass} { public static void main(String[]args){}}
- </echo>
- <mkdir dir="${noclass.dir}"/>
- <delete dir="${noclass.dir}"/>
- <mkdir dir="${noclass.dir}"/>
- <javac srcdir="."
- includes="${noclass}.java"
- destdir="${noclass.dir}"
- failonerror="true"/>
- <delete file="${noclass}.java"/>
- <echo message=" todo check file: ${noclass}.java"/>
- <java classname="${noclass}"
- failonerror="true"
- classpath="${noclass.dir}"/>
- </target>
-
- <!-- ========================================================================== -->
- <!-- Run tests -->
- <!-- ========================================================================== -->
- <target name="Ajx" depends="init.taskdefs"
- description="for {example}, compile {list}, doc {list}, and run {class}">
- <echo message="##### START Ajx example=${example} list=${list} class=${class}" />
- <property name="exdir"
- value="${ajx.base.dir}/${example}"/>
- <property name="expect.exdir" value="${ajx.expect.dir}/${example}"/>
- <mkdir dir="${exdir}/classes"/>
- <mkdir dir="${exdir}/output"/>
- <mkdir dir="${exdir}/docs"/>
- <delete dir="${exdir}/classes"/>
- <delete dir="${exdir}/output"/>
- <delete dir="${exdir}/docs"/>
- <mkdir dir="${exdir}/classes"/>
- <mkdir dir="${exdir}/output"/>
- <mkdir dir="${exdir}/docs"/>
-
- <echo message="##################### Ajx ajc ${list}"/>
- <ajc
- destdir="${exdir}/classes"
- argfile="${list}"
- failonerror="false" >
- <classpath>
- <pathelement location="${product.rt.jar}" />
- <pathelement location="${jdk.tools.jar}" /> <!-- to compile ajdoc -->
- </classpath>
- </ajc>
- <!-- copying resources, etc. as javac does todo weak -->
- <copy todir="${exdir}/classes">
- <fileset dir="${srcDir}"
- includes="**/*.properties,**/*.gif,**/*.jpg,**/*.props" />
- </copy>
-
- <echo message="##################### Ajx ajdoc ${list} "/>
- <ajdoc fork="yes"
- private="yes"
- verbose="yes"
- sourcepath="${product.examples.dir}"
- destdir="${exdir}/docs"
- argfile="${list}"
- classpath="${product.rt.jar}${PS}${jdk.tools.jar}"
- failonerror="false" >
- <!-- internalclasspath
- internalclasspath="${taskdef.classpath}"
- is required now - but still not producing docs
- <classpath>
- <pathelement location="${product.rt.jar}" />
- </classpath>
- -->
- </ajdoc>
-
- <echo message="##################### Ajx run ${class} START - output in ${exdir}/output/out.txt"/>
- <java classname="${class}"
- output="${exdir}/output/out.txt"
- fork="yes"
- failonerror="false" >
- <!-- fork because ajc does a System.exit -->
- <classpath>
- <pathelement location="${exdir}/classes"/>
- <pathelement location="${product.rt.jar}"/>
- <pathelement location="${noclass.dir}"/>
- <pathelement location="${jdk.tools.jar}" /> <!-- to run ajdoc and old ajc -->
- </classpath>
- </java>
- <echo message="##################### Ajx run ${class} STOP"/>
- <echo message="##################### Ajx run ${class} check output START "/>
- <comparefiles rhsFile="${exdir}/output/out.txt"
- lhsFile="${expect.exdir}/output/out.txt"/>
- <echo message="##################### Ajx run ${class} check output STOP "/>
- <echo message="##### FINISH Ajx example=${example} list=${list} class=${class}" />
- </target>
-
- <target name="test" depends="test.examples,test.sources"/>
-
- <target name="test.sources" depends="init,noclass.setup,productTest.expect.dir"
- description="compile, doc, and run the tools-source targets using taskdefs" >
- <property name="tools.src.dir"
- location="${product.source.tools.dir}/src"/>
- <antcall target="Ajx">
- <param name="list" value="${tools.src.dir}/runtime.lst"/>
- <param name="example" value="source-tools-runtime"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="${tools.src.dir}"/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="${tools.src.dir}/ajc.lst"/>
- <param name="example" value="source-tools-ajc"/>
- <param name="class" value="org.aspectj.tools.ajc.Main"/>
- <param name="srcDir" value="${tools.src.dir}"/>
- <!-- ajc does a System.exit -->
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="${tools.src.dir}/tools.lst"/>
- <param name="example" value="source-tools-all"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="${tools.src.dir}"/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="${tools.src.dir}/ajbrowser.lst"/>
- <param name="example" value="source-tools-ajbrowser"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="${tools.src.dir}"/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="${tools.src.dir}/ajdoc.lst"/>
- <param name="example" value="source-tools-ajdoc"/>
- <param name="class" value="org.aspectj.tools.ajdoc.Main"/>
- <param name="srcDir" value="${tools.src.dir}"/>
- </antcall>
- </target>
-
- <target name="test.examples" depends="init,noclass.setup,productTest.expect.dir"
- description="compile, doc, and run the valid examples using taskdefs" >
- <antcall target="Ajx">
- <param name="list" value="bean/files.lst"/>
- <param name="example" value="bean"/>
- <param name="class" value="bean.Demo"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="coordination/lib.lst"/>
- <param name="example" value="coordination"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="introduction/files.lst"/>
- <param name="example" value="introduction-point"/>
- <param name="class" value="introduction.Point"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="introduction/files.lst"/>
- <param name="example" value="introduction-cloneablepoint"/>
- <param name="class" value="introduction.CloneablePoint"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="introduction/files.lst"/>
- <param name="example" value="introduction-comparablepoint"/>
- <param name="class" value="introduction.ComparablePoint"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="introduction/files.lst"/>
- <param name="example" value="introduction-hashablepoint"/>
- <param name="class" value="introduction.HashablePoint"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="observer/files.lst"/>
- <param name="example" value="observer"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="."/>
- <!-- uses gui: param name="class" value="observer.Demo" -->
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="spacewar/debug.lst"/>
- <param name="example" value="spacewar-debug"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="spacewar/demo.lst"/>
- <param name="example" value="spacewar-demo"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="telecom/basic.lst"/>
- <param name="example" value="telecom-basic"/>
- <param name="class" value="telecom.BasicSimulation"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="telecom/billing.lst"/>
- <param name="example" value="telecom-billing"/>
- <param name="class" value="telecom.BillingSimulation"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="telecom/timing.lst"/>
- <param name="example" value="telecom-timing"/>
- <param name="class" value="telecom.TimingSimulation"/>
- <param name="srcDir" value="."/>
- </antcall>
- <!-- timeserver not in product - todo check
- <antcall target="Ajx">
- <param name="list" value="timeserver/abort.lst"/>
- <param name="example" value="timeserver-abort"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="timeserver/retry.lst"/>
- <param name="example" value="timeserver-retry"/>
- <param name="class" value="${noclass}"/>
- <param name="srcDir" value="."/>
- </antcall>
- -->
- <antcall target="Ajx">
- <param name="list" value="tjp/files.lst"/>
- <param name="example" value="tjp"/>
- <param name="class" value="tjp.Demo"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="tracing/notrace.lst"/>
- <param name="example" value="tracing-none"/>
- <param name="class" value="tracing.ExampleMain"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="tracing/tracelib.lst"/>
- <param name="example" value="tracing-ExampleMain"/>
- <param name="class" value="tracing.ExampleMain"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="tracing/tracev1.lst"/>
- <param name="example" value="tracing-v1"/>
- <param name="class" value="tracing.ExampleMain"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="tracing/tracev2.lst"/>
- <param name="example" value="tracing-v2"/>
- <param name="class" value="tracing.ExampleMain"/>
- <param name="srcDir" value="."/>
- </antcall>
- <antcall target="Ajx">
- <param name="list" value="tracing/tracev3.lst"/>
- <param name="example" value="tracing-v3"/>
- <param name="class" value="tracing.ExampleMain"/>
- <param name="srcDir" value="."/>
- </antcall>
- </target>
- </project>
|