|
Ant example source code file (selectors.xml)
The selectors.xml source code<?xml version="1.0"?> <project name="selectors-test" basedir="." default="setupfiles"> <property name="etc.dir" value=".."/> <property name="test.dir" value="selectortest"/> <property name="testregexpsrc.dir" value="regexpseltestsrc"/> <property name="testregexpdest.dir" value="regexpseltestdest"/> <property name="mirror.dir" value="selectortest2"/> <target name="setupfiles"> <mkdir dir="${test.dir}" /> <mkdir dir="${test.dir}/zip" /> <mkdir dir="${test.dir}/tar" /> <mkdir dir="${test.dir}/tar/gz" /> <mkdir dir="${test.dir}/tar/bz2" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.md5" tofile="${test.dir}/asf-logo.gif.md5" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.bz2" tofile="${test.dir}/asf-logo.gif.bz2" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.gz" tofile="${test.dir}/asf-logo.gif.gz" /> <copy file="${etc.dir}/taskdefs/expected/copy.filterset.filtered" tofile="${test.dir}/copy.filterset.filtered" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.zip" tofile="${test.dir}/zip/asf-logo.gif.zip" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.tar" tofile="${test.dir}/tar/asf-logo.gif.tar" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo-huge.tar.gz" tofile="${test.dir}/tar/asf-logo-huge.tar.gz" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.tar.gz" tofile="${test.dir}/tar/gz/asf-logo.gif.tar.gz" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.tar.bz2" tofile="${test.dir}/tar/bz2/asf-logo.gif.tar.bz2" /> <copy file="${etc.dir}/taskdefs/expected/asf-logo-huge.tar.bz2" tofile="${test.dir}/tar/bz2/asf-logo-huge.tar.bz2" /> <!-- Make linefeeds consistent between platforms --> <fixcrlf srcdir="${test.dir}" includes="*.filtered" eol="lf"/> <!-- Set a known base time for all files --> <touch datetime="11/21/2001 4:55 AM"> <fileset dir="${test.dir}"> <include name="**/*"/> </fileset> </touch> <!-- Then adjust individual ones --> <touch file="${test.dir}/asf-logo.gif.bz2" datetime="01/01/2001 12:00 AM"/> <touch file="${test.dir}/asf-logo.gif.gz" datetime="04/15/2002 2:30 PM"/> <touch file="${test.dir}/zip/asf-logo.gif.zip" datetime="05/10/2002 2:30 PM"/> <touch file="${test.dir}/tar/asf-logo.gif.tar" datetime="05/10/2002 2:29 PM"/> <touch file="${test.dir}/tar/asf-logo-huge.tar.gz" datetime="05/10/2002 2:29 AM"/> </target> <target name="cleanup"> <delete dir="${test.dir}" /> </target> <target name="mirrorfiles"> <mkdir dir="${mirror.dir}" /> <mkdir dir="${mirror.dir}/zip" /> <mkdir dir="${mirror.dir}/tar" /> <mkdir dir="${mirror.dir}/tar/gz" /> <mkdir dir="${mirror.dir}/tar/bz2" /> <touch file="${mirror.dir}/asf-logo.gif.md5"/> <touch file="${mirror.dir}/asf-logo.gif.bz2"/> <sleep seconds="2"/> <touch file="${mirror.dir}/zip/asf-logo.gif.zip"/> <sleep seconds="3"/> <touch file="${mirror.dir}/tar/asf-logo.gif.tar"/> <sleep seconds="2"/> <touch file="${mirror.dir}/tar/asf-logo-huge.tar.gz"/> <touch file="${mirror.dir}/tar/gz/asf-logo.gif.tar.gz"/> <touch file="${mirror.dir}/tar/bz2/asf-logo.gif.tar.bz2"/> <touch file="${mirror.dir}/tar/bz2/asf-logo-huge.tar.bz2"/> </target> <target name="cleanup.mirrorfiles"> <delete dir="${mirror.dir}" /> </target> <target name="cleanupregexp"> <delete dir="${testregexpsrc.dir}" /> <delete dir="${testregexpdest.dir}" /> </target> <target name="containsregexp"> <mkdir dir="${testregexpsrc.dir}" /> <mkdir dir="${testregexpdest.dir}" /> <!-- Make two test files, shouldcopy.txt will get selected if everything works shouldnotcopy.txt will not get selected for copy. The test looks to see that only one file is copied --> <echo message="Some testregexp text 2.0" file="${testregexpsrc.dir}/shouldcopy.txt" /> <echo message="Some testregexp text 20" file="${testregexpsrc.dir}/shouldnotcopy.txt" /> <copy todir="${testregexpdest.dir}"> <fileset dir="${testregexpsrc.dir}"> <include name="*.txt" /> <containsregexp expression="[0-9]\.[0,1,2]" /> </fileset> </copy> </target> <!-- ========== Test for ModifiedSelector ========== --> <target name="modifiedselectortest-makeDirty"> <!-- Load propertyfile generated by SelectorTest-class --> <property file="ModifiedSelectorTest.properties"/> <!-- Modify only timestamp --> <touch file="${test.dir}/${f2name}" datetime="02/28/2003 9:55 AM"/> <!-- Change content but keep timestamp --> <echo file="${test.dir}/${f3name}" append="true" message="new content"/> <touch file="${test.dir}/${f3name}" datetime="11/21/2001 4:55 AM"/> <!-- Change content and timestamp --> <echo file="${test.dir}/${f4name}" append="true" message="new content"/> </target> <target name="modifiedselectortest-scenario-clean"> <delete dir="${test.dir}"/> </target> <target name="modifiedselectortest-scenario-prepare"> <mkdir dir="${test.dir}/src"/> <copy todir="${test.dir}/src"> <fileset dir="${ant.home}/lib" includes="ant.jar"> <type type="file"/> </fileset> <fileset dir="${ant.home}/bin"> <type type="file"/> </fileset> </copy> <touch datetime="12/24/2002 4:00 pm"> <fileset dir="${test.dir}"/> </touch> <mkdir dir="${test.dir}/to-1"/> <mkdir dir="${test.dir}/to-2"/> <mkdir dir="${test.dir}/to-3"/> </target> <target name="modifiedselectortest-scenario-makeDirty"> <touch file="${test.dir}/src/ant.jar"/> <echo file="${test.dir}/src/ant.bat" append="true" message="new-content"/> <echo file="${test.dir}/src/antRun.pl" append="true" message="new-content"/> <touch file="${test.dir}/src/antRun.pl" datetime="12/24/2002 4:00 pm"/> </target> <target name="modifiedselectortest-scenario-coreselector-defaults" depends="modifiedselectortest-scenario-prepare"> <!-- copy first time and create cachefile --> <copy todir="${test.dir}/to-1"> <fileset dir="${test.dir}/src"> <modified/> </fileset> </copy> <!-- copy second time: nothing should be copied --> <copy todir="${test.dir}/to-2"> <fileset dir="${test.dir}/src"> <modified/> </fileset> </copy> <!-- 'modify' the source files --> <antcall target="modifiedselectortest-scenario-makeDirty"/> <!-- copy third time: only the files with new CONTENT should be copied --> <copy todir="${test.dir}/to-3"> <fileset dir="${test.dir}/src"> <modified/> </fileset> </copy> </target> <target name="modifiedselectortest-scenario-coreselector-settings" depends="modifiedselectortest-scenario-prepare"> <!-- copy first time and create cachefile --> <copy todir="${test.dir}/to-1"> <fileset dir="${test.dir}/src"> <modified cache="propertyfile" algorithm="hashvalue" update="true"> <param name="cache.cachefile" value="core.cache.properties" /> </modified> </fileset> </copy> <!-- copy second time: nothing should be copied --> <copy todir="${test.dir}/to-2"> <fileset dir="${test.dir}/src"> <modified cache="propertyfile" algorithm="hashvalue" update="true"> <param name="cache.cachefile" value="core.cache.properties" /> </modified> </fileset> </copy> <!-- 'modify' the source files --> <antcall target="modifiedselectortest-scenario-makeDirty"/> <!-- copy third time: only the files with new CONTENT should be copied --> <copy todir="${test.dir}/to-3"> <fileset dir="${test.dir}/src"> <modified cache="propertyfile" algorithm="hashvalue" update="true"> <param name="cache.cachefile" value="core.cache.properties" /> </modified> </fileset> </copy> </target> <target name="modifiedselectortest-scenario-customselector-settings" depends="modifiedselectortest-scenario-prepare"> <!-- copy first time and create cachefile --> <copy todir="${test.dir}/to-1"> <fileset dir="${test.dir}/src"> <custom classname="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector"> <param name="cache" value="propertyfile"/> <param name="algorithm" value="hashvalue"/> <param name="update" value="true"/> <param name="cache.cachefile" value="core.cache.properties"/> </custom> </fileset> </copy> <!-- copy second time: nothing should be copied --> <copy todir="${test.dir}/to-2"> <fileset dir="${test.dir}/src"> <custom classname="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector"> <param name="cache" value="propertyfile"/> <param name="algorithm" value="hashvalue"/> <param name="update" value="true"/> <param name="cache.cachefile" value="core.cache.properties"/> </custom> </fileset> </copy> <!-- 'modify' the source files --> <antcall target="modifiedselectortest-scenario-makeDirty"/> <!-- copy third time: only the files with new CONTENT should be copied --> <copy todir="${test.dir}/to-3"> <fileset dir="${test.dir}/src"> <custom classname="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector"> <param name="cache" value="propertyfile"/> <param name="algorithm" value="hashvalue"/> <param name="update" value="true"/> <param name="cache.cachefile" value="core.cache.properties"/> </custom> </fileset> </copy> </target> <target name="modifiedselectortest-customClasses" depends="modifiedselectortest-scenario-prepare"> <property name="pkg.live" value="org.apache.tools.ant.types.selectors.modifiedselector"/> <property name="pkg.test" value="org.apache.tools.ant.types.selectors"/> <fileset id="fs.mod" dir="${test.dir}/src"> <modified algorithmclass="${pkg.test}.MockAlgorithm" cacheclass="${pkg.test}.MockCache" comparatorclass="${pkg.test}.MockComparator" > <classpath> <pathelement location="${build.tests.value}"/> </classpath> </modified> </fileset> <fileset id="fs.full" dir="${test.dir}/src"/> <property name="fs.mod.value" refid="fs.mod"/> <property name="fs.full.value" refid="fs.full"/> </target> <target name="modifiedselectortest-ResourceSimple"> <fail message="Didnt get the required numbers of Resources."> <condition> <not> <resourcecount when="equal" count="3"> <restrict> <resources> <file file="foo" /> <resource name="foo" /> <file file="foo" basedir="${basedir}" /> </resources> <modified selres="true" xmlns="antlib:org.apache.tools.ant.types.resources.selectors"/> </restrict> </resourcecount> </not> </condition> </fail> </target> <target name="modifiedselectortest-ResourceSelresTrue"> <fail message="Got the Resource, but should."> <condition> <not> <resourcecount when="equal" count="1"> <restrict> <resources> <resource name="notExisting" /> </resources> <modified selres="true" xmlns="antlib:org.apache.tools.ant.types.resources.selectors"/> </restrict> </resourcecount> </not> </condition> </fail> </target> <target name="modifiedselectortest-ResourceSelresFalse"> <fail message="Got the Resource, but should not."> <condition> <not> <resourcecount when="equal" count="0"> <restrict> <resources> <resource name="notExisting" /> </resources> <modified selres="false" xmlns="antlib:org.apache.tools.ant.types.resources.selectors"/> </restrict> </resourcecount> </not> </condition> </fail> </target> <target name="modifiedselectortest-scenario-resourceSimple" depends="modifiedselectortest-scenario-prepare"> <macrodef name="check"> <attribute name="count"/> <attribute name="message"/> <sequential> <fail message="@{message}"> <condition> <not> <resourcecount when="equal" count="@{count}"> <restrict> <resources> <fileset dir="${test.dir}/src"/> </resources> <modified selres="false" xmlns="antlib:org.apache.tools.ant.types.resources.selectors"/> </restrict> </resourcecount> </not> </condition> </fail> </sequential> </macrodef> <!-- select first time and create cachefile --> <check count="14" message="Initial set of files not ok."/> <!-- check second time: nothing should be selected --> <check count="0" message="Selected files but shouldnt."/> <!-- 'modify' the source files --> <antcall target="modifiedselectortest-scenario-makeDirty"/> <!-- copy third time: only the files with new CONTENT should be copied --> <check count="2" message="Didnt select the 2 modified files."/> </target> </project> Other Ant examples (source code examples)Here is a short list of links related to this Ant selectors.xml source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.