mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-09-13 15:45:38 +02:00
344 lines
15 KiB
XML
344 lines
15 KiB
XML
|
<!-- -*- 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>
|