460 lines
17 KiB
XML
460 lines
17 KiB
XML
<!-- $Id: build.xml,v 1.57 2004/01/24 16:15:09 scolebourne Exp $ -->
|
|
<project name="commons-collections" default="test" basedir=".">
|
|
|
|
<!-- patternset describing files to be copied from the doc directory -->
|
|
<patternset id="patternset-doc"/>
|
|
|
|
<!-- patternset describing test classes -->
|
|
<patternset id="patternset-test-classes">
|
|
<include name="**/AbstractTest*.class"/>
|
|
<include name="**/BulkTest*.class"/>
|
|
<include name="**/Test*.class"/>
|
|
</patternset>
|
|
|
|
<!-- patternset describing non test classes -->
|
|
<patternset id="patternset-non-test-classes">
|
|
<include name="**/*.class"/>
|
|
<exclude name="**/AbstractTest*.class"/>
|
|
<exclude name="**/BulkTest*.class"/>
|
|
<exclude name="**/Test*.class"/>
|
|
</patternset>
|
|
|
|
<!-- patternset describing non test source files (*.java, *html, etc.) -->
|
|
<patternset id="patternset-javadocable-sources">
|
|
<include name="**/*"/>
|
|
<exclude name="**/AbstractTest*.java"/>
|
|
<exclude name="**/BulkTest*.java"/>
|
|
<exclude name="**/Test*.java"/>
|
|
</patternset>
|
|
|
|
<!-- patternset describing test framework classes -->
|
|
<patternset id="patternset-testframework-classes">
|
|
<include name="**/AbstractTest*.class"/>
|
|
<include name="**/BulkTest*.class"/>
|
|
</patternset>
|
|
|
|
<!-- patternset describing test framework classes -->
|
|
<patternset id="patternset-testframework-source">
|
|
<include name="**/AbstractTest*.java"/>
|
|
<include name="**/BulkTest*.java"/>
|
|
</patternset>
|
|
|
|
<!-- patternset describing test framework source not dependent on collections jar -->
|
|
<patternset id="patternset-testframework-validate">
|
|
<include name="**/AbstractTestObject.java"/>
|
|
<include name="**/AbstractTestCollection.java"/>
|
|
<include name="**/AbstractTestSet.java"/>
|
|
<include name="**/AbstractTestSortedSet.java"/>
|
|
<include name="**/AbstractTestList.java"/>
|
|
<include name="**/AbstractTestMap.java"/>
|
|
<include name="**/AbstractTestSortedMap.java"/>
|
|
<include name="**/AbstractTestComparator.java"/>
|
|
<include name="**/AbstractTestIterator.java"/>
|
|
<include name="**/AbstractTestListIterator.java"/>
|
|
<include name="**/AbstractTestMapEntry.java"/>
|
|
<include name="**/BulkTest.java"/>
|
|
</patternset>
|
|
|
|
<patternset id="patternset-exclude-distros">
|
|
<exclude name="**/*.gz"/>
|
|
<exclude name="**/*.zip"/>
|
|
<exclude name="**/classes/**"/>
|
|
<exclude name="**/classestestframework/**"/>
|
|
|
|
|
|
</patternset>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="init">
|
|
<tstamp>
|
|
<format property="year" pattern="yyyy"/>
|
|
</tstamp>
|
|
|
|
<!-- read properties from the build.properties, if any -->
|
|
<property name="component-propfile" value="${basedir}/build.properties"/>
|
|
<property file="${component-propfile}"/>
|
|
|
|
<!-- read properties from the commons build.properties, if any -->
|
|
<property name="commons-propfile" value="${basedir}/../build.properties"/>
|
|
<property file="${commons-propfile}"/>
|
|
|
|
<!-- read properties from the ${user.home}/propfile, if any -->
|
|
<property name="user-propfile" value="${user.home}/build.properties"/>
|
|
<property file="${user-propfile}"/>
|
|
|
|
<!-- command line classpath, if any -->
|
|
<property name="cp" value=""/>
|
|
|
|
<!-- now combine the classpaths -->
|
|
<property name="classpath" value="${cp}:${junit.jar}"/>
|
|
|
|
<property name="name" value="commons-collections"/>
|
|
<property name="Name" value="Commons-Collections"/>
|
|
<property name="Name-Long" value="Apache Jakarta Commons Collections"/>
|
|
|
|
<!-- The current version number of this component -->
|
|
<property name="component.version" value="3.0"/>
|
|
<property name="doc.release.notes" value="RELEASE-NOTES.html"/>
|
|
<property name="doc.status" value="STATUS.html"/>
|
|
|
|
<property name="test.entry" value="org.apache.commons.collections.TestAllPackages"/>
|
|
<property name="test.failonerror" value="true" />
|
|
<property name="test.runner" value="junit.textui.TestRunner" />
|
|
|
|
<property name="workdir" value="${java.io.tmpdir}/buildtemp_${DSTAMP}${TSTAMP}"/>
|
|
<property name="source" value="${basedir}"/>
|
|
<property name="source.src" value="${basedir}/src"/>
|
|
<property name="source.src.java" value="${source.src}/java"/>
|
|
<property name="source.src.test" value="${source.src}/test"/>
|
|
<property name="source.doc" value="${basedir}/doc"/>
|
|
<property name="dest" value="${basedir}/dist"/>
|
|
<property name="dest.classes" value="${dest}/classes"/>
|
|
<property name="dest.classes.testframework" value="${dest}/classestestframework"/>
|
|
<property name="dest.doc" value="${dest}/docs"/>
|
|
<property name="dest.doc.api" value="${dest.doc}/api"/>
|
|
<property name="dest.doc.testframework" value="${dest.doc}/testframework"/>
|
|
<property name="dest.jardir" value="${dest}"/>
|
|
<property name="dest.jardir.jar" value="${dest.jardir}/${name}.jar"/>
|
|
<property name="dest.jardir.testframework.jar" value="${dest.jardir}/${name}-testframework.jar"/>
|
|
|
|
<property name="bin.name" value="${name}-${component.version}"/>
|
|
<property name="dest.bin.tar" value="${dest}/${bin.name}.tar"/>
|
|
<property name="dest.bin.tar.gz" value="${dest}/${bin.name}.tar.gz"/>
|
|
<property name="dest.bin.zip" value="${dest}/${bin.name}.zip"/>
|
|
|
|
<property name="src.name" value="${bin.name}-src"/>
|
|
<property name="dest.src.tar" value="${dest}/${src.name}.tar"/>
|
|
<property name="dest.src.tar.gz" value="${dest}/${src.name}.tar.gz"/>
|
|
<property name="dest.src.zip" value="${dest}/${src.name}.zip"/>
|
|
|
|
<property name="javac.debug" value="true"/>
|
|
<property name="javac.deprecation" value="true"/>
|
|
<property name="javac.optimize" value="true"/>
|
|
|
|
<!-- set the cvs.root property in the build.properties file -->
|
|
<property name="cvs.tag" value="COLLECTIONS_3_0"/>
|
|
|
|
<available property="available-doc" file="${source.doc}"/> <!-- does this module have docs? -->
|
|
<available property="available-src-java" file="${source.src.java}"/> <!-- does this module have java src? -->
|
|
<available property="available-src-test" file="${source.src.test}"/> <!-- does this module have test src? -->
|
|
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="copy-javadoc-source" depends="init" if="available-src-java">
|
|
<mkdir dir="${javadoc-source-dir}"/>
|
|
<copy todir="${javadoc-source-dir}" filtering="no">
|
|
<fileset dir="${source.src.java}">
|
|
<patternset refid="patternset-javadocable-sources"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="copy-doc" depends="init" if="available-doc">
|
|
<mkdir dir="${doc-source-dir}/${name}"/>
|
|
<copy todir="${doc-source-dir}/${name}" filtering="no">
|
|
<fileset dir="${source.doc}">
|
|
<patternset refid="patternset-doc"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="clean" depends="init" description="removes generated files">
|
|
<delete dir="${dest}"/>
|
|
</target>
|
|
|
|
<target name="clean-doc" depends="init,clean-javadoc">
|
|
<delete dir="${dest.doc}"/>
|
|
</target>
|
|
|
|
<target name="clean-javadoc" depends="init">
|
|
<delete dir="${dest.doc.api}"/>
|
|
</target>
|
|
|
|
<target name="clean-build" depends="init">
|
|
<delete dir="${dest.classes}"/>
|
|
</target>
|
|
|
|
<target name="clean-dist" depends="init">
|
|
<delete file="${dest.jardir.jar}"/>
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="doc"
|
|
depends="init,doc-top,doc-copy,doc-javadoc,doc-javadoc-testframework"
|
|
description="generates javadocs and other documentation">
|
|
</target>
|
|
|
|
<target name="doc-top" depends="init">
|
|
<mkdir dir="${dest}"/>
|
|
<copy todir="${dest}" file="./LICENSE.txt"/>
|
|
<copy todir="${dest}" file="${doc.status}"/>
|
|
<copy todir="${dest}" file="${doc.release.notes}"/>
|
|
</target>
|
|
|
|
<target name="doc-copy" depends="init" if="available-doc">
|
|
<mkdir dir="${dest.doc}"/>
|
|
<copy todir="${dest.doc}">
|
|
<fileset dir="${source.doc}">
|
|
<patternset refid="patternset-doc"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="doc-javadoc" depends="init" if="available-src-java">
|
|
<!-- copy all the non-test sources out to the work directory and javadoc that -->
|
|
<mkdir dir="${workdir}"/>
|
|
<copy todir="${workdir}">
|
|
<fileset dir="${source.src.java}">
|
|
<patternset refid="patternset-javadocable-sources"/>
|
|
</fileset>
|
|
</copy>
|
|
<mkdir dir="${dest.doc.api}"/>
|
|
<javadoc packagenames="org.*"
|
|
sourcepath="${workdir}"
|
|
destdir="${dest.doc.api}"
|
|
windowtitle="${Name-Long}"
|
|
doctitle="${Name-Long}"
|
|
bottom="<small>Copyright &copy; 2001-${year} Apache Software Foundation. Documenation generated ${TODAY}</small>."
|
|
protected="true"
|
|
version="true"
|
|
author="true"
|
|
overview="${source.src.java}/org/apache/commons/collections/overview.html"
|
|
splitindex="false"
|
|
nodeprecated="true"
|
|
nodeprecatedlist="true"
|
|
notree="true"
|
|
noindex="false"
|
|
nohelp="true"
|
|
nonavbar="false"
|
|
serialwarn="false">
|
|
<link href="http://java.sun.com/j2se/1.3/docs/api/"/>
|
|
</javadoc>
|
|
<delete dir="${workdir}"/>
|
|
</target>
|
|
|
|
<target name="doc-javadoc-testframework" depends="init" if="available-src-test">
|
|
<!-- copy all the relevant sources out to the work directory and javadoc that -->
|
|
<mkdir dir="${workdir}"/>
|
|
<copy todir="${workdir}">
|
|
<fileset dir="${source.src}/test">
|
|
<patternset refid="patternset-testframework-source"/>
|
|
</fileset>
|
|
</copy>
|
|
<mkdir dir="${dest.doc.testframework}"/>
|
|
<javadoc packagenames="org.*"
|
|
sourcepath="${workdir}"
|
|
destdir="${dest.doc.testframework}"
|
|
windowtitle="Apache Jakarta Commons Collections Test Framework"
|
|
doctitle="Apache Jakarta Commons Collections Test Framework"
|
|
bottom="<small>Copyright &copy; 2001-${year} Apache Software Foundation. Documenation generated ${TODAY}</small>."
|
|
version="true"
|
|
author="true"
|
|
overview="${source.src.test}/org/apache/commons/collections/overview.html"
|
|
splitindex="false"
|
|
nodeprecated="true"
|
|
nodeprecatedlist="true"
|
|
notree="true"
|
|
noindex="true"
|
|
nohelp="true"
|
|
nonavbar="false"
|
|
serialwarn="false">
|
|
<link href="http://java.sun.com/products/jdk/1.3/docs/api"/>
|
|
</javadoc>
|
|
<delete dir="${workdir}"/>
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="build" depends="init,build-java" description="compiles source files"/>
|
|
|
|
<target name="build-java" depends="init" if="available-src-java">
|
|
<mkdir dir="${dest.classes}"/>
|
|
<javac destdir="${dest.classes}"
|
|
srcdir="${source.src.java}"
|
|
classpath="${classpath}"
|
|
debug="${javac.debug}"
|
|
deprecation="${javac.deprecation}"
|
|
optimize="${javac.optimize}"/>
|
|
</target>
|
|
|
|
<target name="build-test" depends="init,build-java" if="available-src-test">
|
|
<mkdir dir="${dest.classes}"/>
|
|
<javac destdir="${dest.classes}"
|
|
srcdir="${source.src.test}"
|
|
classpath="${classpath}"
|
|
debug="${javac.debug}"
|
|
deprecation="false"
|
|
optimize="${javac.optimize}"/>
|
|
</target>
|
|
|
|
<!-- validation build to ensure that testframework is independent -->
|
|
<target name="validate-build-testframework" depends="init" if="available-src-test">
|
|
<delete dir="${dest.classes.testframework}"/>
|
|
<mkdir dir="${dest.classes.testframework}"/>
|
|
<copy todir="${dest.classes.testframework}">
|
|
<fileset dir="${source.src}">
|
|
<patternset refid="patternset-testframework-validate"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
<javac destdir="${dest.classes.testframework}"
|
|
srcdir="${dest.classes.testframework}"
|
|
classpath="${classpath}"
|
|
debug="${javac.debug}"
|
|
deprecation="${javac.deprecation}"
|
|
optimize="${javac.optimize}"/>
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="test" depends="build-test" if="test.entry" description="runs (junit) unit tests">
|
|
<!--
|
|
<junit printsummary="yes" fork="on" haltonfailure="yes">
|
|
<formatter type="plain" usefile="false"/>
|
|
<test name="${test.entry}"/>
|
|
<classpath>
|
|
<pathelement location="${dest.classes}" />
|
|
<pathelement path="${classpath}" />
|
|
<pathelement path="${java.class.path}" />
|
|
</classpath>
|
|
</junit>
|
|
-->
|
|
|
|
<java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
|
|
<arg value="${test.entry}"/>
|
|
<classpath>
|
|
<pathelement location="${dest.classes}" />
|
|
<pathelement path="${classpath}" />
|
|
<pathelement path="${java.class.path}" />
|
|
</classpath>
|
|
</java>
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="dist" depends="test,dist-jar,doc,dist-tar,dist-zip" description="builds binary distribution"/>
|
|
|
|
<target name="dist-jar" depends="dist-jar-main,dist-jar-testframework"/>
|
|
|
|
<target name="dist-jar-main" depends="build">
|
|
<mkdir dir="${dest.jardir}"/>
|
|
|
|
<mkdir dir="${workdir}"/>
|
|
<copy todir="${workdir}">
|
|
<fileset dir="${dest.classes}">
|
|
<patternset refid="patternset-non-test-classes"/>
|
|
</fileset>
|
|
</copy>
|
|
<mkdir dir="${workdir}/META-INF"/>
|
|
<copy todir="${workdir}/META-INF" file="./LICENSE.txt"/>
|
|
|
|
<jar jarfile="${dest.jardir.jar}" manifest="${source.src}/conf/MANIFEST.MF">
|
|
<fileset dir="${workdir}"/>
|
|
</jar>
|
|
|
|
<delete dir="${workdir}"/>
|
|
</target>
|
|
|
|
<target name="dist-jar-testframework" depends="validate-build-testframework, build-test">
|
|
<mkdir dir="${dest.jardir}"/>
|
|
|
|
<mkdir dir="${workdir}"/>
|
|
<copy todir="${workdir}">
|
|
<fileset dir="${dest.classes}">
|
|
<patternset refid="patternset-testframework-classes"/>
|
|
</fileset>
|
|
</copy>
|
|
<mkdir dir="${workdir}/META-INF"/>
|
|
<copy todir="${workdir}/META-INF" file="./LICENSE.txt"/>
|
|
|
|
<jar jarfile="${dest.jardir.testframework.jar}" manifest="${source.src}/conf/MANIFEST.MF">
|
|
<fileset dir="${workdir}"/>
|
|
</jar>
|
|
|
|
<delete dir="${workdir}"/>
|
|
</target>
|
|
|
|
<target name="dist-tar" depends="dist-jar,doc">
|
|
<mkdir dir="${workdir}/${bin.name}"/>
|
|
<copy todir="${workdir}/${bin.name}">
|
|
<fileset dir="${dest}">
|
|
<patternset refid="patternset-exclude-distros"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- create tar.gz -->
|
|
<tar longfile="gnu" tarfile="${dest.bin.tar}">
|
|
<tarfileset dir="${workdir}"/>
|
|
</tar>
|
|
|
|
<gzip zipfile="${dest.bin.tar.gz}"
|
|
src="${dest.bin.tar}">
|
|
</gzip>
|
|
<delete file="${dest.bin.tar}" />
|
|
|
|
<delete dir="${workdir}"/>
|
|
|
|
</target>
|
|
|
|
<target name="dist-zip" depends="dist-jar,doc">
|
|
<mkdir dir="${workdir}/${bin.name}"/>
|
|
<copy todir="${workdir}/${bin.name}">
|
|
<fileset dir="${dest}">
|
|
<patternset refid="patternset-exclude-distros"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- create a zip file -->
|
|
<zip zipfile="${dest.bin.zip}" >
|
|
<zipfileset dir="${workdir}" />
|
|
</zip>
|
|
|
|
<delete dir="${workdir}"/>
|
|
|
|
</target>
|
|
|
|
<!-- ######################################################### -->
|
|
|
|
<target name="dist-src" depends="init">
|
|
|
|
<!-- not executed in default dist, because it is configuration-rich
|
|
and requires an active network connection -->
|
|
|
|
<mkdir dir="${workdir}"/>
|
|
<mkdir dir="${dest.jardir}"/>
|
|
|
|
<cvs dest="${workdir}" cvsRoot="${cvs.root}"
|
|
package="jakarta-commons" tag="${cvs.tag}"/>
|
|
<move toDir="${workdir}/${src.name}">
|
|
<fileset dir="${workdir}/jakarta-commons/collections"/>
|
|
</move>
|
|
<delete dir="${workdir}/jakarta-commons"/>
|
|
<copy file="./LICENSE.txt" toDir="${workdir}/${src.name}"/>
|
|
|
|
<!-- create tar.gz -->
|
|
<tar longfile="gnu" tarfile="${dest.src.tar}">
|
|
<tarfileset dir="${workdir}"/>
|
|
</tar>
|
|
|
|
<gzip zipfile="${dest.src.tar.gz}"
|
|
src="${dest.src.tar}">
|
|
</gzip>
|
|
<delete file="${dest.src.tar}" />
|
|
|
|
<!-- create a zip file -->
|
|
<zip zipfile="${dest.src.zip}" >
|
|
<zipfileset dir="${workdir}" />
|
|
</zip>
|
|
|
|
<delete dir="${workdir}"/>
|
|
|
|
</target>
|
|
|
|
</project>
|