| <!-- |
| |
| Copyright 2001-2005 The Apache Software Foundation. |
| |
| Licensed 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. |
| |
| --> |
| |
| <!-- |
| - Ant build file for commons-logging. |
| - |
| - Quick build instructions: |
| - * ant getlibs |
| - * cp build.properties.sample build.properties |
| - * ant -lib lib/junit-3.8.1.jar dist |
| - |
| - Note that this build file uses the optional <junit> task. While the |
| - task "adapter" class comes by default with ant 1.6+, the junit libraries |
| - (3.8.1 or later) are also required to be made available to ant. This |
| - requires that you do one of the following: |
| - * create directory ~/.ant/lib and place the junit jar there |
| - * put the junit jar in $ANT_HOME/lib |
| - * run ant as "ant -lib path-to-junit-jar" |
| - * put the junit jar in $CLASSPATH |
| - |
| - $Id$ |
| --> |
| |
| <project name="Logging" default="compile" basedir="."> |
| |
| |
| <!-- ========== Initialize Properties ===================================== --> |
| |
| |
| <property file="build.properties"/> <!-- Component local --> |
| <property file="../build.properties"/> <!-- Commons local --> |
| <property file="${user.home}/build.properties"/> <!-- User local --> |
| |
| |
| <!-- ========== External Dependencies ===================================== --> |
| |
| |
| <!-- The directories corresponding to your necessary dependencies --> |
| <property name="junit.home" value="/usr/local/junit3.5"/> |
| <property name="jakarta.home" value="../.."/> |
| |
| <!-- |
| - The names of the unit tests to run. By default all tests are run, but |
| - this can be overridden from the command line by something like: |
| - ant -Dtestmatch=**/FooTestCase.java testall |
| --> |
| <property name="testmatch" value="**/*TestCase"/> |
| |
| |
| <!-- ========== Derived Values ============================================ --> |
| |
| |
| <!-- The locations of necessary jar files --> |
| <property name="junit.jar" value="junit-3.8.1.jar"/> |
| <property name="log4j12.jar" value="log4j-1.2.12.jar"/> |
| <property name="log4j13.jar" value="log4j-1.3.0.jar"/> |
| <property name="logkit.jar" value="logkit-1.0.1.jar"/> |
| <property name="avalon-framework.jar" value="avalon-framework-4.1.3.jar"/> |
| <property name="servletapi.jar" value="servletapi-2.3.jar"/> |
| |
| |
| <!-- ========== Component Declarations ==================================== --> |
| |
| |
| <!-- The name of this component --> |
| <property name="component.name" value="logging"/> |
| |
| <!-- The primary package name of this component --> |
| <property name="component.package" value="org.apache.commons.logging"/> |
| |
| <!-- The title of this component --> |
| <property name="component.title" value="Logging Wrapper Library"/> |
| |
| <!-- The current version number of this component --> |
| <property name="component.version" value="1.1"/> |
| |
| <!-- The base directory for compilation targets --> |
| <property name="build.home" value="${basedir}/target"/> |
| |
| <!-- The base directory for component configuration files --> |
| <property name="conf.home" value="src/conf"/> |
| |
| <!-- The base directory for distribution targets --> |
| <property name="dist.home" value="dist"/> |
| |
| <!-- The base directory for component sources --> |
| <property name="source.home" value="src/java"/> |
| |
| <!-- The base directory for unit test sources --> |
| <property name="test.home" value="src/test"/> |
| |
| |
| <!-- Optional build --> |
| <property name="optional.home" value="optional"/> |
| <property name="optional.dist.home" value="${optional.home}/dist"/> |
| |
| <!-- jar names --> |
| <property name="core.jar.name" value="commons-${component.name}-${component.version}.jar"/> |
| <property name="api.jar.name" value="commons-${component.name}-api-${component.version}.jar"/> |
| <property name="adapters.jar.name" value="commons-${component.name}-adapters-${component.version}.jar"/> |
| |
| <!-- ========== Compiler Defaults ========================================= --> |
| |
| <!-- Version of java class files to generate. --> |
| <property name="target.version" value="1.1"/> |
| |
| <!-- Version of java source to accept --> |
| <property name="source.version" value="1.2"/> |
| |
| <!-- Should Java compilations set the 'debug' compiler option? --> |
| <property name="compile.debug" value="true"/> |
| |
| <!-- Should Java compilations set the 'deprecation' compiler option? --> |
| <property name="compile.deprecation" value="false"/> |
| |
| <!-- Should Java compilations set the 'optimize' compiler option? --> |
| <property name="compile.optimize" value="false"/> |
| |
| <!-- Construct compile classpath --> |
| <path id="compile.classpath"> |
| <pathelement location="${build.home}/classes"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${logkit.jar}"/> |
| <pathelement location="${avalon-framework.jar}"/> |
| <pathelement location="${servletapi.jar}"/> |
| </path> |
| |
| |
| <!-- ========== Test Execution Defaults =================================== --> |
| |
| |
| <!-- |
| - Construct unit test classpath (generic tests). |
| - |
| - Note that unit tests that use the PathableTestSuite approach don't need |
| - any of this (except junit). However unit tests that don't use PathableTestSuite |
| - to configure their classpath will need the basic classes to be provided |
| - via this mechanism. |
| --> |
| <path id="test.classpath"> |
| <pathelement location="${build.home}/classes"/> |
| <pathelement location="${build.home}/tests"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${logkit.jar}"/> |
| <pathelement location="${avalon-framework.jar}"/> |
| <pathelement location="${conf.home}"/> |
| <pathelement location="${servletapi.jar}"/> |
| </path> |
| |
| <!-- Construct unit test classpath (Log4J tests) --> |
| <path id="test.classpath.log4j13"> |
| <pathelement location="${build.home}/classes"/> |
| <pathelement location="${build.home}/tests"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${log4j13.jar}"/> |
| </path> |
| |
| <!-- Construct unit test classpath (Log4J tests) --> |
| <path id="test.classpath.log4j12"> |
| <pathelement location="${build.home}/classes"/> |
| <pathelement location="${build.home}/tests"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${log4j12.jar}"/> |
| </path> |
| |
| <!-- Construct javadoc classpath --> |
| <path id="javadoc.classpath"> |
| <path refid="compile.classpath"/> |
| <pathelement location="${log4j12.jar}"/> |
| </path> |
| |
| <!-- Should all tests fail if one does? --> |
| <property name="test.failonerror" value="true"/> |
| |
| <!-- The test runner to execute --> |
| <property name="test.runner" value="junit.textui.TestRunner"/> |
| |
| <!-- libs to pass to the tests --> |
| <property name="test.sysprops.testclasses" value="${build.home}/tests"/> |
| <property name="test.sysprops.log4j12" value="${log4j12.jar}"/> |
| <property name="test.sysprops.log4j13" value="${log4j13.jar}"/> |
| <property name="test.sysprops.servletapi" value="${servletapi.jar}"/> |
| <property name="test.sysprops.commons-logging" value="${build.home}/${core.jar.name}"/> |
| <property name="test.sysprops.commons-logging-api" value="${build.home}/${api.jar.name}"/> |
| <property name="test.sysprops.commons-logging-adapters" value="${build.home}/${adapters.jar.name}"/> |
| <property name="test.sysprops.commons-logging-optional" value="${dist.home}/${optional.jar.name}"/> |
| <propertyset id="test-lib-props"> |
| <propertyref prefix="test.sysprops."/> |
| <mapper type="glob" from="test.sysprops.*" to="*"/> |
| </propertyset> |
| |
| <!-- ========== Executable Targets ======================================== --> |
| |
| |
| <!-- |
| - Running this target will download all the necessary dependencies into the "lib" subdirectory. |
| --> |
| <property name="getlibs.base" value="http://www.ibiblio.org/maven"/> |
| <target name="getlibs"> |
| <mkdir dir="lib"/> |
| <get dest="lib/junit-3.8.1.jar" src="${getlibs.base}/junit/jars/junit-3.8.1.jar"/> |
| <get dest="lib/logkit-1.0.1.jar" src="${getlibs.base}/logkit/jars/logkit-1.0.1.jar"/> |
| <get dest="lib/avalon-framework-4.1.3.jar" src="${getlibs.base}/avalon-framework/jars/avalon-framework-4.1.3.jar"/> |
| <get dest="lib/log4j-1.2.12.jar" src="${getlibs.base}/log4j/jars/log4j-1.2.12.jar"/> |
| <get dest="lib/servletapi-2.3.jar" src="${getlibs.base}/servletapi/jars/servletapi-2.3.jar"/> |
| </target> |
| |
| <target name="init" |
| description="Initialize and evaluate conditionals"> |
| <echo message="-------- ${component.title} ${component.version} --------"/> |
| <filter token="name" value="${component.name}"/> |
| <filter token="package" value="${component.package}"/> |
| <filter token="version" value="${component.version}"/> |
| </target> |
| |
| <target name="prepare" depends="init" |
| description="Prepare build directory"> |
| |
| <echo> |
| Log4j12: ${log4j12.jar} |
| Log4j13: ${log4j13.jar} |
| LogKit: ${logkit.jar} |
| Avalon-Framework: ${avalon-framework.jar} |
| </echo> |
| |
| <mkdir dir="${build.home}"/> |
| <mkdir dir="${build.home}/classes"/> |
| <mkdir dir="${build.home}/conf"/> |
| <mkdir dir="${build.home}/docs"/> |
| <mkdir dir="${build.home}/docs/api"/> |
| <mkdir dir="${build.home}/tests"/> |
| </target> |
| |
| |
| <target name="static" depends="prepare" |
| description="Copy static files to build directory"> |
| <tstamp/> |
| <copy todir="${build.home}/conf" filtering="on"> |
| <fileset dir="${conf.home}" includes="*.MF"/> |
| <fileset dir="${conf.home}" includes="*.properties"/> |
| </copy> |
| </target> |
| |
| <target name="compile" depends="static,compile-only" |
| description="Compile shareable components"/> |
| |
| <target name='discovery' depends='init'> |
| <available property="jdk.1.4.present" |
| classname="java.util.logging.Logger"/> |
| |
| <available property="logkit.present" |
| classpathref="compile.classpath" |
| classname="org.apache.log.Logger"/> |
| |
| <available property="avalon-framework.present" |
| classpathref="compile.classpath" |
| classname="org.apache.avalon.framework.logger.Logger"/> |
| |
| <available file="${log4j12.jar}" property="log4j12.present"/> |
| <available file="${log4j13.jar}" property="log4j13.present"/> |
| </target> |
| |
| <target name="log4j12-warning" unless='log4j12.present' depends='init,discovery'> |
| <echo> |
| *** WARNING *** |
| Log4j 1.2 not found: Cannot Build Log4JLogger |
| </echo> |
| </target> |
| |
| <target name="log4j13-warning" unless='log4j13.present' depends='init,discovery'> |
| <echo> |
| *** WARNING *** |
| Log4j 1.3 not found: Cannot Build Log4J13Logger |
| </echo> |
| </target> |
| |
| <target name="logkit-warning" unless='logkit.present' depends='init,discovery'> |
| <echo> |
| *** WARNING *** |
| LogKit not found: Cannot Build LogKitLogger |
| </echo> |
| </target> |
| |
| <target name="avalon-framework-warning" unless='avalon-framework.present' depends='init,discovery'> |
| <echo> |
| *** WARNING *** |
| Avalon-Framework not found: Cannot Build AvalonLogger |
| </echo> |
| </target> |
| |
| <target name="jdk1.4-warning" unless='jdk.1.4.present' depends='init,discovery'> |
| <echo> |
| *** WARNING *** |
| JDK 1.4 not present: Cannot Build Jdk14Logger |
| </echo> |
| </target> |
| |
| <target name="log4j12-test-warning" unless='log4j12.jar' depends='init,discovery'> |
| <echo> |
| *** WARNING *** |
| Log4J 1.2.x Jar not found: Cannot execute 1.2.x tests |
| </echo> |
| </target> |
| |
| <target name='warning' |
| depends='log4j12-warning,log4j13-warning,logkit-warning,jdk1.4-warning,avalon-framework-warning'/> |
| |
| <target name="compile-only" |
| depends="prepare,discovery,warning,show-lib-presence,compile-non-log4j,compile-log4j12,compile-log4j13,build-jar"/> |
| |
| <target name="show-lib-presence"> |
| <echo message="jdk.1.4.present=${jdk.1.4.present}"/> |
| <echo message="log4j12.present=${log4j12.present}"/> |
| <echo message="log4j13.present=${log4j13.present}"/> |
| <echo message="logkit.present=${logkit.present}"/> |
| <echo message="avalon-framework.present=${avalon-framework.present}"/> |
| </target> |
| |
| <target name="compile-non-log4j" depends="prepare,discovery"> |
| <!-- compile everything except Log4J classes --> |
| <javac srcdir="${source.home}" |
| destdir="${build.home}/classes" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}" |
| source="${source.version}" |
| target="${target.version}"> |
| |
| <classpath refid="compile.classpath"/> |
| |
| <exclude name="org/apache/commons/logging/impl/Log4J*.java"/> |
| |
| <exclude name="org/apache/commons/logging/impl/Jdk13LumberjackLogger.java" |
| unless="jdk.1.4.present"/> |
| <exclude name="org/apache/commons/logging/impl/Jdk14Logger.java" |
| unless="jdk.1.4.present"/> |
| <exclude name="org/apache/commons/logging/impl/LogKitLogger.java" |
| unless="logkit.present"/> |
| <exclude name="org/apache/commons/logging/impl/AvalonLogger.java" |
| unless="avalon-framework.present"/> |
| </javac> |
| </target> |
| |
| <target name="compile-log4j12" depends="prepare,discovery"> |
| <!-- compile the log4j1.2 support classes --> |
| <javac srcdir="${source.home}" |
| destdir="${build.home}/classes" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}" |
| source="${source.version}" |
| target="${target.version}"> |
| |
| <classpath refid="compile.classpath"/> |
| <classpath> |
| <!-- |
| <pathelement refid="compile.classpath"/> |
| <classpath refid="compile.classpath"/> |
| --> |
| <pathelement location="${log4j12.jar}"/> |
| </classpath> |
| |
| <include name="org/apache/commons/logging/impl/Log4JLogger.java" |
| if="log4j12.present"/> |
| </javac> |
| </target> |
| |
| <target name="compile-log4j13" depends="prepare,discovery"> |
| <!-- compile the log4j1.3 support classes --> |
| <javac srcdir="${source.home}" |
| destdir="${build.home}/classes" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}" |
| source="${source.version}" |
| target="${target.version}"> |
| |
| <classpath refid="compile.classpath"/> |
| <classpath> |
| <pathelement location="${log4j13.jar}"/> |
| </classpath> |
| |
| <!-- |
| - Note: log4j13 support not available in 1.1 release. However if we do add it |
| - in a future release, this entry will pick it up. In the meantime, this |
| - simply compiles no classes. |
| --> |
| <include name="org/apache/commons/logging/impl/Log4J13Logger.java" |
| if="log4j13.present"/> |
| </javac> |
| </target> |
| |
| <target name="build-jar"> |
| <copy todir="${build.home}/classes" filtering="on"> |
| <fileset dir="${source.home}" excludes="**/*.java"/> |
| </copy> |
| <mkdir dir="${build.home}/classes/META-INF"/> |
| <copy file="LICENSE.txt" |
| todir="${build.home}/classes/META-INF"/> |
| <copy file="NOTICE.txt" |
| todir="${build.home}/classes/META-INF"/> |
| |
| <jar jarfile="${build.home}/${core.jar.name}" |
| basedir="${build.home}/classes" |
| manifest="${build.home}/conf/MANIFEST.MF"> |
| <include name="org/apache/commons/logging/**" /> |
| <include name="META-INF/LICENSE.txt"/> |
| <include name="META-INF/NOTICE.txt"/> |
| <exclude name="**/package.html"/> |
| </jar> |
| |
| <jar jarfile="${build.home}/${api.jar.name}" |
| basedir="${build.home}/classes" |
| manifest="${build.home}/conf/MANIFEST.MF"> |
| <include name="org/apache/commons/logging/*.class" /> |
| <include name="org/apache/commons/logging/impl/LogFactoryImpl*.class" /> |
| <include name="org/apache/commons/logging/impl/WeakHashtable*.class" /> |
| <include name="org/apache/commons/logging/impl/SimpleLog*.class" /> |
| <include name="org/apache/commons/logging/impl/NoOpLog*.class" /> |
| <include name="META-INF/LICENSE.txt"/> |
| <include name="META-INF/NOTICE.txt"/> |
| <exclude name="**/package.html"/> |
| </jar> |
| |
| <jar jarfile="${build.home}/${adapters.jar.name}" |
| basedir="${build.home}/classes" |
| manifest="${build.home}/conf/MANIFEST.MF"> |
| <include name="org/apache/commons/logging/impl/**.class" /> |
| <include name="META-INF/LICENSE.txt"/> |
| <include name="META-INF/NOTICE.txt"/> |
| <exclude name="org/apache/commons/logging/impl/WeakHashtable*.class" /> |
| </jar> |
| </target> |
| |
| <target name='compile.jdk1.4.tests' if='jdk.1.4.present'> |
| <javac srcdir="${test.home}" |
| destdir="${build.home}/tests" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}"> |
| <classpath refid="test.classpath"/> |
| <include name='**/jdk14/**'/> |
| </javac> |
| </target> |
| |
| <target name='compile.log4j.tests' if='log4j12.present'> |
| <javac srcdir="${test.home}" |
| destdir="${build.home}/tests" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}"> |
| <classpath refid="test.classpath.log4j12"/> |
| <include name='**/log4j/**'/> |
| </javac> |
| </target> |
| |
| |
| <target name='compile.avalon.tests' if='avalon-framework.present'> |
| <javac srcdir="${test.home}" |
| destdir="${build.home}/tests" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}"> |
| <classpath refid="test.classpath"/> |
| <include name='**/avalon/**'/> |
| </javac> |
| </target> |
| |
| <target name="compile.tests" depends="compile" |
| description="Compile unit test cases"> |
| <javac srcdir="${test.home}" |
| destdir="${build.home}/tests" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}"> |
| <classpath refid="test.classpath"/> |
| <exclude name='**/jdk14/**'/> |
| <exclude name='**/log4j/**'/> |
| <exclude name='**/avalon/**'/> |
| </javac> |
| <antcall target='compile.log4j.tests'/> |
| <antcall target='compile.jdk1.4.tests'/> |
| <antcall target='compile.avalon.tests'/> |
| <copy todir="${build.home}/tests" filtering="on"> |
| <fileset dir="${test.home}" excludes="**/*.java"/> |
| </copy> |
| <jar jarfile="${build.home}/commons-${component.name}-appender.jar" |
| basedir="${build.home}/tests" |
| manifest="${build.home}/conf/MANIFEST.MF"> |
| <include name="org/apache/commons/logging/log4j/CustomConfig.properties" |
| if="log4j12.present"/> |
| <include name="org/apache/commons/logging/log4j/TestAppender.class" |
| if="log4j12.present"/> |
| </jar> |
| <jar jarfile="${build.home}/commons-${component.name}-tests.jar" |
| basedir="${build.home}/tests" |
| manifest="${build.home}/conf/MANIFEST.MF"> |
| <exclude name="org/apache/commons/logging/Wrapper.class"/> |
| <exclude name="org/apache/commons/logging/jdk14/TestHandler.class" |
| if="jdk.1.4.present"/> |
| </jar> |
| <jar jarfile="${build.home}/commons-${component.name}-wrapper.jar" |
| basedir="${build.home}/tests" |
| manifest="${build.home}/conf/MANIFEST.MF"> |
| <include name="org/apache/commons/logging/Wrapper.class"/> |
| <include name="org/apache/commons/logging/jdk14/TestHandler.class" |
| if="jdk.1.4.present"/> |
| </jar> |
| |
| </target> |
| |
| |
| <target name="clean" |
| description="Clean build and distribution directories"> |
| <delete dir="${build.home}"/> |
| <delete dir="${dist.home}"/> |
| </target> |
| |
| |
| <target name="all" depends="clean,compile" |
| description="Clean and compile all components"/> |
| |
| |
| <target name="javadoc" depends="compile" |
| description="Create component Javadoc documentation"> |
| <mkdir dir="${dist.home}"/> |
| <mkdir dir="${dist.home}/docs"/> |
| <mkdir dir="${dist.home}/docs/api"/> |
| <javadoc sourcepath="${source.home}" |
| destdir="${dist.home}/docs/api" |
| overview="${source.home}/overview.html" |
| packagenames="org.apache.commons.*" |
| author="true" |
| private="true" |
| version="true" |
| doctitle="<h1>${component.title} (Version ${component.version})</h1>" |
| windowtitle="${component.title} (Version ${component.version})" |
| bottom='Copyright 2002-2004 The Apache Software Foundation.<!-- |
| |
| Licensed 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.-->'> |
| <classpath refid="javadoc.classpath"/> |
| </javadoc> |
| </target> |
| |
| |
| <target name="dist" depends="compile,javadoc" |
| description="Create binary distribution"> |
| |
| <!-- |
| - Create a dist directory to hold all the files that go into a distribution. |
| - Copy the needed files from the build directory to the dist directory. |
| --> |
| <mkdir dir="${dist.home}"/> |
| <copy todir="${dist.home}"> |
| <fileset dir="."> |
| <include name="LICENSE.txt"/> |
| <include name="NOTICE.txt"/> |
| <include name="RELEASE-NOTES.txt"/> |
| </fileset> |
| <fileset dir="${build.home}"> |
| <include name="${core.jar.name}"/> |
| <include name="${api.jar.name}"/> |
| <include name="${adapters.jar.name}"/> |
| </fileset> |
| </copy> |
| |
| <!-- |
| - And copy the source too; we don't have separate source and binary distributions |
| - for logging; the source is so small there's little point. |
| --> |
| <mkdir dir="${dist.home}/src"/> |
| <copy todir="${dist.home}/src" filtering="on"> |
| <fileset dir="${source.home}"/> |
| </copy> |
| </target> |
| |
| |
| <!-- ========== Unit Test Targets ========================================= --> |
| |
| |
| <!-- |
| - Target to run all unit tests. |
| - |
| - The batchtest task auto-detects what tests are available without |
| - any need to define TestSuite objects in the code to compose |
| - sets of tests to be run. |
| - |
| - Details of the unit test results for each TestCase will appear in |
| - a file in directory ${build.home}/test-reports, together with any |
| - output to stdout or stderr generated by the test code. |
| - |
| - If you're having problems running this target due to the use of |
| - the "junit" task below, see the comments at the head of this file. |
| - |
| - Individual tests (or subsets of tests) can be run by doing |
| - ant -Dtestmatch=**/FooTestCase testall |
| --> |
| |
| <target name="test" depends="log4j12-test-warning, compile.tests" |
| description="Run all unit tests"> |
| <echo message="Test output can be found in directory ${build.home}/test-reports."/> |
| <delete dir="${build.home}/test-reports"/> |
| <mkdir dir="${build.home}/test-reports"/> |
| |
| <echo message="executing tests [${testmatch}.java]"/> |
| <!-- |
| - Note that the fork/forkmode settings define default behaviour for tests. |
| - The <test> and <batchtest> tags can override these settings if needed. |
| - The default settings cause a single VM to be created in which all of |
| - the tests are then run. |
| --> |
| <junit printsummary="off" showoutput="no" fork="yes" forkmode="once" failureproperty="test.failure"> |
| <!-- plain output to file; brief output to console. --> |
| <formatter type="plain"/> |
| <formatter usefile="false" type="brief"/> |
| |
| <!-- |
| - Provide a set of properties pointing to the logging libs for |
| - the use of the PathableClassLoader class used by some unit tests. |
| --> |
| <syspropertyset refid="test-lib-props"/> |
| <classpath refid="test.classpath"/> |
| |
| <!-- |
| - Auto-detect the tests to run. Checking the ${build.home}/tests |
| - directory for .class files rather than the src/test directory |
| - for .java files means that when we run the tests on platforms |
| - where some components (eg jdk14 logging) is not available, |
| - just ensuring the tests are skipped from the compile will |
| - also cause them to be skipped from the testing. |
| - |
| - This does introduce the danger that if tests accidentally |
| - fail to compile then we won't notice it here. However that |
| - should have been reported earlier anyway. |
| --> |
| <batchtest todir="${build.home}/test-reports"> |
| <fileset dir="${build.home}/tests"> |
| <include name="${testmatch}.class"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| |
| <fail if="test.failure"> |
| One or more unit tests failed. |
| </fail> |
| </target> |
| |
| </project> |