blob: 746be5d24c2952f73bd78df60f7304fecc4cfc6d [file] [log] [blame]
<?xml version="1.0"?>
<!--
=======================================================================
Apache Ant own build file
Copyright (c) 2000-2004 The Apache Software Foundation. All rights
reserved.
=======================================================================
-->
<project default="main" basedir=".">
<!-- Give user a chance to override without editing this file
(and without typing -D each time it compiles it) -->
<property file=".ant.properties"/>
<property file="${user.home}/.ant.properties"/>
<property environment="env"/>
<property name="Name" value="Apache Ant"/>
<property name="name" value="ant"/>
<property name="version" value="1.5.4"/>
<property name="manifest-version" value="1.5.4"/>
<property name="debug" value="true"/>
<property name="chmod.fail" value="true"/>
<property name="deprecation" value="false"/>
<property name="optimize" value="true"/>
<property name="javac.target" value="1.1"/>
<property name="junit.fork" value="false"/>
<property name="junit.filtertrace" value="off"/>
<property name="junit.summary" value="no"/>
<!--
===================================================================
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="docs.dir" value="docs"/>
<property name="etc.dir" value="src/etc"/>
<property name="tests.dir" value="src/testcases"/>
<property name="tests.etc.dir" value="src/etc/testcases"/>
<property name="ant.package" value="org/apache/tools/ant"/>
<property name="optional.package" value="${ant.package}/taskdefs/optional"/>
<property name="optional.type.package" value="${ant.package}/types/optional"/>
<property name="util.package" value="${ant.package}/util"/>
<property name="regexp.package" value="${util.package}/regexp"/>
<property name="manifest" value="src/etc/manifest"/>
<property name="unfiltered.files" value="**/*.gif,**/*.jpg,**/*.ico,**/*.pdf"/>
<!--
===================================================================
Set the properties for the build area
===================================================================
-->
<property name="build.dir" value="build"/>
<property name="bootstrap.dir" value="bootstrap"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>
<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/"/>
<path id="classpath">
</path>
<!-- empty for JDK 1.2+, contains classes.zip otherwise -->
<path id="classes.zip">
<fileset dir="${java.home}" includes="lib/classes.zip"/>
</path>
<path id="tests-classpath">
<pathelement location="${build.classes}"/>
<pathelement location="${build.tests}"/>
<!--
include the test source and test data dirs
so that we can pick resources via getResource(AsStream)
-->
<pathelement location="${tests.dir}"/>
<pathelement location="${tests.etc.dir}"/>
<path refid="classpath"/>
</path>
<!-- turn this path into a string which is passed to the tests -->
<property name="tests-classpath.value"
refid="tests-classpath"/>
<!--
===================================================================
Set up properties for the distribution area
===================================================================
-->
<property name="dist.name" value="apache-${name}-${version}"/>
<property name="dist.base" value="distribution"/>
<property name="dist.dir" value="dist"/>
<property name="dist.bin" value="${dist.dir}/bin"/>
<property name="dist.lib" value="${dist.dir}/lib"/>
<property name="dist.docs" value="${dist.dir}/docs"/>
<property name="dist.etc" value="${dist.dir}/etc"/>
<property name="dist.javadocs" value="${dist.dir}/docs/manual/api"/>
<property name="src.dist.dir" value="dist-src"/>
<property name="src.dist.src" value="${src.dist.dir}/src"/>
<property name="src.dist.docs" value="${src.dist.dir}/docs"/>
<property name="src.dist.lib" value="${src.dist.dir}/lib"/>
<!--
===================================================================
Set up patternsets to be used by javac and junit to exclude
files that have dependencies that are not available
===================================================================
-->
<!-- depends on JDK version -->
<patternset id="needs.jdk1.2+">
<exclude name="${optional.package}/extension/**/*.java"
unless="jdk1.2+"/>
<exclude name="${util.package}/optional/NoExitSecurityManager.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/Javah.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/metamata/*.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/ejb/EjbJar.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/ejb/*DeploymentTool.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/ejb/IPlanet*.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/ejb/Borland*.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/j2ee/*.java"
unless="jdk1.2+"/>
<!-- uses the context classloader -->
<exclude name="${optional.package}/junit/JUnitClassLoaderTest.java"
unless="jdk1.2+"/>
<!-- use various 1.2 methods -->
<exclude name="${optional.package}/sitraka/**/*.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/ide/VAJ*.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/starteam/*.java"
unless="jdk1.2+"/>
</patternset>
<patternset id="needs.jdk1.3+">
<exclude name="${ant.package}/taskdefs/TestProcess.java"
unless="jdk1.3+"/>
</patternset>
<patternset id="needs.jdk1.4+">
<exclude name="${regexp.package}/Jdk14Regexp*.java"
unless="jdk1.4+"/>
</patternset>
<!-- classes that should be present in Sun based JVMs, but not in
Kaffe for example -->
<patternset id="needs.sun.tools">
<exclude name="${optional.package}/Native2Ascii.java"
unless="sun.tools.present"/>
<exclude name="${optional.package}/Javah.java"
unless="sun.tools.present"/>
</patternset>
<patternset id="needs.sun.uue">
<exclude name="${ant.package}/taskdefs/email/UUMailer.java"
unless="sunuue.present"/>
</patternset>
<patternset id="needs.sun.b64">
<exclude name="${optional.package}/splash/SplashTask.java"
unless="base64.present"/>
</patternset>
<!-- depends on external libraries -->
<patternset id="needs.trax">
<exclude name="${optional.package}/TraXLiaison*.java"
unless="trax.present"/>
<exclude name="${optional.package}/sitraka/**"
unless="trax.present"/>
<exclude name="${optional.package}/metamata/MMetrics*"
unless="trax.present"/>
<exclude name="${optional.package}/XsltTest.java"
unless="trax.present"/>
<exclude name="${ant.package}/types/XMLCatalogBuildFileTest.java"
unless="trax.present"/>
</patternset>
<patternset id="needs.xalan1">
<exclude name="${optional.package}/XalanLiaison*.java"
unless="xalan.present"/>
<exclude name="${optional.package}/junit/Xalan1Executor.java"
unless="xalan.present"/>
</patternset>
<patternset id="needs.xalan2">
<exclude name="${optional.package}/junit/Xalan2Executor.java"
unless="xalan2.present"/>
</patternset>
<patternset id="needs.xslp">
<exclude name="${optional.package}/XslpLiaison*.java"
unless="xslp.present"/>
</patternset>
<patternset id="needs.junit">
<exclude name="${optional.package}/junit/*.java" unless="junit.present"/>
</patternset>
<patternset id="needs.jakarta.regexp">
<exclude name="${regexp.package}/JakartaRegexp*.java"
unless="jakarta.regexp.present"/>
</patternset>
<patternset id="needs.jakarta.oro">
<exclude name="${regexp.package}/JakartaOro*.java"
unless="jakarta.oro.present"/>
<exclude name="${optional.package}/perforce/*.java"
unless="jakarta.oro.present"/>
<exclude name="${optional.package}/metamata/MAudit*.java"
unless="jakarta.oro.present"/>
</patternset>
<patternset id="needs.jakarta.bcel">
<exclude name="${ant.package}/filters/util/JavaClassHelper.java"
unless="bcel.present"/>
<exclude name="${util.package}/depend/bcel/*.java"
unless="bcel.present"/>
<exclude name="${optional.type.package}/depend/ClassFileSetTest.java"
unless="bcel.present"/>
</patternset>
<patternset id="needs.jakarta.log4j">
<exclude name="${ant.package}/listener/Log4jListener.java"
unless="log4j.present"/>
</patternset>
<patternset id="needs.commons.logging">
<exclude name="${ant.package}/listener/CommonsLoggingListener.java"
unless="commons.logging.present"/>
</patternset>
<patternset id="needs.bsf">
<exclude name="${optional.package}/Script.java"
unless="bsf.present"/>
</patternset>
<patternset id="needs.stylebook">
<exclude name="${optional.package}/StyleBook.java"
unless="stylebook.present"/>
</patternset>
<patternset id="needs.javamail">
<exclude name="${ant.package}/taskdefs/email/MimeMailer.java"
unless="javamail.complete"/>
</patternset>
<patternset id="needs.icontract">
<exclude name="${optional.package}/IContract.java"
unless="icontract.present"/>
</patternset>
<patternset id="needs.netrexx">
<exclude name="${optional.package}/NetRexxC.java"
unless="netrexx.present"/>
</patternset>
<patternset id="needs.weblogic.ejbc">
<exclude name="${optional.package}/ejb/Ejbc*.java"
unless="ejb.ejbc.present"/>
</patternset>
<patternset id="needs.weblogic.ddcreator">
<exclude name="${optional.package}/ejb/DDCreator*.java"
unless="ejb.DDCreator.present"/>
</patternset>
<patternset id="needs.weblogic.server">
<exclude name="${optional.package}/ejb/WLRun.java"
unless="ejb.wls.present"/>
<exclude name="${optional.package}/ejb/WLStop.java"
unless="ejb.wls.present"/>
</patternset>
<patternset id="needs.netcomponents">
<exclude name="${optional.package}/net/FTP.java"
unless="netcomp.present"/>
<exclude name="${optional.package}/net/TelnetTask.java"
unless="netcomp.present"/>
</patternset>
<patternset id="needs.starteam">
<exclude name="${optional.package}/scm/AntStarTeam*.java"
unless="starteam.present"/>
<exclude name="${optional.package}/starteam/*.java"
unless="starteam.present"/>
</patternset>
<patternset id="needs.vaj">
<exclude name="${optional.package}/ide/VAJ*.java"
unless="vaj.present"/>
</patternset>
<patternset id="needs.antlr">
<exclude name="${optional.package}/ANTLR*.java" unless="antlr.present"/>
</patternset>
<patternset id="needs.jmf">
<exclude name="${optional.package}/sound/*.java" unless="jmf.present"/>
</patternset>
<patternset id="needs.jdepend">
<exclude name="${optional.package}/jdepend/*" unless="jdepend.present"/>
</patternset>
<patternset id="onlinetests">
<exclude name="**/GetTest.java" if="offline"/>
</patternset>
<patternset id="needs.swing">
<exclude name="${optional.package}/splash/*.java" unless="swing.present"/>
</patternset>
<patternset id="teststhatfail">
</patternset>
<patternset id="needs.jsch">
<exclude name="${optional.package}/ssh/*.java" unless="jsch.present"/>
</patternset>
<patternset id="ssh-lib">
<exclude name="${optional.package}/ssh/*"/>
<exclude name="${ant.package}/util/TeeOutputStream*"/>
</patternset>
<patternset id="ssh-lib-src">
<exclude name="main/${optional.package}/ssh/*"/>
<exclude name="main/${ant.package}/util/TeeOutputStream*"/>
</patternset>
<patternset id="ssh-lib-docs">
<exclude name="manual/OptionalTasks/sshexec.html"/>
<exclude name="manual/OptionalTasks/scp.html"/>
</patternset>
<!--
===================================================================
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}/BuildFileTest*"/>
<include name="${regexp.package}/RegexpMatcherTest*"/>
<include name="${regexp.package}/RegexpTest*"/>
<include name="${optional.package}/AbstractXSLTLiaisonTest*"/>
<include name="${ant.package}/types/AbstractFileSetTest*"/>
</patternset>
<!--
===================================================================
Set up a patternsets that matches the parts of our site that
should not be part of the distribution.
===================================================================
-->
<patternset id="site.excludes">
<exclude name="bindownload.html"/>
<exclude name="srcdownload.html"/>
<exclude name="*.cgi"/>
</patternset>
<!--
===================================================================
Check to see what optional dependencies are available
===================================================================
-->
<target name="check_for_optional_packages">
<available property="jdk1.2+" classname="java.lang.ThreadLocal"/>
<available property="jdk1.3+" classname="java.lang.StrictMath"/>
<available property="jdk1.4+" classname="java.lang.CharSequence"/>
<available property="kaffe" classname="kaffe.util.NotImplemented"/>
<available property="bsf.present"
classname="com.ibm.bsf.BSFManager"
classpathref="classpath"/>
<condition property="netrexx.present">
<and>
<isset property="jdk1.2+"/>
<available classname="netrexx.lang.Rexx"
classpathref="classpath"/>
</and>
</condition>
<available property="trax.present"
classname="javax.xml.transform.Transformer"
classpathref="classpath"/>
<condition property="trax.impl.present">
<or>
<and>
<isset property="javax.xml.transform.TransformerFactory"/>
<available classname="${javax.xml.transform.TransformerFactory}"
classpathref="classpath"/>
</and>
<available resource="META-INF/services/javax.xml.transform.TransformerFactory"/>
</or>
</condition>
<available property="xslp.present"
classname="com.kvisco.xsl.XSLProcessor"
classpathref="classpath"/>
<available property="xalan.present"
classname="org.apache.xalan.xslt.XSLTProcessorFactory"
classpathref="classpath"/>
<available property="xalan2.present"
classname="org.apache.xalan.transformer.TransformerImpl"
classpathref="classpath"/>
<available property="ejb.ejbc.present"
classname="weblogic.ejbc"
classpathref="classpath"/>
<available property="ejb.DDCreator.present"
classname="weblogic.ejb.utils.DDCreator"
classpathref="classpath"/>
<available property="ejb.wls.present"
classname="weblogic.Server"
classpathref="classpath"/>
<available property="junit.present"
classname="junit.framework.TestCase"
classpathref="classpath"/>
<available property="netcomp.present"
classname="com.oroinc.net.ftp.FTPClient"
classpathref="classpath"/>
<available property="starteam.present"
classname="com.starbase.util.Platform"
classpathref="classpath"/>
<available property="antlr.present"
classname="antlr.Tool"
classpathref="classpath"/>
<available property="vaj.present"
classname="com.ibm.ivj.util.base.Workspace"
classpathref="classpath"/>
<available property="stylebook.present"
classname="org.apache.stylebook.Engine"
classpathref="classpath"/>
<available property="jakarta.regexp.present"
classname="org.apache.regexp.RE"
classpathref="classpath"/>
<available property="jakarta.oro.present"
classname="org.apache.oro.text.regex.Perl5Matcher"
classpathref="classpath"/>
<available property="jmf.present"
classname="javax.sound.sampled.Clip"
classpathref="classpath"/>
<condition property="icontract.present">
<and>
<isset property="jdk1.2+"/>
<available classname="com.reliablesystems.iContract.IContracted"
classpathref="classpath"/>
</and>
</condition>
<available property="jdepend.present"
classname="jdepend.framework.JDepend"
classpathref="classpath"/>
<available property="log4j.present"
classname="org.apache.log4j.Category"
classpathref="classpath"/>
<available property="commons.logging.present"
classname="org.apache.commons.logging.LogFactory"
classpathref="classpath"/>
<available property="xalan.envcheck"
classname="org.apache.xalan.xslt.EnvironmentCheck"
classpathref="classpath"/>
<available property="which.present"
classname="org.apache.env.Which"
classpathref="classpath"/>
<available property="xerces.present"
classname="org.apache.xerces.parsers.SAXParser"
classpathref="classpath"/>
<condition property="bcel.present">
<and>
<isset property="jdk1.2+"/>
<available classname="org.apache.bcel.Constants"
classpathref="classpath"/>
</and>
</condition>
<available property="sunuue.present"
classname="sun.misc.UUEncoder"
classpathref="classpath"/>
<condition property="javamail.complete">
<and>
<available classname="javax.activation.DataHandler"
classpathref="classpath"/>
<available classname="javax.mail.Transport"
classpathref="classpath"/>
</and>
</condition>
<condition property="some.regexp.support">
<or>
<isset property="jdk1.4+"/>
<isset property="jakarta.regexp.present"/>
<isset property="jakarta.oro.present"/>
</or>
</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>
<available property="base64.present" classname="sun.misc.BASE64Encoder"/>
<property name="build.tests.resolved" location="${build.tests}"/>
<condition property="tests.are.on.system.classpath">
<or>
<!-- relative paths in CLASSPATH -->
<contains string="${java.class.path}"
substring="${build.tests}"/>
<!-- absolute paths in CLASSPATH -->
<contains string="${java.class.path}"
substring="${build.tests.resolved}"/>
</or>
</condition>
<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>
<and>
<isset property="jdk1.2+"/>
<not>
<isset property="kaffe"/>
</not>
</and>
<available classname="javax.swing.ImageIcon"
classpathref="classpath"/>
</or>
</condition>
<condition property="wsdl.found">
<or>
<available file="wsdl" filepath="${env.PATH}"/>
<available file="wsdl.exe" filepath="${env.PATH}"/>
<available file="wsdl.exe" filepath="${env.Path}"/>
</or>
</condition>
<echo level="verbose"> wsdl.found=${wsdl.found}</echo>
<condition property="csc.found">
<or>
<available file="csc" filepath="${env.PATH}"/>
<available file="csc.exe" filepath="${env.PATH}"/>
<available file="csc.exe" filepath="${env.Path}"/>
</or>
</condition>
<echo level="verbose"> csc.found=${csc.found}</echo>
<condition property="dotnetapps.found">
<and>
<isset property="csc.found"/>
<isset property="wsdl.found"/>
</and>
</condition>
<echo level="verbose"> csc.found=${csc.found}</echo>
<available property="rhino.present"
classname="org.mozilla.javascript.Scriptable"
classpathref="classpath"/>
<available property="beanshell.present"
classname="bsh.StringUtil"
classpathref="classpath"/>
<available property="jsch.present"
classname="com.jcraft.jsch.Session"
classpathref="classpath"/>
</target>
<!--
===================================================================
Prepare the build
===================================================================
-->
<target name="prepare">
<tstamp>
<format property="year" pattern="yyyy"/>
</tstamp>
<filterchain id="ant.filters">
<replacetokens>
<token key="VERSION" value="${version}"/>
<token key="DATE" value="${TODAY}"/>
<token key="TIME" value="${TSTAMP}"/>
</replacetokens>
</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}"
destdir="${build.classes}"
debug="${debug}"
deprecation="${deprecation}"
target="${javac.target}"
optimize="${optimize}" >
<classpath refid="classpath"/>
<patternset refid="needs.jdk1.2+"/>
<patternset refid="needs.jdk1.3+"/>
<patternset refid="needs.jdk1.4+"/>
<patternset refid="needs.jakarta.regexp"/>
<patternset refid="needs.jakarta.oro"/>
<patternset refid="needs.jakarta.log4j"/>
<patternset refid="needs.commons.logging"/>
<patternset refid="needs.sun.uue"/>
<patternset refid="needs.javamail"/>
<patternset refid="needs.icontract"/>
<patternset refid="needs.bsf"/>
<patternset refid="needs.stylebook"/>
<patternset refid="needs.netrexx"/>
<patternset refid="needs.trax"/>
<patternset refid="needs.xslp"/>
<patternset refid="needs.xalan1"/>
<patternset refid="needs.weblogic.ejbc"/>
<patternset refid="needs.weblogic.ddcreator"/>
<patternset refid="needs.weblogic.server"/>
<patternset refid="needs.junit"/>
<patternset refid="needs.netcomponents"/>
<patternset refid="needs.starteam"/>
<patternset refid="needs.antlr"/>
<patternset refid="needs.vaj"/>
<patternset refid="needs.jmf"/>
<patternset refid="needs.xalan2"/>
<patternset refid="needs.jdepend"/>
<patternset refid="needs.sun.tools"/>
<patternset refid="needs.sun.b64"/>
<patternset refid="needs.jakarta.bcel"/>
<patternset refid="needs.swing"/>
<patternset refid="needs.jsch"/>
</javac>
<copy todir="${build.classes}">
<fileset dir="${java.dir}">
<include name="**/*.properties"/>
<include name="**/*.dtd"/>
</fileset>
</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 Apache Ant jars: ant.jar and optional.jar
===================================================================
-->
<target name="jars"
depends="build"
description="--> creates the Apache Ant jars">
<copy todir="${build.dir}">
<fileset dir=".">
<include name="LICENSE"/>
<include name="LICENSE.xerces"/>
<include name="LICENSE.dom"/>
<include name="LICENSE.sax"/>
</fileset>
<mapper type="glob" from="*" to="*.txt"/>
</copy>
<jar destfile="${build.lib}/${name}.jar"
basedir="${build.classes}"
manifest="${manifest}">
<patternset refid="ssh-lib"/>
<exclude name="${optional.package}/**"/>
<exclude name="${optional.type.package}/**"/>
<exclude name="${util.package}/depend/**"/>
<exclude name="${util.package}/optional/**"/>
<exclude name="${util.package}/regexp/Jakarta*"/>
<exclude name="${util.package}/regexp/Jdk*"/>
<exclude name="${ant.package}/listener/Log4jListener.class"/>
<exclude name="${ant.package}/listener/CommonsLoggingListener.class"/>
<exclude name="${ant.package}/taskdefs/email/UUMailer.class"/>
<exclude name="${ant.package}/taskdefs/email/MimeMailer.class"/>
<metainf dir="${build.dir}" includes="LICENSE.txt"/>
<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="${docs.dir}">
<include name="images/ant_logo_large.gif"/>
</fileset>
</jar>
<jar destfile="${build.lib}/optional.jar"
basedir="${build.classes}"
manifest="${manifest}">
<patternset refid="ssh-lib"/>
<include name="${optional.package}/**"/>
<include name="${optional.type.package}/**"/>
<include name="${util.package}/depend/**"/>
<include name="${util.package}/optional/**"/>
<include name="${util.package}/regexp/Jakarta*"/>
<include name="${util.package}/regexp/Jdk*"/>
<include name="${ant.package}/listener/Log4jListener.class"/>
<include name="${ant.package}/listener/CommonsLoggingListener.class"/>
<include name="${ant.package}/taskdefs/email/UUMailer.class"/>
<include name="${ant.package}/taskdefs/email/MimeMailer.class"/>
<metainf dir="${build.dir}" includes="LICENSE.txt"/>
<manifest>
<section name="${optional.package}/">
<attribute name="Extension-name"
value="org.apache.tools.ant.taskdefs.optional"/>
<attribute name="Specification-Title"
value="Apache Ant Optional Tasks"/>
<attribute name="Specification-Version"
value="${manifest-version}"/>
<attribute name="Specification-Vendor"
value="Apache Software Foundation"/>
<attribute name="Implementation-Title"
value="org.apache.tools.ant.taskdefs.optional"/>
<attribute name="Implementation-Version"
value="${manifest-version}"/>
<attribute name="Implementation-Vendor"
value="Apache Software Foundation"/>
</section>
</manifest>
</jar>
</target>
<!-- Creates jar of test utility classes -->
<target name="test-jar"
depends="compile-tests"
description="--> creates the Apache Ant Test Utilties jar">
<jar destfile="${build.lib}/${name}-testutil.jar"
basedir="${build.tests}">
<patternset refid="useful.tests"/>
</jar>
</target>
<!--
===================================================================
Create the essential distribution that can run Apache Ant
===================================================================
-->
<target name="dist-lite"
depends="jars"
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}"/>
</copy>
<copy todir="${dist.bin}">
<fileset dir="${script.dir}/"/>
</copy>
<fixcrlf srcdir="${dist.bin}" eol="crlf" includes="*.bat"/>
<fixcrlf srcdir="${dist.bin}" eol="lf">
<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}"/>
<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">
<mkdir dir="${dist.javadocs}"/>
<copy todir="${dist.javadocs}" overwrite="true">
<fileset dir="${build.javadocs}"/>
</copy>
</target>
<target name="internal_dist" depends="dist-lite,dist_javadocs">
<mkdir dir="${dist.docs}"/>
<mkdir dir="${dist.etc}"/>
<copy todir="${dist.lib}">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
<include name="*.zip"/>
</fileset>
</copy>
<copy todir="${dist.lib}" file="${lib.dir}/README"/>
<copy todir="${dist.docs}">
<fileset dir="${docs.dir}" excludes="${unfiltered.files}">
<patternset refid="site.excludes"/>
</fileset>
<filterchain refid="ant.filters"/>
</copy>
<copy todir="${dist.docs}" filtering="false">
<fileset dir="${docs.dir}" includes="${unfiltered.files}">
<patternset refid="site.excludes"/>
</fileset>
</copy>
<copy todir="${dist.dir}">
<fileset dir=".">
<include name="README"/>
<include name="LICENSE"/>
<include name="LICENSE.xerces"/>
<include name="LICENSE.dom"/>
<include name="LICENSE.sax"/>
<include name="TODO"/>
<include name="WHATSNEW"/>
<include name="KEYS"/>
<include name="welcome.html"/>
</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}"/>
<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="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-frames.xsl"/>
<include name="log.xsl"/>
<include name="tagdiff.xsl"/>
</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="*.jar"/>
<include name="*.zip"/>
<include name="README"/>
</fileset>
</copy>
<copy todir="${src.dist.src}">
<fileset dir="${src.dir}">
<patternset refid="ssh-lib-src"/>
</fileset>
</copy>
<copy todir="${src.dist.docs}">
<fileset dir="${docs.dir}">
<exclude name="manual/api/**"/>
<patternset refid="site.excludes"/>
<patternset refid="ssh-lib-docs"/>
</fileset>
</copy>
<copy todir="${src.dist.dir}">
<fileset dir=".">
<include name="README"/>
<include name="LICENSE"/>
<include name="LICENSE.xerces"/>
<include name="LICENSE.dom"/>
<include name="LICENSE.sax"/>
<include name="TODO"/>
<include name="WHATSNEW"/>
<include name="KEYS"/>
<include name="build.bat"/>
<include name="build.sh"/>
<include name="bootstrap.bat"/>
<include name="bootstrap.sh"/>
<include name="build.xml"/>
<include name="welcome.html"/>
</fileset>
</copy>
<fixcrlf srcdir="${src.dist.dir}" eol="crlf" includes="*.bat"/>
<fixcrlf srcdir="${src.dist.dir}" eol="lf">
<include name="**/*.sh"/>
<include name="**/*.pl"/>
<include name="**/ant"/>
<include name="**/antRun"/>
</fixcrlf>
<fixcrlf srcdir="${src.dist.dir}">
<include name="**/*.java"/>
<exclude name="src/etc/testcases/taskdefs/fixcrlf/expected/Junk?.java"/>
<exclude name="src/etc/testcases/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="main_distribution"
description="--> creates the zip and tar distributions">
<delete dir="${dist.name}"/>
<mkdir dir="${dist.base}"/>
<mkdir dir="${dist.base}/src"/>
<mkdir dir="${dist.base}/bin"/>
<antcall inheritAll="false" target="internal_dist">
<param name="dist.dir" value="${dist.name}"/>
</antcall>
<zip destfile="${dist.base}/bin/${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>
<tar longfile="gnu"
destfile="${dist.base}/bin/${dist.name}-bin.tar">
<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 zipfile="${dist.base}/bin/${dist.name}-bin.tar.gz"
src="${dist.base}/bin/${dist.name}-bin.tar"/>
<bzip2 zipfile="${dist.base}/bin/${dist.name}-bin.tar.bz2"
src="${dist.base}/bin/${dist.name}-bin.tar"/>
<delete file="${dist.base}/bin/${dist.name}-bin.tar"/>
<delete dir="${dist.name}"/>
<checksum fileext=".md5">
<fileset dir="${dist.base}/bin/">
<include name="**/*"/>
<exclude name="**/*.asc"/>
<exclude name="**/*.md5"/>
</fileset>
</checksum>
<antcall inheritAll="false" target="src-dist">
<param name="src.dist.dir" value="${dist.name}"/>
</antcall>
<zip destfile="${dist.base}/src/${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}/src/${dist.name}-src.tar" >
<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 zipfile="${dist.base}/src/${dist.name}-src.tar.gz"
src="${dist.base}/src/${dist.name}-src.tar"/>
<bzip2 zipfile="${dist.base}/src/${dist.name}-src.tar.bz2"
src="${dist.base}/src/${dist.name}-src.tar"/>
<delete file="${dist.base}/src/${dist.name}-src.tar"/>
<delete dir="${dist.name}"/>
<checksum fileext=".md5">
<fileset dir="${dist.base}/src/">
<include name="**/*"/>
<exclude name="**/*.asc"/>
<exclude name="**/*.md5"/>
</fileset>
</checksum>
</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" if="ant.install">
<antcall inheritAll="false" target="internal_dist">
<param name="dist.dir" value="${ant.install}"/>
</antcall>
</target>
<target name="install-lite" if="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= "${tests.dir}">
<patternset refid="useful.tests"/>
</srcfiles>
</uptodate>
</target>
<target name="javadocs" depends="prepare, javadoc_check"
unless="javadoc.notrequired"
description="--> creates the API documentation">
<mkdir dir="${build.javadocs}"/>
<javadoc useexternalfile="yes"
destdir="${build.javadocs}"
author="true"
version="true"
locale="en"
windowtitle="${Name} API"
doctitle="${Name}">
<packageset dir="${java.dir}"
excludes="org/apache/tools/ant/taskdefs/optional/ssh"/>
<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"/>
<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*"/>
<bottom>Copyright &#169; 2000-${year} Apache Software Foundation. All Rights Reserved.</bottom>
</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}"
author="true"
version="true"
locale="en"
windowtitle="${Name} Test Utilities"
doctitle="${Name}">
<fileset dir="${tests.dir}">
<patternset refid="useful.tests"/>
</fileset>
<bottom>Copyright &#169; 2000-${year} Apache Software Foundation. All Rights Reserved.</bottom>
</javadoc>
</target>
<!--
===================================================================
Compile testcases
===================================================================
-->
<target name="compile-tests" depends="build" if="junit.present">
<mkdir dir="${build.tests}"/>
<javac srcdir="${tests.dir}"
destdir="${build.tests}"
debug="${debug}"
target="${javac.target}"
deprecation="${deprecation}" >
<classpath refid="tests-classpath"/>
<patternset refid="needs.antlr"/>
<patternset refid="needs.jdk1.2+"/>
<patternset refid="needs.jdk1.3+"/>
<patternset refid="needs.jdk1.4+"/>
<patternset refid="needs.jakarta.regexp"/>
<patternset refid="needs.jakarta.oro"/>
<patternset refid="needs.swing"/>
<patternset refid="needs.trax"/>
<patternset refid="needs.xslp"/>
<patternset refid="needs.xalan1"/>
<patternset refid="needs.jakarta.bcel"/>
</javac>
</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}"/>
</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"/>
</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="test" depends="run-tests" description="--> run JUnit tests"/>
<target name="run-tests" depends="dump-info,compile-tests,probe-offline" if="junit.present">
<condition property="run.junitreport">
<or>
<isset property="xalan2.present"/>
<and>
<isset property="xalan.present"/>
<isset property="bsf.present"/>
</and>
</or>
</condition>
<junit printsummary="${junit.summary}" haltonfailure="yes"
filtertrace="${junit.filtertrace}"
fork="${junit.fork}">
<!-- <jvmarg value="-classic"/> -->
<classpath refid="tests-classpath"/>
<classpath refid="classes.zip"/>
<sysproperty key="ant.home" value="${ant.home}"/>
<sysproperty key="build.tests" value="${build.tests}"/>
<sysproperty key="tests-classpath.value"
value="${tests-classpath.value}"/>
<formatter type="brief" usefile="false"/>
<batchtest>
<fileset dir="${tests.dir}">
<include name="**/*Test*"/>
<!-- abstract classes, not testcases -->
<exclude name="${ant.package}/taskdefs/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="${ant.package}/taskdefs/TaskdefTest*Task.java"/>
<!-- interactive tests -->
<exclude name="${ant.package}/taskdefs/TestProcess.java"/>
<exclude name="${optional.package}/splash/SplashScreenTest.java"/>
<!-- only run these tests if their required libraries are
installed -->
<patternset refid="needs.jdk1.2+"/>
<patternset refid="needs.jdk1.4+"/>
<patternset refid="needs.jakarta.regexp"/>
<patternset refid="needs.jakarta.oro"/>
<patternset refid="needs.vaj"/>
<patternset refid="needs.antlr"/>
<patternset refid="needs.xalan1"/>
<patternset refid="needs.xslp"/>
<patternset refid="needs.jakarta.bcel"/>
<patternset refid="needs.trax"/>
<!-- fails under 1.1 -->
<exclude name="${optional.package}/perforce/P4ChangeTest.java"
unless="jdk1.2+"/>
<!-- 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"/>
<!-- runtime dependencies that are different from compile
time dependencies -->
<exclude name="${optional.package}/ReplaceRegExpTest.java"
unless="some.regexp.support"/>
<exclude name="${optional.package}/sitraka/*.java"
unless="some.regexp.support"/>
<exclude name="${optional.package}/RhinoScriptTest.java"
unless="bsf.present"/>
<exclude name="${optional.package}/RhinoScriptTest.java"
unless="rhino.present"/>
<exclude name="${optional.package}/BeanShellScriptTest.java"
unless="bsf.present"/>
<exclude name="${optional.package}/BeanShellScriptTest.java"
unless="beanshell.present"/>
<!-- fail if testcases can be loaded from the system classloader -->
<exclude name="${optional.package}/junit/JUnitClassLoaderTest.java"
if="tests.are.on.system.classpath"/>
<exclude name="${optional.package}/sitraka/XMLReportTest.java"
if="tests.are.on.system.classpath"/>
<!-- these tests need to be localised before being ran???? -->
<exclude name="${optional.package}/PvcsTest.java"/>
<!-- These tests need a TraX implementation like xalan2 or saxon -->
<exclude name="${optional.package}/TraXLiaisonTest.java"
unless="trax.impl.present"/>
<exclude name="${optional.package}/XsltTest.java"
unless="trax.impl.present"/>
<exclude name="${ant.package}/types/XMLCatalogBuildFileTest.java"
unless="trax.impl.present"/>
<exclude name="${optional.package}/junit/JUnitReportTest.java"
unless="run.junitreport"/>
<!-- needs BSF to work -->
<exclude name="${optional.package}/XalanLiaisonTest.java"
unless="bsf.present"/>
<!--
XXX need to figure out what's causing this InvocationTargetException
-->
<exclude name="${optional.package}/junit/JUnitTestRunnerTest.java"
unless="jdk1.2+"/>
<!-- DateTime handling seems to be broken in JDK 1.1 -->
<exclude name="${util.package}/DateUtilsTest.java"
unless="jdk1.2+"/>
<exclude name="${optional.package}/JspcTest.java"/>
<!-- misc oneoff tests -->
<exclude name="${optional.package}/WsdlToDotnetTest.java"
unless="dotnetapps.found"/>
<!-- These tests only passes if testcases and Ant classes have
been loaded by the same classloader - will throw
IllegalAccessExceptions otherwise. -->
<exclude name="${ant.package}/taskdefs/SQLExecTest.java"
unless="tests.and.ant.share.classloader"/>
<exclude name="${optional.package}/sos/SOSTest.java"
unless="tests.and.ant.share.classloader"/>
<exclude name="${optional.package}/TraXLiaisonTest.java"
unless="tests.and.ant.share.classloader"/>
<exclude name="${optional.package}/metamata/MAuditParserTest.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="${ant.package}/taskdefs/AbstractCvsTaskTest.java"
unless="have.cvs"/>
</fileset>
</batchtest>
<test name="org.apache.tools.ant.taskdefs.optional.JspcTest"
if="jasper.present"/>
</junit>
</target>
<target name="run-single-test" if="testcase" depends="compile-tests"
description="--> runs the single unit test defined in the testcase property">
<junit printsummary="${junit.summary}"
haltonfailure="yes"
fork="${junit.fork}"
filtertrace="${junit.filtertrace}">
<!-- <jvmarg value="-classic"/> -->
<sysproperty key="ant.home" value="${ant.home}"/>
<sysproperty key="build.tests" value="${build.tests}"/>
<sysproperty key="tests-classpath.value"
value="${tests-classpath.value}"/>
<classpath refid="classes.zip"/>
<classpath refid="tests-classpath"/>
<formatter type="plain" usefile="false"/>
<test name="${testcase}"/>
</junit>
</target>
<target name="interactive-tests" description="--> runs interactive tests"
depends="compile-tests"
if="jdk1.3+">
<java classpathref="tests-classpath"
classname="org.apache.tools.ant.taskdefs.TestProcess"
fork="true"/>
</target>
<!--
===================================================================
Main target - runs dist-lite by default
===================================================================
-->
<target name="main"
description="--> creates a minimum distribution in ./dist"
depends="dist-lite"/>
<!--
===================================================================
Creates the SSH tasks distribution, requires JSch on the CLASSPATH
===================================================================
-->
<target name="ssh-lib" depends="build" if="jsch.present">
<property name="ssh.version" value="1.5-1.0"/>
<property name="ssh.dist"
value="${dist.base}/ant-ssh-tasks-${ssh.version}"/>
<mkdir dir="${ssh.dist}/tmp"/>
<echo file="${ssh.dist}/tmp/sshtasks.properties">
scp=org.apache.tools.ant.taskdefs.optional.ssh.Scp
sshexec=org.apache.tools.ant.taskdefs.optional.ssh.SSHExec
</echo>
<patternset id="ssh-lib-includes">
<include name="${ant.package}/taskdefs/optional/ssh/*"/>
<include name="${ant.package}/util/TeeOutputStream*"/>
</patternset>
<mkdir dir="${ssh.dist}/lib"/>
<jar destfile="${ssh.dist}/lib/ant-ssh.jar">
<manifest>
<section name="${ant.package}/taskdefs/optional/ssh">
<attribute name="Extension-name"
value="org.apache.tools.ant.taskdefs.optional.ssh"/>
<attribute name="Specification-Title"
value="Apache Ant SSH Tasks"/>
<attribute name="Specification-Version"
value="${manifest-version}"/>
<attribute name="Specification-Vendor"
value="Apache Software Foundation"/>
<attribute name="Implementation-Title"
value="org.apache.tools.ant.taskdefs.optional.ssh"/>
<attribute name="Implementation-Version"
value="${manifest-version}"/>
<attribute name="Implementation-Vendor"
value="Apache Software Foundation"/>
</section>
</manifest>
<fileset dir="${build.classes}">
<patternset refid="ssh-lib-includes"/>
</fileset>
<zipfileset dir="${ssh.dist}/tmp"
prefix="${ant.package}/taskdefs/optional/ssh"/>
</jar>
<delete dir="${ssh.dist}/tmp"/>
<mkdir dir="${ssh.dist}/docs"/>
<copy todir="${ssh.dist}/docs" flatten="true">
<fileset dir="${docs.dir}">
<include name="manual/OptionalTasks/sshexec.html"/>
<include name="manual/OptionalTasks/scp.html"/>
</fileset>
</copy>
<copy tofile="${ssh.dist}/docs/index.html"
file="${docs.dir}/manual/OptionalTasks/sshlib.html"/>
<echo file="${ssh.dist}/README">
This distribution contains the &lt;sshexec&gt; and &lt;scp&gt; tasks
introduced in Ant 1.6.0 compiled against Ant 1.5.4.
If you use Ant 1.6.0 or later, you don't need this file.
If you are using Ant 1.5.x, you should consider upgrading Ant.
This distribution has only been tested against Ant 1.5.4 but should
work with Ant 1.5.2 or higher.
The tasks in this library require additional software. For details,
installation instructions and the task documentation see the docs
subdirectory.
This software is licensed under the terms you may find in the file
named "LICENSE" in this directory.
The Apache Ant Project
&lt;http://ant.apache.org/&gt;
</echo>
<copy todir="${ssh.dist}">
<fileset dir=".">
<include name="LICENSE"/>
</fileset>
</copy>
<mkdir dir="${ssh.dist}/src"/>
<copy todir="${ssh.dist}/src">
<fileset dir="${java.dir}">
<patternset refid="ssh-lib-includes"/>
</fileset>
</copy>
<zip destfile="${ssh.dist}.zip" basedir="${dist.base}"
includes="ant-ssh-tasks-${ssh.version}/**"/>
<tar destfile="${ssh.dist}.tar.gz" basedir="${dist.base}"
compression="gzip" includes="ant-ssh-tasks-${ssh.version}/**"/>
<delete dir="${ssh.dist}"/>
<checksum fileext=".md5">
<fileset dir="${dist.base}"
includes="ant-ssh-tasks-${ssh.version}.*"/>
</checksum>
</target>
</project>