Bob pointed out that the extends bound is not necessary in Listable. Enough to have it in List.
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="preventcyclicdependencies" default="run" basedir=".">
6 <target name="test" depends="run"/>
8 <target name="compile" depends="build"/>
10 <antcall target="-build-one">
11 <param name="version" value="cyclic"/>
13 <antcall target="-build-one">
14 <param name="version" value="test"/>
15 <param name="cp" location="build/cyclic/classes"/>
17 <antcall target="-build-one">
18 <param name="version" value="acyclic1"/>
20 <antcall target="-build-one">
21 <param name="version" value="acyclic2"/>
22 <param name="cp" location="build/acyclic1/classes"/>
26 <target name="run" depends="build">
27 <echo level="info" message="Running old API with cycles between packages:"/>
28 <antcall target="-run-one">
29 <param name="version1" value="cyclic"/>
31 <echo level="info" message="Running new API without cycles:"/>
32 <antcall target="-run-one">
33 <param name="version1" value="acyclic1"/>
34 <param name="version2" value="acyclic2"/>
39 <!-- support methods -->
41 <target name="-run-one">
43 classpath="build/${version1}/classes:build/${version2}/classes:build/test/classes:../libs/dist/org-openide-util-lookup.jar"
44 classname="org.apidesign.cycles.array.test.Main"
51 <target name="-build-one">
52 <fail message="You need to specify version number" unless="version"/>
54 <mkdir dir="build/${version}/classes"/>
55 <property name="cp" value=""/>
57 srcdir="src-${version}"
58 destdir="build/${version}/classes"
59 source="1.5" target="1.5"
61 classpath="${cp}:../libs/dist/org-openide-util-lookup.jar"
63 <copy todir="build/${version}/classes">
64 <fileset dir="src-${version}">
65 <exclude name="**/*.java"/>