<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- Basedir points at tomcat-trunk directory -->
<project name="Tomcat JDBC Pool" default="simplebuild" basedir=".">


  <!-- ===================== Initialize Property Values =================== -->

  <!-- We read customizable properties from the file "build.properties.default" -->
  <!-- and also from "build.properties" if it exists.                           -->
  <!-- The values in "build.properties" have stronger preference.               -->
  <!-- If you want to customize your build, you can either change the values    -->
  <!-- directly in the default file, or create a new build.properties and set   -->
  <!-- the values there. This way you don't have to change a file which is part -->
  <!-- of the original project source code.                                     -->
  <!-- See "build.properties.default" for some property values you may          -->
  <!-- customize.                                                               -->
  <property file="${user.home}/build.properties"/>
  <property file="${basedir}/build.properties"/>
  <property file="${basedir}/build.properties.default"/>
  <property name="version"               value="${version.major}.${version.minor}.${version.build}.${version.patch}${version.suffix}" />
  <property name="version.major.minor"   value="${version.major}.${version.minor}" />

  <!-- Project Properties -->
  <property name="name"                  value="Apache Tomcat JDBC Pool" />
  <tstamp>
    <format property="year" pattern="yyyy" locale="en" timezone="UTC" />
    <format property="TODAY" pattern="MMM d yyyy" locale="en" timezone="UTC" />
    <format property="TSTAMP" pattern="HH:mm:ss" locale="en" timezone="UTC" />
  </tstamp>

  <property name="project"               value="apache-tomcat-jdbc-pool" />
  <property name="final.name"            value="${project}-${version}" />
  <property name="final-src.name"        value="${project}-${version}-src" />

  <!-- Build Defaults -->
  <property name="tomcat.pool" value="${basedir}/./output"/>
  <property name="tomcat.build"      value="${tomcat.pool}/build"/>
  <property name="tomcat.classes"    value="${tomcat.pool}/classes"/>
  <property name="tomcat.api"    value="${tomcat.pool}/api"/>
  <property name="tomcat.testclasses"    value="${tomcat.pool}/testclasses"/>

  <!-- JAR Artifacts -->
  <property name="tomcat-jdbc.jar" value="${tomcat.pool}/tomcat-jdbc.jar"/>
  <property name="tomcat-jdbc-src.jar" value="${tomcat.pool}/tomcat-jdbc-src.jar"/>
  <property name="tomcat-jdbc-test.jar" value="${tomcat.pool}/tomcat-jdbc-test.jar"/>
  <property name="tomcat-jdbc-test-src.jar" value="${tomcat.pool}/tomcat-jdbc-test-src.jar"/>
  <property name="tomcat-jdbc-api.jar" value="${tomcat.pool}/tomcat-jdbc-api.jar"/>
  <!-- Classpath -->
  <path id="tomcat.jdbc.classpath">
    <pathelement location="${tomcat.classes}"/>
    <pathelement location="${tomcat.juli.jar}"/>
  </path>

  <path id="test.classpath">
    <pathelement location="${tomcat-jdbc.jar}"/>
    <pathelement location="${tomcat.testclasses}"/>
    <pathelement location="${c3p0.jar}"/>
    <pathelement location="${mysql.jar}"/>
    <pathelement location="${junit.jar}"/>
    <pathelement location="${hamcrest.jar}"/>
    <pathelement location="${tomcat.dbcp.jar}"/>
    <pathelement location="${derby.jar}"/>
    <pathelement location="${h2.jar}"/>
  </path>

  <fileset id="license.notice" dir="${basedir}">
    <include name="NOTICE"/>
    <include name="LICENSE"/>
  </fileset>

  <!-- Version info filter set -->
  <filterset id="version.filters">
    <filter token="YEAR" value="${year}"/>
    <filter token="VERSION" value="${version}"/>
    <filter token="VERSION_MAJOR" value="${version.major}"/>
    <filter token="VERSION_MAJOR_MINOR" value="${version.major.minor}"/>
    <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP} UTC"/>
    <filter token="TOMCAT_PROJECT_DEST" value="${tomcat.project.dest}"/>
  </filterset>

  <target name="prepare">
    <mkdir dir="${tomcat.build}"/>
    <mkdir dir="${tomcat.classes}"/>
    <mkdir dir="${tomcat.testclasses}"/>
    <copy todir="${tomcat.pool}">
      <fileset dir="${basedir}">
        <include name="LICENSE"/>
        <include name="NOTICE"/>
        <include name="build.xml"/>
        <include name="doc/*.xml"/>
        <include name="resources/MANIFEST.MF"/>
      </fileset>
      <filterset refid="version.filters"/>
    </copy>
  </target>

  <target name="javadoc" depends="prepare">

     <xslt basedir="${tomcat.pool}/doc"
          destdir="${basedir}/src/main/java/org/apache/tomcat/jdbc/pool"
          extension=".html"
          style="${basedir}/doc/package.xsl"
          excludes="build.xml"
          includes="jdbc-pool.xml">
      <param name="relative-path" expression="https://tomcat.apache.org/tomcat-8.5-doc"/>
      <param name="apache-logo" expression="/images/asf-logo.svg"/>
    </xslt>
    <move tofile="${basedir}/src/main/java/org/apache/tomcat/jdbc/pool/package.html"
          file="${basedir}/src/main/java/org/apache/tomcat/jdbc/pool/jdbc-pool.html"/>
    <javadoc
        destdir="${tomcat.api}"
        bottom="Copyright &amp;#169; 2000-${year} Apache Software Foundation. All Rights Reserved."
        encoding="UTF-8"
        docencoding="UTF-8"
        charset="UTF-8"
        additionalparam="-breakiterator -notimestamp"
        verbose="false">
      <classpath refid="tomcat.jdbc.classpath"/>
      <link href="http://docs.oracle.com/javase/7/docs/api/"/>
      <sourcepath location="${basedir}/src/main/java"/>
    </javadoc>
    <!-- connection pool API  file-->
    <jar jarfile="${tomcat-jdbc-api.jar}" update="true">
      <fileset dir="${tomcat.api}"/>
      <fileset refid="license.notice"/>
    </jar>
    <delete file="${basedir}/src/main/java/org/apache/tomcat/jdbc/pool/package.html"/>
  </target>

  <target name="build" depends="prepare,download,build-src">
    <!-- compile org.apache.tomcat.jdbc-->
    <javac srcdir="${basedir}/src/main/java" destdir="${tomcat.classes}"
           debug="${compile.debug}"
           deprecation="${compile.deprecation}"
           source="${compile.source}"
           target="${compile.target}"
           release="${compile.release}"
           encoding="ISO-8859-1"
           includeantruntime="false">
      <classpath refid="tomcat.jdbc.classpath"/>
      <include name="org/apache/tomcat/jdbc/**" />
    </javac>

    <!-- connection pool JAR File -->
    <jar jarfile="${tomcat-jdbc.jar}" update="true" manifest="${tomcat.pool}/resources/MANIFEST.MF">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/tomcat/jdbc/**" />
      </fileset>
      <fileset dir="${basedir}/src/main/java">
        <include name="org/apache/tomcat/jdbc/**/*.xml" />
      </fileset>
      <fileset refid="license.notice"/>
    </jar>
  </target>

  <target name="build-src">
    <!-- connection pool source file-->
    <jar jarfile="${tomcat-jdbc-src.jar}" update="true">
      <fileset dir="${basedir}/src/main/java">
        <include name="org/apache/tomcat/jdbc/**" />
      </fileset>
      <fileset refid="license.notice"/>
    </jar>
  </target>

  <target name="build-test" depends="prepare, build, download-test">
    <mkdir dir="${tomcat.pool}"/>
    <!-- compile org.apache.tomcat.jdbc-->
    <javac srcdir="${basedir}/src/test/java" destdir="${tomcat.testclasses}"
           debug="${compile.debug}"
           deprecation="${compile.deprecation}"
           source="${compile.source}"
           target="${compile.target}"
           release="${compile.release}"
           encoding="ISO-8859-1"
           includeantruntime="false">
      <classpath refid="tomcat.jdbc.classpath"/>
      <classpath refid="test.classpath"/>
      <include name="org/apache/tomcat/jdbc/**" />
    </javac>
    <!-- connection pool JAR File -->
    <jar jarfile="${tomcat-jdbc-test.jar}" update="true">
      <fileset dir="${tomcat.testclasses}">
        <include name="org/apache/tomcat/jdbc/**" />
      </fileset>
      <fileset dir="${basedir}/src/test/java">
        <include name="org/apache/tomcat/jdbc/**/*.xml" />
      </fileset>
      <fileset refid="license.notice"/>
    </jar>
    <jar jarfile="${tomcat-jdbc-test-src.jar}" update="true">
      <fileset dir="${basedir}/src/test/java">
        <include name="org/apache/tomcat/jdbc/**" />
      </fileset>
      <fileset refid="license.notice"/>
    </jar>
  </target>


  <target name="clean">
      <mkdir dir="${tomcat.pool}"/>
      <delete file="${tomcat-jdbc.jar}" />
      <delete file="${tomcat-jdbc-src.jar}"/>
      <delete includeemptydirs="true" failonerror="false">
          <fileset dir="${tomcat.classes}">
            <include name="org/apache/tomcat/jdbc/**"/>
          </fileset>
          <fileset dir="${tomcat.pool}">
            <include name="*.html"/>
            <include name="LICENSE"/>
            <include name="NOTICE"/>
          </fileset>
      </delete>
      <delete dir="${tomcat.pool}/doc"/>
      <delete dir="${tomcat.classes}"/>
      <delete dir="${tomcat.testclasses}"/>
      <delete file="${tomcat.pool}/build.xml"/>
      <delete dir="${tomcat.pool}/build"/>
      <delete dir="${tomcat.api}"/>
  </target>

  <target name="docs" depends="prepare">
    <xslt basedir="${tomcat.pool}/doc"
          destdir="${tomcat.pool}/"
          extension=".html"
          style="${tomcat.xsl.dest}"
          excludes="build.xml project.xml"
          includes="*.xml">
      <param name="relative-path" expression="https://tomcat.apache.org/tomcat-8.5-doc"/>
      <param name="apache-logo" expression="/images/asf-logo.svg"/>
    </xslt>
  </target>

  <target name="dist" depends="clean, build, build-test, docs, javadoc">
    <property name="destdir" value="${tomcat.pool}/release/v${version}"/>
    <mkdir dir="${destdir}"/>
    <zip destfile="${destdir}/apache-tomcat-jdbc-${version}-bin.zip">
      <fileset dir="${tomcat.pool}">
        <include name="jdbc-pool.html"/>
        <include name="changelog.html"/>
        <include name="LICENSE"/>
        <include name="NOTICE"/>
        <include name="tomcat-jdbc.jar"/>
        <include name="tomcat-jdbc-test.jar"/>
        <include name="tomcat-jdbc-src.jar"/>
        <include name="tomcat-jdbc-test-src.jar"/>
      </fileset>
      <fileset dir="${tomcat.home}/bin">
        <include name="tomcat-juli.jar"/>
      </fileset>
    </zip>
    <tar destfile="${destdir}/apache-tomcat-jdbc-${version}-bin.tar">
      <fileset dir="${tomcat.pool}">
        <include name="jdbc-pool.html"/>
        <include name="changelog.html"/>
        <include name="LICENSE"/>
        <include name="NOTICE"/>
        <include name="tomcat-jdbc.jar"/>
        <include name="tomcat-jdbc-test.jar"/>
        <include name="tomcat-jdbc-src.jar"/>
        <include name="tomcat-jdbc-test-src.jar"/>
      </fileset>
      <fileset dir="${tomcat.home}/bin">
        <include name="tomcat-juli.jar"/>
      </fileset>
    </tar>
    <gzip src="${destdir}/apache-tomcat-jdbc-${version}-bin.tar"
          destfile="${destdir}/apache-tomcat-jdbc-${version}-bin.tar.gz"/>
    <delete file="${destdir}/apache-tomcat-jdbc-${version}-bin.tar"/>

    <zip destfile="${destdir}/apache-tomcat-jdbc-${version}-src.zip">
      <zipfileset src="${tomcat-jdbc-src.jar}" prefix="java"/>
      <zipfileset src="${tomcat-jdbc-test-src.jar}" prefix="test"/>
      <fileset dir="${basedir}">
        <include name="build.xml"/>
        <include name="build.properties.default"/>
        <include name="doc/*.xml"/>
        <include name="doc/*.xsl"/>
        <include name="resources/MANIFEST.MF"/>
        <include name="LICENSE"/>
        <include name="NOTICE"/>
      </fileset>
    </zip>
    <tar destfile="${destdir}/apache-tomcat-jdbc-${version}-src.tar">
      <zipfileset src="${tomcat-jdbc-src.jar}" prefix="java"/>
      <zipfileset src="${tomcat-jdbc-test-src.jar}" prefix="test"/>
      <fileset dir="${basedir}">
        <include name="build.xml"/>
        <include name="build.properties.default"/>
        <include name="doc/*.xml"/>
        <include name="doc/*.xsl"/>
        <include name="resources/MANIFEST.MF"/>
        <include name="LICENSE"/>
        <include name="NOTICE"/>
      </fileset>
    </tar>
    <gzip src="${destdir}/apache-tomcat-jdbc-${version}-src.tar"
          destfile="${destdir}/apache-tomcat-jdbc-${version}-src.tar.gz"/>

    <delete file="${destdir}/apache-tomcat-jdbc-${version}-src.tar"/>
    <echo message="Options +Indexes" file="${destdir}/.htaccess"/>

    <checksum file="${destdir}/apache-tomcat-jdbc-${version}-bin.tar.gz" forceOverwrite="yes" fileext=".md5" />
    <checksum file="${destdir}/apache-tomcat-jdbc-${version}-bin.zip" forceOverwrite="yes" fileext=".md5" />
    <checksum file="${destdir}/apache-tomcat-jdbc-${version}-src.tar.gz" forceOverwrite="yes" fileext=".md5" />
    <checksum file="${destdir}/apache-tomcat-jdbc-${version}-src.zip" forceOverwrite="yes" fileext=".md5" />


  </target>

  <!-- Download and dependency building -->
  <target name="proxyflags">
    <!-- check proxy parameters. -->
    <condition property="useproxy">
      <equals arg1="${proxy.use}" arg2="on" />
    </condition>
  </target>

  <target name="setproxy" depends="proxyflags" if="useproxy">
    <taskdef name="setproxy"
            classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy" />
    <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
              proxyuser="${proxy.user}" proxypassword="${proxy.password}" />
    <echo message="Using ${proxy.host}:${proxy.port} to download ${sourcefile}"/>
  </target>

  <target name="testexist">
    <echo message="Testing  for ${destfile}"/>
    <available file="${destfile}" property="exist"/>
  </target>

  <target name="downloadfile" unless="exist" depends="setproxy,testexist">
    <!-- Download extract the file -->
    <mkdir dir="${destdir}" />
    <get src="${sourcefile}" dest="${destfile}" />
  </target>

  <target name="downloadgz" unless="exist" depends="setproxy,testexist">
    <!-- Download and extract the package -->
    <get src="${sourcefile}" dest="${base.path}/file.tar.gz" />
    <gunzip src="${base.path}/file.tar.gz" dest="${base.path}/file.tar"/>
    <untar src="${base.path}/file.tar" dest="${base.path}"/>
    <delete file="${base.path}/file.tar"/>
    <delete file="${base.path}/file.tar.gz"/>
  </target>

  <target name="downloadzip" unless="exist" depends="setproxy,testexist">
    <!-- Download and extract the package -->
    <get src="${sourcefile}" dest="${base.path}/file.zip" />
    <mkdir dir="${destdir}" />
    <unzip src="${base.path}/file.zip" dest="${destdir}"/>
    <delete file="${base.path}/file.zip"/>
  </target>

  <target name="download" unless="skip.download">
    <mkdir dir="${base.path}"/>
