<!-- $Id: build.xml,v 1.13 2002/08/13 00:44:54 craigmcc Exp $ -->
<project name="jakarta-commons-dbcp" 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"/>
      <!-- Temporarily exclude "jdbc2pool" subdirectory -->
      <exclude name="**/jdbc2pool/*.java"/>
   </patternset>

   <!-- ######################################################### -->

   <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}"/>

      <!-- command line classpath, if any -->
      <property name="cp" value=""/>

      <!-- now combine the classpaths -->
      <property name="classpath" value="${cp}:${commons-pool.jar}:${commons-collections.jar}:${jdbc20ext.jar}:${junit.jar}:${jndi.jar}:${commons-lang.jar}"/>

      <property name="name" value="commons-dbcp"/>
      <property name="Name" value="Commons-DBCP"/>
      <property name="Name-Long" value="Jakarta Commons Database Connection Pool"/>

      <!-- The current version number of this component -->
      <property name="component.package" value="org.apache.commons.dbcp"/>
      <property name="component.version" value="1.0"/>
      <filter  token="package"           value="${component.package}"/>
      <filter  token="version"           value="${component.version}"/>

      <property name="test.entry" value="org.apache.commons.dbcp.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.conf" value="${source.src}/conf"/>
      <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.src"     value="${dest}/src"/>
      <property name="dest.classes" value="${dest}/classes"/>
      <property name="dest.conf"    value="${dest}/conf"/>
      <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"/>
      <available property="available-doc" file="${source.doc}"/> <!-- does this
 module have docs? -->
      <available property="available-src-conf" file="${source.src.conf}"/> <!-- does this module have conf src? -->
      <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? -->
      <available property="jndi.present" classname="javax.naming.Context"/>
      <available property="jdbc3.present" classname="java.sql.Savepoint"/>

   </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-conf" depends="init" if="available-src-conf">
      <mkdir  dir="${dest.conf}"/>
      <copy todir="${dest.conf}" filtering="yes">
         <fileset dir="${source.src.conf}"/>
      </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="../LICENSE"/>
   </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="&lt;small&gt;Copyright &amp;copy; 2001 Apache Software Foundation. Documenation generated ${TODAY}&lt;/small&gt;."
               protected="true"
               version="true"
               author="true"
               overview="${source.src.java}/org/apache/commons/dbcp/package.html"
               splitindex="false"
               nodeprecated="true"
               nodeprecatedlist="true"
               notree="true"
               noindex="false"
               nohelp="true"
               nonavbar="false"
               serialwarn="false">
      </javadoc>
      <delete dir="${workdir}"/>
   </target>

   <!-- ######################################################### -->

   <target name="build" depends="init,build-java" description="compiles source files"/>

   <target name="copy-src" depends="init">
      <mkdir dir="${dest.src}"/>
      <!-- the source code directory -->
      <copy todir="${dest.src}" filtering="yes">
         <fileset dir="${source.src.java}" defaultexcludes="no">
            <include name="**/*.java"/>
            <include name="**/*.xml"/>
            <include name="**/*.properties"/>
            <include name="**/package.html"/>
            <!-- Temporarily omit "jdbc2pool" package -->
            <exclude name="**/jdbc2pool/*.java"/>
         </fileset>
      </copy>
   </target>

   <target name="prepare-jdbc3" if="jdbc3.present">
      <echo message="Uncommenting jdbc3 additional methods."/>
      <replace dir="${dest.src}" token="/* JDBC_3_ANT_KEY" value=""/>
      <replace dir="${dest.src}" token="JDBC_3_ANT_KEY */" value=""/>
   </target>

   <target name="build-java" depends="copy-src,prepare-jdbc3" if="available-src-java">
      <mkdir dir="${dest.classes}"/>
      <javac destdir="${dest.classes}"
             srcdir="${dest.src}"
             classpath="${classpath}"
             debug="true"
             deprecation="true"
             optimize="true">
        <exclude name="org/apache/commons/dbcp/BasicDataSourceFactory.java"
               unless="jndi.present"/>
        <exclude name="org/apache/commons/dbcp/jdbc2pool/**"
               unless="jndi.present"/>
        <exclude name="org/apache/commons/dbcp/cpdsadapter/**"
               unless="jndi.present"/>
      </javac>
   </target>

   <target name="build-test" depends="init,build-java" if="available-src-test">
      <mkdir dir="${dest.src}"/>
      <!-- the source code directory -->
      <copy todir="${dest.src}" filtering="yes">
        <fileset dir="${source.src.test}" defaultexcludes="no">
          <include name="**/*.java"/>
        </fileset>
      </copy>
      <antcall target="prepare-jdbc3"/>
      <mkdir dir="${dest.classes}"/>
      <javac destdir="${dest.classes}"
             srcdir="${dest.src}"
             classpath="${classpath}"
             debug="true"
             deprecation="true"
             optimize="true"/>
   </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="copy-conf,dist-jar,doc" 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>
      <jar jarfile="${dest.jardir.jar}" manifest="${dest.conf}/MANIFEST.MF">
         <fileset dir="${workdir}"/>
      </jar>
      <delete dir="${workdir}"/>
   </target>

   <!-- ######################################################### -->

</project>
