blob: b65bee52bf0075cd3c6f734fba1c05ae9bd5e5aa [file] [log] [blame]
<!--
/*
* 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-dbcp2" 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 ${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}:${junit.jar}:${hamcrest.jar}:
${naming-common.jar}:${naming-java.jar}:${commons-logging.jar}:
${jta-spec.jar}:${jta-impl.jar}:
${backport-util-concurrent.jar}:${ejb-spec.jar}"/>
<property name="name" value="commons-dbcp2"/>
<property name="title" value="Apache Commons Database Pooling Package"/>
<property name="version" value="2.2-SNAPSHOT"/>
<property name="package" value="org.apache.commons.dbcp2.*"/>
<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="src.dir" value="${basedir}/src"/>
<property name="src.java.dir" value="${src.dir}/main/java"/>
<property name="src.resource.dir" value="${src.dir}/main/resources"/>
<property name="src.test.dir" value="${src.dir}/test/java"/>
<property name="javac.source" value="1.7" />
<property name="test.failonerror" value="true" />
<property name="test.runner" value="junit.textui.TestRunner" />
<property name="javadoc.dir" value="${dist.dir}/docs/api"/>
<property name="javadoc.bottom" value="&lt;small&gt;Copyright &amp;copy; 2001-2015 Apache Software Foundation. Documenation generated ${TODAY}&lt;/small&gt;."/>
<property name="javadoc.overview" value="${basedir}/src/main/java/org/apache/commons/dbcp2/overview.html"/>
<property name="javac.optimize" value="false"/>
<property name="javac.debug" value="true"/>
<property name="javac.deprecation" value="false"/>
</target>
<target name="check_jar">
<available file="${file}" property="found"/>
<antcall target="check_message"/>
</target>
<target name="check_message" unless="found">
<!-- echo could be replaced with fail if required -->
<echo message="Could not find ${file}"/>
</target>
<!-- Check that all the dependencies exist -->
<target name="check_depends" depends="init">
<echo>Checking dependencies</echo>
<antcall target="check_jar">
<param name="file" value="${commons-pool.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${junit.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${naming-common.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${naming-java.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${commons-logging.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${jta-spec.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${jta-impl.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${backport-util-concurrent.jar}"/>
</antcall>
<antcall target="check_jar">
<param name="file" value="${ejb-spec.jar}"/>
</antcall>
</target>
<!-- ######################################################### -->
<target name="clean" depends="init" description="removes generated files">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
<echo>${classpath}</echo>
</target>
<target name="prepare" depends="init"/>
<target name="javadoc" depends="prepare" 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">
<link href="http://docs.oracle.com/javase/7/docs/api/"/>
<link href="http://commons.apache.org/pool/apidocs"/>
</javadoc>
</target>
<!-- ######################################################### -->
<target name="compile" depends="check_depends,prepare" description="compiles source files">
<mkdir dir="${build.classes.dir}"/>
<javac destdir="${build.classes.dir}"
srcdir="${src.java.dir}"
classpath="${classpath}"
includeantruntime="false"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
optimize="${javac.optimize}"
source="${javac.source}">
</javac>
<copy todir="${build.classes.dir}" >
<fileset dir="${src.resource.dir}"/>
</copy>
</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}"
includeantruntime="false"
deprecation="${javac.deprecation}"
optimize="${javac.optimize}"
source="${javac.source}">
<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="${classpath}"/>
<mkdir dir="${build.dir}/ant-reports"/>
<junit printsummary="true" showoutput="true" fork="yes" haltonfailure="${test.failonerror}">
<classpath>
<pathelement location="${build.classes.dir}" />
<pathelement location="${build.test-classes.dir}" />
<pathelement path="${classpath}" />
</classpath>
<sysproperty key="org.apache.commons.logging.Log"
value="org.apache.commons.dbcp2.StackMessageLog"/>
<formatter type="plain" usefile="true" />
<!-- 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"/>
<!-- Test support files -->
<exclude name="**/Tester*.java"/>
<!-- Ant JUnit does not handle abstract classes -->
<exclude name="**/TestConnectionPool.java"/>
</fileset>
</batchtest>
</junit>
</target>
<!-- Target to test that maven-generated jar works against test sources. -->
<target name="test-jar" depends="compile-test" description="runs (junit) unit tests">
<echo message="${classpath}"/>
<mkdir dir="${build.dir}/ant-reports"/>
<junit printsummary="true" showoutput="true" fork="yes" haltonfailure="${test.failonerror}">
<classpath>
<pathelement location="${build.test-classes.dir}" />
<pathelement path="${classpath}:${dbcp.jar}" />
</classpath>
<sysproperty key="org.apache.commons.logging.Log"
value="org.apache.commons.dbcp2.StackMessageLog"/>
<formatter type="plain" usefile="true" />
<!-- 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"/>
<!-- Test support files -->
<exclude name="**/Tester*.java"/>
<!-- Ant JUnit does not handle abstract classes -->
<exclude name="**/TestConnectionPool.java"/>
</fileset>
</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"/>
</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"/>
<target name="mock-jar" depends="compile-test" description="Bundles mock JDBC objects">
<mkdir dir="${dist.dir}"/>
<jar jarfile="${mock.jar}">
<fileset dir="${build.test-classes.dir}">
<include name="**/Tester*.class"/>
</fileset>
<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}-mocks"/>
<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"/>
</manifest>
</jar>
</target>
</project>