| <!-- $Id: build.xml,v 1.19 2002/10/31 21:00:25 rwaldhoff Exp $ --> |
| <project name="commons-pool" 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="**/Test*.class"/> |
| </patternset> |
| |
| <!-- patternset describing non test classes --> |
| <patternset id="patternset-non-test-classes"> |
| <include name="**/*.class"/> |
| <exclude name="**/Test*.class"/> |
| </patternset> |
| |
| <!-- patternset describing non test source files (*.java, *html, etc.) --> |
| <patternset id="patternset-javadocable-sources"> |
| <include name="**/*"/> |
| <exclude name="**/Test*.java"/> |
| </patternset> |
| |
| <!-- Anakia props --> |
| <property name="docs.src" value="./xdocs"/> |
| <property name="docs.dest" value="./docs"/> |
| |
| <!-- ######################################################### --> |
| |
| <target name="init"> |
| <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}"/> |
| |
| <property name="commons-collections.jar" value="${basedir}/../collections/dist/commons-collections.jar"/> |
| |
| <!-- command line classpath, if any --> |
| <property name="cp" value=""/> |
| |
| <!-- now combine the classpaths --> |
| <property name="classpath" value="${cp}:${commons-collections.jar}:${junit.jar}"/> |
| |
| <property name="name" value="commons-pool"/> |
| <property name="Name" value="Commons-Pool"/> |
| <property name="Name-Long" value="Jakarta Commons Object Pooling Package"/> |
| |
| <!-- The current version number of this component --> |
| <property name="component.version" value="2.0-dev"/> |
| |
| <property name="test.entry" value="org.apache.commons.pool.TestAll"/> |
| <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.doc" value="${dest}/docs"/> |
| <property name="dest.doc.api" value="${dest.doc}/api"/> |
| <property name="dest.jardir" value="${dest}"/> |
| <property name="dest.jardir.jar" value="${dest.jardir}/${name}.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"/> |
| |
| <patternset id="patternset-exclude-distros"> |
| <exclude name="**/${bin.name}.tar.gz"/> |
| <exclude name="**/${bin.name}.zip"/> |
| <exclude name="**/${src.name}.tar.gz"/> |
| <exclude name="**/${src.name}.zip"/> |
| </patternset> |
| |
| <property name="javac.optimize" value="false"/> |
| <property name="javac.debug" value="true"/> |
| <property name="javac.deprecation" value="true"/> |
| |
| <!-- set the cvs.root property in the build.properties file --> |
| <property name="cvs.tag" value="POOL_1_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" description="generates javadocs and other documentation"> |
| </target> |
| |
| <target name="doc-top" depends="init"> |
| <mkdir dir="${dest}"/> |
| <copy todir="${dest}" file="${basedir}/LICENSE.txt"/> |
| <copy todir="${dest}" file="${basedir}/README.txt"/> |
| </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}" |
| classpath="${classpath}" |
| destdir="${dest.doc.api}" |
| windowtitle="${Name-Long}" |
| doctitle="${Name-Long}" |
| bottom="<small>Copyright &copy; 2001-2002 Apache Software Foundation. Documenation generated ${TODAY}</small>." |
| overview="${workdir}/org/apache/commons/pool/overview.html" |
| public="true" |
| version="true" |
| author="true" |
| splitindex="false" |
| nodeprecated="true" |
| nodeprecatedlist="true" |
| notree="true" |
| noindex="false" |
| 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="${javac.deprecation}" |
| optimize="${javac.optimize}"/> |
| </target> |
| |
| <!-- ######################################################### --> |
| |
| <target name="test" depends="build-test" if="test.entry" description="runs (junit) unit tests"> |
| <echo message="Because we need to sleep to test the eviction threads, this takes a little while (around 35 seconds)..."/> |
| <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="dist-jar,doc,dist-tar,dist-zip" description="builds binary distribution"/> |
| |
| <target name="dist-jar" 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}"/> |
| <delete dir="${dest.classes}"/> |
| |
| </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/pool"/> |
| </move> |
| <delete dir="${workdir}/jakarta-commons"/> |
| <copy file="${basedir}/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> |
| |
| <!-- ######################################################### --> |
| |
| <target name="xdoc.fetch-stylesheet" unless="localstylesheet"> |
| <echo> |
| #################################################################### |
| # |
| # Fetching the latest stylesheet from jakarta-site2 |
| # |
| # NOTE : As this build target is meant for developers, this requires |
| # a properly setup CVS. But you are encouraged to use this to |
| # experiment with Anakia - if the fetch fails, it may be because |
| # you haven't yet logged into CVS. The way to do it, assuming you |
| # have a resonable CVS client setup is |
| # |
| # $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login |
| # password: anoncvs |
| # |
| # and that should solve it. |
| # |
| # See http://jakarta.apache.org/site/cvsindex.html for more |
| # information, or http://www.cvshome.org/ |
| # |
| # Ant really is the bee's knees. http://jakarta.apache.org/ant/ |
| # |
| ###################################################################### |
| </echo> |
| <cvspass cvsroot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic" |
| password="anoncvs" |
| /> |
| <cvs cvsRoot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic" |
| command="checkout -p jakarta-site2/xdocs/stylesheets/site.vsl" |
| output="${docs.src}/stylesheets/site.vsl" |
| /> |
| </target> |
| |
| <target name="xdoc" depends="init,xdoc.fetch-stylesheet" |
| description="Generates HTML documentation from XML source"> |
| <mkdir dir="${dist.home}"/> |
| <mkdir dir="${dist.home}/docs"/> |
| <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask"> |
| <classpath location="${velocity.jar}"/> |
| <classpath location="${jdom.jar}"/> |
| <classpath location="${xerces.jar}"/> |
| <classpath location="${commons-collections.jar}"/> |
| </taskdef> |
| |
| <echo> |
| ####################################################### |
| # |
| # Now using Anakia to transform our XML documentation |
| # to HTML. |
| # |
| ####################################################### |
| </echo> |
| |
| <anakia basedir="${docs.src}" destdir="${docs.dest}/" |
| extension=".html" style="./site.vsl" |
| projectFile="stylesheets/project.xml" |
| excludes="**/stylesheets/** empty.xml" |
| includes="**/*.xml" |
| lastModifiedCheck="true" |
| templatePath="xdocs/stylesheets"> |
| </anakia> |
| |
| <copy todir="${docs.dest}/images" filtering="no"> |
| <fileset dir="${docs.src}/images"> |
| <include name="**/*.gif"/> |
| <include name="**/*.jpeg"/> |
| <include name="**/*.jpg"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| |
| </project> |