<!--
   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.
-->
<!-- $Id$ -->
 
<project name="commons-pool" default="test" basedir=".">

   <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}:${cglib.jar}:${asm.jar}:${asm-util.jar}:${asm-tree.jar}:${junit.jar}:${hamcrest.jar}"/>     

      <property name="name" value="commons-pool2"/>
      <property name="title" value="Apache Commons Object Pooling Package"/>
      <property name="version" value="2.4.1"/>
      <property name="package" value="org.apache.commons.pool2.*"/>

      <property name="src.dir" value="${basedir}/src"/>
      <property name="src.java.dir" value="${src.dir}/main/java"/>
      <property name="src.test.dir" value="${src.dir}/test/java"/>
      <property name="src.testresources.dir" value="${src.dir}/test/resources"/>
      <property name="build.dir" value="${basedir}/build"/>
      <property name="build.classes.dir" value="${build.dir}/classes"/>
      <property name="build.test-classes.dir" value="${build.dir}/test-classes"/>
      <property name="dist.dir" value="${basedir}/dist"/>
      <property name="dist.jar" value="${dist.dir}/${name}-${version}.jar"/>

      <property name="test.failonerror" value="true" /> 
     
      <property name="javadoc.dir" value="${dist.dir}/docs/api"/>
      <property name="javadoc.bottom" value="&lt;small&gt;Copyright &amp;copy; 2001-2014 Apache Software Foundation. Documenation generated ${TODAY}&lt;/small&gt;."/>
      <property name="javadoc.overview" value="${src.java.dir}/org/apache/commons/pool2/overview.html" />

      <property name="javac.optimize" value="false"/>
      <property name="javac.debug" value="true"/>
      <property name="javac.deprecation" value="true"/>
      <property name="javac.target.version" value="1.6"/>
      <property name="javac.src.version" value="1.6"/>
   </target>

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

   <target name="clean" depends="init" description="removes generated files">
      <delete dir="${build.dir}"/>
      <delete dir="${dist.dir}"/>
   </target>

   <target name="javadoc" depends="init" description="generates javadocs">
      <mkdir dir="${javadoc.dir}"/>
      <javadoc packagenames="org.*"
               sourcepath="${src.java.dir}"
               classpath="${classpath}"
               destdir="${javadoc.dir}"
               windowtitle="${title}"
               doctitle="${title}"
               bottom="${javadoc.bottom}"
               overview="${javadoc.overview}"
               public="true"
               version="true"
               author="true"
               splitindex="false"
               nodeprecated="true"
               nodeprecatedlist="true"
               notree="true"
               noindex="false"
               nohelp="true"
               nonavbar="false"
               serialwarn="false"
               source="${javac.src.version}">
          <link href="http://docs.oracle.com/javase/6/docs/api/"/>
      </javadoc>
   </target>

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

   <target name="compile" depends="init" description="compiles source files">
      <mkdir dir="${build.classes.dir}"/>
      <javac destdir="${build.classes.dir}"
             srcdir="${src.java.dir}"
             classpath="${classpath}"
             debug="${javac.debug}"
             deprecation="${javac.deprecation}"
             optimize="${javac.optimize}"
             target="${javac.target.version}"
             source="${javac.src.version}"/>
   </target>
   
   <target name="compile-test" depends="compile">
      <mkdir dir="${build.test-classes.dir}"/>
      <javac destdir="${build.test-classes.dir}"
             srcdir="${src.test.dir}"
             debug="${javac.debug}"
             deprecation="${javac.deprecation}"
             optimize="${javac.optimize}"
             target="${javac.target.version}"
             source="${javac.src.version}">
        <classpath>
          <pathelement location="${build.classes.dir}" /> 
          <pathelement location="${build.test-classes.dir}" /> 
          <pathelement path="${classpath}" /> 
        </classpath>
      </javac>
   </target>

   <target name="test" depends="compile-test" description="runs (junit) unit tests">
      <echo message="Because we need to sleep to test the eviction threads, this takes a little while (around 2 minutes)..."/>
      <junit printsummary="true" showoutput="true" fork="yes" haltonerror="${test.failonerror}">
        <classpath>
          <pathelement location="${build.classes.dir}" /> 
          <pathelement location="${build.test-classes.dir}" /> 
          <pathelement path="${classpath}" /> 
          <pathelement location="${src.testresources.dir}" /> 
        </classpath>
        <!-- If test.entry is defined, run a single test, otherwise run all valid tests -->
        <test name="${test.entry}" if="test.entry"/>
        <batchtest todir="${build.dir}/ant-reports" unless="test.entry">
          <fileset dir="${src.test.dir}">
            <include name="**/Test*.java"/>
            <exclude name="org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java"/>
            <!-- abstract classes -->
            <exclude name="**/TestObjectPool.java"/>
            <exclude name="**/TestObjectPoolFactory.java"/>
            <exclude name="**/TestKeyedObjectPool.java"/>
            <exclude name="**/TestKeyedObjectPoolFactory.java"/>
          </fileset>
          <formatter type="plain" usefile="false"/>
        </batchtest>
      </junit>
   </target>

   <target name="build-jar" depends="compile">
      <mkdir dir="${dist.dir}"/>
      <jar jarfile="${dist.jar}">
         <fileset dir="${build.classes.dir}"/>
         <metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
         <manifest>
            <attribute name="Built-By" value="${user.name}"/>
            <attribute name="Package" value="${package}"/>
            <attribute name="Extension-Name" value="${name}"/>
            <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
            <attribute name="Specification-Title" value="${title}"/>
            <attribute name="Implementation-Version" value="${version}"/>
            <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
            <attribute name="X-Compile-Source-JDK" value="${javac.src.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${javac.target.version}"/>

         </manifest>
      </jar>
   </target>

   <target name="build" depends="clean,build-jar,javadoc">
      <copy todir="${dist.dir}" file="${basedir}/LICENSE.txt"/>
      <copy todir="${dist.dir}" file="${basedir}/NOTICE.txt"/>
      <copy todir="${dist.dir}" file="${basedir}/README.txt"/>
   </target>

   <target name="dist" depends="build" description="gump target"/>
   
</project>
