aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/build.xml')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/build.xml2037
1 files changed, 2037 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/build.xml b/framework/src/ant/apache-ant-1.9.6/build.xml
new file mode 100644
index 00000000..b5fbfa93
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/build.xml
@@ -0,0 +1,2037 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+<project name="apache-ant" default="main" basedir=".">
+
+ <!-- Give user a chance to override without editing this file
+ (and without typing -D on each invocation) -->
+ <property file=".ant.properties"/>
+ <property file="${user.home}/.ant.properties"/>
+ <property environment="env"/>
+
+
+ <!--
+ ===================================================================
+ Set the properties that control names and versions
+ ===================================================================
+ -->
+ <property name="Name" value="Apache Ant"/>
+ <property name="name" value="ant"/>
+ <!-- this is the groupId of ant in the Maven repository -->
+ <property name="groupid" value="org/apache/ant"/>
+ <property name="project.version" value="1.9.6"/>
+ <!-- pom.version is used when doing a distribution and must match with what is checked in under src/etc/poms -->
+ <property name="pom.version" value="1.9.6"/>
+ <property name="manifest-version" value="1.9.6"/>
+ <property name="bootstrap.jar" value="ant-bootstrap.jar"/>
+
+ <property name="ant.package" value="org/apache/tools/ant"/>
+ <property name="taskdefs.package" value="${ant.package}/taskdefs"/>
+ <property name="condition.package" value="${taskdefs.package}/condition"/>
+ <property name="optional.package" value="${taskdefs.package}/optional"/>
+ <property name="type.package" value="${ant.package}/types"/>
+ <property name="optional.type.package" value="${type.package}/optional"/>
+ <property name="apache.resolver.type.package" value="${ant.package}/types/resolver"/>
+ <property name="util.package" value="${ant.package}/util"/>
+ <property name="regexp.package" value="${util.package}/regexp"/>
+
+ <property name="optional.jars.prefix" value="ant"/>
+ <property name="optional.jars.whenmanifestonly" value="skip"/>
+
+ <!--
+ ===================================================================
+ Set the properties related to the source tree
+ ===================================================================
+ -->
+ <property name="src.dir" value="src"/>
+ <property name="java.dir" value="${src.dir}/main"/>
+ <property name="script.dir" value="${src.dir}/script"/>
+ <property name="lib.dir" value="lib"/>
+ <property name="manual.dir" value="manual"/>
+ <property name="etc.dir" value="${src.dir}/etc"/>
+ <property name="src.junit" value="${src.dir}/tests/junit"/>
+ <property name="src.antunit" value="${src.dir}/tests/antunit"/>
+ <property name="tests.etc.dir" value="${src.dir}/etc/testcases"/>
+ <property name="manifest" value="${src.dir}/etc/manifest"/>
+ <property name="resource.dir" value="${src.dir}/resources"/>
+
+ <!--
+ ===================================================================
+ Set the properties for the build area
+ ===================================================================
+ -->
+ <property name="build.dir" value="build"/>
+ <property name="bootstrap.dir" location="bootstrap"/>
+ <property name="build.classes" value="${build.dir}/classes"/>
+ <property name="build.lib" value="${build.dir}/lib"/>
+ <property name="build.lib-src" value="${build.dir}/lib-src"/>
+ <property name="build.javadocs" value="${build.dir}/javadocs"/>
+ <property name="build.tests" value="${build.dir}/testcases"/>
+ <property name="build.tests.javadocs" value="${build.dir}/javadocs.test/"/>
+ <property name="build.junit.xml" location="${build.tests}/xml"/>
+ <property name="build.junit.tmpdir" location="${build.tests}/tmp"/>
+ <property name="antunit.xml" location="${build.dir}/antunit/xml"/>
+ <property name="antunit.tmpdir" location="${build.dir}/antunit/tmp"/>
+ <property name="antunit.reports" location="${build.dir}/antunit/reports"/>
+ <property name="antunit.loglevel" value="none"/>
+ <property name="build.junit.reports" location="${build.tests}/reports"/>
+ <property name="manifest.tmp" value="${build.dir}/optional.manifest"/>
+ <!-- the absolute path -->
+ <property name="build.tests.value" location="${build.tests}"/>
+
+ <!--
+ ===================================================================
+ Set the properties that control various build options
+ ===================================================================
+ -->
+ <property name="debug" value="true"/>
+ <property name="chmod.fail" value="true"/>
+ <property name="chmod.maxparallel" value="250"/>
+ <property name="deprecation" value="false"/>
+ <property name="optimize" value="true"/>
+ <property name="javac.target" value="1.5"/>
+ <property name="javac.source" value="1.5"/>
+ <property name="junit.filtertrace" value="off"/>
+ <property name="junit.summary" value="no"/>
+ <property name="test.haltonfailure" value="false"/>
+ <property name="junit.fork" value="true"/>
+ <property name="junit.forkmode" value="once"/>
+ <condition property="junit.threads" value="2" else="0">
+ <and>
+ <equals arg1="${junit.fork}" arg2="true"/>
+ <equals arg1="${junit.forkmode}" arg2="perTest"/>
+ </and>
+ </condition>
+ <property name="expandproperty.files"
+ value="**/version.txt,**/defaultManifest.mf"/>
+ <property name="junit.collector.dir" value="${build.dir}/failingTests"/>
+ <property name="junit.collector.class" value="FailedTests"/>
+
+
+ <!--
+ ===================================================================
+ Set the paths used in the build
+ ===================================================================
+ -->
+ <path id="classpath">
+ <fileset dir="lib/optional" includes="*.jar"/>
+ </path>
+
+ <path id="tests-classpath">
+ <pathelement location="${build.classes}"/>
+ <path refid="classpath"/>
+ </path>
+ <path id="tests-runtime-classpath">
+ <path refid="tests-classpath"/>
+ <pathelement location="${build.tests}"/>
+ <!--
+ include the test source and test data dirs
+ so that we can pick resources via getResource(AsStream)
+ -->
+ <pathelement location="${src.junit}"/>
+ <pathelement location="${tests.etc.dir}"/>
+ <!-- Otherwise many tests fail with "com.sun.tools.javac.Main is not on the classpath.": -->
+ <pathelement location="${java.home}/../lib/tools.jar"/>
+ </path>
+
+ <!--
+ ===================================================================
+ Set up properties for the distribution area
+ ===================================================================
+ -->
+ <property name="dist.name" value="apache-${name}-${project.version}"/>
+ <property name="dist.base" value="distribution"/>
+ <property name="dist.base.source" value="${dist.base}/source"/>
+ <property name="dist.base.binaries" value="${dist.base}/binaries"/>
+ <property name="dist.base.manual" value="${dist.base}/manual"/>
+ <property name="dist.dir" location="dist"/>
+ <property name="dist.bin" value="${dist.dir}/bin"/>
+ <property name="dist.lib" value="${dist.dir}/lib"/>
+ <property name="dist.manual" value="${dist.dir}/manual"/>
+ <property name="dist.etc" value="${dist.dir}/etc"/>
+ <property name="dist.javadocs" value="${dist.dir}/manual/api"/>
+
+ <property name="src.dist.dir" value="dist-src"/>
+ <property name="src.dist.src" value="${src.dist.dir}/src"/>
+ <property name="src.dist.manual" value="${src.dist.dir}/manual"/>
+ <property name="src.dist.lib" value="${src.dist.dir}/lib"/>
+
+ <property name="java-repository.dir" value="java-repository/${groupid}"/>
+
+ <!--
+ ===================================================================
+ Set up selectors to be used by javac, junit and jar to exclude
+ files that have dependencies that are not available
+ ===================================================================
+ -->
+
+ <!-- Kaffe has some JDK 1.5 features including java.lang.Readable,
+ but not all of them -->
+ <selector id="not.in.kaffe">
+ <or>
+ <filename name="${condition.package}/IsReachable*"/>
+ </or>
+ </selector>
+
+ <selector id="needs.apache-resolver">
+ <filename name="${apache.resolver.type.package}/"/>
+ </selector>
+
+ <selector id="needs.junit">
+ <and>
+ <filename name="${optional.package}/junit/"/>
+ <not>
+ <or>
+ <filename name="${optional.package}/junit/JUnit4TestMethodAdapter*"/>
+ <filename name="${optional.package}/junit/CustomJUnit4TestAdapterCache*" />
+ </or>
+ </not>
+ </and>
+ </selector>
+
+ <selector id="needs.junit4">
+ <or>
+ <filename name="${optional.package}/junit/JUnit4TestMethodAdapter*"/>
+ <filename name="${optional.package}/junit/CustomJUnit4TestAdapterCache*" />
+ </or>
+ </selector>
+
+ <selector id="needs.apache-regexp">
+ <filename name="${regexp.package}/JakartaRegexp*"/>
+ </selector>
+
+ <selector id="needs.apache-oro">
+ <or>
+ <filename name="${regexp.package}/JakartaOro*"/>
+ </or>
+ </selector>
+
+ <selector id="needs.apache-bcel">
+ <or>
+ <filename name="${ant.package}/filters/util/JavaClassHelper*"/>
+ <filename name="${util.package}/depend/bcel/"/>
+ <filename name="${optional.type.package}/depend/ClassFileSetTest*"/>
+ </or>
+ </selector>
+
+ <selector id="needs.apache-log4j">
+ <filename name="${ant.package}/listener/Log4jListener*"/>
+ </selector>
+
+ <selector id="needs.commons-logging">
+ <filename name="${ant.package}/listener/CommonsLoggingListener*"/>
+ </selector>
+
+ <selector id="needs.apache-bsf">
+ <or>
+ <filename name="${util.package}/ScriptRunner.*"/>
+ <filename name="${util.package}/optional/ScriptRunner*"/>
+ </or>
+ </selector>
+
+ <selector id="needs.javamail">
+ <or>
+ <filename name="${ant.package}/taskdefs/email/MimeMailer*"/>
+ </or>
+ </selector>
+
+ <selector id="needs.netrexx">
+ <filename name="${optional.package}/NetRexxC*"/>
+ </selector>
+
+ <selector id="needs.commons-net">
+ <or>
+ <filename name="${optional.package}/net/FTP*"/>
+ <filename name="${optional.package}/net/RExec*"/>
+ <filename name="${optional.package}/net/TelnetTask*"/>
+ </or>
+ </selector>
+
+ <selector id="needs.antlr">
+ <filename name="${optional.package}/ANTLR*"/>
+ </selector>
+
+ <selector id="needs.jmf">
+ <filename name="${optional.package}/sound/"/>
+ </selector>
+
+ <selector id="needs.jai">
+ <or>
+ <filename name="${optional.package}/image/"/>
+ <filename name="${optional.type.package}/image/"/>
+ </or>
+ </selector>
+
+ <selector id="needs.jdepend">
+ <filename name="${optional.package}/jdepend/"/>
+ </selector>
+
+ <selector id="needs.swing">
+ <filename name="${optional.package}/splash/"/>
+ </selector>
+
+ <selector id="needs.jsch">
+ <filename name="${optional.package}/ssh/"/>
+ </selector>
+
+ <!-- needs TraceListenerEx3 interface implemented by PrintTraceListener -->
+ <selector id="needs.apache-xalan2">
+ <filename name="${optional.package}/Xalan2TraceSupport*"/>
+ </selector>
+
+ <selector id="ant.launcher">
+ <filename name="${ant.package}/launch/"/>
+ </selector>
+
+ <selector id="ant.core">
+ <not>
+ <or>
+ <selector refid="needs.antlr"/>
+ <selector refid="needs.apache-bcel"/>
+ <selector refid="needs.apache-bsf"/>
+ <selector refid="needs.apache-log4j"/>
+ <selector refid="needs.apache-oro"/>
+ <selector refid="needs.apache-regexp"/>
+ <selector refid="needs.apache-resolver"/>
+ <selector refid="needs.apache-xalan2"/>
+ <selector refid="needs.commons-logging"/>
+ <selector refid="needs.commons-net"/>
+ <selector refid="needs.jai"/>
+ <selector refid="needs.javamail"/>
+ <selector refid="needs.jdepend"/>
+ <selector refid="needs.jmf"/>
+ <selector refid="needs.jsch"/>
+ <selector refid="needs.junit"/>
+ <selector refid="needs.junit4"/>
+ <selector refid="needs.netrexx"/>
+ <selector refid="needs.swing"/>
+ <selector refid="ant.launcher"/>
+ </or>
+ </not>
+ </selector>
+
+ <patternset id="onlinetests">
+ <exclude name="**/GetTest.java" if="offline"/>
+ <exclude name="**/HttpTest.java" if="offline"/>
+ </patternset>
+
+ <patternset id="teststhatfail">
+ <!-- Property 'run.failing.tests' should force Ant to run these tests. -->
+ <!-- Because the whole patternset can not be excluded, you have to add -->
+ <!-- an unless-attribute on each exclude-element. -->
+ <exclude unless="run.failing.tests" name="${optional.package}/BeanShellScriptTest.java"/>
+ <exclude unless="run.failing.tests" name="${optional.package}/jdepend/JDependTest.java"/>
+ </patternset>
+
+ <!--tests that need an XML Schema-supporting parser to work-->
+ <selector id="needs.xmlschema">
+ <or>
+ <filename name="${optional.package}/SchemaValidateTest.*"/>
+ <filename name="${optional.package}/XmlValidateTest.*"/>
+ </or>
+ </selector>
+
+ <!--
+ ===================================================================
+ Set up a patternsets that matches the parts of our JUnit testsuite
+ that may be useful for task developers.
+ ===================================================================
+ -->
+ <patternset id="useful.tests">
+ <include name="${ant.package}/AntAssert*"/>
+ <include name="${ant.package}/BuildFileTest*"/>
+ <include name="${ant.package}/BuildFileRule*"/>
+ <include name="${ant.package}/FileUtilities*"/>
+ <include name="${regexp.package}/RegexpMatcherTest*"/>
+ <include name="${regexp.package}/RegexpTest*"/>
+ <include name="${optional.package}/AbstractXSLTLiaisonTest*"/>
+ <include name="${ant.package}/types/AbstractFileSetTest*"/>
+ </patternset>
+
+ <!--
+ ===================================================================
+ Check to see what optional dependencies are available
+ ===================================================================
+ -->
+ <target name="check_for_optional_packages">
+ <condition property="ignoresystemclasses">
+ <not>
+ <equals arg1="${build.sysclasspath}" arg2="only"/>
+ </not>
+ </condition>
+ <property name="ignoresystemclasses" value="false"/>
+ <available property="jdk1.6+" classname="java.net.CookieStore"/>
+ <available property="jdk1.7+" classname="java.nio.file.FileSystem"/>
+ <available property="jdk1.8+" classname="java.lang.reflect.Executable"/>
+ <condition property="jdk1.9+">
+ <contains string="${java.version}" substring="1.9."/>
+ </condition>
+ <available property="kaffe" classname="kaffe.util.NotImplemented"/>
+ <available property="harmony"
+ classname="org.apache.harmony.luni.util.Base64"/>
+ <available property="bsf.present"
+ classname="org.apache.bsf.BSFManager"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="netrexx.present"
+ classname="netrexx.lang.Rexx"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="apache.resolver.present"
+ classname="org.apache.xml.resolver.tools.CatalogResolver"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="recent.xalan2.present"
+ classname="org.apache.xalan.trace.TraceListenerEx3"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="junit.present"
+ classname="junit.framework.TestCase"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="junit4.present"
+ classname="org.junit.Test"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="antunit.present"
+ classname="org.apache.ant.antunit.AntUnit"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="commons.net.present"
+ classname="org.apache.commons.net.ftp.FTPClient"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="antlr.present"
+ classname="antlr.Tool"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="apache.regexp.present"
+ classname="org.apache.regexp.RE"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="apache.oro.present"
+ classname="org.apache.oro.text.regex.Perl5Matcher"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="jmf.present"
+ classname="javax.sound.sampled.Clip"
+ classpathref="classpath"/>
+ <available property="jai.present"
+ classname="javax.media.jai.JAI"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="jdepend.present"
+ classname="jdepend.framework.JDepend"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="log4j.present"
+ classname="org.apache.log4j.Logger"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="commons.logging.present"
+ classname="org.apache.commons.logging.LogFactory"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="xalan.envcheck"
+ classname="org.apache.xalan.xslt.EnvironmentCheck"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="which.present"
+ classname="org.apache.env.Which"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+
+ <available property="xerces.present"
+ classname="org.apache.xerces.parsers.SAXParser"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="bcel.present"
+ classname="org.apache.bcel.Constants"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+
+ <condition property="javamail.complete">
+ <and>
+ <available classname="javax.activation.DataHandler"
+ classpathref="classpath"/>
+ <available classname="javax.mail.Transport"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ </and>
+ </condition>
+
+ <condition property="tests.and.ant.share.classloader">
+ <or>
+ <equals arg1="${junit.fork}" arg2="true"/>
+ <equals arg1="${build.sysclasspath}" arg2="only"/>
+ </or>
+ </condition>
+
+ <condition property="sun.tools.present">
+ <and>
+ <available classname="sun.tools.native2ascii.Main"/>
+ <available classname="com.sun.tools.javah.Main"/>
+ </and>
+ </condition>
+
+ <condition property="tests.are.on.system.classpath">
+ <or>
+ <resourcecount count="1">
+ <intersect>
+ <path path="${java.class.path}" />
+ <file file="${build.tests}" />
+ </intersect>
+ </resourcecount>
+ <istrue value="${junit.fork}"/>
+ </or>
+ </condition>
+
+ <echo level="verbose"> tests.are.on.system.classpath=${tests.are.on.system.classpath}</echo>
+
+ <condition property="jasper.present">
+ <and>
+ <available classname="org.apache.jasper.compiler.Compiler"/>
+ <available classname="org.apache.jasper.JasperException"/>
+ </and>
+ </condition>
+
+ <condition property="swing.present">
+ <or>
+ <not>
+ <isset property="kaffe"/>
+ </not>
+ <available classname="javax.swing.ImageIcon"
+ classpathref="classpath"/>
+ </or>
+ </condition>
+
+ <!-- http client needs commons logging -->
+ <condition property="apache-httpclient.present">
+ <and>
+ <available
+ classname="org.apache.commons.httpclient.HttpClient"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <isset property="commons.logging.present"/>
+ </and>
+ </condition>
+
+ <available property="rhino.present"
+ classname="org.mozilla.javascript.Scriptable"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="beanshell.present"
+ classname="bsh.StringUtil"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="xerces1.present"
+ classname="org.apache.xerces.framework.XMLParser"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ <available property="jsch.present"
+ classname="com.jcraft.jsch.Session"
+ classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+
+ <property name="build.compiler" value="modern"/>
+
+ <!--check for XSD support in the parser-->
+ <condition property="xmlschema.present">
+ <or>
+ <parsersupports
+ feature="http://apache.org/xml/features/validation/schema"/>
+ <parsersupports
+ feature="http://java.sun.com/xml/jaxp/properties/schemaSource"/>
+ </or>
+ </condition>
+
+ <!--
+ Java8 introduced a HTML checker 'doclint' which is very strict and breaks
+ the build if there is a HTML error in the JavaDoc.
+ -->
+ <condition
+ property="javadoc.doclint.none"
+ value="-Xdoclint:none"
+ else="">
+ <and>
+ <isset property="jdk1.8+"/>
+ <not><isset property="withDoclint"/></not>
+ </and>
+ </condition>
+ </target>
+
+
+ <!--
+ ===================================================================
+ Prepare the build
+ ===================================================================
+ -->
+ <target name="prepare">
+ <tstamp>
+ <format property="year" pattern="yyyy"/>
+ </tstamp>
+ <filterchain id="ant.filters">
+ <expandproperties/>
+ </filterchain>
+ </target>
+
+ <!--
+ ===================================================================
+ Build the code
+ ===================================================================
+ -->
+ <target name="build"
+ depends="prepare, check_for_optional_packages"
+ description="--> compiles the source code">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.lib}"/>
+
+ <javac srcdir="${java.dir}"
+ includeantruntime="false"
+ destdir="${build.classes}"
+ debug="${debug}"
+ deprecation="${deprecation}"
+ target="${javac.target}"
+ source="${javac.source}"
+ optimize="${optimize}">
+ <classpath refid="classpath"/>
+
+ <selector id="conditional-patterns">
+ <not>
+ <or>
+ <selector refid="not.in.kaffe" if="kaffe"/>
+
+ <selector refid="needs.apache-resolver" unless="apache.resolver.present"/>
+ <selector refid="needs.junit" unless="junit.present"/> <!-- TODO should perhaps use -source 1.4? -->
+ <selector refid="needs.junit4" unless="junit4.present"/>
+ <selector refid="needs.apache-regexp"
+ unless="apache.regexp.present"/>
+ <selector refid="needs.apache-oro" unless="apache.oro.present"/>
+ <selector refid="needs.apache-bcel" unless="bcel.present"/>
+ <selector refid="needs.apache-log4j" unless="log4j.present"/>
+ <selector refid="needs.commons-logging"
+ unless="commons.logging.present"/>
+ <selector refid="needs.apache-bsf" unless="bsf.present"/>
+ <selector refid="needs.javamail" unless="javamail.complete"/>
+ <selector refid="needs.netrexx" unless="netrexx.present"/>
+ <selector refid="needs.commons-net" unless="commons.net.present"/>
+ <selector refid="needs.antlr" unless="antlr.present"/>
+ <selector refid="needs.jmf" unless="jmf.present"/>
+ <selector refid="needs.jai" unless="jai.present"/>
+ <selector refid="needs.jdepend" unless="jdepend.present"/>
+ <selector refid="needs.swing" unless="swing.present"/>
+ <selector refid="needs.jsch" unless="jsch.present"/>
+ <selector refid="needs.xmlschema" unless="xmlschema.present"/>
+ <selector refid="needs.apache-xalan2"
+ unless="recent.xalan2.present"/>
+ </or>
+ </not>
+ </selector>
+ </javac>
+
+ <copy todir="${build.classes}">
+ <fileset dir="${java.dir}">
+ <include name="**/*.properties"/>
+ <include name="**/*.dtd"/>
+ <include name="**/*.xml"/>
+ </fileset>
+ <fileset dir="${resource.dir}" />
+ </copy>
+
+ <copy todir="${build.classes}"
+ overwrite="true" encoding="UTF-8">
+ <fileset dir="${java.dir}">
+ <include name="**/version.txt"/>
+ <include name="**/defaultManifest.mf"/>
+ </fileset>
+ <filterchain refid="ant.filters"/>
+ </copy>
+
+ <copy todir="${build.classes}/${optional.package}/junit/xsl">
+ <fileset dir="${etc.dir}">
+ <include name="junit-frames.xsl"/>
+ <include name="junit-noframes.xsl"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <!--
+ ===================================================================
+ Create the all of the Apache Ant jars
+ ===================================================================
+ -->
+ <target name="jars"
+ depends="build"
+ description="--> creates the Apache Ant jars">
+
+ <copy todir="${build.dir}">
+ <fileset dir="${basedir}">
+ <include name="LICENSE"/>
+ <include name="LICENSE.xerces"/>
+ <include name="LICENSE.dom"/>
+ <include name="LICENSE.sax"/>
+ <include name="NOTICE"/>
+ </fileset>
+ <mapper type="glob" from="*" to="*.txt"/>
+ </copy>
+
+ <copy file="${manifest}" tofile="${manifest.tmp}"/>
+ <manifest file="${manifest.tmp}">
+ <section name="${optional.package}/">
+ <attribute name="Extension-name"
+ value="org.apache.tools.ant"/>
+ <attribute name="Specification-Title"
+ value="Apache Ant"/>
+ <attribute name="Specification-Version"
+ value="${manifest-version}"/>
+ <attribute name="Specification-Vendor"
+ value="Apache Software Foundation"/>
+ <attribute name="Implementation-Title"
+ value="org.apache.tools.ant"/>
+ <attribute name="Implementation-Version"
+ value="${manifest-version}"/>
+ <attribute name="Implementation-Vendor"
+ value="Apache Software Foundation"/>
+ </section>
+ </manifest>
+
+ <jar destfile="${build.lib}/${name}-launcher.jar"
+ basedir="${build.classes}"
+ whenmanifestonly="fail">
+ <selector refid="ant.launcher"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ <manifest>
+ <attribute name="Main-Class" value="org.apache.tools.ant.launch.Launcher"/>
+ </manifest>
+ </jar>
+
+ <jar destfile="${build.lib}/${name}.jar"
+ basedir="${build.classes}"
+ manifest="${manifest}"
+ whenmanifestonly="fail">
+ <!-- Verification: (cd dist/lib; for j in *.jar; do jar tf $j; done) | egrep -v '/$|META-INF/MANIFEST\.MF' | sort | uniq -d -->
+ <selector refid="ant.core"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+
+ <manifest>
+ <section name="${ant.package}/">
+ <attribute name="Extension-name"
+ value="org.apache.tools.ant"/>
+ <attribute name="Specification-Title"
+ value="Apache Ant"/>
+ <attribute name="Specification-Version"
+ value="${manifest-version}"/>
+ <attribute name="Specification-Vendor"
+ value="Apache Software Foundation"/>
+ <attribute name="Implementation-Title"
+ value="org.apache.tools.ant"/>
+ <attribute name="Implementation-Version"
+ value="${manifest-version}"/>
+ <attribute name="Implementation-Vendor"
+ value="Apache Software Foundation"/>
+ </section>
+ </manifest>
+
+ <fileset dir="${manual.dir}">
+ <include name="images/ant_logo_large.gif"/>
+ </fileset>
+ </jar>
+
+ <jar destfile="${build.lib}/${bootstrap.jar}"
+ basedir="${build.classes}"
+ manifest="${manifest}"
+ whenmanifestonly="fail">
+ <include name="${ant.package}/Main.class"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ <manifest>
+ <attribute name="Class-Path"
+ value="ant.jar xalan.jar"/>
+ </manifest>
+ </jar>
+
+ <macrodef name="optional-jar">
+ <attribute name="dep"/>
+ <sequential>
+ <jar destfile="${build.lib}/${optional.jars.prefix}-@{dep}.jar"
+ basedir="${build.classes}"
+ manifest="${manifest.tmp}"
+ whenmanifestonly="${optional.jars.whenmanifestonly}">
+ <selector refid="needs.@{dep}"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+ </sequential>
+ </macrodef>
+
+ <optional-jar dep="apache-resolver"/>
+ <optional-jar dep="junit"/>
+ <optional-jar dep="junit4"/>
+ <optional-jar dep="apache-regexp"/>
+ <optional-jar dep="apache-oro"/>
+ <optional-jar dep="apache-bcel"/>
+ <optional-jar dep="apache-log4j"/>
+ <optional-jar dep="commons-logging"/>
+ <optional-jar dep="apache-bsf"/>
+ <optional-jar dep="javamail"/>
+ <optional-jar dep="netrexx"/>
+ <optional-jar dep="commons-net"/>
+ <optional-jar dep="antlr"/>
+ <optional-jar dep="jmf"/>
+ <optional-jar dep="jai"/>
+ <optional-jar dep="swing"/>
+ <optional-jar dep="jsch"/>
+ <optional-jar dep="jdepend"/>
+ <optional-jar dep="apache-xalan2"/>
+
+ </target>
+
+ <!-- Creates jar of test utility classes -->
+ <target name="test-jar"
+ depends="compile-tests"
+ description="--> creates the Apache Ant Test Utilities jar">
+
+ <fail unless="junit.present">
+ We cannot build the test jar unless JUnit is present,
+ as JUnit is needed to compile the test classes.
+ </fail>
+ <jar destfile="${build.lib}/${name}-testutil.jar"
+ basedir="${build.tests}">
+ <patternset refid="useful.tests"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+ </target>
+
+ <!--
+ ===================================================================
+ Create the all of the Apache Ant source jars
+ ===================================================================
+ -->
+ <target name="jars-sources" description="--> creates the Apache Ant source jars">
+ <mkdir dir="${build.lib-src}" />
+ <jar destfile="${build.lib-src}/${name}-launcher.jar"
+ basedir="${java.dir}"
+ whenmanifestonly="fail">
+ <selector refid="ant.launcher"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+
+ <jar destfile="${build.lib-src}/${name}.jar"
+ basedir="${java.dir}"
+ whenmanifestonly="fail">
+ <selector refid="ant.core"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+
+ <jar destfile="${build.lib-src}/${bootstrap.jar}"
+ basedir="${java.dir}"
+ whenmanifestonly="fail">
+ <include name="${ant.package}/Main.java"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+
+ <macrodef name="optional-src-jar">
+ <attribute name="dep"/>
+ <sequential>
+ <jar destfile="${build.lib-src}/${optional.jars.prefix}-@{dep}.jar"
+ basedir="${java.dir}"
+ whenmanifestonly="${optional.jars.whenmanifestonly}">
+ <selector refid="needs.@{dep}"/>
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+ </sequential>
+ </macrodef>
+
+ <optional-src-jar dep="apache-resolver"/>
+ <optional-src-jar dep="junit"/>
+ <optional-src-jar dep="junit4"/>
+ <optional-src-jar dep="apache-regexp"/>
+ <optional-src-jar dep="apache-oro"/>
+ <optional-src-jar dep="apache-bcel"/>
+ <optional-src-jar dep="apache-log4j"/>
+ <optional-src-jar dep="commons-logging"/>
+ <optional-src-jar dep="apache-bsf"/>
+ <optional-src-jar dep="javamail"/>
+ <optional-src-jar dep="netrexx"/>
+ <optional-src-jar dep="commons-net"/>
+ <optional-src-jar dep="antlr"/>
+ <optional-src-jar dep="jmf"/>
+ <optional-src-jar dep="jai"/>
+ <optional-src-jar dep="swing"/>
+ <optional-src-jar dep="jsch"/>
+ <optional-src-jar dep="jdepend"/>
+ <optional-src-jar dep="apache-xalan2"/>
+
+ </target>
+
+ <target name="test-jar-source"
+ description="--> creates the Apache Ant Test Utilities source jar">
+ <mkdir dir="${build.lib-src}" />
+ <jar destfile="${build.lib-src}/${name}-testutil.jar"
+ basedir="${java.dir}">
+ <patternset refid="useful.tests" />
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+ </target>
+
+ <!--
+ ===================================================================
+ Create the essential distribution that can run Apache Ant
+ ===================================================================
+ -->
+ <target name="dist-lite"
+ depends="jars,test-jar"
+ description="--> creates a minimum distribution to run Apache Ant">
+
+ <mkdir dir="${dist.dir}"/>
+ <mkdir dir="${dist.bin}"/>
+ <mkdir dir="${dist.lib}"/>
+
+ <copy todir="${dist.lib}">
+ <fileset dir="${build.lib}">
+ <exclude name="${bootstrap.jar}"/>
+ </fileset>
+ </copy>
+
+ <copy todir="${dist.lib}">
+ <fileset dir="${lib.dir}">
+ <include name="*.jar"/>
+ <include name="*.zip"/>
+ </fileset>
+ </copy>
+
+ <copy todir="${dist.bin}">
+ <fileset dir="${script.dir}"/>
+ </copy>
+
+ <fixcrlf srcdir="${dist.bin}" eol="dos" includes="*.bat,*.cmd"/>
+ <fixcrlf srcdir="${dist.bin}" eol="unix">
+ <include name="ant"/>
+ <include name="antRun"/>
+ <include name="*.pl"/>
+ </fixcrlf>
+
+ <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**"
+ failonerror="${chmod.fail}"/>
+ <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**"
+ failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/>
+ <chmod perm="ugo+x" type="file" failonerror="${chmod.fail}">
+ <fileset dir="${dist.bin}">
+ <include name="**/ant"/>
+ <include name="**/antRun"/>
+ <include name="**/*.pl"/>
+ <include name="**/*.py"/>
+ </fileset>
+ </chmod>
+
+ </target>
+
+ <!--
+ ===================================================================
+ Create the complete distribution
+ ===================================================================
+ -->
+ <target name="dist" description="--> creates a complete distribution">
+ <antcall inheritAll="false" target="internal_dist">
+ <param name="dist.dir" value="${dist.name}"/>
+ </antcall>
+ </target>
+
+ <target name="dist_javadocs" depends="javadocs" unless="javadoc.notrequired">
+ <mkdir dir="${dist.javadocs}"/>
+ <copy todir="${dist.javadocs}" overwrite="true">
+ <fileset dir="${build.javadocs}"/>
+ </copy>
+ </target>
+
+
+ <macrodef name="checksums-mvn" description="only md5 and sha1 are needed for the maven directory structure">
+ <element name="resources" implicit="true"/>
+ <sequential>
+ <checksum algorithm="md5">
+ <resources/>
+ </checksum>
+ <checksum algorithm="sha1">
+ <resources/>
+ </checksum>
+ </sequential>
+ </macrodef>
+ <macrodef name="checksums">
+ <element name="resources" implicit="true"/>
+ <sequential>
+ <checksums-mvn>
+ <resources/>
+ </checksums-mvn>
+ <checksum fileext=".sha512" algorithm="sha-512">
+ <resources/>
+ </checksum>
+ </sequential>
+ </macrodef>
+
+ <target name="internal_dist" depends="dist-lite,dist_javadocs">
+ <mkdir dir="${dist.manual}"/>
+ <mkdir dir="${dist.etc}"/>
+
+ <copy todir="${dist.lib}" file="${lib.dir}/README"/>
+ <copy todir="${dist.lib}" file="${lib.dir}/libraries.properties"/>
+
+ <copy todir="${dist.lib}">
+ <fileset dir="${src.dir}/etc/poms">
+ <include name="*/pom.xml"/>
+ </fileset>
+ <mapper type="regexp" from="^(.*)[/\\]pom.xml" to="\1.pom"/>
+ <filterchain>
+ <tokenfilter>
+ <replaceregex pattern="${pom.version}" replace="${project.version}"/>
+ </tokenfilter>
+ </filterchain>
+ </copy>
+ <copy todir="${dist.lib}">
+ <fileset dir="${src.dir}/etc/poms">
+ <include name="pom.xml"/>
+ </fileset>
+ <mapper type="glob" from="pom.xml" to="ant-parent.pom"/>
+ <filterchain>
+ <tokenfilter>
+ <replaceregex pattern="${pom.version}" replace="${project.version}"/>
+ </tokenfilter>
+ </filterchain>
+ </copy>
+
+
+ <copy todir="${dist.manual}">
+ <fileset dir="${manual.dir}" />
+ </copy>
+
+ <copy todir="${dist.dir}">
+ <fileset dir="${basedir}">
+ <include name="CONTRIBUTORS"/>
+ <include name="README"/>
+ <include name="INSTALL"/>
+ <include name="LICENSE"/>
+ <include name="LICENSE.xerces"/>
+ <include name="LICENSE.dom"/>
+ <include name="LICENSE.sax"/>
+ <include name="NOTICE"/>
+ <include name="TODO"/>
+ <include name="WHATSNEW"/>
+ <include name="KEYS"/>
+ <include name="contributors.xml"/>
+ <include name="fetch.xml"/>
+ <include name="get-m2.xml"/>
+ <include name="patch.xml"/>
+ </fileset>
+ </copy>
+
+ <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**"
+ failonerror="${chmod.fail}"/>
+ <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**"
+ failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/>
+ <chmod perm="ugo+x" type="file" failonerror="${chmod.fail}">
+ <fileset dir="${dist.bin}">
+ <include name="**/ant"/>
+ <include name="**/antRun"/>
+ <include name="**/*.pl"/>
+ <include name="**/*.py"/>
+ </fileset>
+ </chmod>
+
+ <!-- publish some useful stylesheets -->
+ <copy todir="${dist.etc}">
+ <fileset dir="${etc.dir}">
+ <include name="junit-frames.xsl"/>
+ <include name="junit-noframes.xsl"/>
+ <include name="junit-frames-xalan1.xsl"/>
+ <include name="coverage-frames.xsl"/>
+ <include name="maudit-frames.xsl"/>
+ <include name="mmetrics-frames.xsl"/>
+ <include name="changelog.xsl"/>
+ <include name="jdepend.xsl"/>
+ <include name="jdepend-frames.xsl"/>
+ <include name="checkstyle/*.xsl"/>
+ <include name="log.xsl"/>
+ <include name="tagdiff.xsl"/>
+ </fileset>
+ <fileset dir="${build.lib}">
+ <include name="${bootstrap.jar}"/>
+ </fileset>
+ </copy>
+
+ </target>
+
+
+ <!--
+ ===================================================================
+ Target to create bootstrap build
+ ===================================================================
+ -->
+ <target name="bootstrap" description="--> creates a bootstrap build">
+ <antcall inheritAll="false" target="dist-lite">
+ <param name="dist.dir" value="${bootstrap.dir}"/>
+ </antcall>
+ </target>
+
+
+ <!--
+ ===================================================================
+ Create the source distribution
+ ===================================================================
+ -->
+ <target name="src-dist"
+ description="--> creates a source distribution">
+
+ <mkdir dir="${src.dist.dir}"/>
+
+ <copy todir="${src.dist.lib}">
+ <fileset dir="${lib.dir}">
+ <include name="optional/junit*.jar"/>
+ <include name="optional/hamcrest*.jar"/>
+ <include name="README"/>
+ <include name="libraries.properties"/>
+ </fileset>
+ </copy>
+
+ <mkdir dir="${src.dist.lib}/optional"/>
+
+ <copy todir="${src.dist.src}">
+ <fileset dir="${src.dir}"/>
+ </copy>
+
+ <copy todir="${src.dist.manual}">
+ <fileset dir="${manual.dir}">
+ <exclude name="api/"/>
+ </fileset>
+ </copy>
+
+ <copy todir="${src.dist.dir}">
+ <fileset dir="${basedir}">
+ <include name="CONTRIBUTORS"/>
+ <include name="INSTALL"/>
+ <include name="KEYS"/>
+ <include name="LICENSE"/>
+ <include name="LICENSE.dom"/>
+ <include name="LICENSE.sax"/>
+ <include name="LICENSE.xerces"/>
+ <include name="NOTICE"/>
+ <include name="README"/>
+ <include name="TODO"/>
+ <include name="WHATSNEW"/>
+ <include name="bootstrap.bat"/>
+ <include name="bootstrap.sh"/>
+ <include name="build.bat"/>
+ <include name="build.sh"/>
+ <include name="build.xml"/>
+ <include name="contributors.xml"/>
+ <include name="fetch.xml"/>
+ <include name="get-m2.xml"/>
+ <include name="patch.xml"/>
+ </fileset>
+ </copy>
+
+ <fixcrlf srcdir="${src.dist.dir}" eol="dos" includes="*.bat,*.cmd"/>
+ <fixcrlf srcdir="${src.dist.dir}" eol="unix">
+ <include name="**/*.sh"/>
+ <include name="**/*.pl"/>
+ <include name="**/ant"/>
+ <include name="**/antRun"/>
+ </fixcrlf>
+ <fixcrlf srcdir="${src.dist.dir}">
+ <include name="**/*.java"/>
+ <exclude name="${tests.etc.dir}/taskdefs/fixcrlf/expected/Junk?.java"/>
+ <exclude name="${tests.etc.dir}/taskdefs/fixcrlf/input/Junk?.java"/>
+ </fixcrlf>
+
+ <chmod perm="ugo+x" dir="${src.dist.dir}" type="dir"
+ failonerror="${chmod.fail}"/>
+ <chmod perm="ugo+r" dir="${src.dist.dir}" failonerror="${chmod.fail}"/>
+ <chmod perm="ugo+x" failonerror="${chmod.fail}">
+ <fileset dir="${src.dist.dir}">
+ <include name="**/.sh"/>
+ <include name="**/.pl"/>
+ <include name="**/.py"/>
+ <include name="**/ant"/>
+ <include name="**/antRun"/>
+ </fileset>
+ </chmod>
+
+ </target>
+
+ <!--
+ ===================================================================
+ Create the binary distribution
+ ===================================================================
+ -->
+ <target name="-distribution_prep">
+ <delete dir="${dist.base}"/>
+ <delete dir="${dist.name}"/>
+ <delete dir="${java-repository.dir}"/>
+ <mkdir dir="${dist.base}"/>
+ <mkdir dir="${dist.base.source}"/>
+ <mkdir dir="${dist.base.binaries}"/>
+ <mkdir dir="${dist.base.manual}"/>
+ <mkdir dir="${java-repository.dir}"/>
+ <antcall inheritAll="false" target="internal_dist">
+ <param name="dist.dir" value="${dist.name}"/>
+ </antcall>
+ </target>
+
+ <target name="zip_distribution" depends="jars,-distribution_prep"
+ description="--> creates the zip distribution">
+ <zip destfile="${dist.base.binaries}/${dist.name}-bin.zip">
+ <zipfileset dir="${dist.name}/.." filemode="755">
+ <include name="${dist.name}/bin/ant"/>
+ <include name="${dist.name}/bin/antRun"/>
+ <include name="${dist.name}/bin/*.pl"/>
+ <include name="${dist.name}/bin/*.py"/>
+ </zipfileset>
+ <fileset dir="${dist.name}/..">
+ <include name="${dist.name}/"/>
+ <exclude name="${dist.name}/bin/ant"/>
+ <exclude name="${dist.name}/bin/antRun"/>
+ <exclude name="${dist.name}/bin/*.pl"/>
+ <exclude name="${dist.name}/bin/*.py"/>
+ </fileset>
+ </zip>
+ </target>
+
+ <condition property="buildosxpackage">
+ <and>
+ <os family="mac"/>
+ <isset property="buildosxpackage.required"/>
+ </and>
+ </condition>
+
+ <target name="pkg_distribution" depends="zip_distribution" if="buildosxpackage">
+ <exec executable="release/build-osx-pkg.py">
+ <arg value="--output-dir"/>
+ <arg value="${dist.base.binaries}"/>
+ <arg value="${dist.base.binaries}/${dist.name}-bin.zip"/>
+ </exec>
+ </target>
+
+ <target name="tar_distribution" depends="jars,-distribution_prep"
+ description="--> creates the tar distribution">
+ <tar longfile="gnu"
+ destfile="${dist.base.binaries}/${dist.name}-bin.tar">
+ <!-- removes redundant definition of permissions, but seems to
+ drop dirs (and to be slow)
+ <zipfileset src="${dist.base.binaries}/${dist.name}-bin.zip"/>
+ -->
+ <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
+ <include name="${dist.name}/bin/ant"/>
+ <include name="${dist.name}/bin/antRun"/>
+ <include name="${dist.name}/bin/*.pl"/>
+ <include name="${dist.name}/bin/*.py"/>
+ </tarfileset>
+ <tarfileset dir="${dist.name}/.." username="ant" group="ant">
+ <include name="${dist.name}/"/>
+ <exclude name="${dist.name}/bin/ant"/>
+ <exclude name="${dist.name}/bin/antRun"/>
+ <exclude name="${dist.name}/bin/*.pl"/>
+ <exclude name="${dist.name}/bin/*.py"/>
+ </tarfileset>
+ </tar>
+ <gzip destfile="${dist.base.binaries}/${dist.name}-bin.tar.gz"
+ src="${dist.base.binaries}/${dist.name}-bin.tar"/>
+ <bzip2 destfile="${dist.base.binaries}/${dist.name}-bin.tar.bz2"
+ src="${dist.base.binaries}/${dist.name}-bin.tar"/>
+ <delete file="${dist.base.binaries}/${dist.name}-bin.tar"/>
+ </target>
+
+ <target name="main_distribution" depends="zip_distribution,pkg_distribution,tar_distribution,jars-sources,test-jar-source"
+ description="--> creates the zip, pkg, and tar distributions">
+
+ <copy todir="${java-repository.dir}">
+ <fileset dir="${dist.name}/lib">
+ <include name="ant*.jar"/>
+ </fileset>
+ <mapper type="regexp" from="ant(.*).jar" to="ant\1/${project.version}/ant\1-${project.version}.jar"/>
+ </copy>
+ <copy todir="${java-repository.dir}">
+ <fileset dir="${dist.name}/lib">
+ <include name="*.pom"/>
+ </fileset>
+ <mapper>
+ <mapper type="regexp" from="ant(.*).pom" to="ant\1/${project.version}/ant\1-${project.version}.pom"/>
+ </mapper>
+ </copy>
+ <copy todir="${java-repository.dir}">
+ <fileset dir="${build.lib-src}">
+ <include name="ant*.jar"/>
+ </fileset>
+ <mapper type="regexp" from="ant(.*).jar" to="ant\1/${project.version}/ant\1-${project.version}-sources.jar"/>
+ </copy>
+ <jar destfile="${java-repository.dir}/ant/${project.version}/ant-${project.version}-javadoc.jar"
+ basedir="${build.javadocs}">
+ <metainf dir="${build.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ </jar>
+ <checksums-mvn>
+ <fileset dir="${java-repository.dir}" includes="**/*${project.version}.jar"/>
+ <fileset dir="${java-repository.dir}" includes="**/*${project.version}-sources.jar"/>
+ <fileset dir="${java-repository.dir}" includes="**/*${project.version}-javadoc.jar"/>
+ <fileset dir="${java-repository.dir}" includes="**/*${project.version}.pom"/>
+ </checksums-mvn>
+
+ <zip destfile="${dist.base.manual}/${dist.name}-manual.zip">
+ <zipfileset dir="${dist.name}/manual" prefix="${dist.name}"/>
+ <zipfileset file="NOTICE" prefix="${dist.name}"/>
+ </zip>
+ <tar longfile="gnu"
+ destfile="${dist.base.manual}/${dist.name}-manual.tar">
+ <tarfileset dir="${dist.name}/manual" prefix="${dist.name}"/>
+ <tarfileset file="NOTICE" prefix="${dist.name}"/>
+ </tar>
+ <gzip destfile="${dist.base.manual}/${dist.name}-manual.tar.gz"
+ src="${dist.base.manual}/${dist.name}-manual.tar"/>
+ <bzip2 destfile="${dist.base.manual}/${dist.name}-manual.tar.bz2"
+ src="${dist.base.manual}/${dist.name}-manual.tar"/>
+ <delete file="${dist.base.manual}/${dist.name}-manual.tar"/>
+
+ <delete dir="${dist.name}"/>
+ <checksums>
+ <fileset dir="${dist.base.binaries}/">
+ <exclude name="**/*.asc"/>
+ <exclude name="**/*.md5"/>
+ <exclude name="**/*.sha1"/>
+ <exclude name="**/*.sha512"/>
+ </fileset>
+ <fileset dir="${dist.base.manual}/">
+ <exclude name="**/*.asc"/>
+ <exclude name="**/*.md5"/>
+ <exclude name="**/*.sha1"/>
+ <exclude name="**/*.sha512"/>
+ </fileset>
+ </checksums>
+
+ <antcall inheritAll="false" target="src-dist">
+ <param name="src.dist.dir" value="${dist.name}"/>
+ </antcall>
+ <zip destfile="${dist.base.source}/${dist.name}-src.zip">
+ <zipfileset dir="${dist.name}/.." filemode="755">
+ <include name="${dist.name}/bootstrap.sh"/>
+ <include name="${dist.name}/build.sh"/>
+ </zipfileset>
+ <fileset dir="${dist.name}/..">
+ <include name="${dist.name}/"/>
+ <exclude name="${dist.name}/bootstrap.sh"/>
+ <exclude name="${dist.name}/build.sh"/>
+ </fileset>
+ </zip>
+ <tar longfile="gnu"
+ destfile="${dist.base.source}/${dist.name}-src.tar">
+ <!--
+ <zipfileset src="${dist.base.source}/${dist.name}-src.zip"/>
+ -->
+ <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
+ <include name="${dist.name}/bootstrap.sh"/>
+ <include name="${dist.name}/build.sh"/>
+ </tarfileset>
+ <tarfileset dir="${dist.name}/.." username="ant" group="ant">
+ <include name="${dist.name}/"/>
+ <exclude name="${dist.name}/bootstrap.sh"/>
+ <exclude name="${dist.name}/build.sh"/>
+ </tarfileset>
+ </tar>
+ <gzip destfile="${dist.base.source}/${dist.name}-src.tar.gz"
+ src="${dist.base.source}/${dist.name}-src.tar"/>
+ <bzip2 destfile="${dist.base.source}/${dist.name}-src.tar.bz2"
+ src="${dist.base.source}/${dist.name}-src.tar"/>
+ <delete file="${dist.base.source}/${dist.name}-src.tar"/>
+ <delete dir="${dist.name}"/>
+ <checksums>
+ <fileset dir="${dist.base.source}/">
+ <exclude name="**/*.asc"/>
+ <exclude name="**/*.md5"/>
+ <exclude name="**/*.sha1"/>
+ <exclude name="**/*.sha512"/>
+ </fileset>
+ </checksums>
+ </target>
+
+ <target name="distribution" depends="main_distribution"
+ description="--> creates the full Apache Ant distribution">
+ </target>
+
+ <!--
+ ===================================================================
+ Cleans up build and distribution directories
+ ===================================================================
+ -->
+ <target name="clean"
+ description="--> cleans up build and dist directories">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.base}"/>
+ <delete dir="${dist.dir}"/>
+ <delete>
+ <fileset dir="." includes="**/*~" defaultexcludes="no"/>
+ </delete>
+ </target>
+
+ <!--
+ ===================================================================
+ Cleans everything
+ ===================================================================
+ -->
+ <target name="allclean"
+ depends="clean"
+ description="--> cleans up everything">
+ <delete file="${bootstrap.dir}/bin/antRun"/>
+ <delete file="${bootstrap.dir}/bin/antRun.bat"/>
+ <delete file="${bootstrap.dir}/bin/*.pl"/>
+ <delete file="${bootstrap.dir}/bin/*.py"/>
+ </target>
+
+ <!--
+ ===================================================================
+ Installs Apache Ant
+ ===================================================================
+ -->
+ <target name="install">
+ <fail message="You must set the property ant.install=/where/to/install" unless="ant.install"/>
+ <antcall inheritAll="false" target="internal_dist">
+ <param name="dist.dir" value="${ant.install}"/>
+ </antcall>
+ </target>
+
+ <target name="install-lite">
+ <fail message="You must set the property ant.install=/where/to/install" unless="ant.install"/>
+ <antcall inheritAll="false" target="dist-lite">
+ <param name="dist.dir" value="${ant.install}"/>
+ </antcall>
+ </target>
+
+ <!--
+ ===================================================================
+ Creates the API documentation
+ ===================================================================
+ -->
+ <target name="javadoc_check">
+ <uptodate property="javadoc.notrequired"
+ targetfile="${build.javadocs}/packages.html">
+ <srcfiles dir="${java.dir}" includes="**/*.java"/>
+ </uptodate>
+ <uptodate property="tests.javadoc.notrequired"
+ targetfile="${build.tests.javadocs}/packages.html">
+ <srcfiles dir="${src.junit}">
+ <patternset refid="useful.tests"/>
+ </srcfiles>
+ </uptodate>
+ </target>
+
+ <target name="javadocs" depends="prepare, javadoc_check, check_for_optional_packages"
+ description="--> creates the API documentation" unless="javadoc.notrequired">
+ <mkdir dir="${build.javadocs}"/>
+ <javadoc useexternalfile="yes"
+ maxmemory="1000M"
+ destdir="${build.javadocs}"
+ author="true"
+ version="true"
+ locale="en"
+ windowtitle="${Name} API"
+ doctitle="${Name}"
+ failonerror="true"
+ verbose="${javadoc.verbose}"
+ additionalparam="${javadoc.doclint.none}">
+
+ <packageset dir="${java.dir}"/>
+
+ <!-- hide some meta information for javadoc -->
+ <tag name="todo" description="To do:" scope="all"/>
+ <tag name="ant.task" enabled="false" description="Task:" scope="types"/>
+ <tag name="ant.datatype" enabled="false" description="Data type:" scope="types"/>
+ <tag name="ant.attribute" enabled="false" description="Attribute:" scope="types"/>
+ <tag name="ant.attribute.group" enabled="false" description="Attribute group:" scope="types"/>
+ <tag name="ant.element" enabled="false" description="Nested element:" scope="types"/>
+ <group title="Apache Ant Core" packages="org.apache.tools.ant*"/>
+ <group title="Core Tasks" packages="org.apache.tools.ant.taskdefs*"/>
+ <group title="Core Types" packages="org.apache.tools.ant.types*"/>
+ <group title="Optional Tasks" packages="org.apache.tools.ant.taskdefs.optional*"/>
+ <group title="Optional Types" packages="org.apache.tools.ant.types.optional*"/>
+ <group title="Ant Utilities" packages="org.apache.tools.ant.util*"/>
+ <classpath refid="tests-classpath"/>
+ </javadoc>
+ </target>
+
+ <target name="test-javadocs" depends="prepare, javadoc_check"
+ unless="tests.javadoc.notrequired"
+ description="--> creates the API documentation for test utilities">
+ <mkdir dir="${build.tests.javadocs}"/>
+ <javadoc useexternalfile="yes"
+ destdir="${build.tests.javadocs}"
+ failonerror="true"
+ author="true"
+ version="true"
+ locale="en"
+ windowtitle="${Name} Test Utilities"
+ doctitle="${Name}"
+ additionalparam="${javadoc.doclint.none}">
+
+ <!-- hide some meta information for javadoc -->
+ <tag name="pre" description="Precondition:" scope="all"/>
+
+ <fileset dir="${src.junit}">
+ <patternset refid="useful.tests"/>
+ </fileset>
+ <classpath refid="tests-classpath"/>
+ </javadoc>
+ </target>
+
+ <!--
+ ===================================================================
+ Compile testcases
+ ===================================================================
+ -->
+ <target name="compile-tests" depends="build" if="junit.present">
+ <mkdir dir="${build.tests}"/>
+
+ <javac srcdir="${src.junit}"
+ includeantruntime="false"
+ destdir="${build.tests}"
+ debug="${debug}"
+ target="${javac.target}"
+ source="${javac.source}"
+ deprecation="${deprecation}">
+ <classpath refid="tests-classpath"/>
+
+ <selector refid="conditional-patterns"/>
+ </javac>
+
+ <!-- Used by AntlibTest.testAntlibResource: -->
+ <jar jarfile="${build.tests}/org/apache/tools/ant/taskdefs/test2-antlib.jar">
+ <manifest>
+ <attribute name="Extension-name"
+ value="org.apache.tools.ant"/>
+ <attribute name="Specification-Title"
+ value="Apache Ant"/>
+ <attribute name="Specification-Version"
+ value="${manifest-version}"/>
+ <attribute name="Specification-Vendor"
+ value="Apache Software Foundation"/>
+ <attribute name="Implementation-Title"
+ value="org.apache.tools.ant"/>
+ <attribute name="Implementation-Version"
+ value="${manifest-version}"/>
+ <attribute name="Implementation-Vendor"
+ value="Apache Software Foundation"/>
+ </manifest>
+ <zipfileset dir="${tests.etc.dir}" fullpath="taskdefs/test.antlib.xml">
+ <include name="taskdefs/test2.antlib.xml"/>
+ </zipfileset>
+ </jar>
+ </target>
+
+ <target name="dump-info" depends="dump-sys-properties,run-which"/>
+
+ <target name="dump-sys-properties" unless="which.present"
+ depends="xml-check">
+ <echo message="java.vm.info=${java.vm.info}"/>
+ <echo message="java.vm.name=${java.vm.name}"/>
+ <echo message="java.vm.vendor=${java.vm.vendor}"/>
+ <echo message="java.vm.version=${java.vm.version}"/>
+ <echo message="os.arch=${os.arch}"/>
+ <echo message="os.name=${os.name}"/>
+ <echo message="os.version=${os.version}"/>
+ <echo message="file.encoding=${file.encoding}"/>
+ <echo message="user.language=${user.language}"/>
+ <echo message="ant.version=${ant.version}"/>
+ </target>
+
+ <!-- helper class from Xalan2 to check for jar versioning of xml/xsl processors -->
+ <target name="xml-check" depends="check_for_optional_packages"
+ if="xalan.envcheck" unless="which.present">
+ <java classname="org.apache.xalan.xslt.EnvironmentCheck"/>
+ </target>
+
+ <target name="run-which" depends="check_for_optional_packages"
+ if="which.present">
+ <java classname="org.apache.env.Which" taskname="which" classpathref="classpath"/>
+ </target>
+
+ <!-- test to see if we are online or not. can take a while when we are off line, so
+ setting the property is a good shortcut-->
+ <target name="probe-offline">
+ <condition property="offline">
+ <or>
+ <isset property="offline"/>
+ <not>
+ <http url="http://www.apache.org/"/>
+ </not>
+ </or>
+ </condition>
+ <echo level="verbose"> offline=${offline}</echo>
+ </target>
+
+ <!--
+ ===================================================================
+ Run testcase
+ ===================================================================
+ -->
+
+ <target name="check-failed">
+ <condition property="tests.failed">
+ <or>
+ <isset property="junit.failed" />
+ <isset property="antunit.failed" />
+ </or>
+ </condition>
+ </target>
+
+ <target name="test" description="--> run unit tests and reports"
+ depends="dump-info,junit-report,antunit-report,check-failed">
+ <fail if="tests.failed" unless="ignore.tests.failed">Unit tests failed; see:
+${build.junit.reports}
+${antunit.reports}
+ </fail>
+ </target>
+
+ <target name="run-tests" depends="dump-info,junit-tests,antunit-tests,check-failed"
+ description="--> run unit tests without reports">
+ <fail if="tests.failed" message="Unit tests failed" />
+ </target>
+
+ <target name="test-init" depends="probe-offline,check_for_optional_packages">
+ <mkdir dir="${build.junit.tmpdir}"/>
+ <macrodef name="test-junit">
+ <element name="junit-nested" implicit="true" />
+ <sequential>
+ <!-- Delete 'old' collector classes -->
+ <delete failonerror="false">
+ <fileset dir="${junit.collector.dir}" includes="${junit.collector.class}*.class"/>
+ </delete>
+ <!-- compile the FailedTests class if present -->
+ <mkdir dir="${junit.collector.dir}"/>
+ <!-- FIXME: removed junit collector build code
+ <javac srcdir="${junit.collector.dir}" destdir="${junit.collector.dir}">
+ <classpath id="failure.cp">
+ <pathelement location="${build.classes}"/>
+ <pathelement location="${build.tests}"/>
+ </classpath>
+ </javac>
+ -->
+ <available file="${junit.collector.dir}/${junit.collector.class}.class"
+ property="hasFailingTests"/>
+ <!-- run the tests -->
+ <mkdir dir="${build.junit.xml}" />
+ <property name="test.junit.vmargs" value=""/>
+ <property name="ant.junit.failureCollector"
+ value="${junit.collector.dir}/${junit.collector.class}"/>
+ <!-- TODO includeantruntime="false" does not solve "multiple versions of ant detected in path for junit" warning -->
+ <junit printsummary="${junit.summary}"
+ haltonfailure="${test.haltonfailure}"
+ fork="${junit.fork}"
+ forkmode="${junit.forkmode}"
+ threads="${junit.threads}"
+ failureproperty="junit.failed"
+ errorproperty="junit.failed"
+ filtertrace="${junit.filtertrace}">
+ <sysproperty key="ant.home" value="${ant.home}"/>
+ <sysproperty key="build.tests" file="${build.tests}"/>
+ <sysproperty key="build.tests.value" value="${build.tests.value}"/>
+ <sysproperty key="offline" value="${offline}"/>
+ <sysproperty key="tests-classpath.value"
+ value="${toString:tests-runtime-classpath}"/>
+ <sysproperty key="root" file="${basedir}"/>
+ <sysproperty key="build.compiler" value="${build.compiler}"/>
+ <sysproperty key="tests.and.ant.share.classloader"
+ value="${tests.and.ant.share.classloader}"/>
+ <sysproperty key="java.io.tmpdir" file="${build.junit.tmpdir}"/>
+ <classpath>
+ <path refid="tests-runtime-classpath"/>
+ <pathelement location="${junit.collector.dir}"/>
+ <!-- FIXME: remove failure collector build code for the moment
+ <path refid="failure.cp"/>
+ -->
+ </classpath>
+ <!-- FIXME: remove failure collector build code for the moment
+ <formatter type="failure" usefile="false"/>
+ -->
+ <formatter type="xml"/>
+ <jvmarg line="${test.junit.vmargs}"/>
+ <!-- FIXME: remove failure collector build code for the moment
+ <test name="${junit.collector.class}" if="hasFailingTests"/>
+ -->
+ <junit-nested />
+ </junit>
+ </sequential>
+ </macrodef>
+
+ <fail>"testcase" cannot be specified with "junit.testcase" or "antunit.testcase".
+ <condition>
+ <and>
+ <isset property="testcase" />
+ <or>
+ <isset property="antunit.testcase" />
+ <isset property="junit.testcase" />
+ </or>
+ </and>
+ </condition>
+ </fail>
+
+ <condition property="antunit.testcase" value="${testcase}">
+ <available file="${src.antunit}/${testcase}" />
+ </condition>
+
+ <condition property="junit.testcase" value="${testcase}">
+ <available classname="${testcase}" classpathref="tests-runtime-classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+ </condition>
+
+ <fail>Cannot locate test ${testcase}
+ <condition>
+ <and>
+ <isset property="testcase" />
+ <not>
+ <or>
+ <isset property="antunit.testcase" />
+ <isset property="junit.testcase" />
+ </or>
+ </not>
+ </and>
+ </condition>
+ </fail>
+
+ <condition property="run.junit">
+ <and>
+ <not><equals arg1="${testcase}" arg2="${antunit.testcase}" /></not>
+ <isset property="junit.present" />
+ <available file="${src.junit}" />
+ </and>
+ </condition>
+
+ <condition property="junit.single">
+ <and>
+ <isset property="junit.testcase" />
+ <isset property="run.junit" />
+ </and>
+ </condition>
+
+ <condition property="junit.batch">
+ <and>
+ <not><isset property="junit.testcase" /></not>
+ <isset property="run.junit" />
+ </and>
+ </condition>
+
+ <condition property="run.antunit">
+ <and>
+ <not><equals arg1="${testcase}" arg2="${junit.testcase}" /></not>
+ <isset property="antunit.present" />
+ <available file="${src.antunit}" />
+ </and>
+ </condition>
+
+ <condition property="run.antunit.report">
+ <isset property="run.antunit" />
+ </condition>
+
+ <condition property="run.junit.report">
+ <isset property="run.junit" />
+ </condition>
+ </target>
+
+ <target name="junit-report" depends="junit-tests,junit-report-only" />
+
+ <target name="junit-report-only" depends="test-init" if="${run.junit.report}">
+ <mkdir dir="${build.junit.reports}" />
+ <junitreport todir="${build.junit.reports}">
+ <fileset dir="${build.junit.xml}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report format="frames" todir="${build.junit.reports}"/>
+ </junitreport>
+ </target>
+
+ <target name="junit-tests" depends="junit-batch,junit-single-test" />
+
+ <target name="junit-batch" depends="compile-tests,test-init"
+ if="junit.batch">
+
+ <property name="junit.includes" value="**/*Test*" />
+ <property name="junit.excludes" value="" />
+
+ <test-junit>
+ <formatter type="brief" usefile="false"/>
+
+ <batchtest todir="${build.junit.xml}" unless="hasFailingTests">
+ <fileset dir="${src.junit}"
+ includes="${junit.includes}" excludes="${junit.excludes}">
+
+ <!-- abstract classes, not testcases -->
+ <exclude name="${taskdefs.package}/TaskdefsTest.java"/>
+ <exclude name="${ant.package}/BuildFileTest.java"/>
+ <exclude name="${regexp.package}/RegexpMatcherTest.java"/>
+ <exclude name="${regexp.package}/RegexpTest.java"/>
+ <exclude name="${optional.package}/AbstractXSLTLiaisonTest.java"/>
+ <exclude name="${ant.package}/types/AbstractFileSetTest.java"/>
+ <exclude name="${ant.package}/types/selectors/BaseSelectorTest.java"/>
+
+ <!-- helper classes, not testcases -->
+ <exclude name="org/example/"/>
+ <exclude name="${taskdefs.package}/TaskdefTest*Task.java"/>
+ <exclude name="${optional.package}/junit/TestFormatter.java"/>
+
+ <!-- interactive tests -->
+ <exclude name="${taskdefs.package}/TestProcess.java"/>
+ <exclude name="${optional.package}/splash/SplashScreenTest.java"/>
+
+ <!-- only run these tests if their required libraries are
+ installed -->
+ <selector refid="conditional-patterns"/>
+
+ <!-- tests excluded if the test is run in offline mode -->
+ <patternset refid="onlinetests"/>
+
+ <!-- failing tests excluded unless run.failing.tests is set -->
+ <patternset refid="teststhatfail"/>
+
+ <!-- needs BSF to work -->
+ <exclude name="${optional.package}/Rhino*.java"
+ unless="bsf.present"/>
+ <exclude name="${optional.package}/Rhino*.java"
+ unless="rhino.present"/>
+ <exclude name="${optional.package}/script/*.java"
+ unless="bsf.present"/>
+ <exclude name="${optional.package}/script/*.java"
+ unless="rhino.present"/>
+ <exclude name="${optional.package}/BeanShellScriptTest.java"
+ unless="bsf.present"/>
+ <exclude name="${optional.package}/BeanShellScriptTest.java"
+ unless="beanshell.present"/>
+ <exclude name="${optional.type.package}/Script*.java"
+ unless="bsf.present"/>
+ <exclude name="${optional.type.package}/Script*.java"
+ unless="rhino.present"/>
+
+ <!-- fail if testcases can be loaded from the system classloader -->
+ <exclude name="${ant.package}/AntClassLoaderDelegationTest.java"
+ if="tests.are.on.system.classpath"/>
+ <exclude name="${optional.package}/junit/JUnitClassLoaderTest.java"
+ if="tests.are.on.system.classpath"/>
+
+ <!-- these tests need to be localised before being ran???? -->
+ <exclude name="${optional.package}/PvcsTest.java"/>
+
+ <exclude name="${optional.package}/junit/JUnitReportTest.java"
+ unless="run.junitreport"/>
+
+ <!-- needs xerces to work -->
+ <exclude name="${ant.package}/IncludeTest.java"
+ unless="xerces1.present"/>
+ <exclude name="${type.package}/selectors/ModifiedSelectorTest.java"
+ unless="xerces1.present"/>
+
+ <!-- needs resolver.jar to work -->
+ <exclude name="${optional.package}/XmlValidateCatalogTest.java"
+ unless="apache.resolver.present"/>
+
+ <!-- needs jasperc -->
+ <exclude name="${optional.package}/JspcTest.java"
+ unless="jasper.present"/>
+
+ <!-- These tests only passes if testcases and Ant classes have
+ been loaded by the same classloader - will throw
+ IllegalAccessExceptions otherwise. -->
+ <exclude name="${taskdefs.package}/SQLExecTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${taskdefs.package}/cvslib/ChangeLogWriterTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${taskdefs.package}/cvslib/ChangeLogParserTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${optional.package}/sos/SOSTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${optional.package}/vss/MSVSSTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${optional.package}/TraXLiaisonTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${taskdefs.package}/ProcessDestroyerTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${taskdefs.package}/ProtectedJarMethodsTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${ant.package}/launch/LocatorTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${ant.package}/DefaultLoggerTest.java"
+ unless="tests.and.ant.share.classloader"/>
+ <exclude name="${taskdefs.package}/ZipExtraFieldTest.java"
+ unless="tests.and.ant.share.classloader"/>
+
+ <!-- can only run if cvs is installed on your machine
+ enable by setting the property have.cvs
+ -->
+ <exclude name="${taskdefs.package}/AbstractCvsTaskTest.java"
+ unless="have.cvs"/>
+
+ <!-- needs a local ftp server and the entry of a user/password combination -->
+ <exclude name="${optional.package}/net/FTPTest.java"/>
+
+ <!-- test needs special setup -->
+ <exclude name="${optional.package}/ssh/ScpTest.java"/>
+
+ <!-- test fails if build/classes and ant.jar are using the same
+ classloader -->
+ <exclude name="${ant.package}/util/ClasspathUtilsTest.java"
+ if="tests.and.ant.share.classloader"/>
+ </fileset>
+ </batchtest>
+ </test-junit>
+ </target>
+
+ <target name="junit-single-test" depends="compile-tests,junit-single-test-only"
+ description="--> runs the single unit test at $${junit.testcase}" />
+
+ <target name="junit-single-test-only" depends="test-init" if="junit.single"
+ description="--> runs the single unit test at $${junit.testcase} (no compile)">
+ <test-junit>
+ <formatter type="plain" usefile="false"/>
+ <test name="${junit.testcase}" todir="${build.junit.xml}"/>
+ </test-junit>
+ </target>
+
+ <target name="interactive-tests" description="--> runs interactive tests"
+ depends="compile-tests"
+ >
+ <java classpathref="tests-runtime-classpath"
+ classname="org.apache.tools.ant.taskdefs.TestProcess"
+ fork="true"/>
+ </target>
+
+ <target name="-antunit-check-location">
+ <condition property="antunit.recommended.location">
+ <or>
+ <equals arg1="${ant.home}" arg2="${bootstrap.dir}"/>
+ <equals arg1="${ant.home}" arg2="${dist.dir}"/>
+ </or>
+ </condition>
+ </target>
+ <target name="-antunit-warn-location" depends="-antunit-check-location" if="run.antunit" unless="${antunit.recommended.location}">
+ <echo>AntUnit tests must be run with ${bootstrap.dir} (or ${dist.dir}), not ${ant.home}. Try './build.sh antunit-tests' for example.</echo>
+ </target>
+ <target name="antunit-tests" depends="dump-info,build,test-init,-antunit-warn-location"
+ if="run.antunit" description="--> run the antunit tests">
+ <condition property="antunit.includes" value="${antunit.testcase}"
+ else="**/test.xml,**/*-test.xml">
+ <isset property="antunit.testcase" />
+ </condition>
+
+ <property name="antunit.excludes" value="" />
+
+ <mkdir dir="${antunit.xml}" />
+ <au:antunit xmlns:au="antlib:org.apache.ant.antunit"
+ failonerror="false" errorproperty="antunit.failed">
+ <fileset dir="${src.antunit}" includes="${antunit.includes}"
+ excludes="${antunit.excludes}" />
+ <au:plainlistener logLevel="${antunit.loglevel}"/>
+ <au:xmllistener todir="${antunit.xml}" />
+ <propertyset>
+ <propertyref name="antunit.tmpdir"/>
+ <propertyref name="ant.home"/>
+ </propertyset>
+ </au:antunit>
+ </target>
+
+ <target name="antunit-report" depends="antunit-tests,antunit-report-only" />
+
+ <target name="antunit-report-only" depends="test-init" if="run.antunit.report">
+ <length>
+ <fileset dir="${antunit.xml}" includes="TEST-*.xml" />
+ </length>
+ <mkdir dir="${antunit.reports}" />
+ <junitreport todir="${antunit.reports}">
+ <fileset dir="${antunit.xml}" includes="TEST-*.xml" />
+ <report styledir="${src.antunit}" format="frames"
+ todir="${antunit.reports}"/>
+ </junitreport>
+ <length>
+ <fileset dir="${antunit.xml}" includes="TEST-*.xml" />
+ </length>
+ </target>
+
+
+ <target name="printFailingTests">
+ <property name="failingtests.dir" value="${build.dir}/errors"/>
+ <mkdir dir=""/>
+ <xslt
+ style="${etc.dir}/printFailingTests.xsl"
+ destdir="${failingtests.dir}" extension=".txt"
+ basedir="${build.dir}" includes="testcases/**/TEST-*.xml,antunit/xml/TEST-*.xml"
+ />
+ <echo>+-------------------------------------------------------------------------------------</echo>
+ <echo>| FAILING TESTS:</echo>
+ <echo>+-------------------------------------------------------------------------------------</echo>
+ <concat>
+ <!-- generated message files if they arent empty -->
+ <fileset dir="${failingtests.dir}">
+ <size value="0" when="more"/>
+ </fileset>
+ <!-- 'skip' empty lines -->
+ <filterchain>
+ <linecontains>
+ <contains value="|"/>
+ </linecontains>
+ </filterchain>
+ </concat>
+ <echo>+-------------------------------------------------------------------------------------</echo>
+ </target>
+
+ <!--
+ ===================================================================
+ Main target - runs dist-lite by default
+ ===================================================================
+ -->
+ <target name="main"
+ description="--> creates a minimum distribution in ./dist"
+ depends="dist-lite"/>
+
+
+ <!--
+ ===================================================================
+ MSI target - creates an MSI installer file with the help of
+ the WiX toolset and the dotnet Antlib.
+ ===================================================================
+ -->
+ <target name="msi"
+ description="--> creates an MSI file for Ant, requires WiX and the dotnet Antlib"
+ depends="internal_dist"
+ xmlns:dn="antlib:org.apache.ant.dotnet">
+
+ <property name="msi.dir" value="${build.dir}"/>
+ <property name="msi.name" value="${name}-${project.version}.msi"/>
+ <property name="msi.file" value="${msi.dir}/${msi.name}"/>
+ <property name="wix.home" value="${user.home}/wix"/>
+ <property name="wixobj.dir" value="${build.dir}/wix"/>
+
+ <property name="dist.dir.resolved" location="${dist.dir}"/>
+
+ <mkdir dir="${wixobj.dir}"/>
+
+ <dn:wix target="${msi.file}"
+ mode="both" wixHome="${wix.home}" wixobjDestDir="${wixobj.dir}">
+ <sources dir="${etc.dir}" includes="*.wxs"/>
+ <moresources dir="${dist.dir}"/>
+
+ <candleParameter name="dist.dir" value="${dist.dir.resolved}"/>
+ <candleParameter name="version" value="${manifest-version}"/>
+ </dn:wix>
+ </target>
+
+</project>