1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="Build Script" default="test" basedir=".">
7 <target name="compile" depends="build"/>
8 <target name="build" depends="-libraries">
9 <antcall target="-build-one">
10 <param name="version" value="api1.0"/>
12 <antcall target="-build-one">
13 <param name="version" value="api2.0"/>
16 <antcall target="-build-one">
17 <param name="version" value="test"/>
18 <param name="cp" value="build/api1.0/classes:${junit.jar}"/>
21 <echo level="info" message="Next compilation will fails, as adding methods into interface is not binary compatible"/>
22 <antcall target="-build-one">
23 <param name="version" value="test"/>
24 <param name="out" value="will-not-compile"/>
25 <param name="cp" value="build/api2.0/classes:${junit.jar}"/>
26 <param name="failonerror" value="false"/>
29 <antcall target="-build-one">
30 <param name="version" value="test2.0"/>
31 <param name="cp" value="build/api2.0/classes:build/test/classes:${junit.jar}"/>
35 <target name="test" depends="build">
36 <echo level="info" message="PrintVisitor on old API. This should succeeds."/>
37 <antcall target="-run-one">
38 <param name="version" value="api1.0"/>
40 <echo level="info" message="PrintVisitor on old API. This would not compile, but it runs as it does not deal with minus at all."/>
41 <antcall target="-run-one">
42 <param name="version" value="api2.0"/>
44 <echo level="info" message="PrintVisitor on new API. This yields runtime error."/>
45 <antcall target="-run-one">
46 <param name="test" value="test2.0"/>
47 <param name="extra.cp" value="build/test/classes"/>
48 <param name="version" value="api2.0"/>
52 <!-- support methods -->
54 <target name="-libraries">
55 <ant dir="../../libs/"/>
57 <property name="junit.jar" location="../../libs/dist/junit-4.4.jar"/>
60 <target name="-run-one">
61 <fail message="You need to specify API version number" unless="version"/>
62 <property name="test" value="test"/>
63 <mkdir dir="build/${test}results${version}"/>
64 <junit dir="build/test/classes" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
65 <batchtest todir="build/${test}results${version}">
66 <fileset dir="build/${test}/classes">
67 <filename name="**/*Test.class"/>
71 <path location="build/${version}/classes"/>
72 <path location="build/${test}/classes"/>
73 <path location="${junit.jar}"/>
74 <path path="${extra.cp}"/>
77 <propertyref prefix="test-sys-prop."/>
78 <mapper from="test-sys-prop.*" to="*" type="glob"/>
80 <formatter type="brief" usefile="false"/>
81 <formatter type="xml"/>
85 <target name="-build-one">
86 <fail message="You need to specify version number" unless="version"/>
88 <property name="cp" value=""/>
89 <property name="out" value="${version}"/>
90 <property name="failonerror" value="true"/>
91 <mkdir dir="build/${out}/classes"/>
93 srcdir="src-${version}"
94 destdir="build/${out}/classes"
95 source="1.5" target="1.5"
97 failonerror="${failonerror}"