samples/preventcyclicdependencies/build.xml
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:48 +0200
changeset 87 618b79994cd4
child 119 8147cafd007a
permissions -rw-r--r--
How to eliminate cyclic dependencies
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project name="preventcyclicdependencies" default="run" basedir=".">
     3     <target name="clean">
     4         <delete dir="build"/>
     5     </target>
     6     
     7     <target name="build">
     8         <antcall target="-build-one">
     9             <param name="version" value="cyclic"/>
    10         </antcall>
    11         <antcall target="-build-one">
    12             <param name="version" value="test"/>
    13             <param name="cp" location="build/cyclic/classes"/>
    14         </antcall>
    15         <antcall target="-build-one">
    16             <param name="version" value="acyclic1"/>
    17         </antcall>
    18         <antcall target="-build-one">
    19             <param name="version" value="acyclic2"/>
    20             <param name="cp" location="build/acyclic1/classes"/>
    21         </antcall>
    22     </target>
    23     
    24     <target name="run" depends="build">
    25         <echo level="info" message="Running old API with cycles between packages:"/>
    26         <antcall target="-run-one">
    27             <param name="version1" value="cyclic"/>
    28         </antcall>
    29         <echo level="info" message="Running new API without cycles:"/>
    30         <antcall target="-run-one">
    31             <param name="version1" value="acyclic1"/>
    32             <param name="version2" value="acyclic2"/>
    33         </antcall>
    34     </target>
    35 
    36     
    37     <!-- support methods -->
    38     
    39     <target name="-run-one">
    40         <java 
    41             classpath="build/${version1}/classes:build/${version2}/classes:build/test/classes:../libs/dist/org-openide-util.jar" 
    42             classname="org.apidesign.cycles.array.test.Main"
    43             failonerror="true" 
    44         >
    45             <jvmarg value="-ea"/>
    46         </java>
    47     </target>
    48     
    49     <target name="-build-one">
    50         <fail message="You need to specify version number" unless="version"/>
    51         
    52         <mkdir dir="build/${version}/classes"/>
    53         <property name="cp" value=""/>
    54         <javac 
    55             srcdir="src-${version}" 
    56             destdir="build/${version}/classes" 
    57             source="1.5" target="1.5"
    58             debug="true"
    59             classpath="${cp}"
    60         />
    61         <copy todir="build/${version}/classes">
    62             <fileset dir="src-${version}">
    63                 <exclude name="**/*.java"/>
    64             </fileset>
    65         </copy>
    66     </target>
    67 </project>