<!--
    <antcall target="downloadzip">
      <param name="sourcefile" value="${dbcp.loc}"/>
      <param name="destfile" value="${dbcp.jar}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
 -->
    <antcall target="downloadzip">
      <param name="sourcefile" value="${tomcat.loc}"/>
      <param name="destfile" value="${tomcat.juli.jar}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
    <antcall target="downloadfile">
      <param name="sourcefile" value="${tomcat.xsl.loc}"/>
      <param name="destfile" value="${tomcat.xsl.dest}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
    <antcall target="downloadfile">
      <param name="sourcefile" value="${tomcat.project.loc}"/>
      <param name="destfile" value="${tomcat.project.dest}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
    <!-- Derby database
    <antcall target="downloadgz">
      <param name="sourcefile" value="${derby.loc}"/>
      <param name="destfile" value="${derby.jar}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
     -->
    <antcall target="downloadfile">
      <param name="sourcefile" value="${h2.loc}"/>
      <param name="destfile" value="${h2.jar}"/>
      <param name="destdir" value="${h2.home}"/>
    </antcall>
    <antcall target="downloadfile">
      <param name="sourcefile" value="${junit.loc}"/>
      <param name="destfile" value="${junit.jar}"/>
      <param name="destdir" value="${junit.home}"/>
    </antcall>
    <antcall target="downloadfile">
      <param name="sourcefile" value="${hamcrest.loc}"/>
      <param name="destfile" value="${hamcrest.jar}"/>
      <param name="destdir" value="${hamcrest.home}"/>
    </antcall>

  </target>

  <target name="download-test" depends="prepare">
    <mkdir dir="${base.path}"/>
    <!-- Derby database
    <antcall target="downloadgz">
      <param name="sourcefile" value="${derby.loc}"/>
      <param name="destfile" value="${derby.jar}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
     -->
    <antcall target="downloadfile">
      <param name="sourcefile" value="${h2.loc}"/>
      <param name="destfile" value="${h2.jar}"/>
      <param name="destdir" value="${h2.home}"/>
    </antcall>
    <antcall target="downloadfile">
      <param name="sourcefile" value="${junit.loc}"/>
      <param name="destfile" value="${junit.jar}"/>
      <param name="destdir" value="${junit.home}"/>
    </antcall>
    <antcall target="downloadfile">
      <param name="sourcefile" value="${hamcrest.loc}"/>
      <param name="destfile" value="${hamcrest.jar}"/>
      <param name="destdir" value="${hamcrest.home}"/>
    </antcall>
  </target>

  <!-- Extract the testdb.* properties and remove the leading testdb. -->
  <propertyset dynamic="false" id="testdb">
    <propertyref prefix="testdb"/>
    <mapper type="regexp" from="^testdb\.(.*)$$" to="\1"/>
  </propertyset>

  <target name="test" depends="build,build-test">
    <echo/>
    <echo>Creating test table for test purposes.</echo>

    <junit printsummary="withOutAndErr" showoutput="on">
      <syspropertyset refid="testdb"/>
      <formatter type="brief" usefile="no"/>
      <classpath refid="tomcat.jdbc.classpath"/>
      <classpath refid="test.classpath"/>
      <batchtest fork="yes" todir="${tomcat.testclasses}">
        <fileset dir="${basedir}/src/test/java">
          <include name="**/CreateTestTable*"/>
        </fileset>
      </batchtest>
    </junit>

    <echo/>
    <echo>Performance and fairness tests.</echo>
    <junit printsummary="withOutAndErr" showoutput="on">
      <syspropertyset refid="testdb"/>
      <formatter type="brief" usefile="no"/>
      <classpath refid="tomcat.jdbc.classpath"/>
      <classpath refid="test.classpath"/>
      <batchtest fork="yes" todir="${tomcat.testclasses}">
        <fileset dir="${basedir}/src/test/java">
          <include name="org/apache/tomcat/jdbc/test/*CheckOutThreadTest*.java"/>
          <include name="org/apache/tomcat/jdbc/test/FairnessTest*.java"/>
          <exclude name="**/CreateTestTable*"/>
          <exclude name="**/DefaultTestCase*"/>
        </fileset>
      </batchtest>
    </junit>

    <echo/>
    <echo>Functional tests.</echo>
    <junit printsummary="yes">
      <syspropertyset refid="testdb"/>
      <formatter type="brief" usefile="no"/>
      <classpath refid="tomcat.jdbc.classpath"/>
      <classpath refid="test.classpath"/>
      <batchtest fork="yes" todir="${tomcat.testclasses}">
        <fileset dir="${basedir}/src/test/java">
          <include name="org/apache/tomcat/jdbc/test/*Test*.java"/>
          <exclude name="org/apache/tomcat/jdbc/test/*CheckOutThreadTest*.java"/>
          <exclude name="**/CreateTestTable*"/>
          <exclude name="**/DefaultTestCase*"/>
          <exclude name="**/CheckOutThread*"/>
          <exclude name="**/Fairness*"/>
        </fileset>
      </batchtest>
    </junit>

  </target>

  <target name="simplebuild" depends="build"/>
  <target name="clean-and-build" depends="clean,build"/>

  <target name="onetest" depends="build,build-test">

    <echo>Testing:${test}</echo>
    <junit printsummary="withOutAndErr" showoutput="on">
      <syspropertyset refid="testdb"/>
      <formatter type="brief" usefile="no"/>
      <classpath refid="tomcat.jdbc.classpath"/>
      <classpath refid="test.classpath"/>
      <batchtest fork="yes" todir="${tomcat.testclasses}">
        <fileset dir="${basedir}/src/test/java">
          <include name="org/apache/tomcat/jdbc/test/*${test}*.java"/>
          <exclude name="**/CreateTestTable*"/>
          <exclude name="**/DefaultTestCase*"/>
        </fileset>
      </batchtest>
    </junit>

  </target>

</project>

