Code Location: http://svn.apache.org/repos/asf/commons/proper/dbcp/trunk/commons/proper/dbcp/trunk
Browse
/
Download File
build.xml
<!--
/*
 * 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: build.xml 1571794 2014-02-25 19:25:03Z sebb $ -->
<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}:
        ${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.0-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-2014 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>
        <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>