diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/WHATSNEW')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/WHATSNEW | 6263 |
1 files changed, 6263 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/WHATSNEW b/framework/src/ant/apache-ant-1.9.6/WHATSNEW new file mode 100644 index 00000000..9a6d4782 --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/WHATSNEW @@ -0,0 +1,6263 @@ +Changes from Ant 1.9.5 TO Ant 1.9.6 +=================================== + +Changes that could break older environments: +------------------------------------------- + +Fixed bugs: +----------- + + * ArrayIndexOutOfBoundsException when ZIP extra fields are read and + the entry contains an UnparseableExtraField. + https://issues.apache.org/jira/browse/COMPRESS-317 + +Other changes: +-------------- + * Hidden <javaconstant> resource is published now. It reads the + value of a specified java constant. + + +Changes from Ant 1.9.4 TO Ant 1.9.5 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * The ReplaceTokens filter can now use token-separators longer than + one character. This means it can be used to replace mustache-style + {{patterns}} and similar templates. This is going to break code + that invokes the setters on ReplaceTokens via the Java API as their + parameters have been changed from char to String. It may also + break build files that specified multi character tokens and relied + on Ant silently ignoring all but the first character. + Bugzilla Report 56584 + + * The changes that added <get>'s support for gzip encoding + automatically uncompressed content that would not have been touched + before - like when downloading .tar.gz files. A new flag has been + added to control the behavior and its default will make <get> work + as it did in 1.9.3. I.e. if you want it to work like 1.9.4 + you have to explicitly set tryGzipEncoding to true. + Bugzilla Report 57048 + +Fixed bugs: +----------- + + * TarArchiveInputStream failed to read archives with empty gid/uid + fields. + Bugzilla Report 56641 + + * TarArchiveInputStream could throw IOException when reading PAX + headers from a "slow" InputStream. + + * XMLJunitResultFormatter could throw NullPointerException if Java + cannot determine the local hostname. + Bugzilla Report 56593 + + * URLResource#getLastModified tried to access the connection to the + URL without making sure it was established, potentially leading to + a NullPointerException when using FTP. + Bugzilla Report 56873 + + * Long-Name and -link or PAX-header entries in TAR archives + always had the current time as last modfication time, creating + archives that are different at the byte level each time an + archive was built. + + * runant.py should now work as well when the path of the Java executable + contains spaces. + github pull request #1 + + * <junitreport> now supports nested <classpath> and <factory> elements. + Bugzilla Report 47002 + + * complete-ant-cmd.pl now also knows about the -file option. + Bugzilla Report 57371 + + * the br-replace template inside the XSLT stylesheets used by + <junitreport> could cause stack overflows or out-of-memory errors + when applied to big outputs. + Bugzilla Report 57341 + + * removed spurious warning about unclosed ZipFiles when reading the + archive failed. + Port of https://issues.apache.org/jira/browse/COMPRESS-297 + + * FileUtils.rename which is used by several tasks can throw a + NullPointerException if the "normal" renameTo operation fails and + an exception occurs while rename falls back to copying and deleting + the file. + Bugzilla Report 57533 + + * complete-ant-cmd.pl would incorrectly suggest words from the build + file description. + Bugzilla Report 51931 + + * complete-ant-cmd.pl now also completes tasks without a description. + Bugzilla Report 57542 + + * LocalPropertyStack could run into ConcurrentModificationException + when tasks spawned new child threads that accessed the properties. + Bugzilla Report 55074 + + * TarEntry's constructor with a File and a String arg didn't + normalize the name. + + * Between 1.8.4 and 1.9.0 TarInputStream started to parse file + names using the platform's default encoding rather than as ASCII. + This has been a breaking change that has never been marked as such + (in fact it went unnoticed). In order to allow <untar> and + <tarfileset> to work on platforms who's encoding doesn't match the + encoding of file names inside the archive, both now support + encoding attributes. + The attribute has also been added to <tar> for symmetry. + Bugzilla Report 57822 + +Other changes: +-------------- + + * it is now possible to provide proxy configuration to signjar + when using the timestamped authority. + Bugzilla Report 56678 + + * complete-ant-cmd.pl now also analyzes the ANT_ARGS environment + variable. + Bugzilla Report 57371 + + * ported some of the write-optimization of Commons Compress 1.10 to + the ZIP package + + * adapted unit tests to Java9 and added "javac1.9" as valid option + for javac's compiler attribute. + + * performance improvements for <intersect> + Bugzilla Report 57588 + + * MailLogger can now add CC and BCC addresses. + Bugzilla Report 57789. + + * <scp>'s buffer size has been increased from 1k to 100k to match + <ftp> and <get>. + github pull requests #8 and #9 + + * The tar package can now deal with group and user ids bigger than + 0x80000000. + https://issues.apache.org/jira/browse/COMPRESS-314 + https://issues.apache.org/jira/browse/COMPRESS-315 + + * <scp> has new attributes fileMode and dirMode that control the + permissions on the remote side when sending data via SSH. + Bugzilla Report 43271. + + * New <allbutlast> and <allbutfirst> resource collections can be used + to select all but a given subset of a resource collection. + Bugzilla Report 57834. + +Changes from Ant 1.9.3 TO Ant 1.9.4 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * the prefixValues attribute of <property> didn't work as expected + when set to false (the default). + It is quite likely existing build files relied on the wrong + behavior and expect Ant to resolve the value side against the + properties defined in the property file itself - these build files + must now explicitly set the prefixValues attribute to true. + Bugzilla Report 54769 + + * when matching an entry of a zip/tarfileset against a pattern a + leading slash will be stripped from the entry name. Most archives + don't contain paths with leading slashes anyway. + This may cause include/exclude patterns that start with a / to stop + matching anything. Such patterns only used to work by accident and + only on platforms with multiple file system roots. + Bugzilla Report 53949 + + * DirectoryScanner and thus fileset/dirset will now silently drop all + filesystem objects that are neither files nor directories according + to java.io.File. This prevents Ant from reading named pipes which + might lead to blocking or other undefined behavior. + Bugzilla Report 56149 + + * BuildFileTest and BaseSelectorTest have both been deprecated in + favour of BuildFileRule and BaseSelectorRule respectively, and the + tests that previously extended these base tests have been converted to + JUnit 4 tests using the new "rule"s. Any external test that sub-classed + a test in the Ant workspace, rather than BuildFileTest, will need + changed to either use JUnit4's annotations, or be modified to + extend BuildFileTest directly. This will not affect any tests that are + being executed by Ant's junit or batchtest tasks that are not specifically + testing Ant's code. + +Fixed bugs: +----------- + + * <import>/<include> failed when the importing file was loaded from an + URI or a jar and it imported a file from the local file system via + an absolute path. + Bugzilla Report 50953 + + * <import> could import the same resource twice when imported via + different resource types. + Bugzilla Report 55097 + + * several calls to File#mkdirs could fall victim to a race condition + where another thread already created the same directory. + Bugzilla Report 55290 + + * <manifestclasspath> created '/' rather than './' for the parent + directory of the given jarfile. + Bugzilla Report 55049 + + * <concat>'s fixlastline="true" didn't work when using certain filter + readers. + Bugzilla Report 54672 + + * several places where resources are read from jars will now + explicitly disable caching to avoid problems with reloading jars. + Bugzilla Report 54473 + + * AntClassloader will now ignore files that are part of the classpath + but not zip files when scanning for resources. It used to throw an + exception. + Bugzilla Report 53964 + + * <javadoc> caused a NullPointerException when no destdir was set. + Bugzilla Report 55949 + + * <jar filesetmanifest="mergewithoutmain"> would still include the + Main section of the fileset manifests if there was no nested + manifest or manifest attribute. + Bugzilla Report 54171 + + * reading of compiler args has become more defensive + Bugzilla Report 53754 + + * <copy> without force="true" would not only fail to overwrite a + read-only file as expected but also remove the existing file. + Bugzilla Report 53095 + + * <delete removeNotFollowedSymlinks="true"> would remove symbolic + links to not-included files. It will still delete symlinks to + directories that would have been followed even if they are not + explicitly included. exclude-Patterns can still be used to + preserve symbolic links. + Bugzilla Report 53959 + + * Sometimes copy-operations using NIO FileChannels fail. Ant will + now try to use a Stream based copy operation as fallback when the + Channel based copy fails. + Bugzilla Reports 53102 and 54397 + + * Javadoc.postProcessGeneratedJavadocs() fails for Classes that + extend Javadoc + Bugzilla Report 56047 + + * TarInputStream will now read archives created by tar + implementations that encode big numbers by not adding a trailing + NUL. + + * the isExists() method of URLResource returned false positives for + HTTP and FTP URLs. + +Other changes: +-------------- + + * initial support for Java 1.9 + + * <sshexec> can optionally pass System.in to the remote process + Bugzilla Report 55393 + + * <sshexec> now supports capturing error output of the executed + process and setting a property from the return code. + Bugzilla Report 48478 + + * <javadoc> now has an option to fail if javadoc issues warnings. + Bugzilla Report 55015 + + * <sql> has a new outputencoding attribute. + Bugzilla Report 39541 + + * changes to JUnitTestRunner and PlainJUnitResultFormatter to make + OutOfMemoryErrors less likely. + Bugzilla Report 45536 + + * changes to DOMElementWriter to make OutOfMemoryErrors less likely. + Bugzilla Report 54147 + + * <redirector> has a new attribute binaryOutput that prevents Ant + from splitting the output into lines. This prevents binary output + from being corrupted but may lead to error and normal output being + mixed up. + Bugzilla Report 55667 + Bugzilla Report 56156 + + * the nested <message> elements of <mail> now have an optional + inputEncoding attribute that can be used to specify the encoding of + files read that don't use the platform's default encoding. + Bugzilla Report 56258 + + * The <get> task now explicitly accepts and supports the gzip content encoding. + Bugzilla Report 49453 + + * A new resourcecollection type <multirootfileset> acts like a union + of <fileset>s and <dirset>s that share the same configuration but + have different base directories. + Bugzilla Report 48621 + + * <get> has a quiet attribute that makes the task log errors only + when enabled. + GitHub Pull Request #1 + +* <junit> has now a threads attribute allowing to run the tests in several threads. + Bugzilla Report 55925 + +* addition of a new ProcessUtil class providing the process id of the current process + +* changes to allow to run the JUnit testcases of Ant in parallel, + by making them use unique temporary directories + +Changes from Ant 1.9.2 TO Ant 1.9.3 +=================================== + +Fixed bugs: +----------- + + * <parallel> swallowed the status code of nested <fail> tasks. + Bugzilla Report 55539. + + * a race condition could make <fixcrlf> tasks of parallel builds to + interfere with each other. + Bugzilla Report 54393. + + * <mail>'s mailport still didn't work properly when using smtps. + Bugzilla Report 49267. + + * using attributes belonging to the if and unless namespaces + made macrodef fail. + Bugzilla Report 55885. + + * Ant 1.8 exec task changes have slowed exec to a crawl + Bugzilla Report 54128. + + * Apt is not available under JDK 1.8 + Bugzilla Report 55922. + + +Other changes: +-------------- + + * Documentation fix for if/unless attributes. PR 55359. + + * tar entries with long link names are now handled the same way as + entries with long names. + + * Addition of 'skipNonTests' attribute to <junit> and <batchtest> + tasks to allow the tasks to skip classes that don't contain tests. + + * <filterset> now supports a nested <propertyset> to specify filters. + Bugzilla Report 55794. + + * <xslt>'s params can now be typed. + Bugzilla Report 21525. + + * build of Mac OS X pkg installer + Bugzilla Report 55899. + +Changes from Ant 1.9.1 TO Ant 1.9.2 +=================================== + +Fixed bugs: +----------- + + * Parsing of zip64 extra fields has become more lenient in order to + be able to read archives created by DotNetZip and maybe other + archivers as well. + + * TarInputStream should now properly read GNU longlink entries' names. + Bugzilla Report 55040. + + * <java> and <exec> used to be too restrictive when evaluating + whether a given set of options is compatible with spawning the new + process. + Bugzilla Report 55112. + +Other changes: +-------------- + + * <javadoc> will now post-process the generated in order to mitigate + the frame injection attack possible in javadocs generated by Oracle + JDKs prior to Java7 Update 25. The vulnerability is known as + CVE-2013-1571. + There is an option to turn off the post-processing but it is only + recommended you do so if all your builds use a JDK that's not + vulnerable. + Bugzilla Report 55132. + +Changes from Ant 1.9.0 TO Ant 1.9.1 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * Users who have their own ProjectHelper implementation will need to change it because the import and include tasks + will now default the targetPrefix to ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX. + Users using the default ProjectHelper2 with ant need not worry about this change done to fix Bugzilla Report 54940. + + +Fixed bugs: +----------- + + * Corrected XSLTC error in <junitreport>. + Bugzilla Report 54641. + + * Provide more control over Zip64 extensions created by <zip> and + related tasks. In particular no Zip64 extensions will be used at + all by the <jar> task family by default - this is required for jars + to be readably by Java5. + Bugzilla Report 54762. + + * Fixed loading of external dependencies in JUnit task. + Bugzilla Report 54835. + + * Target rewriting for nested "include" only works when "as" is specified. + See also "Changes that could break older environments" + Bugzilla Report 54940. + + +Other changes: +-------------- + + * strict attribute added to <signjar>. + Bugzilla Report 54889. + + * simplifying Execute.getEnvironmentVariables since we are only running on Java 1.5 or higher now + + * Added conditional attributes. + Bugzilla Report 43362 + + * Recommending to upgrade jsch to 0.1.50, particularly if you are using Java 1.7. + jsch is the library behind the sshexec and scp Ant tasks. + Versions of jsch older than 0.1.50 fail randomly under Java 1.7 with an error message "verify: false" + +Changes from Ant 1.8.4 TO Ant 1.9.0 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * Ant now requires at least Java 1.5 to compile and to run + + * FixCRLF used to treat the EOL value ASIS to convert to the system property + line.separator. Specified was that ASIS would leave the EOL characters alone, + the task now really leaves the EOL characters alone. This also implies that + EOL ASIS will not insert a newline even if fixlast is set to true. + Bugzilla report 53036 + + * The CommandLauncher hierarchy that used to be a set of inner + classes of Execute has been extracted to the + org.apache.tools.ant.taskdefs.launcher package. + + * Any FileResource whose represented File has a parent also has a basedir. + + * Removing the Perforce Ant tasks replaced by tasks supplied by Perforce Inc. + + * Setting the default encoding of StringResource to UTF-8 instead of null + + * Upgrade JUnit 4 to JUnit 4.11 + +Fixed bugs: +----------- + + * Made VectorSet faster. + Bugzilla Report 53622. + + * Incorrect URLs in Ant child POMs. + Bugzilla Report 53617. + + * Subclasses of JUnitTask did not correctly find junit.jar. + Bugzilla Report 53571. + + * External XML catalog resolver failed to use project basedir when given an + unmentioned relative path like the internal resolver does. + Bugzilla Report 52754. + + * Fixed some potential stream leaks. + Bugzilla Reports 52738, 52740, 52742, 52743. + + * Updated documentation to fix spelling errors / broken links. + Bugzilla Reports 53215, 53291, 53202 + + * Unable to override system properties. It was not possible not to override + system properties from the command line (or from a property file). + Bugzilla Report 51792 + + * <javac> by default fails when run on JDK 8. + Bugzilla Report 53347. + + * ExtensionPoint doesn't work with nested import/include + Bugzilla Report 53405. + + * <packagemapper> failed to strip the non-matched parts with + handledirsep="true". + Bugzilla Report 53399. + + * <expandproperties> filter caused a NullPointerException when input + was empty. + Bugzilla Report 53626. + + * <get> now supports HTTP redirects using status code 307. + Bugzilla Report 54374. + + * ssh tasks prompt for kerberos username/password under Java 7 + Bugzilla Report 53437. + + * Zip task on <mappedresources> that excludes certain files by way of the mapper resulted in a NullPointerException + Bugzilla Report 54026 + + * The ant launcher script should properly detect JAVA_HOME on + MacOS X 10.7 + Bugzilla Report 52632 + + * Depend task does not handle invokeDynamic constant pool entries - java.lang.ClassFormatError: Invalid Constant Pool entry Type 18 + Bugzilla Report 54090 + + * Base64Converter not properly handling bytes with MSB set (not masking byte to int conversion) + Bugzilla Report 54460 + + * The size resource comparator would return wrong results if file + sizes differed by more than 2 GB. + Bugzilla Report 54623 + + * Unable to encode properly into UTF-8 when the system property file.encoding is + set to ANSI_X3.4-1968. + Bugzilla Report 54606 + + * JUnit4 tests marked @Ignore do not appear in XML output + Bugzilla Report 43969 + +Other changes: +-------------- + + * merged the ZIP package from Commons Compress, it can now read + archives using Zip64 extensions (files and archives bigger that 4GB + and with more that 64k entries). + + * a new task <commandlauncher> can be used to configure the + CommandLauncher used by Ant when forking external programs or new + Java VMs. + Bugzilla Report 52706. + + * merged the TAR package from Commons Compress, it can now read + archives using POSIX extension headers and STAR extensions. + + * merged the BZIP2 package from Commons Compress, it can now + optionally read files that contain multiple streams properly. + + * <bunzip2> will now properly expand files created by pbzip2 and + similar tools that create files with multiple bzip2 streams. + + * <tar> now supports a new "posix" option for longfile-mode which + will make it create PAX extension headers for long file names. PAX + extension headers are supported by all modern implementations of + tar including GNU tar. + This option should now be used in preference to "warn" or "gnu" as + it is more portable. For backwards compatibility reasons "warn" + will still create "gnu" extensions rather than "posix" extensions. + + * The ProjectHelper class now exposes a method to be used by third party + implementations to properly resolve the binding between target extensions + and extension points. + Bugzilla Report 53549. + + * Make extension point bindable to imported prefixed targets + Bugzilla Report 53550. + + * Add the possibility to register a custom command line argument processor. + See org.apache.tools.ant.ArgumentProcessor and manual/argumentprocessor.html + + * add the possibility to suppress stdout in the sshexec task. + Bugzilla Report 50270. + + * add an encoding attribute to the contains selector. + This will be useful to use the contains selector if the encoding of the VM is different from the encoding + of the files being selected. + + * support for GNU Classpath. + Bugzilla report 54760. + +Changes from Ant 1.8.3 TO Ant 1.8.4 +=================================== + +Fixed bugs: +----------- + + * Ported libbzip2's fallback sort algorithm to CBZip2OutputStream to + speed up compression in certain edge cases. Merge from Commons + Compress. + + Using specially crafted inputs this can be used as a denial of + service attack. + See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2098 + +Changes from Ant 1.8.2 TO Ant 1.8.3 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * The Enumeration returned by AntClassLoader#getResources used to + return null in nextElement after hasNextElement would return false. + It has been changed to throw a NoSuchElementException instead so + that it now adheres to the contract of java.util.Enumeration. + Bugzilla Report 51579. + +Fixed bugs: +----------- + + * Removed buggy duplicate JAR list in RPM mode. + Bugzilla Report 52556. + + * Launcher fixed to pass the right class loader parent. + Bugzilla Report 48633. + + * <junitreport> mishandled ${line.separator}. + Bugzilla Report 51049. + + * <junitreport> did not work in embedded environments on JDK 7. + Nor did <xslt> when using Xalan redirects. + Bugzilla Report 51668, 52382. + + * Encoding of unicode escape sequences by the property file task + Bugzilla Report 50515. + + * The code that implicitly sets the -source switch if only -target + has been specified in <javac> was broken for Java 5 and 6. + Bugzilla Report 50578. + + * MailLogger ignore the Maillogger.starttls.enable property. + Bugzilla Report 50668. + + * Delete task example does not work + Bugzilla Report 50816. + + * <splash>'s proxy handling has been delegated to <setproxy> + internally so the two tasks are consistent. <splash>'s way of not + setting a proxy caused problems with other Java libraries. + Bugzilla Report 50888. + + * Include task breaks dependencies or extension-points for multiple + files. + Bugzilla Report 50866. + + * Read on System.in hangs for forked java task. + Bugzilla Report 50960. + + * FileResource specified using basedir/name attributes was non-functional. + + * Resource collection implementation of mapped PropertySet returned + unusable resources. + + * The hasmethod condition failed with a NullPointerException when + ignoresystemclasses is true and Ant tried to load a "restricted + class" - i.e. a class that the Java VM will only accept when loaded + via the bootclassloader (a java.* class). + It will now fail with a more useful error message. + Bugzilla Report 51035. + + * Exec task may mix the stderr and stdout output while logging it + Bugzilla Report 50507. + + * Missing space between "finished" and timestamp in task/target + finish message from ProfileLogger. + Bugzilla Report 51109. + + * Redirecting the output of a java, exec or apply task could print in the + error output stream some "Pipe broken" errors. + Bugzilla Report 48789. + + * ZipFile failed to clean up some resources which could lead to + OutOfMemoryException while unzipping large archives. + A similar problem in ZipArchiveOutputStream has been fixed as well. + Bugzilla Report 42696. + + * quiet attribute added to the copy and move tasks, to be used together + with failonerror=false, so warnings won't get logged + Bugzilla Report 48789. + + * System.in was closed and not readable anymore by the DefaultInputHandler + when Ant is used via its Java API. + Bugzilla Report 51161 + + * <sync> only supported a single non-fileset resource collection even + though the manual said it could be multiple. + + * <sync> didn't work properly when working on resource collections. + Bugzilla Report 51462. + + * <augment> cause a NullPointerException if it was used in a target + that was invoked by multiple targets from the command line. + Bugzilla Report 50894. + + * The ZipFile class could read past the start of the file if the + given file is not a ZIP archive and it is smaller than the size of + a ZIP "end of central directory record". + + * <javac> would create the empty package-info.class file in the wrong + directory if no destdir was specified. Note it may still pick the + wrong directory if you specify more than one source directory but + no destDir. It is highly recommended that you always explicitly + specify the destDir attribute. + Bugzilla Report 51947. + + * packagemapper now honors the handleDirSep attribute. + Bugzilla Report 51086. + + * the attributes of macrodef tasks had their values run through + property expansion twice. Still true by default, but can be disabled. + Bugzilla Report 42046. + + * jvc doesn't like it if source file names in argument files are + quoted. + Bugzilla Report 31667. + + * ZipFile didn't work properly for archives using unicode extra + fields rather than UTF-8 filenames and the EFS-Flag. + + * Access to DirectoryScanner's default excludes wasn't synchronized. + Bugzilla Report 52188. + + * When a Project instance was created by a custom tasks its + createTask method didn't work. + Bugzilla Report 50788. + +Other changes: +-------------- + + * -f/-file/-buildfile accepts a directory containing build.xml. + + * The <javacc>, <jjtree> and <jjdoc> now support a new maxmemory + attribute. + Bugzilla Report 50513. + + * the documented inputstring attribute of sshexec has been + implemented and the actually existing attribute inputproperty + documented. + Bugzilla Report 50576. + + * The concat task now permits the name of its exposed resource + by means of its 'resourcename' attribute. + + * The expandproperties filter now accepts a nested propertyset + which, if specified, provides the properties for expansion. + Bugzilla Report 51044. + + * <junit filtertrace="true"/> will no longer filter out the very + first line of the stacktrace containing the original exception + message even if it matches one of the filter expressions. + + * Upgraded to Apache AntUnit 1.2 + + * Provide read access to Mkdir.dir. Bugzilla Report 51684. + + * <delete> and <move> have a new attribute performGCOnFailedDelete + that may - when set to true - help resolve some problems with + deleting empty directories on NFS shares. + Bugzilla Report 45786. + + * <loadfile> and <loadresource> used to log at level INFO to signal a + property hasn't been set when the resource was empty even if the + quiet attribute was set to true. They will now use VERBOSE + instead. + Bugzilla Report 52107. + + * <javac> has a new attribute createMissingPackageInfoClass that can + be set to false to prevent Ant from creating empty dummy classes + used for up-to-date-ness checks. + Bugzilla Report 52096. + + * URLResources#isExists has become less noisy. + Bugzilla Report 51829. + + * The <retry> task has a new optional attribute retryDelay that can + be used to make the task sleep between retry attempts. + Bugzilla Report 52076. + + * <signjar> has new attributes that control the signature and digest + algorithms. + Bugzilla Report 52344. + + * Initial support for Java 8. + + * <sshexec> can optionally create a pseudo terminal (like ssh -t) + Bugzilla Report 52554. + +Changes from Ant 1.8.1 TO Ant 1.8.2 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * Prior to Ant 1.8.0 the <copy> task and several other tasks would + overwrite read-only destination files. Starting with 1.8.0 they + would only do so under special circumstances. Ant 1.8.2 now + consistently won't replace a read-only file by default. The same is + true for a number of other tasks. + The <copy>, <move> and <echo> tasks now have a new force attribute + and <concat> has a new forceReadonly attribute that can be used to + make the task overwrite read-only destinations. + Bugzilla Report 49261. + + * Removed ant-nodeps.jar; it is now merged into ant.jar. + + * DOMElementWriter#encode used to employ special code before encoding + ampersands so that { remained { rather than being turned + into &#123;. This is no longer the case, ampersands will now + be encoded unconditionally. + Also DOMElementWriter#encodeData will treat CDATA sections containing a + literal "]]>" sequence different now - it will split the CDATA + section between the second "]" and ">" and create two sections. + This affects <echoxml> task as well as the XML logger or JUnit + formatter where ampersands will now always get encoded. + In addition DOMElementWriter will now replace the characters \t, \r + and \n in attribute values by entity references. + Bugzilla Report 49404. + + * The list elements returned by ProjectHelper#getExtensionStack are + now String arrays of length 3 rather than 2 in order to support the + onMissingExtensionPoint attribute. + Bugzilla Report 49473. + + * When using <property file="..." prefix="..."/> properties defined + inside the same file will only get used in expansions if the ${} + reference uses the same prefix. This is different from Ant 1.8.1 + but is the same behavior Ant 1.8.0 and earlier exhibited. + A new attribute prefixValues can be used to re-enable the behavior + of Ant 1.8.1. + Bugzilla Report 49373. + + * The files and directories used by Git, Mercurial and Bazaar to + store their information are now excluded by the defaultexcludes. + Bugzilla Report 49624. + + * The <junit> task no longer generates TestListener events - which + have been introduced in ant 1.7.0 - by default. The task has a new + attribute enableTestListenerEvents and a new "magic" property + ant.junit.enabletestlistenerevents has been added that can be used + to reinstate the old behavior. + +Fixed bugs: +----------- + + * hostinfo now prefers addresses with a hostname over addresses without + a hostname, provided the addresses have the same scope. + For local lookup, no IP address will be put in NAME / DOMAIN anymore. + For remote lookup, if a host name was provided and only an IP address is + found, the IP address will no longer overwrite the host name provided to the + task. + Bugzilla Report 49513 + + * mmap-based file copy problems under JDK 1.4 on Linux. + Bugzilla Report 49430. + + * The Sun JVM tries to mmap the entire file during a copy. + For large files this is not feasible. + We now explicitly request to copy at most 16 MiB per request. + Bugzilla Report 49326. + + * DemuxInputStream.read() should return unsigned values + Bugzilla Report 49279. + + * The MIME mailer ignored the port parameter when using SSL. + Bugzilla Report 49267. + + * <xslt> ignored the classpath when using the default TraX processor. + Bugzilla Report 49271. + + * <checksum>'s totalproperty only worked reliably if the same file + name didn't occur inside more than one directory. + Bugzilla Report 36748. + + * <ftp> could fail to download files from remote subdirectories under + certain circumstances. + Bugzilla Report 49296. + + * <junit> will now produce better diagnostics when it fails to delete + a temporary file. + Bugzilla Report 49419. + + * Ant would often scan directories even though there were known to + only hold excluded files when evaluating filesets. This never + resulted in wrong results but degraded performance of the scan + itself. + Bugzilla Report 49420. + + * <javac> failed for long command lines on OS/2. + Bugzilla Report 49425. + + * <junitreport> did not handle encodings well for stdout/stderr. + Bugzilla Report 49418. + + * <junit> could issue a warning about multiple versions of Ant on the + CLASSPATH if two CLASSPATH entries differed in case on a + case-insensitive file system. + Bugzilla Report 49041. + + * The <restrict> resource collection was checking every resource even if + we actually just want the first one, like in the example of use of + resourcelist in the documentation (getting the first available resource + from a mirror list). + + * A race condition could lead to build failures if multiple <mkdir> + tasks were trying to create the same directory. + Bugzilla Report 49572. + + * the toString() method of the Resources class - and thus any + ${toString:} expansion of a reference to a <resources> element - + didn't iterate over its nested elements if it hadn't done so prior + to the toString invocation already. + Bugzilla Report 49588. + + * <apply> in parallel mode didn't work together with a nested + <redirector> if maxparallel was <= 0 (the default) or no source + files matched. + Bugzilla Report 49594. + + * <jar filesetmanifest="merge"> didn't work for manifests added via + <zipfileset>s that used the prefix or fullpath attributes. + Bugzilla Report 49605. + + * <tempfile createfile="true"> would cause an error unless the prefix + attribute has been specified. + Bugzilla Report 49755. + + * If forked, after finished <java> was still reading the input stream + for a bunch of characters, then stealing them from a following <input>. + Bugzilla Report 49119. + + * Ant could be leaking threads for each forked process (started by + <exec>, <apply>, <java> or similar tasks) that didn't receive input + from a resource or string explicitly. + Bugzilla Report 49587. + + * Project#setDefault threw an exception when null was passed in as + argument, even though the Javadoc says null is a valid value. + Bugzilla Report 49803. + + * runant.py would swallow the first argument if CLASSPATH wasn't set. + Bugzilla Report 49963. + + * <taskdef> failed to load resources from jar files contained in a + directory that has a "!" in its name. + Bugzilla Report 50007. + + * ant.bat exit strategy improvements and issues + make the exit codes work in environments where 4NT or MKS are installed + Bugzilla Report 41039. + + * <signjar> would fail if used via its Java API and the File passed + into the setJar method was not "normalized" (i.e. contained ".." + segments). + Bugzilla Report 50081. + + * <delete> ignored <fileset>'s errorOnMissingDir attribute + Bugzilla Report 50124. + + * <symlink> failed to close files when reading a list of symbolic + links from a properties file. + Bugzilla Report 50136. + + * <parallel> could allow tasks to start executing even if a task + scheduled to run before them timed out. + Bugzilla Report 49527. + + * If a <junit> batch with multiple tests times out Ant logs a message + about a test named Batch-With-Multiple-Tests since 1.8.0 but the + logic that determined the Java package of this pseudo-test has been + wrong. + Bugzilla Report 45227. + + * <propertyfile> didn't preserve the original linefeed style when + updating a file. + Bugzilla Report 50049. + + * <zip>'s whenEmpty behavior never consulted the non-fileset + resources so the task could fail even though resources have been + provided using non-fileset resource collections. + Bugzilla Issue 50115. + +* ftp chmod could throw a NPE. + Bugzilla report 50217. + +* The project help (-p option in the command line) will now print + the dependencies of the targets in debug mode (-d on the command + line) + +Other changes: +-------------- + + * <concat>'s force attribute has been deprecated in favor of a new + overwrite attribute that is consistent with <copy>'s attribute + names. + + * You can now specify a list of methods to run in a JUnit test case. + Bugzilla Report 34748. + + * properties in files read because of the -propertyfile command line + option will now get resolved against other properties that are + defined before the project starts executing (those from the same or + earlier -propertfiles or defined via the -D option). + Bugzilla Report 18732. + + * <pathelement>s can now contain wildcards in order to use wildcard + CLASSPATH entries introduced with Java6. + The wildcards are not expanded or even evaluated by Ant and will be + used literally. The resulting path may be unusable as a CLASSPATH + for Java versions prior to Java6 and likely doesn't mean anything + when used in any other way than a CLASSPATH for a forked Java VM. + Bugzilla Report 46842. + + * A new attribute allows targets to deal with nonexistent extension + points, i.e. they can extend an extension-point if it has been + defined or silently work as plain targets if it hasn't. This is + useful for targets that get included/imported in different + scenarios where a given extension-point may or may not exist. + Bugzilla Report 49473. + + * Ant now logs a warning message if it fails to change the file + modification time in for example when using <touch> or preserving + timestamps in various tasks. + Bugzilla Report 49485. + + * ProjectHelpers can now be installed dynamically via the <projecthelper> + Ant task. + + * <import> is now able to switch to the proper ProjectHelper to parse + the imported resource. This means that several kinds of different build + files can import each other. + + * <copy tofile=""> now also works for non-filesystem resources. + Bugzilla Report 49756. + + * The <linecontainsregexp> filter now supports a casesensitive + attribute. + + * The <containsregexp> selector now supports casesensitive, multiline + and singleline attributes. + Bugzilla Report 49764. + + * A new <cutdirsmapper> can be used like wget's --cut-dirs option to + strip leading directories from file names. + + * <javah> now supports the GNU project's gcjh compiler. + Bugzilla Report 50149. + + * <checksum> supports additional views of a file's path as elements + for a custom pattern. + Bugzilla Report 50114. + + * JUnit XMLResultAggregator logs the stack trace of caught IO exceptions + in verbose runs. + Bugzilla Report 48836. + + * StringUtils.parseHumanSizes() should turn parse failures into + BuildExceptions. + Bugzilla Report 48835. + + * New task <bindtargets> to make a list of targets bound to some + specified extension point. + + * Initial support for OpenJDK7 has been added. + + * Ant now uses java.net.CookieStore rather than + java.util.ServiceLocator to detect whether the environment is a + Java 1.6 system. This means releases of gcj/gij at the time of + this release of Ant are detected as Java 1.5 and not 1.6. + Bugzilla Report 50256. + + * It is now possible to write a compiler adapter for <javac> that + compiles sources with extensions other than .java (but that still + compile to .class files). + Bugzilla Report 48829. + + * The performance of VectorSet#add(Object) has been improved which + should also benefit any operation that scans directories in Ant. + Bugzilla Report 50200. + +Changes from Ant 1.8.0 TO Ant 1.8.1 +=================================== + +Changes that could break older environments: +------------------------------------------- + + * ant-trax.jar is no longer produced since TrAX is included in JDK 1.4+. + + * Ant no longer ships with Apache Xerces-J or the XML APIs but relies + on the Java runtime to provide a parser and matching API versions. + + * The stylebook ant task and the ant-stylebook.jar are removed. + +Fixed bugs: +----------- + + * Tasks that iterate over task or type definitions, references or + targets now iterate over copies instead of the live maps to avoid + ConcurrentModificationExceptions if another thread changes the + maps. + Bugzilla Report 48310. + + * The filesmatch condition threw a NullPointerException when + comparing text files and the second file contained fewer lines than + the first one. + Bugzilla Report 48715. + + * Regression: The <ear> task would allow multiple + META-INF/application.xml files to be added. + Bugzilla Report 6836. + + * VectorSet#remove(Object) would fail if the size of the vector + equaled its capacity. + + * Regression : ant -diagnostics was returning with exit code 1 + Bugzilla Report 48782 + + * Fix for exec task sometimes inserts extraneous newlines + Bugzilla Report 48746 + + * SymlinkTest#testSymbolicLinkUtilsMethods failing on MacOS + Bugzilla Report 48785. + + * If <concat>'s first resourcecollection child is a <resources>, + any subsequently added child resourcecollection joins the first. + Bugzilla Report 48816. + + * <get> with an invalid URL could trigger an NPE in some JVMs. + Bugzilla Report 48833 + + * Broken Pipe issue under Ubuntu Linux + Bugzilla Report 48789 + + * Properties wrongly read from file or not update during read + Bugzilla Report 48768 + + * AntClassLoader in Ant 1.8.0 has been considerably slower than in + 1.7.1 + Bugzilla Report 48853 + + * ANT_CMD_LINE_ARGS are rippling through lower level Ant usage + Bugzilla Report 48876 + + * email : IO error sending mail with plain mimetype + Bugzilla Report 48932 + + * the complete-ant-cmd.pl script failed to create a proper cache of + target if "ant -p" failed. + Bugzilla Report 48980 + + * <rmic>'s sourcebase attribute was broken. + Bugzilla Report 48970 + + * <copy>'s failonerror didn't work as expected when copying a single + element resource collection to a file. + Bugzilla Report 49070 + + * <get> no longer followed redirects if the redirect URL was relative + and not an absolute URL. + Bugzilla Report 48972 + + * fixed a performance degradation in the code that expands property + references. + Bugzilla Reports 48961 and 49079 + + * <jar filesetmanifest="merge"> was broken on Windows. + Bugzilla Report 49090 + + * <symlink> delete failed if the link attribute was a relative path + to a link inside the current directory without a leading ".". + Bugzilla Report 49137 + + * <telnet> and <rexec> failed to find the expected strings when + waiting for responses and thus always failed. + Bugzilla Report 49173 + +Other changes: +-------------- + + * Project provides new get methods that return copies instead of the + live maps of task and type definitions, references and targets. + + * Ant is now more lenient with ZIP extra fields and will be able to + read archives that it failed to read in earlier versions. + Bugzilla Report 48781. + + * The <zip> family of tasks has been sped up for bigger archives. + Bugzilla Report 48755. + + * Add removeKeepExtension option to NetRexxC task. + Bugzilla Report 48788. + + * Add prefix attribute to loadproperties task. + + * Add resource attribute to length task. + + * PropertyResource will effectively proxy another Resource if ${name} + evaluates to a Resource object. + + * Added forcestring attribute to equals condition to force evaluation + of Object args as strings; previously only API-level usage of the + equals condition allowed Object args, but Ant 1.8.x+ property + evaluation may yield values of any type. + + * BuildFileTest.assertPropertyUnset() fails with a slightly more + meaningful error message + Bugzilla Report 48834 + + * <junit> will now throw an exception if a test name is empty. This + used to manifest itself in unrelated errors like + Bugzilla Report 43586. + + * A change that made <exec> more reliable on Windows (Bugzilla Report + 5003) strongly impacts the performance for commands that execute + quickly, like attrib. Basically no single execution of a command + could take less than a second on Windows. + A few timeouts have been tweaked to allow these commands to finish + more quickly but still they will take longer than they did with Ant + 1.7.1. + Bugzilla Report 48734. + + * Added SimpleBigProjectLogger, intermediate between NoBannerLogger and + BigProjectLogger. + + * <mappedresources> supports new attributes enablemultiplemappings + and cache. + + * Added the augment task to manipulate existing references via Ant's basic + introspection mechanisms. + +Changes from Ant 1.8.0RC1 TO Ant 1.8.0 +====================================== + +Changes that could break older environments: +------------------------------------------- + + * the appendtolines filter has been renamed to suffixlines. + +Fixed bugs: +----------- + + * stack traces were not reported at all by <junit/> + when filtertrace="on", which is the default. + + * ant.bat can now also process the -noclasspath switch when it is + the first switch on a command line. + Bugzilla Report 48186. + + * <fixcrlf> now tries to delete the created temporary files earlier. + Bugzilla Report 48506. + + * the implementation of <zip> had been changed in a way that broke + the jarjar links task and protentially other third-party subclasses + as well. + Bugzilla Report 48541. + + * <scp> task didn't report build file location when a remote operation failed + Bugzilla Report 48578. + + * <propertyfile> would add the same comment and a date line each time + it updated an existing property file. + Bugzilla Report 48558. + + * <sound> didn't work properly in recent Java VMs. + Bugzilla Report 48637. + +Other changes: +-------------- + +Changes from Ant 1.7.1 TO Ant 1.8.0RC1 +====================================== + +Changes that could break older environments: +------------------------------------------- + + * if and unless attributes (on <target> as well as various tasks and other + elements) have long permitted ${property} interpolation. Now, if the result + evaluates to "true" or "false" (or "yes", "no", "on", "off"), that boolean + value will be used; otherwise the traditional behavior of treating the value + as a property name (defined ~ true, undefined ~ false) is used. Existing + scripts could be broken if they perversely defined a property named "false" + and expected if="false" to be true, or used if="true" expecting this to be + triggered only if a property named "true" were defined. + + * Ant now requires Java 1.4 or later. + + * Improved handling of InterruptException (lets suppose someone/thing + is trying to kill the thread when we receive an + InterruptException), when an InterruptException is received, we do + not wait anymore in a while loop till the end time has been + reached. + Bugzilla Report 42924. + + * Refactor PropertyHelper and introspection APIs to make extension + more granular and support setting task/type attribute values to + objects decoded by custom PropertyEvaluator delegates. Also add + <propertyhelper> task for registering delegates and/or replacing + the registered PropertyHelper instance. + Bugzilla Report 42736. + + * Added a restricted form of typedef called <componentdef>. This + allows definition of elements that can only be within tasks or + types. This method is now used to define conditions, selectors, + comparators and filterreaders. This means that tasks may now have + nested conditions just by implementing the Condition interface, + rather than extending ConditionBase. It also means that the use of + namespaces for some of the selectors introduced in Ant 1.7.0 is no + longer necessary. Implementing this means that the DynamicElement + work-around introduced in Ant 1.7.0 has been removed. + Bugzilla Report 40511. + + * In the <touch> task when a <mapper> is used, the millis and + datetime attributes now override the time of the source resource if + provisioned. + Bugzilla Report 43235. + + * Remove fall-back mechanism for references that are not resolved + during normal runtime execution. + + * FileUtils.createTempFile now actually creates the file. + The TempFile task still does not create the file by default, can be + instructed to do so however using a new parameter. + Bugzilla Report 33969. + + * A lock in Project ensured that a BuildListener's messageLogged + method was only ever executed by a single thread at a time, while + all other methods could be invoked by multiple threads + simultaniously (while within <parallel>, for example). This lock + is no longer in place, messageLogged should be made thread-safe + now. + + * <sql>'s onError="stop" no longer fails the build if an error + occurs, this is the main difference between stop and error and + matches what the documentation implied. + Bugzilla Report 24668. + + * Ant's configuration introspection mechanisms have been modified to prefer + Resource and FileProvider attributes to plain java.io.File attributes; + however the configuration-from-String behavior remains equivalent, rendering + a FileResource. + + * CBZip2InputStream will now throw an IOException if + passed in a null or empty InputStream to read from. + Bugzilla Reports 32200. + + * <unzip> will now fail when trying to extract certain broken + archives that would have been silently ignored in earlier version. + Bugzilla Report 35000. + + * Ant's <zip> family of tasks tries to preserve the existing Unix + permissions when updating archives or copying entries from one + archive to another. + Since not all archiving tools support storing Unix permissions in + the same way that is used by Ant, sometimes the permissions read by + Ant seem to be 0, which means nobody is allowed to do anything to + the file or directory. + If Ant now encounters a permission set of 0 it will assume that + this is not the intended value and instead apply its own default + values. Ant used to create entries with 0 permissions itself. + The <zip> family of tasks has a new attribute preserve0permissions + that can be set to restore the old behavior. + Bugzilla Report 42122. + + * If a batch containing multiple JUnit tests running inside a forked + Java VM caused the VM to crash (or caused a timeout), the + formatters would receive an error message for the last test in the + batch. + Ant will now pass in a test with the name "Batch-With-Multiple-Tests" + instead - this is supposed to show more clearly that the last test + may not have started at all. + Bugzilla Report 45227. + + * If the number of minutes a build takes is bigger then 1000 Ant will + no longer print a thousands separator in the "elapsed time" + message. It used to be the thousands separator of the current + locale. + Bugzilla Report 44659. + + * <symlink action="delete"> used to fail if the link was broken (i.e. + pointing to a file or directory that no longer existed). It will now + silently try to remove the link. + Bugzilla Report 41285. + + * <delete file="..."> used to log a warning and not delete broken + symbolic links. <delete dir="..."/> didn't even log a warning. + The task will now try to delete them in both cases. + Bugzilla Report 41285. + + * if the dir attribute of a <fileset> points to a symbolic link and + followsymlinks is set to false, the fileset will no longer be + scanned and always seem empty. + Bugzilla Report 45741. + + * the .NET tasks that have been deprecated since Ant 1.7.0 have been + removed, please use the stand-alone Antlib you can find at + http://ant.apache.org/antlibs/dotnet/index.html + instead. + + * the logic of closing streams connected to forked processes (read + the input and output of <exec> and friends) has been changed to + deal with cases where child processes of the forked processes live + longer than their parents and keep Ant from exiting. + It is unlikely but possible that the changed logic breaks stream + handling on certain Java VMs. + Bugzilla issue 5003. + + * <checksum>'s totalproperty was platform dependent because it relied + on java.io.File#compareTo. It has now been made platform + independent, which means that totalPropery values obtained on + Windows (and other systems where the sort order of File is not case + sensitive) can be different from the values obtained with earlier + versions of Ant. + Bugzilla Report 36748. + + * globmapper didn't work properly if the "to" or "from" patterns + didn't contain a "*". In particular it implicitly added a * to the + end of the pattern(s). This is no longer the case. If you relied + on this behavior you will now need to explicitly specify the + trailing "*". + Bugzilla Report 46506. + + * <copy> silently ignored missing resources even with + failOnError="true". If your build tries to copy non-existent + resources and you relied on this behavior you must now explicitly + set failOnError to false. + Bugzilla Report 47362. + + * Ant now prefers the java.runtime.version system property over + java.vm.version for the Created-By Manifest attribute. + Bugzilla Report 47632. + + * The <image> task now supports a nested mapper. In order to + implement this, the Java API of the task had to change so any + custom subclass overriding the processFile method will need to + adapt (by overriding the new two-arg processFile method). + Bugzilla Report 23243. + + * A new property syntax can be used to set attributes from + references: ${ant.ref:some-reference} + + In most cases this will yield the exact same result as + ${toString:some-reference} - only when an attribute setter method + accepts an object type other than string and the project's + reference is an Object of matching type the new syntax will pass in + that object. + + If your build file already contains properties whose name starts + with "ant.ref:" there is a potential for collision. If your + property has been set, normal property expansion will take + precedence over the new syntax. If the property has not been set + and a reference with the postfix of your property name exists + (i.e. in a very unlikely event) then the new syntax would yield a + different result (an expanded property) than Ant 1.7.1 did. + + * A ProjectHelper implementation can now provide the default build file + name it is expecting, and can specify if they can support a specific build + file. So Ant is now capable of supporting several ProjectHelper + implementations, deciding on which to use depending of the input build file. + + * Mapper-aware selectors (depends, different, present) now accept typedef'd + FileNameMappers. + +Fixed bugs: +----------- + + * The default logger was failing to print complete stack traces for + exceptions other than BuildException when inside <ant> or + <antcall>, thus omitting often important diagnostic + information. + Bugzilla 43398 (continued). + + * Better handling of package-info.class. + Bugzilla Report 43114. + + * RPM task needed an inserted space between the define and the value. + Bugzilla Report 46659. + + * Got rid of deadlock between in, out and err in the Redirector. + Bugzilla Report 44544. + + * Caused by AssertionError no longer filtered. + Bugzilla Report 45631. + + * <zip> would sometimes recreate JARs unnecessarily. + Bugzilla Report 45902. + + * <symlink> task couldn't overwrite existing symlinks that pointed to + nonexistent files + Bugzilla Report 38199. + + * <symlink> task couldn't overwrite files that were in the way of the symlink. + Bugzilla Report 43426. + + * <symlink> task failonerror="false" does not stop build from failing + when 'ln' command returns non-zero. + Bugzilla Report 43624 + + * <touch> task couldn't differentiate between "no resources + specified" and "no resources matched." + Bugzilla Report 43799. + + * ManifestClassPath failed when a relative path would traverse the + file system root. + Bugzilla Report 44499. + + * <globmapper> had an indexoutofbounds when the prefix and postfix + overlapped. + Bugzilla Report 44731. + + * <typedef> and <taskdef> failed to accept file names with # + characters in them. + Bugzilla Report 45190 + + * A deadlock could occur if a BuildListener tried to access an Ant property + within messageLogged while a different thread also accessed one. + Bugzilla Report 45194 + + * Handle null result of system getProperty() in CommandlineJava. + Similar to Bugzilla Report 42334. + + * Length task did not process nonexistent Resources even though these might + conceivably still carry file length information. + Bugzilla Report 45271. + + * <javac>'s includeJavaRuntime="false" should work for gcj now. Note + that you may need to set includeAntRuntime to false in order to + have full control. + Bugzilla Report 34638. + + * <sql> would fail if the executed statement didn't return a result + set with some JDBC driver that dissalow Statement.getResultSet to + be called in such a situation. + Bugzilla Report 36265 + + * if the executed statement in <sql> returned a result set and an + update count, the count would be lost. + + * if an executed statement in <sql> mixes update count and result set + parts, some result sets wouldn't get printed. + Bugzilla Report 32168. + + * XmlLogger could lose messages if <parallel> is used. + Bugzilla Report 25734. + + * <scp> creates remoteToDir if it doesn't exist. + Bugzilla Report 42781 + + * CBZip2OutputStream threw an exception if it was closed prior to + writing anything. + Bugzilla Reports 32200, 45836 + + * The IPlanetDeploymentTool didn't use the configured DTD locations. + Bugzilla Report 31876. + + * The ant shell script printed a warning under Cygwin if JAVA_HOME + was not set. + Bugzilla Report 45245. + + * <filterset> sometimes incorrectly flagged infinite recursions of + filter tokens + Bugzilla Report 44226. + + * failures were treated as errors in forked JUnit tests when JUnit 4 + was used. + Bugzilla Report 43892. + + * <jar> and <manifest> disallowed manifest attributes whose name + contained the character '8'. + Bugzilla Report 45675. + + * BigProjectLogger would set the project's basedir to the current + working directory. + Bugzilla Report 45607. + + * only <formatter>s that logged to a file were notified if forked VM + crashed or a timeout occurred in <junit>. + Bugzilla Report 37312. + + * ant -v -version would print the version information twice. + Bugzilla Report 45695. + + * when nested into builds that have been invoked by <ant> tasks + <subant> might set the wrong basedir on the called projects. + Bugzilla Report 30569. + + * If the message of the failed assertion of a forked JUnit test + contained line feeds some excess output ended up in Ant's log. + Bugzilla Report 45411. + + * <symlink action="delete"> failed to delete a link that pointed to + a parent directory. + Bugzilla Report 45743. + + * <symlink action="delete"> failed if ant lacked permission to rename + the link's target. + Bugzilla Report 41525. + + * when checking whether a jar is signed, <signjar> ignored the + sigfile attribute. + Bugzilla Report 44805. + + * When using JavaMail all <mail> tasks used the same mail host + regardless of their configuration. + Bugzilla Report 37970. + + * <signjar> and <issigned> didn't handle aliases with characters other + than numbers, letters, hyphen or underscore properly. + Bugzilla Report 45820. + + * <filterset> could miss multi-character begin tokens in some cases. + Bugzilla Report 45094. + + * <depend> didn't close JARs that were part of the classpath. + Bugzilla Report 45955. + + * in some cases <depend> would delete class files even if it didn't + find the corresponding source files. + Bugzilla Report 45916. + + * <javadoc> failed if the nested <bottom> or <head> contained line + breaks. + Bugzilla Report 43342. + + * encoding="auto" has been broken in <mail> since Ant 1.7.0 and only + worked if JavaMail was available. + Bugzilla Report 42389. + + * MailLogger could cause a NullPointerException. + Bugzilla Report 44009. + + * <junit> didn't recognize failed assertions as failures if they + caused subclasses of AssertionError to be thrown (like + org.junit.ComparisonFailure that is thrown when assertEquals + fails). + Bugzilla Report 45028. + + * the Unix "ant" wrapper script failed to protect wildcards in + command line arguments in some cases. + Bugzilla Report 31601. + + * <cvstagdiff> crippled file names and could miss some entries if + multiple modules have been specified. + Bugzilla Report 35301. + + * Tasks with a "public void add(SomeType)" method failed to work as + TaskContainers at the same time. + Bugzilla Report 41647. + + * Tasks that implementes DynamicElemen or DynamicElementNS failed to + work as TaskContainers at the same time. + Bugzilla Report 41647. + + * combining SSL and authentication in <mail> and MailLogger failed in + some setups. + Bugzilla Report 46063. + + * if an error occurs while logging the buildFinished event, the + original error is now logged to System.err. + Bugzilla Report 25086. + + * <copy> failed with a NullPointerException when copying a resource + without a name. It will now fail with a meaningful error message. + Bugzilla Report 39960. + + * <xslt> now uses the configured classpath to load the factory (when + using TraX) before falling back to Ant's own classpath. + Bugzilla Report 46172. + + * <dependset> complained about files being modified in the future if + they had been just very recently (within Ant's assumed granularity + of the file system). + Bugzilla Report 43665. + + * <sshexec> didn't store the output in outputproperty if the remote + command failed. + Bugzilla Report 46340. + + * DirectoryScanner's slow-scanning algorithm that is used when you + ask for excluded or not-included files and/or directories could + miss some files and directories in the presence of recursive + exclude patterns. + + * <sort> resource collection kept only one of entries deemed equal by + the chosen Comparator. + Bugzilla Report 46527. + + * the ZipFile class used by <unzip> and others could leave the + archive open (making it undeletable on Windows as long as the java + VM was running) for files with an unexpected internal structure. + Bugzilla Report 46559. + + * The zip package now supports the extra fields invented by InfoZIP + in order to store Unicode file names and comments. + + * The zip package detects the encoding bit set by more modern + archivers when they write UTF-8 filenames and optionally sets it + when writing zips or jars. + Bugzilla Report 45548 + + * <sync> could run into a NullPointerException when faced with broken + symbolic links. + Bugzilla Report 46747. + + * The ant shell script should now support MSYS/MinGW as well. + Bugzilla Report 46936. + + * <signjar> has a new force attribute that allows re-signing of jars + that are already signed. + Bugzilla Report 46891. + + * <sshexec> now again honors failonerror in the face of connection + errors. + Bugzilla Report 46829. + + * The <replacetokens> filter threw an exception if the stream to + filter ended with a begin token. + Bugzilla Report 47306. + + * <scriptmapper>, <scriptfilter> and <scriptcondition> didn't support + the setbeans attribute. + Bugzilla Report 47336. + + * <loadproperties>' encoding attribute didn't work. + Bugzilla Report 47382. + + * Ant created tar archives could contain random bytes at the end + which confused some untar implementations. + Bugzilla Report 47421. + + * various places where unchecked PrintWriters could hide exceptions + have been revisited to now check the error status or not use a + PrintWriter at all. + Bugzilla Report 43537. + + * filesetmanifest="mergewithoutmain" in <jar> didn't treat inline + manifests as expected. + Bugzilla Report 29731. + + * <record> didn't work properly with nested builds. + Bugzilla Report 41368. + + * <jar> with filesetmanifest different from skip didn't work if the + update attribute has been set to true. + Bugzilla Report 30751. + + * The default stylesheets for <junitreport> failed to properly escape + XML content in exception stack traces. + Bugzilla Report 39492. + + * AntClassLoader didn't set the proper CodeSource for loaded classes. + Bugzilla Report 20174. + + * AntClassLoader.getResourceAsStream would return streams to + resources it didn't return with getResource and to classes it + failed to load. + Bugzilla Report 44103. + + * Logging exceptions without a message would cause a + NullPointerException. + Bugzilla Report 47623. + + * WeblogicDeploymentTool could fail on platforms with a file + separator other than "/". + Bugzilla Report 35649. + + * The update attribute of the modified selector was ignored. + Bugzilla Report 32597. + + * <manifest> and <jar> can now merge Class-Path attributes from + multiple sources and optionally flatten them into a single + attribute. + The default behaviour still is to keep multiple Class-Path + attributes if they have been specified and to only include the + attributes of the last merged manifest. + Bugzilla Report 39655. + + * <delete> didn't work correctly with a <modified> selector because + it was scanning the same filesets more than once. + Bugzilla Report 43574. + + * when using custom filterreaders with the <filterreader classname=""> + syntax Ant could leak memory. + The problem didn't occur when using <typedef> or <componentdef> to + define the filterreader which is the recommended approach. + Bugzilla Report 45439. + + * Ant didn't set the proper "magic" value for tar entries containing + long file names in GNU longfile mode. + Bugzilla Report 47653. + + * The tar task failed to recognize that the archive had to be + (re-)created in some cases where the sources are filesystem based + resources but not filesets. + Bugzilla Report 48035. + + * <sshexec>'s outputproperty was prefixed by the executed command + when the command attribute has been used, breaking backwards + compatibility to Ant 1.7.0. + Bugzilla Report 48040. + + * different task instances of the same <scriptdef>ed tasks could + overwrite each others attributes/nested elements. + Bugzilla Report 41602. + + * The Hashvalue algortihm implementation of the modified task could + fail to read the file(s) completely. + Bugzilla Report 48313. + +Other changes: +-------------- + + * The get task now also follows redirects from http to https + Bugzilla Report 47433 + + * A HostInfo task was added performing information on hosts, including info on + the host ant is running on. + Bugzilla Reports 45861 and 31164. + + * There is now a FileProvider interface for resources that act as a source + of filenames. This should be used by tasks that require resources + to provide filenames, rather than require that all resources + are instances or subclasses of FileResource. + Bugzilla Report 43348 + + * There is now a URLProvider interface for resources that act as a + source of URLs. This should be used by tasks that require resources + to provide URLs, rather than require that all resources are + instances or subclasses of URLResource. + + * Fixcrlf now gives better error messages on bad directory attributes. + Bugzilla Report 43936 + + * a new property ant.project.default-target holds the value of the + current <project>'s default attribute. + + * a new property ant.project.invoked-targets holds a comma separated + list of the targets that have been specified on the command line + (the IDE, an <ant> task ...) when invoking the current project. + + * The <type> resource selector has had an "any" type added for better + configurability. + + * Ant should detect the OS as both a Mac and a Unix system when + running on OpenJDK. + Bugzilla Report 44889. + + * new protected getConnection and getStatement methods allow + subclasses of SQLExec more control - or access to the cached + instances when overriding other methods like runStatements. + Bugzilla Report 27178. + + * <sql> has a new failOnConnectionError attribute that can be used to + keep a build going even if the task failed to connect to the + database. + Bugzilla Report 36712. + + * A new attribute strictDelimiterMatching can be used to ignore case + or whitespace differences when <sql> searches for delimiters. + This is useful if you execute a SQL script that has contains "GO" + and "go" as delimiters. + Bugzilla Report 26459. + + * A new showWarnings attribute of <sql> allows warnings to be logged. + Bugzilla Report 41836. + + * A new treatWarningsAsErrors attribute of <sql> can be used to fail + a build if a warning occurs. + Bugzilla Report 41836. + + * Ant now supports scoped properties (see Local task). + Bugzilla Report 23942. + + * <sql>'s CSV output can be controlled via the new attributes + csvColumnSeparator and csvQuoteCharacter. + Bugzilla Report 35627. + + * <ftp>'s logging has been improved. + Bugzilla Reports 30932, 31743. + + * It is now possible to disable <ftp>'s remote verification. + Bugzilla Report 35471. + + * <sshexec> now supports input in a way similar to <exec> + Bugzilla Report 39197. + + * <scp> can now preserve the file modification time when downloading + files. + Bugzilla Report 33939. + + * the new task sshsession can run multiple tasks in the presence of + an SSH session providing (local and remote) tunnels. + Bugzilla Report 43083. + + * ZipOutputStream has been sped up for certain usage scenarios that + are not used by Ant's family of zip tasks. + Bugzilla Report 45396. + + * <echo> supports an "output" Resource attribute as an alternative to "file". + + * <sql> "output" attribute now supports any Resource in addition to a file. + + * <scp> no longer requires a passphrase when using key based + authentication. + Bugzilla Report 33718. + + * a new failOnEmptyArchive attribute on <unzip> and <untar> can now + make the task fail the build if it tries to extract an empty + archive. + + * <unzip> and <untar> have a new attribute stripAbsolutePathSpec. + When set to true, Ant will remove any leading path separator from + the archived entry's name before extracting it (making the name a + relative file name). + Bugzilla Report 28911. + + * <unzip> will now detect that it was asked to extract a file that is + not an archive earlier if the file is big. + Bugzilla Report 45463. + + * New file and resource selectors <readable/> and <writable/> have + been added that select file which the current process can read or + write. + Bugzilla Report 45081. + + * The filename file selector has a new attribute regex that allows + files to be selected by matching their names against a regular + expression. + Bugzilla Report 45284 + + * The name resource selector has a new attribute regex that allows + resources to be selected by matching their names against a regular + expression. + Bugzilla Report 45284 + + * Enhanced performance of Project.fireMessageLoggedEvent and DirectoryScanner + Bugzilla Reports 45651 and 45665 + + * The package list location for offline links can now be specified as + an URL. + Bugzilla Report 28881 + + * <echoxml> now supports XML namespaces. + Bugzilla Report 36804. + + * A new listener for <junit> has been added that tries to invoke the + tearDown method of a TestCase if that TestCase was run in a forked + VM and the VM crashed or a timeout occurred. See the <junit> task's + manual page for details. + Bugzilla Report 37241. + + * The Jar task now supports the addition of a jar index file in update mode. + Previously the absence of the index was not enough to trigger the rebuild; + some other update was necessary. + Bugzilla report 45098. + + * <ant> has a new attribute "useNativeBasedir" that makes the child + build use the same basedir it would have used if invoked from the + command line. No matter what other attributes/properties have been + set. + Bugzilla Report 45711. + + * <patch> has a new optional failOnError attribute. + Bugzilla Report 44772. + + * Antlib descriptors will now be parsed by the configured + ProjectHelper if the implementation overrides the new + canParseAntlibDescriptor and parseAntlibDescriptor methods. If the + configured helper doesn't override the methods, a new instance of + ProjectHelper2 will be used just like in Ant 1.7.1. + Bugzilla Report 42208. + + * It is now possible to explicitly set the executable used by + <signjar>. + Bugzilla Report 39189. + + * <compositemapper>'s order of results is now predictable. + Bugzilla Report 44873 + + * a new <firstmatchmapper> has been added, which works similar to + <compositemapper> but only returns the results of the first nested + mapper that matches. + Bugzilla Report 44873 + + * <get> has a new maxtime attribute that terminates downloads that + are taking too long. + Bugzilla Report 45181. + + * <ftp> now supports selectors for remote directories as well. + Bugzilla Report 44726. + + * In some cases Ant fails to rename files if the source or target + file has just recently been closed on Windows. It will now try to + delete the offending file once again after giving the Java VM time + to really close the file. + Bugzilla Report 45960. + + * two new properties can be used to set the MIME-Type and charset + used by MailLogger. + Bugzilla Report 27211. + + * a new attribute of <mail> allows the task to succeed if it can + reach at least one given recipient. + Bugzilla Report 36446. + + * two new properties allow MailLogger to send a fixed text instead of + the log file. + Bugzilla Report 38029. + + * <cvsversion> is supposed to support CVSNT now. + Bugzilla Report 31409. + + * <cvs>' port attribute should now work for all clients that use the + environment variable CVS_PSERVER_PORT instead of the "official" + CVS_CLIENT_PORT. + Bugzilla Report 30124. + + * <cvsversion> now works for local repositories as well. + + * <cvstagdiff> has an option to ignore removed files now. + Bugzilla Report 26257. + + * <cvs> and friends now support modules with spaces in their names + via nested <module> elements. + + * A new attribute "ignoreEmpty" controls how <concat> deals when + there are no resources to concatenate. If it is set to false, the + destination file will be created regardless, which reinstates the + behavior of Ant 1.7.0. + Bugzilla Report 46010. + + * If the new remote attribute is set to true, <cvschangelog> can now + work against a remote repository without any working copy. + Bugzilla Report 27419. + + * start and end tags can now be used instead of dates in + <cvschangelog>. + Bugzilla Report 27419. + + * MailLogger and <mail> can now optionally enable support for + STARTTLS. + Bugzilla Report 46063. + + * <import> has new attributes "as" and "prefixSeparator" that can be + used to control the prefix prepended to the imported targets' + names. + + * a new task <include> provides an alternative to <import> that + should be preferred when you don't want to override any targets. + + * delete has a new attribute removeNotFollowedSymlink. If set to + true, symbolic links not followed (because followSymlinks was false + or the number of symlinks was too big) will be removed. + Bugzilla Report 36658. + + * the os and osfamily attributes of <chown>, <chgrp>, <chmod> and + <attrib> can now be used to run the commands on operating systems + other than their "native" environment, i.e. non-Unix or non-Windows + operating systems respectively. + Bugzilla Report 7624. + + * a new resource collection <mappedresources> generalizes the prefix + and fullpath attributes of <zipfileset> to arbitrary mappers that + can be applied to arbitrary resource collections. + Bugzilla Report 4240. + + * <tarfileset> and <zipfileset> have a new attribute + errorOnMissingArchive that allows "optional" filesets that don't + break the build if the archive doesn't exist. + Bugzilla Report 46091. + + * <javadoc> has new attributes that correspond to the + -docfilessubdirs and -excludedocfilessubdir command line arguments. + Bugzilla Report 34455. + + * <xslt> now fails early if a specified stylesheet doesn't exist. + Bugzilla Report 34525. + + * <xslt> now has an option to suppress transformer warnings. This + option only has an effect for processors that support this feature; + the "trax" processor included with Ant does support it. + Bugzilla Report 18897. + + * <xslt> has two new attributes failOnError and + failOnTransformationError that can be used to not make the build + process proceed if an error occurs. + Bugzilla Report 36260. + + * <xslt> has a new attribute failOnNoResources that can be used to + make the build fail/continue if the collection of resources to + transform is empty. + Bugzilla Report 46274. + + * It is now possible to define system properties that should be set + during xslt's transformation. This can be used to enable XInclude + processing in Xerces, for example. + Bugzilla Report 36653. + + * a new resource collection <archives> can be used to specify + collections of ZIP and TAR archives as sources. It extracts them on + the fly. This is a generalization of the <zipgroupfileset> found + as nested element of <zip> and friends. + Bugzilla Report 46257. + + * <dependset> has a new verbose attribute that makes the task list + all deleted targets and give a hint as to why it deleted them. + Bugzilla Report 13681. + + * <replaceregexp> now supports arbitrary filesystem based resource + collections. + Bugzilla Report 46341. + + * <replace> now supports arbitrary filesystem based resource + collections. + Bugzilla Report 24062. + + * token and value of <replace>'s nested <replacefilter> can now also + be specified as nested elements to allow multiline content more + easily. + Bugzilla Report 39568. + + * <replace> and <replaceregexp> can now optionally preserve the file + timestamp even if the file is modified. + Bugzilla Report 39002. + + * The <replace> child-elements <replacetoken> and <replacevalue> have + a new attribute that controls whether properties in nested text get + expanded. + Bugzilla Report 11585. + + * <replace> has a new attribute failOnNoReplacements that makes the + build fail if the task didn't do anything. + Bugzilla Report 21064. + + * <sync>'s <preserveInTarget> has a new attribute that controls + whether empty directories should be kept. + Bugzilla Report 43159. + + * ant -diagnostics now checks that it can read as much from the + temporary directory as it has written. This may help detecting a + full filesystem. + Bugzilla Report 32676. + + * <pathconvert> has a new preserveduplicates attribute--historically + these were eliminated in the interest of behaving in the manner + of a "path." + + * <javac>'s source and target attributes are no longer ignored when + using gcj. + Bugzilla Issue 46617. + + * ant -diagnostics now outputs information about the default XSLT + processor. + Bugzilla Issue 46612. + + * the ZIP library will now ignore ZIP extra fields that don't specify + a size. + Bugzilla Report 42940. + + * CBZip2OutputStream now has a finish method separate from close. + Bugzilla Report 42713. + + * the <zip> and <unzip> family of tasks has new options to deal with + file name and comment encoding. Please see the zip tasks' + documentation for details. + + * <input ...><handler type="secure" /></input> now uses previously + undocumented SecureInputHandler shipped with Ant 1.7.1. + + * Command line arguments for <exec> and similar tasks can now have + optional prefix and suffix attributes. + Bugzilla Report 47365 + + * <apply>'s srcfile and targetfile child elements can now have + optional prefix and suffix attributes. + Bugzilla Report 45625 + + * <jar> has a new attribute to enable indexing of META-INF + directories which is disabled for backwards compatibility reasons. + Bugzilla Report 47457 + + * <apt>'s executable attribute can be used to specify a different + executable. + Bugzilla Report 46230. + + * <rmic>'s new executable attribute can be used to specify a + different executable. + Bugzilla Report 42132. + + * <javac>, <rmic>, <javah> and <native2ascii> now provide a nested + element to specify a classpath that will be used when loading the + task's (compiler) adapter class. + Bugzilla Report 11143. + + * <javac>, <rmic>, <javah> and <native2ascii> now provide a nested + element to specify the task's (compiler) adapter as an instance of + a class that has been defined via typedef/componentdef. This + allows more control over the classpath and allows adapters to be + defined in Antlibs easily. + + * A new subclass org.apache.tools.ant.loader.AntClassLoader5 of + AntClassLoader has been added which overrides getResources + which became non-final in ClassLoader with Java5+ so + this method now behaves as expected. + The new subclass will be used by Ant internally if it is available + and Ant is running on Java5 or more recent. + Bugzilla Report 46752. + + * a new attributes can chose a different request method than GET for + the http condition. + Bugzilla Report 30244 + + * <splash> now supports a configurable display text and a regular + expression based way to determine progress based on logged messages. + Bugzilla Report 39957. + + * the number of retries on error in <get> is now configurable. <get> + can be told to not download files that already exist locally. + Bugzilla Report 40058. + + * Ant now builds against commons-net 2.0 as well. + Bugzilla Report 47669. + + * A new nested element connectionProperty of <sql> allows setting of + arbitrary JDBC connection properties. + Bugzilla Report 33452. + + * A new islastmodified condition can check the last modified date of + resources. + + * <rmic> has a new destDir attribute that allows generated files to + be written to a different location than the original classes. + Bugzilla Report 20699. + + * <rmic> has a new listfiles attribute similar to the existing one of + <javac>. + Bugzilla Report 24359. + + * It is now possible to suppress the "FAILED" lines sent to Ant's + logging system via <junit>'s new logFailedTests attribute. + Bugzilla Report 35073. + + * <propertyfile> now can delete entries. + + * The <resources> resource collection can now optionally cache its + contents. + + * A new <resourceexists> condition can check whether resources exists. + + * <sql> has two new attributes errorproperty and warningproperty that + can be set if an error/warning occurs. + Bugzilla Report 38807. + + * <sql> has a new attribute rowcountproperty that can be used to set + a property to the number of rows affected by a task execution. + Bugzilla Report 40923. + + * when Ant copies files without filtering, it will now use NIO + channels. + Bugzilla Report 30094. + + * <get> has a new attribute that can be used to disable caching on + HTTP connections at the HttpUrlConnection level. + Bugzilla Report 41891. + + * <tar> and <zip> (and tasks derived from <zip>) will now create the + parent directory of the destination archive if it doesn't exist. + Bugzilla Report 45377. + + * A new filterreader <sortfilter> that sorts input lines has been + added. + Bugzilla Report 40504. + + * A new token filter <uniqfilter> that suppresses tokens that match + their ancestor token has been added. + + * <rootfileset>s nested into <classfileset>s can now use a dir + attribute different from the <classfileset>. + Bugzilla Report 37763. + + * <path> can now optionally cache its contents. + + * <property> can now specify values as nested text. + Bugzilla Report 32917. + + * a new parentFirst attribute on <javaresource> allows resources to + be loaded from the specified classpath rather than the system + classloader. + Bugzilla Report 41369. + + * <property location="from" basedir="to" relative="true"/> can now + calculate relative paths. + + * The <name> selector supports a new handleDirSep attribute that + makes it ignore differences between / and \ separators. + Bugzilla Report 47858. + + * <get> now supports resource collections (as long as the resources + contained provide URLs) and can get multiple resources in a single + task. + + * <import> can now import non-File resources if they provide an URL + - as the <url> and <javaresource> resources do. + Bugzilla Report 29251 + + * <import> can now import multiple resources specified as resource + collections. + Bugzilla Report 22269. + + * a new <resourcelist> type is similar to <filelist> but can read the + list of resources from non-file resources and may return resources + that are not files. + + * a new filterreader appendtolines complements prefixlines. + + * a new top level element extension-point allows build files to be + extended with custom targets more easily. + +Changes from Ant 1.7.0 TO Ant 1.7.1 +============================================= + +Changes that could break older environments: +------------------------------------------- + +* String resources only have properties single expanded. If you relied on + <string> resources being expanded more than once, it no longer happens. + Bugzilla report 42277. + +* A String resource's encoding attribute was only taken into account when + set from the resource's OutputStream; the InputStream provided the String's + binary content according to the platform's default encoding. Behavior has + been modified to encode outgoing (InputStream) content as well as encoding + incoming (OutputStream) content. + +* <java> with fork now returns gives -1 instead of 0 as result when failonerror + is false and some exception (including timeout) occurs. Br 42377. + +* ant-type attribute has been marked as deprecated and a warning has been + issued if it is encountered in the build file. + +Fixed bugs: +----------- + +* The default logger was failing to print complete stack traces for exceptions + other than BuildException, thus omitting often important diagnostic + information. Bugzilla 43398. + +* Error in FTP task + Bugzilla report 41724 + +* Regression: Locator fails with URI encoding problem when spaces in path + Bugzilla report 42222 + +* Regression in Locator: running Ant off a network share does not work: + message "URI has authority component" appears + Bugzilla report 42275 + +* Improvements in AntClassLoader Speed. + Bugzilla report 42259 + +* Error in handling of some permissions, most notably the AllPermission on + jdk 1.5 + Bugzilla report 41776 + +* Replace task summary output incorrect. + Bugzilla report 41544 + +* Dependset crashes ant when timestamp on files change during Dependset + execution. + Bugzilla report 41284 + +* Bug in org.apache.tools.ant.types.resources.comparators.Date + Bugzilla report 41411 + +* <junit> in Ant 1.7.0 could throw NPE if no <classpath> was defined. + Bugzilla report 41422. + +* In Ant 1.7.0, <fileset> in <javadoc> does not by default include only + **/*.java as the documentation claims and earlier revisions did. + Bugzilla report 41264. + +* SPI support in jar was broken. + Bugzilla report 41201. + +* jsch-0.1.30 causes SCP task to hang + Bugzilla report 41090. + +* Target from imported file listed twice in projecthelp. + Bugzilla report 41226. + +* <sql> task double-expands properties if expandproperties is true, + and expands properties if expandproperties is false. + Bugzilla report 41204. + +* Rolling back Bugzilla 32927 (set a default description for a javadoc tag + if not set) as it caused a BC problem. + Bugzilla report 41268. + +* <apt> forks properly and so memory settings are picked up. + Bug report 41280. + +* Regression: NPE was thrown when using <pathconvert> against a + (third-party instantiated) fileset with null Project reference. + +* Strip out all -J arguments to non forking rmic adapters, specifically + the Sun and Weblogic compilers. + Bug report 41349 + +* Synchonization issues in PropertyHelper. Bugzilla 41353. + +* <concat binary="true" append="true"> did not append. Bugzilla 41399. + +* -autoproxy turns Java1.5+ automatic proxy support on. Bugzilla 41904 + +* Handle null result of system getProperty(). Bugzilla 42334. + +* Regression: concat fixlastline="true" should not have applied to + nested text, but did in Ant 1.7.0. Bugzilla 42369. + +* Regression: ant.version was not passed down in <ant>, <subant>. + This worked in Ant 1.6.5, but not in 1.7.0. + ant.core.lib (added in 1.7.0) was also not being propagated. + Bugzilla bug 42263 + +* Regression: bzip2 task created corrupted output files for some inputs. + Bugzilla bug 41596. + +* Regression: <available> with <filepath> did not work. + Bugzilla 42735. + +* ant script, cd may output to stdout. + Bugzilla 42739. + +* Modified selector doesn't update the cache if only one file has changed. + Bugzilla 42802. + +* Regression: Path subclasses that overrode list() stopped working in + resourceCollection contexts in Ant 1.7.0. Bugzilla 42967. + +* <property> supports loading from xml based property definition. + Bugzilla 42946 + +* <junit> supports collecting and rerunning failed test cases + (textXXX methods). Bugzilla 42984. + +* War task failed with "No WEB-INF/web.xml file was added" when called + a second time. Bugzilla 43121. + +* FilterMapper could throw an NPE. + Bugzilla 43292. + +* Regession nested macrodefs with elements could cause StackOverFlow. + Bugzilla 43324. + +* Some changes to <junit> broke third party tasks that extend it (like + Apache Cactus' Ant task). The changes have been modified so that + subclases should now work again - without any changes to the + subclass. + +Other changes: +-------------- + +* Various small optimizations speed up common tasks such as <javac> on large + filesets, reducing both I/O and CPU usage. + +* Profiling logger has been added with basic profiling capabilities. + +* <script> now has basic support for JavaFX scripts + +* SSH task can now take a command parameter containing the commands to execute. + This allows you to connect to a server and execute a number of commands + without constantly reconnecting for each command. + +* Upgraded XML API to XML commons version 1.3.04. + +* Upgraded to Xerces 2.9.0 + +* <script> can now work with bsf.jar and js.jar in its <classpath>. + +* add errorProperty and updatedProperty to <javac> + Bugzilla 35637 and 28941. + +* add classpathref attribute to <whichresource> + Bugzilla 41158. + +* reduce logging noise of <apply skipemptyfilesets="true"> + Bugzilla 29154 + +* Show Previous Revision in the tagdiff.xsl stylesheet + Bugzilla 29143 + +* Allow <mapper refid> to refer directly to a FileNameMapper instance. + +* If you try and use a type in a namespace (or an antlib), and the type is not + recognized but there are other definitions in that namespace, Ant lists what + the known definitions are. This helps you find spelling errors. + +* Add a <last> resource collection, corresponding to <first>. + +* Add new <truncate> task. + +* <junitreport> xsl stylesheets allow setting the title used in <title> and <h1> tags by + using <report><param> element. Bugzilla 41742. + +* Add IgnoreDependenciesExecutor for weird cases when the user wants to run + only the targets explicitly specified. + +* Patternset allows nested inverted patternsets using <invert>. + +* <manifest> checks for validity of attribute names. + +* JUnitVersionHelper.getTestCaseClassName is now public. Bugzilla 42231 + +* <string> resource supports nested text. Bugzilla bug 42276 + +* <scriptdef> now sources scripts from nested resources/resource collections. This lets you + define scripts in JARs, remote URLs, or any other supported resource. Bugzilla report 41597. + +* <concat> is now usable as a single-element ResourceCollection. + +* It is now possible to provide the value of a <striplinecomments> filter's + <comment> nested element as nested text instead of using the 'value' + attribute. + +* A new logger, BigProjectLogger, lists the project name with every target + +* Default text added to macrodef. Bugzilla report 42301. + +* "rawblobs" attribute added to SQL task. + +* Add new retry task container. + +* <jar> has a new strict attribute that checks if the jar complies with + the jar packaging version specification. + +* <javac> has a new attribute - includeDestClasses. + Bugzilla 40776. + +* <fileset> has a new attribute - errorOnMissingDir. + Bugzilla 11270. + +* <javac> handles package-info.java files, there were repeatedly compiled. + Bugzilla 43114. + +* SecureInputHandler added to use Java 6 System.console().readPassword() + when available. + +Changes from Ant 1.6.5 to Ant 1.7.0 +=================================== + +Changes that could break older environments: +------------------------------------------- + +* Initial support for JDK 6 (JSR 223) scripting. + <*script*> tasks will now use javax.scripting if BSF is + not available, or if explicitly requested by using + a "manager" attribute. + +* Removed launcher classes from nodeps jar. + +* <classconstants> filter reader uses ISO-8859-1 encoding to read + the java class file. Bugzilla report 33604. + +* Defer reference process. Bugzilla 36955, 34458, 37688. + This may break build files in which a reference was set in a target which was + never executed. Historically, Ant would set the reference early on, during parse + time, so the datatype would be defined. Now it requires the reference to have + been in a bit of the build file which was actually executed. If you get + an error about an undefined reference, locate the reference and move it somewhere + where it is used, or fix the depends attribute of the target in question to + depend on the target which defines the reference/datatype. + As a result of testing on real live build scripts, a fall-back mechanism + was put it place to allow references that are out-of-band to be resolved. If + this happens a big warning message is logged. This fall-back mechanism will + be removed in Ant 1.8.0. + +* <script> and <scriptdef> now set the current thread context. + +* Unrestrict the dbvendor names in the websphere element of the ejbjar task. + Bugzilla Report 40475. + +* <env> nested element in <java>, <exec> and others is now case-insensitive + for windows OS. Bugzilla Report 28874. + +* Removed support for xalan1 completely. Users of Xalan1 for Ant builds will + have to stay at ant 1.6.5 or upgrade to xalan2. + +* Use org.apache.log4j.Logger instead of org.apache.log4j.Category. + Category has been deprecated for ~2 years and has been removed from + the log4j code. Logger was introduced in log4j 1.2 so users of + log4j 1.1 and log4j 1.0 need to upgrade to a newer version of log4j. + Bugzilla Report 31951. + +* build.sysclasspath now also affects the bootclasspath handling of + spawned Java VMs. If you set build.sysclasspath to anything other + than "ignore" (or leave it unset, since "ignore" is the default when + it comes to bootclasspath handling), then the bootclasspath of the + VM running Ant will be added to the bootclasspath you've specified. + +* The <java fork="false"> now as per default installs a security manager + using the default permissions. This is now independent of the + failonerror attribute. Bugzilla report 33361. + +* <signjar> now notices when the jar and signedjar are equal, and switches + to the same dependency logic as when signedjar is omitted. This may break + something that depended upon signing in this situation. However, since + invoking the JDK jarsigner program with -signedjar set to the source jar + actually crashes the JVM on our (Java1.5) systems, we don't think any + build files which actually worked will be affected by the change. + +* <signjar> used to ignore a nested fileset when a jar was also provided as an + attribute, printing a warning message; now it signs files in the fileset. + +* An improved method of handling timestamp granularity differences between + client and server was added to the <ftp> task. FTP servers typically + have HH:mm timestamps whereas local filesystems have HH:mm:ss timestamps. + Previously, this required tweaking with the timediffmillis attribute + which also was used to handle timezone differences. Now, there is a new + timestampgranularity attribute. The default value for get operations is 0 + since the user has the more powerful preservelastmodified attribute to work + with. Since this is not available on put operations the default value + adds a minute to the server timestamp in order to account for this, + Scripts which previously used timediffmillis to do this compensation may + need to be rewritten. timediffmillis has now been deprecated. + +* Support for the XSL:P XML parser has been removed. + Bugzilla Report 23455. + +* Visual Age for Java optional tasks removed as the required library is no + longer available. + +* Testlet (test) optional task removed as the required library is no + longer available. + +* IContract optional task removed as the required library is no + longer available. + +* Metamata (maudit, mmetrics, and mparse tasks) removed as the required + library is no longer available. + +* Sitraka (jpcoverage, jpcovmerge, jpcovreport) tasks suppressed as the + required library is no longer available. + +* <fixcrlf> used \r (Mac) line endings on OS X, whose proper line separator + is \n (Unix). Bugzilla report 39585. + +* <scp> now optionally supports the sftp protocol, you may need a + newer jsch.jar. Bugzilla Report 39373. + +* Ant launcher program prints errors to stderr, and exits with a 2 exit code + value if, for any reason, it cannot actually start Ant proper. This will only + affect programs/scripts that called the launcher and which did not want to + receive an error if Ant itself would not start + +* All .NET tasks are now deprecated in favor of the new .NET Antlib: + http://ant.apache.org/antlibs/dotnet/index.html + +Fixed bugs: +----------- +* Directory deletion did not work properly. + Bugzilla 40972. + +* docletpath attribute of javadoc was ignored. + Bugzilla 40900. + +* Fixed incorrect recursion in DOMUtil.listChildNodes(). + Bugzilla 40918. + +* CompressedResource.compareTo() did not + take comparison with another CompressedResource into account. + Bugzilla 40949. + +* Avoid possible NPE in Jar.java. + Bugzilla 40847. + +* regression in attribute prefix (+ others) for refid in zipfileset and tarfileset. + Bugzilla 41004, 30498. + +* dependset failed if the basedir of a target fileset did not exist. + Bugzilla 40916. + +* Recursive filtering encountered NullPointerExceptions under certain + circumstances. Bugzilla 41086. + +* XmlProperty overrides previously set property value when handling duplicate + elements. Bugzilla 41080. + +* Having many tasks causes OOM. Bugzilla 41049. + +* Regression: <path> was evaluating nested content only once, so that it could + not e.g. pick up files that didn't exist the first time through. + Bugzilla 41151. + +* OOM caused by IH holding on to classes and thus their classloaders. + Bugzilla 28283 and 33061. + +* <delete> doesn't delete when defaultexcludes="false" and no includes is set + fixed. Bugzilla 40313. + +* Behavior change of DirectoryScanner/AbstractFileset when conditional include + patterns are used. Bugzilla 40722. + +* <javac> fails with NPE when compiling with eclipse ecj 3.1.x. + Bugzilla 40839. + +* JUnitTestRunner had a NPE when unable to create parser, the exception + containing the error did not get reported. Bugzilla 36733. + +* <checksum> with file and todir option failed. Bugzilla report 37386. + +* <path location="loc"> was broken (Regression from beta1). + Bugzilla report 40547. + +* Nested fileset in <cab> did not work. Bugzilla report 39439. + +* The ant wrapper script should now correctly locate the java + executable in more recent IBM JDKs for AIX as well. + +* URLResource did not close jar files, and also did not disconnect HTTPConnection (s). + +* Error calling junitreport. Bugzilla 40595. + +* <junittask/> created junitvmwatcher*.properties files but did not close and delete them. + +* <xmlproperty> did not create properties for empty leaf elements. + Bugzilla report 26286. + +* UnknownElement.maybeConfigure always configured. + Bugzilla report 40641. + +* No check for refid when prefix attribute is set in zipfileset. + Bugzilla report 30498. + +* Fix for junit4 issue introduced since beta2. + Bugzilla report 40682. + +* Error in duplicate project name with <import> and <antcall>. + Bugzilla report 39920. + +* junit4 did not work with fork=no and junit4 in $ANT_HOME/lib. + Bugzilla report 40697. + +* PathConvert on Windows should process forward and back slashes equivalently. + Bugzilla report 32884. + +* ant.bat now looks in %USERPROFILE% and %HOMEDRIVE%%HOMEPATH% in addition to + %HOME% for pre/post batch files. Bugzilla report 39298. + +* The inheritance hierarchy of the legacy <path> type was changed; code built + against Ant 1.7 would therefore no longer execute on older versions of Ant. + Since <path> is historically heavily used this was undesirable, and since it + is also avoidable, the change to <path>'s taxonomy was reverted. + +* <zip filesonly="true"> included empty directories. Bugzilla report 40258. + +* Invalid hash code of Target causes XmlLogger to fail. + Bugzilla report 40207. + +* Macro element did not include top level Text. Bugzilla report 36803. + +* AntClassLoader did not isolate resources when isolate was set. Bugzilla report 38747. + +* Diagnostics broken when using java 1.4. Bugzilla report 40395. + +* Exception reporting in <copy> was broken. Bugzilla report 40300. + +* Handling of corrupt tar files, TarInputStream.read() never returns EOF. + Bugzilla report 39924. + +* Some bugs in ReaderInputStream. Bugzilla report 39635. + +* <antlr> did not recognise whether the target is up-to-date for html option. + Bugzilla report 38451. + +* Documented minimal version of jsch now 0.1.29. + Bugzilla report 40333. + +* <available> searched parent directories for files. + Bugzilla report 37148. + +* The build could be halted if a file path contained more ".." components than + the actual depth of the preceding path. Now such paths are left + alone (meaning they will likely be treated as nonexistent + files). Bugzilla Report 40281. + +* Converting a <dirset> to a string was broken. Bugzilla Report 39683. + +* Manifests have improved line length handling, taking care of encoding. + Bug reports 37548 / 34425. + +* <manifest> now closes the inputstream explicitly. Bug report 39628. + +* <rpm> now also correctly searches the first element of the path. + Bug report 39345. + +* ant.bat now handles classpath set to "". Bug report 38914. + +* <junit> now supports JUnit 4. Bugzilla Report 38811. + +* <junit> can now work with junit.jar in its <classpath>. Bugzilla + Report 38799. + +* Some potential NullPointerExceptions, Bugzilla Reports 37765 and 38056. + +* Problem when adding multiple filter files, Bugzilla Report 37341. + +* Problem referencing jars specified by Class-Path attribute in manifest + of a ant task jar file, when this ant task jar file is located in + a directory with space, Bugzilla Report 37085. + +* Backward incompatible change in ZipFileSet, Bugzilla Report 35824. + +* Wrong replacement of file separator chars prevens junitbatchtest + from running correctly on files from a zipfileset. Bugzilla Report 35499. + +* Calling close twice on ReaderInputStream gave a nullpointer exception. + Bugzilla Report 35544. + +* Memory leak from IntrospectionHelper.getHelper(Class) in embedded + environments. Bugzilla Report 30162. + +* Translate task does not remove tokens when a key is not found. + It logs a verbose message. Bugzilla Report 13936. + +* Incorrect task name with invalid "javac" task after a "presetdef". + Bugzilla reports 31389 and 29499. + +* <manifest> was not printing warnings about invalid manifest elements. + Bugzilla report 32190. + +* <replace> got out of memory on large files (part of report 32566). + <replace> can now handle files as long as there is enough disk space + available. + +* Commandline.describeCommand() methods would attempt to describe + arguments even when none, other than the executable name, were present. + +* Create signjar's helper ExecTask instance directly rather than by + typedef discovery mechanisms. Bugzilla report 33433. + +* FileUtils.resolveFile() promised to return absolute files but + did not always do so. + +* <ftp> failed to retrieve a file when the path towards the file contained + an element starting with . Bugzilla report 33770. + +* "<rmic> always compiles on Java1.5" bugzilla report=33862. Fixed default + stub version to always be "compat", even on Java1.5+. + +* The .NET compilation tasks failed if filenames given as references + contained spaces. Bugzilla Report 27170. + +* SQL task would try access result sets of statements that didn't + return any, causing problems with Informix IDS 9.2 and IBM DB2 8.1 + FixPak 6 (or later). Bugzilla Reports 27162 and 29954. + +* Task.init() was called twice for most tasks. Bugzilla Report 34411. + +* JavaTest testcases sometimes fail on windows. Bugzilla Report 34502. + +* Targets with identical name work in imported project. Bugzilla Report 34566. + +* DemuxOutputStream now uses a WeakHashMap to store the thread-stream mapping, + to avoid holding on to thread references after they terminate. + +* <xmlvalidate> and <schemavalidate> create a new parser for every file in a + fileset, and so validate multiple files properly. Bugzilla Report 32791. + +* <tar> / <untar> now accepts files upto 8GB, <tar> gives an error if larger + files are to be included. This is the POSIX size limit. + +* <junitreport> removed line-breaks from stack-traces. Bugzilla + Report 34963. + +* Off-by-one error in environment setup for execution under OpenVMS fixed. + +* Bugzilla report 36171: -noclasspath crashes ant if no system + classpath is set. + +* <pvcs> used wrong switch for retrieving revisions by label. + Bugzilla Report 36359. + +* <sshexec> closed System.out, disabling output on second and subsequent + invocations. Bugzilla report 36302. + +* <cvschangelog> was crashing with CVS versions >= 1.12.x due to change in + the date format. Bugzilla report 30962. + +* The same IntrospectionHelper instance was continuously added as a listener + to project. Bugzilla report 37184. + +* FileUtils.toURI() was not encoding non-ASCII characters to ASCII, + causing impossibility to process XML entities referenced by XML + documents in non ASCII paths. Bugzilla report 37348. + +* > 1 ssh invocations to a given host would fail. Bugzilla report 36207. + +* EmailTask was eating SMTP error messages. Bugzilla report 37547. + +* PropertySet API setMapper(...) didn't properly set up the Mapper. + Bugzilla report 37760. + +* Proper return code for ant.bat. Bugzilla report 13655. + +* Project not set on ChainReaderHelpers used by the Redirector. + Bugzilla report 37958. + +* Copy task would fail on locked (or otherwise uncopyable) files even if + failonerror set to false. Bugzilla report 38175. + +* <junit> task did not print all the Test names when using forkmode='once'. + Bugzilla report 37426. + +* <available> could leak resources, Bugzilla Report 38260. + +* Redirector called Thread.sleep in a synchronized block. Bugzilla + report 37767. + +* CCUnlock's objselect attribute could exhibit unpredictable behavior; + standardized improperly included objselect and objsel property accessors to + delegate to the inherited objSelect property accessor. Bugzilla report 37766. + +* <unzip> and <untar> now correctly merge multiple nested patternsets. + Bugzilla Report 38973. + +* On case-insensitive filesystems, a <move> to change filename case + erroneously deleted the "destination" file before attempting to rename + the source file. Bugzilla 37701. + +* <scp> can now handle uris with @s other than the final one denoting the + domain. Bugzilla 38082. + +* If the class invoked by the <java> task threw a ClassNotFoundException, + this was misinterpreted as the specified class itself not being found. + +* <echoproperties> setPrefix javadoc claimed null or empty prefix would be + ignored; instead an error was thrown. Bugzilla report 39954. + +* <get> would fetch files that were up to date, because it used > in a + remote/local timestamp comparison, not >=. Bugzilla 35607. + +* <xslt> passes the current file (name + directory) to the + stylesheet/transformation. xsl-parameter name is configurable. + Bugzilla report 21042. + +* The <zip> API allowed creation of directories in file-only archives; a + habitual offender was the subclassed <jar>, which included META-INF/ in + the destination file regardless of whether filesonly was set to true. + +* <rmic> has a new adapter, xnew, to use the -XNew back end on java1.5+. + By forking rmic, this works on java1.6+. Bugzilla report 38732. + +* Copy of UnknownElement in macroinstance was not recursive. + Bugzilla report 40238. + +* Mixing of add and addConfigured methods in Mapper/ChainedMapper + causes incorrect chaining. Bugzilla report 40228. + +Other changes: +-------------- + +* Warn user when a reference in the form "${refid}" cannot be resolved as this + is a sign they probably meant "refid" (misuse of property expansion syntax). + +* Add dtd to javadoc for junit. + Bugzilla 40754. + +* Add quiet attribute to loadfile/resource. + Bugzilla 38249. + +* Make Locator#fromURI also append the drive letter when running under Windows + with JDK 1.3 or 1.2. + +* Do not uppercase the drive letters systematically in FileUtils#normalize. + +* Java 5 enumerations may now be used as values in XML attributes in place of + EnumeratedAttribute. Bugzilla 41058. + +* Create a pom file for ant-testutil and add ant-testutil.jar to the ant + distribution. Bugzilla 40980. + +* Roll back automatic proxy enabling on Java 1.5. It broke things like + Oracle JDBC drivers, and Ant itself on IBM's JVM on AIX, and didn't + seem to work to well the rest of the time. + To enable the feature, use the -autoproxy command line option. + +* Upgraded XML API and parser to Xerces 2.8.1 + +* A code review of some threaded logic has tightened up the synchronization + of Watchdog, ExecuteWatchdog and ExecuteJava, which could reduce the occurrence + of race conditions here, especially on Java1.5+. + +* Allow broken reference build files. The defer reference processing would + break too many files - so allow them with a warning. + +* Removed dependency on sun.misc.UUEncoder for UUMailer. + +* Added regex attribute to the echoproperties task. + Bugzilla 40019. + +* <war> task now allows you to omit the web.xml file. as this is optional + in the servlet 2.5 and Java EE 5 APIs. set needxmlfile="false" to + avoid a missing web.xml file from halting the build. + +* Diagnostics catches and logs security exceptions when accessing system properties. + +* <javadoc> useexternalfile now applies to all command line arguments + of javadoc. Bugzilla report 40852. + +* javadoc/tag@description is now set to the name if description is + not specified. Bugzill report 32927. + +* Some performance improvements, including Bugzilla report 25778. + +* Add <matches> condition. Bugzilla report 28883. + +* Extending JAR-Task for SPI. Bugzilla report 31520. + +* Added <tokens> resource collection for convenient creation of string + resources from other resources' content. Inspired by Bugzilla 40504. + +* Added <compare> resource selector to select resources based on the + results of their comparison to other resources. + +* Added outputtoformatters attribute to <junit> to allow suppression + of noisey tests. Bugzilla report 12817. + +* Log level of message 'Overriding previous definition of reference to' + set to Verbose. Bugzilla report 17240. + +* Added setbeans attribute to <script> to allow <script>'s to be + run without referencing all references. + Bugzilla report 37688. + +* Added classpath attribute and nested element to <script> to allow + the language jars to be specified in the build script. + Bugzilla report 29676. + +* Trim the driver attribute on the <sql> task. Bugzilla report 21228. + +* Allow (jar) files as well as directories to be given to jdepend. + Bugzilla report 28865. + +* Convert SplashTask to use NOT sun internal classes. + Bugzilla report 35619. + +* Made PatternSet#hasPatterns public to allow custom filesets access. + Bugzilla report 36772. + +* Added searchparents attribute to <available>. Bugzilla report 39549. + +* Tasks that don't extend Ant's Task class will now get the build file + location reflected into a method of the signature void setLocation(Location) + - if such a method exists. + +* Remove needless synchronization in DirectoryScanner. + Bugzilla report 40237. + +* Improved recursion detection for lines with multiple matches of same token + on a single line. Bugzilla report 38456. + +* Task will now log correctly even if no project is set. + Bugzilla report 38458. + +* Use alternative names for the command line arguments in javac. Bugzilla + Report 37546. + +* The Reference class now has a project field that will get + used (if set) in preference to the passed in project, when + dereferencing the reference. Bugzilla Report 25777. + +* On DOS and Netware, filenames beginning with a drive letter + and followed by a colon but with no directory separator following + the colon are no longer (incorrectly) accepted as absolute pathnames + by FileUtils.normalize() and FileUtils.isAbsolutePath(). Netware + volumes can still be specified without an intervening separator. + UNC pathnames on Windows must include a server and share name, i.e. + "\\a\b" to be considered valid absolute paths. + +* A bug in SQLExec would prevent the execution of trailing, + non-semicolon-delimited statements. Bugzilla Report 37764. + +* InputHandler implementations may now call InputRequest.getDefaultValue() + if they wish. The default handler uses this also. Bugzilla report 28621. + +* Took in bugzilla report 39320, "Simple code cleanups" + +* Improve compatibility with GNU Classpath and java versions prior to + 1.5. Bugzilla 39027. + +* ${ant.core.lib} may now be used to refer to the library containing the + Ant classes, for instance useful when compiling tasks. + +* Minor performance improvements Bugzilla report 37777 + +* New task <manifestclasspath> converts a path into a property + suitable as the value for a manifest's Class-Path attribute. + +* Fixed references to obsoleted CVS web site. Bugzilla Report 36854. + +* Log fine-grained events at verbose level from JUnit. Bugzilla report 31885. + +* <WsdlToDotnet> and <style> are now deprecated in favor of <wsdltodotnet> and + <xslt>, respectively. Bugzilla report 25832. + +* <echoproperties> now (alphanumerically) sorts the property list + before echoing. Bugzilla report 18976. + +* A new base class DispatchTask has been added to facilitate elegant + creation of tasks with multiple actions. + +* Major revision of <wsdltodotnet>. Supports mono wsdl and the microsoft + wsdl run on mono, as well as most of the .NET WSE2.0 options. Extra + schemas (files or urls) can be named in the <schema> element. + Compilers can be selected using the compiler attribute, which defaults + to "microsoft" on windows, and "mono" on everything else. + +* It is now possible to specify the pattern created/parsed by <checksum>. + Bugzilla Report 16539. + +* Added a new "failall" value for the onerror attribute of <typedef>. + Bugzilla report 31685. + +* unzip/unwar/unjar/untar now supports a nested mapper, which lets you unzip + in useful ways. + +* Junit task -- display suite first. + Bugzilla report 31962. + +* Added isSigned condition and signedselector selector + Bugzilla report 32126. + +* Added preserveLastModified attribute to signjar task. + Bugzilla report 30987. + +* Added <scriptcondition> condition, for inline scripted conditions + +* Added <xor> condition for exclusive-or combining of nested conditions. + +* Added <scriptselector> selector for scripted file selection + +* ant -diagnostics lists contents of ${user.home}/.ant/lib , and + checks that the java.io.tmpdir directory exists and is writeable. + +* mail task accepts nested header element. Bugzilla report 24713. + +* zip/jar/war/ear supports level attribute for deflate compression level. + Bugzilla report 25513. + +* Added loginputstring attribute to the redirector type. + +* Tighten security by sending storepass and keypass to signjar + via the input stream of the forked process. + +* New task <schemavalidate> extends <xmlvalidate> with extra support + for XML Schema (XSD) files. + +* <fixcrlf> supports a file attribute for easy fixup of a single file. + +* New condition <parsersupports> which can look for XML parser feature or + property support in the parser Ant is using. + +* fixcrlf can be used in a filterchain. + +* <sync> has a new nested element <preserveInTarget> that can be used + to protect extra-content in the target directory. Bugzilla Report + 21832. + +* <signjar> now supports: + -nested filesets at the same time as the jar attribute + -a destDir attribute with the appropriate dependency logic, which + can be used with the jar attribute or nested filesets + -a mapper to permit filename remapping on signing + -tsaurl and tsacert attributes for timestamped JAR signing + -nested <sysproperty> elements, which can be used for proxy setup + and the like + +* The linecontains and linecontainsregexp filterreaders now support a + negate attribute to select lines -not- containing specified text. + Bugzilla Report 34374. + +* <os> condition adds "winnt" as a family which can be tested. This is + all windows platforms other than the Win9x line or Windows CE. + +* <exec> (and hence, <apply> and any other derived classes) have an OsFamily + attribute, which can restrict execution to a single OS family. + +* Added "backtrace" attribute to macrodef. Bugzilla report 27219. + +* Ant main provides some diagnostics if it ever sees a -cp or -lib option, + as this is indicative of a script mismatch. Bugzilla report 34860 + +* <junitreport> prints a special message if supplied an empty XML File. This + can be caused by the test JVM exiting during a test, either via a + System.exit() call or a JVM crash. + +* Project name is now used for *all* targets so one can write consistent import + build files. Bugzilla report 28444. + +* New condition <typefound> that can be used to probe for the declaration + and implementation of a task, type, preset, macro, scriptdef, whatever. + As it tests for the implementation, it can be used to check for optional + tasks being available. + +* Check for 1.5.* Ant main class. (weblogic.jar in classpath reports) + +* New condition <isfailure> that tests the return-code of an executable. This + contains platform-specific logic and is better than comparing the result with + "0". + +* Added initial support for Resource Collections, including the + resourcecount task. + +* property attribute of pathconvert is now optional. If omitted the + result will be written to the log. + +* New mapper, <scriptmapper>, supports scripted mapping of source files/strings + to destination strings. + +* Add the echoxml task. This will echo nested XML to a file, with + the normal <?xml ?> processor instruction. UTF-8 encoding only; no-namespace + support. + +* Try to make subprojects of custom Project subclasses instances of the + same type. Bugzilla report 17901. + +* <ssh> and <scp> support keyboard-interactive authentication now. + +* <javadoc> now supports -breakiterator for custom doclets if Ant is + running on JSE 5.0 or higher. Bugzilla Report: 34580. + +* New logger, TimestampedLogger, that prints the wall time that a build + finished/failed. Use with + -logger org.apache.tools.ant.listener.TimestampedLogger + +* <junitreport> now generates pages alltests-errors.html and + alltests-fails.html, that list only the errors and failures, respectively. + Bugzilla Report: 36226 + +* New task <makeurl> that can turn a file reference into an absolute file:// + url; and nested filesets/paths into a (space, comma, whatever) separated + list of URLs. Useful for RMI classpath setup, amongst other things. + +* <xslt> now accepts nested FileNameMappers e.g. <globmapper>. + Bugzilla report 37604. + +* New task <loadresource> that accompanies <loadfile> for non file resources. + +* <echo> now supports an encoding when saving to a file. + +* New GreedyInputHandler added. + +* Add textfile attribute to the <filesmatch> condition. When true, the text + contents of the two files are compared, ignoring line ending differences. + +* New <resourcesmatch> condition. + +* Added the onmissingfiltersfile attribute to filterset. Bugzilla report 19845. + +* Added the inline handler element to the input task. + +* <sql> supports property expansion if you set the expandProperties + attribute. By default it does not expand properties, something we + dare not change for fear of breaking complex SQL operations in + existing files. + +* <javadoc>'s packagenames attribute is now optional and defaults to "*". + +* <javac>'s source and target attributes as well as <javadoc>'s source + attribute will read default values from the properties + ant.build.javac.source and ant.build.javac.target. + +* Handling of ' ', '#' in CLASSPATH and '#' in -lib (cannot use ' ' + in -lib on UNIX at the moment). Bugzilla Report 39295. + +* <scp> now optionally supports the sftp protocol. Bugzilla Report 39373. + +* Resources can now be used to indicate the location of the stylesheet to use + in <xslt>. Bugzilla Report 39407. + +* New <antversion> condition. Bugzilla report 32804. + +* ReplaceTokens should allow properties files. Bugzilla report 39688. + +* FTP Account could not be specified in ant FTP task. Bugzilla report 39720. + +* Minor performance updates. Bugzilla report 39565. + +* New deleteonexit attribute for the <tempfile> task. Bugzilla report 39842. + Remember that the exit of the JVM can be a long time coming, + especially under an IDE. Don't rely on this being called. + +* <scriptdef>-created scripts have support for nested text. All text + passed to a scripted task can be accessed via self.text. + +* <fixcrlf> now supports an outputencoding attribute. Bugzilla report 39697. + +* <junitreport> now supports nested XSL parameters. Bugzilla report 39708. + +* <javacc> has a jdkversion attribute to pass the desired JDK version + down to javacc. Bugzilla report 38715. + +* <cvs> prints passfile info at -verbose level instead of -info. Bugzilla + report 35268 + +* When <javac> can't find the compiler class, it prints out java.home for + immediate diagnostics + +* Ant launcher now supports a -main attribute so that you can specify + an extension class to the built in org.apache.tools.ant.Main + class. This class must implement the interface AntMain + +Changes from Ant 1.6.4 to Ant 1.6.5 +=================================== + +Changes that could break older environments: +-------------------------------------------- + +Fixed bugs: +----------- + +* <move> was unable to replace existing files or write into + existing directories. Bugzilla report 34962. + +* <macrodef> with redefined default values was incorrect. (Fix for + 31215 had a bug). Bugzilla report 35109. + +* <javadoc> will convert backslashes to forwardslashes when generating file + list by useexternalfile. Bugzilla report 27814. + +Changes from Ant 1.6.3 to Ant 1.6.4 +=================================== + +Changes that could break older environments: +-------------------------------------------- +* <ftp> task has had a number of changes. Uptodate calculation previously + did not call a file uptodate if the source timestamp and the destination + timestamp were equal. Bugzilla report 34941. Any script that attempted + to compensate for this by using the timediffmillis attribute might need + to be tweaked. + + +Fixed bugs: +----------- + +* Sun javah failed with java.lang.NoClassDefFoundError. + Bugzilla report 34681. + +* DirectoryScanner.slowScan() was broken. Bugzilla report 34722. + +* DirectoryScanner.scan() could throw a NullPointerException on + case-insensitive filesystems (read Windows or MacOS X). + +* Get w/authentication failed with ArrayOutOfBoundsExceptions. + Bugzilla report 34734. + +* Granularity attribute for <sync> task was undocumented. + Bugzilla report 34871. + +* <unzip> and <untar> could leave file handles open on invalid + archives. Bugzilla report 34893. + +* propertyset threw NPE with nested, mapped propertysets. + +Other changes: +-------------- + +* AntXMLContext.setCurrentTargets() is now public. Bugzilla report 34680. + +Changes from Ant 1.6.2 to Ant 1.6.3 +=================================== + +Changes that could break older environments: +-------------------------------------------- + +* The subant task used the canonical version of a file path. This + has been changed to use the absolute path. Bugzilla 30438. + +* Tar now writes two EOF blocks rather than one. + Bugzilla report 28776 + +* The Reference object now has a project field which it uses in preference + to the project passed in. This allows composite references to be + handled to nested projects. + Bugzilla report 25777 + +* <junit> with filtertrace="true" will now also swallow lines for the + sun.reflect package. If you need to see them in your stack trace, + you must set filtertrace to false. + Bugzilla Report 22758 + +* The jikes compiler adapter now supports -bootclasspath, -extdirs and + -sourcepath and also uses the same logic for debug flags as javac. + This means, the jikes compiler adapter now requires Jikes 1.15 or later. + Bugzilla Reports 25868, 26404 and 32609. + +* The gcj compiler adapter used to include the Java runtime classes + even if includeJavaRuntime was set to false, unless the + bootclasspath has been specified as well. It will now always adhere + to includeJavaRuntime, you may need to set it to true explicitly now + if you relied on the old behavior. + +Other changes: +-------------- + +* <javadoc> can now take an attribute 'executable'. Bugzilla report 30606. + +* New attribute ignorecontents for <different> selector + +* Javadoc fixes for Location, Project, and RuntimeConfigurable + Bugzilla 30160. + +* Enable to choose the regexp implementation without system property. + Bugzilla Report 15390. + +* Expose objects and methods in IntrospectionHelper. Bugzilla Report 30794. + +* Allow file attribute of <move> to rename a directory. + Bugzilla Report 22863. + +* Add xmlcatalog nested element to XmlProperty. Bugzilla report 27053. + +* New attribute alwayslog for <redirector> type. + +* Added <target> nested elements to <ant> and <antcall> to allow + specification of multiple sub-build targets, which are executed + with a single dependency analysis. + +* Refactored Target invocation into org.apache.tools.ant.Executor + implementations. Bugzilla Reports 21421, 29248. + +* <rmic> now also supports Kaffe's rmic version shipping with Kaffe + 1.1.2 and above. + +* added casesensitive attribute to <globmapper> and <regexpmapper> + Bugzilla report 16686 + +* added handledirsep attribute to <globmapper> and <regexpmapper> + Bugzilla report 32487 + +* added a new mapper <filtermapper> + +* When a BuildListener tried to access System.err or System.out, Ant + would have thrown an exception - this has been changed. Ant now + silently ignores the message. BuildListeners still should avoid + accessing either stream. + +* Added a comment attribute to the zip task. + Bugzilla report 22793. + +* Overloaded FileUtils.createNewFile with a boolean mkdirs attribute + to create nonexistent parent directories. + +* <apply> has a new "force" attribute that, when true, disables + checking of target files. + +* Made the dest attribute of the apply task optional; mapped target + filenames will be interpreted as absolute pathnames when dest is omitted. + +* Changed default tempdir for <javac> from user.dir to java.io.tmpdir. + +* Added searchpath attribute to <exec> for searching path variable(s) + when resolveexecutable = true. + +* Added revision and userid attributes to <pvcs> documentation. + +* Added support to the touch task for a mkdirs attribute to create + nonexistent parent directories before touching new files. + +* Added support to the touch task for a pattern attribute to allow + alternate datetime formats. + +* Added support to the touch task to map touched files using a nested + mapper element. + +* Added support to the touch task for a verbose attribute to suppress + logging of new file creation. + +* bad link in docs to the enhancement page in bugzilla. + Bugzilla report 33252. + +* Added length task to get strings' and files' lengths. + +* <native2ascii> and <javah> now also support Kaffe's versions. + +* Recursive token expansion in a filterset can now be disabled by + setting its recurse attribute to false. + +* Pathconvert no longer requires that one of (targetos|pathsep|dirsep) + be set; platform defaults are used when this is the case. + +* Added preservelastmodified attribute to fixcrlf task. Bugzilla 25770. + +* Added isfileselected condition. + +* Added verbose="true|false" attribute to <subant>. When verbose is enabled, + the directory name is logged on entry and exit of the sub-build. + Bugzilla 33787. + +* Added -nouserlib option to allow running ant without automatically loading + up ${user.home}/.lib/ant. This is useful when compiling ant, and antlibs. + Modified the build.sh and build.bat to use the option. + +* Added -noclasspath option to allow running ant WITHOUT using CLASSPATH env + variable. Modified ant.bat to do this so that %CLASSPATH% is not looked at. + +* Add else attribute to the condition task, which specifies an + optional alternate value to set the property to if the nested + condition evaluates to false. Bugzilla report 33074. + +* Ant generated jar files should now be detected as jar files by + Solaris. Bugzilla Report 32649. + +* <rexec> with a single command should now work with unusal login + dialogs without special read/write pairs. Bugzilla Report 26632. + +* <csc>'s extraoptions can now contain multiple arguments. + Bugzilla Report 23599. + +* <macrodef> with default values set by properties would be + seen as new definitions when called twice with different properties. + This was confusing so the definitions are now treated as similar. + Bugzilla Report 31215. + +* <javadoc> has a new attribute "includenosourcepackages" that can be + used to document packages that don't hold source files but a + package.html file. Bugzilla Report 25339. + +* <rpm> has new attributes failonerror and quiet. + +* Added two tutorials + - beginner: introduction into Ant + - task developers: using path, fileset etc + +* a number of new attributes that allow the user to handle non-standard + server listing formats and time zone differences have been added in + the <ftp> task. + + +Fixed bugs: +----------- + +* Do not pass on ThreadDeath when halting <java fork="false">. Bugzilla + 32941. + +* Killing a thread running <java fork="true"> (e.g. from an IDE) would + not stop the forked process. Bugzilla 31928. + +* Programs run with <java fork="true"> can now accept standard input + from the Ant console. (Programs run with <java fork="false"> could + already do so.) Bugzilla 24918. + +* AbstractCvsTask prematurely closed its outputStream and errorStream. + Bugzilla 30097. + +* Impossible to use implicit classpath for <taskdef> + when Ant core loader != Java application loader and + Path.systemClassPath taken from ${java.class.path} Bugzilla 30161. + +* MacroInstance did not clean up nested elements correctly in the execute + method, causing multiple use of the same macro instance with nested + elements to fail. + +* checksum fileext property doc wrong. Bugzilla 30787. + +* FTP task, getTimeDiff method was returning wrong value. Bugzilla 30595. + +* make sure that Zip and its derivatives call the createEmptyZip method when + there are no resources to zip/jar/... + +* Zip task was not zipping when only empty directories were found. + Bugzilla 30365. + +* Jar task was not including manifest files when duplicate="preserve" was + chosen. Bugzilla 32802. + +* ant.bat was missing runAntNoClasspath label for goto. + Bugzilla 34510. + +* Classpath was treated in the same way as -lib options. Bugzilla 28046. + +* Manual page for cvsversion contained incorrect attributes and did not + say since 1.6.1. Bugzilla 31408. + +* Typo in definition of <cvsversion> task causing it not to be defined. + Bugzilla 31403. + +* Execution of top level tasks in imported files get delayed by targets. + Bugzilla report 31487. + +* ExecTask executes checkConfiguration() even though os does not match. + Bugzilla report 31805. + +* Concat task instance could not be run twice. + Bugzilla report 31814. + +* NPE using XmlLogger and antlib. + Bugzilla report 31840. + +* Properties.propertyNames() should be used instead of .keys(). + Bugzilla report 27261. + +* Target location is not set for default target. + Bugzilla report 32267. + +* Incorrect classloader parent in junittask when using with + ant-junit.jar and junit.jar not in the project classloader. Bugzilla + report 28474. + +* getResources() on the classloader returned by ClasspathUtils would + see each resource twice - if the resource is in the project + classpath and if the classloader is requested with a null path. + +* XMLValidate used URL#getFile rather than the ant method FileUtils#fromURI + Bugzilla report 32508 + +* fixed Regexp-Mapper docs which gave outdated instructions (optional.jar) + Bugzilla report 28584 + +* <scp> using <fileset> didn't work with OpenSSH 3.9 and later. + Bugzilla report 31939 + +* <setproxy> failed to set user/password on some JDKs. + Bugzilla report 32667 + +* untar would go into infinite loop for some invalid tar files. + Bugzilla report 29877 + +* forked <javac> won't pass -source to a JDK 1.1 or 1.2 javac anymore. + Bugzilla report 32948 + +* propertyset references did not handle nested propertyset references. + +* oata.types.Description.getDescription(Project) would throw a + NullPointerException when the "ant.targets" reference was unset. + +* Wrapper scripts did not detect WINNT value of dynamic OS environment + variable when logged into workstations using Novell authentication. + Bugzilla Report 30366. + +* DependScanner.getResource() always returned nonexistent resources, + even when the resource actually existed. Bugzilla Report 30558. + +* <apply> was broken with classfilesets. Bugzilla Report 30567. + +* <available> returned false positives when checking a file + passed in with the current basedir leading twice: + e.g. ${basedir}${file.separator}${basedir}${file.separator}foo . + +* The first file open that took place when using input files with the + <exec>, <apply>, or <java> tasks was always logged to System.out + instead of to the managing Task. + +* <telnet> and <rexec> would try to disconnect from servers they never + connetced to, potentially leading to exceptions in commons-net. + Bugzilla Report 33618. + +* <zip> would drop files matched by defaultexcludes during updates. + Bugzilla Report 33412. + +* <zip> couldn't store files with size between 2GB and 4GB (the + upper limit set by the ZIP format itself). Bugzilla Report 33310. + +* NPE when when <presetdef> tries to configure a task that + cannot be instantiated. Bugzilla Report 33689. + +* <javac debug="false"> created an invalid command line when running + the Symantec Java compiler. + +* Get with usetimestamp did not work on Java 1.2. + +* Get with usetimestamp did not work when local timestamp roughly >= now. + +* The framed JUnit report now handles multiple reports for the same + testcase properly. Bugzilla Report 32745. + +* <cab> didn't work for files with spaces in their names on Windows. + Bugzilla Report 17182. + +* The VAJ tasks could fail if the project name contained characters + that need to get URL encoded. Bugzilla Report 23322. + +* TarInputStream#read() wasn't implemented correctly. Bugzilla Report + 34097. + +* <xslt> failed to process file-hierarchies of more than one level if + scanincludeddirectories was true. Bugzilla Report 24866. + +* forkmode="perBatch" or "once" would ignore extension attributes that + had been specified for <formatter>s. Bugzilla Report 32973. + +* The refid attribute of the I/O redirector was not functional. + +Changes from Ant 1.6.1 to Ant 1.6.2 +=================================== + +Changes that could break older environments: +-------------------------------------------- + +* The import task used the canonical version of a file path. This + has been changed to use the absolute path. Bugzilla 28505. + +* ant-xalan2.jar has been removed since the only class contained in it + didn't depend on Xalan-J 2 at all. Its sole dependency has always + been TraX and so it has been merged into ant-trax.jar. + +* All exceptions thrown by tasks are now wrapped in a buildexception + giving the location in the buildfile of the task. + +* Nested elements for namespaced tasks and types may belong to the + Ant default namespace as well as the task's or type's namespace. + +* <junitreport> will very likely no longer work with Xalan-J 1. + + Note that Xalan-J 1 has been deprecated for a very long time and we + highly recommend that you upgrade. + + If you really need to continue using Xalan-J 1, please copy the + junit-frames-xalan1.xsl from the distribution's etc directory as + junit-frames.xsl into a new directory and use the task's styledir + attribute to point to. This is the last version of the XSLT + stylesheet that is expected to be compatible with Xalan-J 1. + +Fixed bugs: +----------- + +* eliminate memory leak in AntClassLoader. Bugzilla Report 8689. + +* subant haltonfailure=false did not catch all failures. Bugzilla Report 27007. + +* macrodef @@ escaping was broken. Bugzilla Report 27069. + +* MacroDef did not allow attributes named 'description'. Bugzilla Report 27175. + +* Throw build exception if name attribute missing from patternset#NameEntry. + Bugzilla Report 25982. + +* Throw build exception if target repeated in build file, but allow targets + to be repeated in imported files. + +* <apply> didn't compare timestamps of source and targetfiles when + using a nested <filelist>. Bugzilla Report 26985. + +* tagdiff.xml was broken in ant 1.6.1. Bugzilla Report 27057. + +* if the basedir contained .. or . dirs, and the build file name contained + .. or ., the basedir was set incorrectly. Bugzilla Report 26765. + +* regression from ant 1.5, exec task outputted two redundant trailing newlines. + Bugzilla Report 27546. + +* NPE when running commons listener. Bugzilla Report 27373. + +* <java> swallowed the stack trace of exceptions thrown by the + executed program if run in the same VM. + +* -projecthelp swallowed (configuration) errors silently. + Bugzilla report 27732. + +* filterset used by filtertask doesn't respect loglevel. Bugzilla Report 27568. + +* wrong compare used in ProjectComponent for logging. Bugzilla Report 28070. + +* failOnAny attribute for <parallel> was broken. Bugzilla Report 28122. + +* If <javac> uses gcj and any of the nested <compilerarg>s implies + compilation to native code (like -o or --main), Ant will not pass + the -C switch to gcj. This means you can now compile to native code + with gcj which has been impossible in Ant < 1.6.2. + +* <import optional="false"> and <import optional="true"> + behaved identically. + +* <xslt> now sets the context classloader if you've specified a nested + <classpath>. Bugzilla Report 24802. + +* <zip> and friends would delete the original file when trying to update + a read-only archive. Bugzilla Report 28419. + +* <junit> and <assertions> are working together. Bugzilla report 27218 + +* AntClassLoader#getResource could return invalid URLs. Bugzilla + Report 28060. + +* Ant failed to locate tools.jar if the jre directory name wasn't all + lowercase. Bugzilla Report 25798. + +* Redirector exhibited inconsistent behavior with regard to split + output. When sent to file only, files would be created in all + cases; when split file-property, files were only created if + writes were performed. + +* fixed case handling of scriptdef attributes and elements. + +* UNC pathnames did not work for ANT_HOME or -lib locations on Windows. + Bugzilla report 27922. + +* replacestring tokenfilter only replaced the first occurrence. + +* AntLikeTasksAtTopLevelTest failed on cygwin. + +* I/O-intensive processes hung when executed via <exec spawn="true">. + Bugzilla reports 23893/26852. + +* JDependTask did not close an output file. Bugzilla Report 28557. + +* Using <macrodef> could break XmlLogger. Bugzilla Report 28993. + +* <genkey> no longer requires keytool to be in your PATH. Bugzilla + Report 29382. + +* <symlink> could create cyclic links. Bugzilla Report 25181. + +* <zip whenempty="skip"> didn't work in a common situation. Bugzilla + Report 22865. + +* <scp> now properly handles remote files and directories with spaces + in their names. Bugzilla Report 26097. + +* <scp> now has (local|remote)tofile attributes to rename files on the + fly. Bugzilla Report 26758. + +* <telnet> and <rexec> didn't close the session. Bugzilla Report 25935. + +* <subant> and XmlLogger didn't play nicley together. + +Other changes: +-------------- +* doc fix concerning the dependencies of the ftp task + Bugzilla Report 29334. + +* <xmlvalidate> has now a property nested element, + allowing to set string properties for the parser + Bugzilla Report 23395. + +* Docs fixes for xmlvalidate.html, javadoc.html, starteam. + Bugzilla Reports 27092, 27284, 27554. + +* <pathconvert> now accepts nested <mapper>s. Bugzilla Report 26364. + +* Shipped XML parser is now Xerces-J 2.6.2. + +* Added nested file element to filelist. + +* spelling fixes, occurred. Bugzilla Report 27282. + +* add uid and gid to tarfileset. Bugzilla Report 19120. + +* <scp> has a verbose attribute to get some feedback during the + transfer and new [local|remote][File|Todir] alternatives to file and + todir that explicitly state the direction of the transfer. + +* The OS/2 wrapper scripts have been adapted to use the new launcher. + Bugzilla Report 28226. + +* <sshexec> now also captures stderr output. Bugzilla Report 28349. + +* <xslt> now supports a nested <mapper>. Bugzilla Report 11249. + +* <touch> has filelist support. + +* <nice> task lets you set the priority of the current thread; non-forking + <java> code will inherit this priority in their main thread. + +* New attribute "negate" on <propertyset> to invert selection criteria. + +* Target now supports a Location member. Bugzilla Report 28599. + +* New "pattern" attribute for <date> selector. + +* <junit> has a new forkmode attribute that controls the number of + Java VMs that get created when forking tests. This allows you to + run all tests in a single forked JVM reducing the overhead of VM + creation a lot. Bugzilla Report 24697. + +* <jar> can now optionally create an index for jars different than the + one it currently builds as well. See the new <indexjars> element + for details. Bugzilla Report 14255. + +* Permit building under JDK 1.5. Bugzilla Report 28996. + +* minor Javadoc changes. Bugzilla Report 28998. + +* Misc. corrections in SignJar.java. Bugzilla Report 28999. + +* Remove redundant <hr> from javah.html. Bugzilla Report 28995. + +* Ignore built distributions. Bugzilla Report 28997. + +* A new roundup attribute on <zip> and related task can be used to + control whether the file modification times inside the archive will + be rounded up or down (since zips only store modification times with + a granularity of two seconds). The default remains to round up. + Bugzilla Report 17934. + +* A binary option has been added to <concat>. Bugzilla Report 26312. + +* Added DynamicConfiguratorNS, an namespace aware version of + DynamicConfigurator. Bugzilla Report 28436. + +* Add implicit nested element to <macrodef>. Bugzilla Report 25633. + +* Add deleteonexit attribute to <delete>. + +* Added Target.getIf/Unless(). Bugzilla Report 29320. + +* <fail> has a status attribute that can be used to pass an exit + status back to the command line. + +* <fail> accepts a nested <condition>. + +* <loadproperties> supports loading from a resource. + Bugzilla Report 28340. + +* Nested file mappers and a container mapper implementation have been + introduced. Additionally, the <mapper> element now accepts "defined" + nested FileNameMapper implementations directly, allowing a usage + comparable to those of <condition>, <filter>, and <selector>. + +* New <redirector> type introduced to provide extreme I/O flexibility. + Initial support for <exec>, <apply>, and <java> tasks. + +* <apply> has a new ignoremissing attribute (default true for BC) + which will allow nonexistent files specified via <filelist>s to + be passed to the executable. Bugzilla Report 29585. + +* <junitreport> now also works with Xalan XSLTC and/or JDK 1.5. + Bugzilla Report 27541. + +* <jspc> doesn't work properly with Tomcat 5.x. We've implemented a + work-around but don't intend to support future changes in Tomcat + 5.x. Please use the jspc task that ships with Tomcat instead of + Ant's. + +Changes from Ant 1.6.0 to Ant 1.6.1 +============================================= + +Changes that could break older environments: +-------------------------------------------- + +* License is now Apache License 2.0 + see http://www.apache.org/licenses/ for more information + +Fixed bugs: +----------- +* Remove a recursive template call in the junit xsls that could trigger a stack + overflow. It now uses Xalan extensions to call a Java class directly. + Bugzilla Report 19301 + +* Fix spurious infinite loop detection for filters (introduced in ant 1.6.0). + Bugzilla Report 23154. + +* Fix handling of default ant namespace for nested elements. + +* Fix jboss element of ejb task (introduced in ant 1.6.0). + +* <whichresource> failed to load classes correctly. + +* Ant could fail to start with a NullPointerException if + ANT_HOME/lib/ant-launcher.jar was part of the system CLASSPATH. + +* presetdef'ed types did not work with the ant-type attribute + +* fixed case handling of macrodef attributes and elements. Bugzilla + Reports 25687 and 26225. + +* <java> ignored the append attribute, Bugzilla Report 26137. + +* The gcj compiler adapter for <javac> failed if the destination + directory didn't exist. Bugzilla Report 25856. + +* Ant now fails with a more useful message if a new process will be + forked in a directory and that directory doesn't exist. + +* <splash> used to break the build on non-GUI environments. Bugzilla + report 11482. + +* Ant 1.6.0 cannot run build scripts in directories with non-ASCII names. + Bugzilla Report 26642. + +Other changes: +-------------- +* Shipped XML parser is now Xerces-J 2.6.1 + +* Translate task logs a debug message specifying the number of files + that it processed. Bugzilla Report 13938. + +* <fixcrlf> has a new attribute - fixlast. Bugzilla Report 23262. + +* <p4submit> has 2 new attributes, needsresolveproperty and changeproperty. + Bugzilla Report 25711. + +* add description attributes to macrodef attributes and elements. + Bugzilla Report 24711. + +* Extending ClearCase Tasks : + - Added an extra option to 'failonerr' to each ClearCase task/command. + - Extended the functionality of cccheckout. It can check (notco) to see if + the desired element is already checked out to the current view. Thus it + won't attempt to check it out again. + - Added three new ClearCase commands: ccmkattr, ccmkdir, ccmkelem + Bugzilla Report 26253. + +* added nested text support to <macrodef> + +* added initial support for Java 1.5. Java 1.5 is now correctly + detected by Ant and treated just like Java 1.4. You can now specify + source="1.5" in the <javac> task. + +* created new task <cvsversion> + +* added support for branch logging via the tag attribute in <cvschangelog> + Bugzilla Report 13510. + +* added support the groovy language in the script and scriptdef tasks + +Changes from Ant 1.5.4 to Ant 1.6.0 +=================================== + +Changes that could break older environments: +-------------------------------------------- + +* This version of Ant can not be built with JDK 1.1 and requires at + least Java 1.2 at runtime as well. Compiling for a 1.1 target is + still supported. + +* Targets cannot have the empty string as their name any longer. + +* ant.jar's manifest does no longer include a Class-Path entry, so it + is no longer possible to run Ant via "java -jar ant.jar" without + manually altering the CLASSPATH. Instead of that a file + ant-bootstrap.jar is included in the etc directory of the binary + distribution, copy this to the lib directory and use + "java -jar ant-bootstrap.jar" instead if you want to run Ant without + the wrapper script (not recommended). + +* The <script> task now requires Apache BSF instead of the older IBM + version. See <http://jakarta.apache.org/bsf/> + +* <xmlproperty> will no longer fail if the file to be loaded doesn't exist. + +* XML namespaces are now enabled in the XML parser, meaning XML namespace + declarations no longer cause errors. However task names containing colons + will cause errors unless there is a corresponding namespace uri. + +* The <ftp> and <telnet> tasks now require Jakarta Commons Net instead + of the older ORO Netcomponents version. See + <http://jakarta.apache.org/commons/net/index.html>. + +* <input> will no longer prompt the user and wait for input if the + addproperty attribute is set to a property that has already been + defined in the project. If you rely on the task waiting for input, + don't use the addproperty attribute. + +* The Class-Path attribute in manifests will no longer merge the + entries of all manifests found, but will be treated like all other + manifest attributes - the most recent attribute(s) will be used. + +* New Launch mechanism implemented. This moves some functionality from + the batch files / shell scripts into Java. This removes environment + limitations, for command issues, directory depth issues on Windows. Also + allows a per-user library location to be used if the main Ant install + is locked down. + +* The Entry nested element of PropertyFile will not any more have its value + attribute (actually increment) overwritten with the new value of the entry + after execution. + +* Output stored from a <java> or <exec> task is now exactly as generated. No + conversion to platform end-of-line characters is performed. + +* <translate> will now preserve line endings. + +* <ftp> followsymlinks="false" in nested fileset definitions is explicitly + required in order to exclude remote symbolic links (when doing a get, chmod, + delete, rmdir). + +* The values of the Copy#fileCopyMap variable has changed from String to + String[]. (In java 1.5 terms it was Hashtable<String, String> and + is now Hashtable<String, String[]>). This will affect third party code + that extend Copy and override Copy#doFileOperations. + +* <loadproperties> didn't expand properties while <property file="..."/> + does, so they were not equivalent. This has been fixed, which means + that propetries may get expanded twice if you use an + <expandproperties> filterreader. Bugzilla Report 17782. + +* User defined tasks and typedefs are now handled internally in the + same way as predefined tasks and typedefs. Also tasks and typedefs + are resolved at a later stage. This causes some + differences especially for user defined task containers. + +* <checksum> log message "Calculating checksum ..." has been degraded + from INFO to VERBOSE. + +Fixed bugs: +----------- +* Filter readers were not handling line endings properly. Bugzilla + Report 18476. + +* Filtersets were also not handling line endings properly. + +* Expand tasks did not behave as expected with PatternSets. + +* <property environment=... /> now works on OS/400. + +* <cab> could hang listcab on large <fileset>s. + +* The starteam stcheckout, stcheckin tasks now correctly compute + status of files against whatever local tree they are run against + and, optionally, will not process a file if it is current. + Previously you had to process everything unless you ran against the + default folder which wasn't the normal use-case for ant-starteam. + The stlist task now similarly displays that status correctly making + it a more generally useful tool. + +* entity includes would cause exceptions if path names included spaces. + +* addConfiguredXXX would not work for TaskAdapter wrapped tasks + +* Fix <ilasm> outputfile testing so that the output file does not need + to exist beforehand. + +* Ant will now exit with a return code of 1 if it encounters problems + with the command line arguments. + +* ClassLoader creation changes to use a factory method in Project. A new + class AntClassLoader2 implemented for 1.2+ specific features including + Package information and addition of classes specified in the Class-Path + element of a Jar's manifest. + +* It is now possible in <exec> to resolve the executable to a project + basedir or execution dir relative executable. The resolveExecutable + must be used to pick up such executables. + +* splash screen wouldn't disappear when build was finished. + +* <exec> output and error streams can now be redirected independently + to either a property or a file (or both) + +* TarEntry's File-arg constructor would fail with a + StringIndexOutOfBoundsException on all OSes where os.name is shorter + than seven characters. Bugzilla Report 18105. + +* <copy> and <move>'s failonerror didn't apply to filesets pointing to + non-existent directories. Bugzilla Report 18414. + +* The <stripjavacomments> filter sometimes removed parts of string + constants. Bugzilla Report 17441. + +* <antlr> will now recompile your grammar if the supergrammar has + changed. Bugzilla Report 12691. + +* <property env> will now work on Unices with /bin/env instead of + /usr/bin/env. Bugzilla Report 17642. + +* <jar index="on"> could include multiple index lists. Bugzilla 10262. + +* The index created by <jar> didn't conform to the spec as it didn't + include the top-level entries. Bugzilla Report 16972. + +* <tar> and <zip> didn't honor the defaultexcludes attribute for the + implicit fileset. Bugzilla Report 18637. + +* The <replacetokens> filter would throw an exception if the token's + value was an empty string. Bugzilla Report 18625. + +* Perforce tasks relying on output from the server such as <p4change> + and <p4label> were hanging. Bugzilla Reports 18129 and 18956. + +* Improve exception and logging behavior of Perforce tasks. + Bugzilla report 18154. + +* build.sh install had a problem on cygwin (with REALANTHOME). + Bugzilla Report 17257 + +* <replaceregexp> didn't work for multi-byte encodings if byline was false. + Bugzilla Report 19187. + +* <replaceregexp> was altering unnecessarily the timestamp of the directories + containing the files to process + Bugzilla Report 22541. + +* file names that include spaces need to be quoted inside the @argfile + argument using forked <javac> and (all JDKS). Bugzilla Report 10499. + NB : a first correction was only introducing quotes for JDK 1.4 + It has been changed to quote for all external compilers when paths + contain spaces. + Also the backslashes need to be converted to forward slashes + Bugzilla Report 17683. + +* Setting filesonly to true in <zip> and related tasks would cause the + archives to be always recreated. Bugzilla Report 19449. + +* file names that include spaces need to be quoted inside the @argfile + argument using <javadoc> and JDK 1.4. Bugzilla Report 16871. + +* <junit> didn't work with custom formatters that were only available + on the user specified classpath when a timeout occurred. Bugzilla + Report 19953. + +* <different> selector : make ignoreFileTimes effectively default to true + and fix a bug in the comparison of timestamps. Bugzilla Report 20205. + +* <different> selector can now be nested directly under a fileset + Bugzilla Report 20220. + +* <cvstagdiff> had a problem with "dd-MM-yy hh:mm:ss" formats + Bugzilla Report 15995. + +* <cvstagdiff> cvsroot and package attributes added to the root + element tagdiff of the xml output + Bugzilla Report 16081. + +* <cvstagdiff> had a problem with aliased modules and with requests for + multiple modules. Bugzilla Reports 21373 and 22877. + +* <cvstagdiff> could not parse properly the revision number of new files with + CVS 1.11.9 or higher. Bugzilla Report 24406. + +* <fixcrlf> make fixcrlf create its temporary files in the default directory + of FileUtils#createTempFile instead of the destination dir of fixcrlf. + Bugzilla Report 20870. + +* <ejbjar> implementation for Borland. + Prevent the task from being blocked by error messages coming from java2iiop. + Bugzilla Report 19385. + +* <unzip>'s and <untar>'s nested patternsets didn't work as documented + when the pattern ended in a slash or backslash. Bugzilla Report 20969. + +* <fixcrlf> will now create the parent directories for the destination + files if necessary. Bugzilla Report 20840. + +* <xmlproperty> now handles CDATA sections. BugZilla Report 17195 + +* <translate> now translate tokens that are placed close together. + Bugzilla Report 17297 + +* Nested websphere element for ejbjar does not support spaces in file name. + Bugzilla Report 21298 + +* Don't multiply Class-Path attributes when updating jars. Bugzilla + Report 21170. + +* Do not overwrite the value (increment) attribute of PropertyFile nested + Entry element. Bugzilla Report 21505. + +* Prevent sysproperties with no key or no value from being added in <junit>. + Bugzilla Report 21684. + +* Allow references to be properly inherited via antcall + Bugzilla Report 21724. + +* ftp chmod failed when the remote system was UNIX and local system Windows + Bugzilla Report 21865. + +* ftp put with chmod failed when the remote system was UNIX and local system + Windows. Bugzilla Report 23143. + +* ftp did not set the ascii mode explicitly, causing problems with ftp servers + having binary as default + +* ftp was not able to download files when they were pointed to by symbolic + links. Bugzilla Report 14063. + +* ftp is able to download also directories pointed to by symbolic links. + +* replace would change \r\n into \r\r\n under Windows. + +* junitreport with frames did not display a link for classes without a package + or in the top package. + Bugzilla Report 21915. + +* Project.toBoolean(String) now handles null as argument and does not throw a + NullPointerException any more. + +* The socket condition will now close the socket created to test. + Bugzilla Report 23040. + +* <junit includeantruntime="true" fork="true"> replaced the CLASSPATH instead + of adding to it. Bugzilla Report 14971. + +* <splash> could fail on JVMs that use null to indicate the system classloader. + Bugzilla Report 23320. + +* <xmlcatalog>s only worked when defined inside of tasks. Bugzilla + Report 20965. + +* <csc> and siblings (<vbc> <jsharpc>) handle large filesets by +automatic use of response files. Bugzilla report #19630 + +Other changes: +-------------- + +* Shipped XML parser is now Xerces 2.6.0 + +* All tasks can be used outside of <target>s. Note that some tasks + will not work at all outside of targets as they would cause infinite + loops (<antcall> as well as <ant> and <subant> if they invoke the + current build file). + +* Six new Clearcase tasks added. + +* A new filter reader namely tokenfilter has been added. Bugzilla + Report 18312. + +* A new attribute named skip is added to the TailFilter and + HeadFilter filter readers. + +* The filesetmanifest attribute of <jar> has been reenabled. + +* The start and end tokens for <translate> may now be longer than a + single character. + +* <setproxy> lets you set the username and password for proxies that + want authentication + +* <loadproperties> has a new encoding attribute. + +* <echoproperties> can now create XML output. + +* <echoproperties> has a new srcfile attribute that can make it read + properties files and output them instead of Ant's properties. + +* <filterset> will now resolve filters recursively. + +* <input> has a new attribute that allows you to specify a default value. + +* Added <image> task (requires JAI). + +* <image> task has now proportions attribute in the <scale/> nested element + instead of keepproportions (bringing in more functionality) + +* New condition <isreference> + +* <ftp> now has a preservelastmodified attribute to preserve the + timestamp of a downloaded file. + +* new rmdir action for <ftp> that removes directories from a fileset. + +* <ftp> has attributes timediffauto and timediffmillis to use together + with the newer attribute to tell ant to take into account a time difference + between client and remote side. + Bugzilla Report 19358. + +* <ftp> has been optimized to go directly to the include patterns. + This reduces scanning time under UNIX when followsymlinks="true" + and casesensitive="true" (the default) + Bugzilla Report 20103. + +* The SOS and VSS tasks will no longer unconditionally prepend a $ to + vsspath or projectpath. + +* OS/400 now gets detected by the os condition. + +* <arg> has a new attribute pathref that can be used to reference + previously defined paths. + +* <xmlproperty> has been improved, you can now expand ${properties}, + define ids or paths and use Ant's location magic for filename resolutions + in the XML file. + +* <xmlcatalog> will now support external catalogs according to the + OASIS "Open Catalog" standard - if resolver.jar (newer than version + 1.0) from Apache's xml-commons is in your CLASSPATH. + +* Starteam tasks now have support for revision labels and build labels. + Checkouts now have the option of using repository timestamps, instead + of current. + +* new task <symlink> that creates and maintains symbolic links. + +* new tasks <chown> and <chgrp> which are wrappers of the Unix commands. + +* new task <attrib> to change file attributes on Windows systems. + +* <style> has a new attribute reloadstylesheet to work around a + bug in widespread Xalan versions. + +* <tarfileset> has a new dirmode attribute to specify the permissions + for directories. + +* <fixcrlf>'s eol attribute now also understands "mac", "unix" and "dos". + +* <classfileset> now picks up dependencies of the form MyClass.class. This + works for the code generated by the Sun java compiler. It may not work for + all compilers. + +* a new attribute "globalopts" can be added to all Perforce tasks. + You can put in it all the strings described by p4 help usage. Refer to + the docs for more information. + +* new Perforce tasks <p4integrate> , <p4resolve>, and <p4labelsync> + +* <p4submit> will change the property p4.change if the Perforce server + renumbers the change list. + It will set the property p4.needsresolve if the submit fails, + and the message says that file(s) need to be resolved. + +* <replaceregexp> now has an optional encoding attribute to support + replacing in files that are in a different encoding than the + platform's default. + +* The <exec> task may now have its input redirected from either a file + or a string from the build file. The error output can be separated + to a different file when outut is redirected. standard error may be + logged to the Ant log when redirecting output to a file + +* The <java> task also supports the input redirection and separate + error streams introduced to the <exec> task. In addition, it is now + possible to save the output into a property for use within the build + file as was possible with <exec> in Ant 1.5 + +* The <javadoc> task <tag> subelement has been enhanced to allow files + with tag mappings to be used. + +* New tasks: <scp> supports file transfers, <sshexec> executes a + command over SSH. They require jsch, a BSD licensed SSH library that + can be found at http://www.jcraft.com/jsch/index.html + +* New filterreader <escapeunicode/>. + +* Support for HP's NonStop Kernel (Tandem) OS has been added. + +* <cab>'s basedir attribute is now optional if you specify nested + filesets. Bugzilla Report 18046. + +* New task <sync> that synchronizes two directory trees. + +* <apply> has new forwardslash attribute that can force filenames to + use forward slashes (/) as file separators even on platforms with a + different separator. This is useful if you want to run certain + ported Unix tools. + +* Copy has a new outputencoding attribute that can be used to change + the encoding while copying files. Bugzilla Report 18217. + +* The xml formatter for JUnit will now honor test case names set with + setName. Bugzilla Report 17040. + +* JUnit now has an attribute reloading, which, when set to false, + makes the task reuse the same class loader for a series of tests. + +* <concat> now supports filtering and can check timestamps before + overriding a file. Bugzilla Report 18166. + +* <junit> has a new attribute tempdir that controls the placement of + temporary files. Bugzilla Report 15454. + +* <jdepend> now supports a new nested element <classespath> which is + the same as <sourcespath> but point to compiled classes (the + preferred mode of operation for JDepend > 2.5). Additionally, nested + <exclude> elements can be used to exclude certain packages from + being parsed. Bugzilla Report 17134. + +* The JProbe tasks now also work with JProbe 4.x. Bugzilla Report 14849. + +* <javacc> and <jjtree> will now autodetect JavaCC 3.x and can use it. + +* <sql> has a new attribute to control escape processing. + +* <sql> is able to display properly several resultsets if you are + running a compound sql statement. Bugzilla Report 21594. + +* A new <containsregexp> selector has been added, that selects files + if their content matches a certain regular expression. + +* <antlr>'s debug attribute has been enabled. Bugzilla Report 19051. + +* <mail> has a new attribute charset. Bugzilla Report 15434. + +* <mail> has new attributes user and password for SMTP auth. + maillogger can also use this. + The implementation only works with JavaMail (encoding="MIME"). + Implementation with plain mail remains to do. + Bugzilla Report 5969. + +* <mail> and mailloger support SMTP over TLS/SSL + Bugzilla Report 19180. + +* <mail> the attributes from, replyto ,tolist, cclist, bcclist + can now contain email addresses of the form name <address@xyz.com> + or (name) address@xyz.com + Bugzilla Report 22474. + +* <mail> (version PlainMail) + prevent blank headers from being sent, + make the order of the headers of plain mail messages predictable + Bugzilla Report 22088. + +* <zipfileset> can now be defined in the main body of a project + and referred to with refid="xyz". Bugzilla Report 17007. + +* A wrapper script for OS/2 has been added. + +* <unzip> will now detect and successfully extract self-extracting + archives. Bugzilla Report 16213. + +* <stcheckout> has a new attribute "converteol" that can be used to + control the automatic line-end conversion performed on ASCII files. + Bugzilla Report 18884. + +* Users can now modify the list of default excludes using the new + defaultexcludes task. Bugzilla Report 12700. + +* There is a new data type <propertyset> that can be used to collect + properties. It is supported by <ant>, <antcall>, <subant>, <java>, + <echoproperties> and <junit>. + +* <concat> can now control the encoding of the output as well and optionally + add new-line characters at the end of files that get concatenated but + don't end in newlines. Bugzilla Report 12511. + +* <rpm> will detect the rpmbuild executable of RedHat 8.0 and newer + and use that if it is on your PATH. Bugzilla Report 14650. + +* A new task <rexec> has been added that requires commons-net to work. + Bugzilla Report 19541. + +* <javadoc> now supports a nested <arg> element in addition to the + additionalparams attribute. + +* You can now determine the order of standard tags in <javadoc> via + <tag> elements - you must not use the description attribute for them. + Bugzilla Report 18912. + +* <javadoc> now supports the -noqualifier switch. Bugzilla Report 19288. + +* <javac>'s executable attribute can now also be used to specify the + executable for jikes, jvc, sj or gcj. Bugzilla Report 13814. + +* <javac> has a new attribute tempdir that can control the placement + of temporary files. Bugzilla Report 19765. + +* A new magic property build.compiler.jvc.extensions has been added + that can be used to turn of Microsoft extensions while using the jvc + compiler. Bugzilla Report 19826. + +* You can now limit the parallelism of <apply> and <chmod> by using the new + maxparallel attribute. + +* With the new addsourcefile attribute, you can make <apply> ommit the + source file names from the command line. Bugzilla Report 13654. + +* <apply> and <chmod> now support nested <filelist>s as well as <dirset>s. + Bugzilla Reports 15929 and 20687. + +* <apply> and <chmod> will display a summary if you set the new + verbose attribute to true. Bugzilla Report 19883. + +* <copy>/<move>'s failonerror attribute can now also be used to + continue the build if an I/O error caused a problem. Bugzilla + Report 12999. + +* new selector <type/> allowing to select only files or only directories. + Bugzilla Report 20222. + +* <java> and <junit> now support a nested <bootclasspath> element that + will be ignored if not forking a new VM. + +* <junit>'s nested <formatter> elements now support if/unless clauses. + +* <ejbjar> + cmpversion attribute added + jboss element will look for jbosscmp-jdbc.xml descriptor + if ejbjar has cmpversion="2.0" set + Bugzilla Reports 14707 and 14709. + +* <pvcs> config attribute added to set the location of a specific PVCS + .cfg file + Bugzilla Report 9752 + +* <mapper> has an "unpackage" mapper + Bugzilla Report 18908 + +* Added <scriptdef> task allowing tasks to be defined using any BSF-supported + scripting language. + +* <touch>'s datetime attribute can now accept time with a granularity + of seconds as well. Bugzilla Report 21014. + +* <checksum> has two new properties: totalproperty and todir. + +* FileUtils#createTempFile will now create temporary files in the + directory pointed to by the property java.io.tmpdir + +* <unzip> and friends now supports an optional encoding attribute to + enable it to expand archives created with filenames using an encoding + other than UTF8. Bugzilla Report 10504. + +* <patch> has a new attribute destfile that can be used to create a new + file instead of patching files in place. + +* OpenVMS is detected as a valid OS family. + +* DirectoryScanner has been optimized for cases where include patterns do not + start with wildcards. Bugzilla Report 20103. + +* DirectoryScanner begins to be optimized not to scan excluded directories. + Bugzilla Report 21941. + +* Added keep-going feature. Bugzilla Report 21144 + +* The archives generated by <zip> and friends will now contain CRC and + size information in the "local file header", thereby providing this + information to applications that read the archives using + java.util.ZipInputStream. Bugzilla Report 19195. + +* <copy> and <move> can now handle mappers that return multiple + mappings per source path. This behaviour is enabled by using + an enablemultiplemapping attribute. Bugzilla Report 21320. + +* <exec> will now work on OpenVMS (please read the notes in + <exec>'s manual page). Bugzilla Report 21877. + +* <exec> will now have a new attribute spawn (default false). + If set to true, the process will be spawned. Bugzilla Report 5907. + +* <java> will now have a new attribute spawn (default false). + If set to true, the process will be spawned. Bugzilla Report 5907. + +* <parallel> now supports a timeout which can be used to recover + from deadlocks, etc in the parallel threads. <parallel> also + now supports a <daemons> nested element. This can be used to + run tasks in daemon threads which the parallel task will not + wait for before completing. A new attribute failonany will cause + <parallel> to throw an exception if any thread fails without + waiting for all other threads to complete. + +* <zip> and friends will consume far less memory than they used to + when run with compress="false". Bugzilla Report 21899. + +* <if/> and <unless/> attributes added to <param/> element of <style> + Bugzilla Report 22044 + +* <zip> and friends have a new attribute "keepcompression" that can be + used to incrementally build an archive mixing compressed and uncompressed + entries. + +* <junit>'s XML formatter adds a new classname attribute to the <testcase> + elements. + +* new <permissions> type add permission handling to the code + this type can be nested in the <java> and <junit> tasks. + Bugzilla Report 22533. + +* additional shortcuts for ant options (-d --> -debug, -e --> -emacs, + -h --> -help, -p --> -projecthelp, -s --> -find). + +* new selector <modified>. "cache" was renamed to "modified". + Bugzilla Report 20474. + +* <stcheckout> and <stlist> have a new asofdate attribute that can be + used to checkout/list files based on a date instead of a label. + Bugzilla Report 20578. + +* New filter <concatfilter>. Adds the content of file at the beginning + or end of a file. Discussion started at + http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2 + +* New task <import> + +* New task <macrodef> + +* New task <presetdef> + +* Ant libraries that can make use of namespaces to avoid name + clashes of custom tasks + +* <java> and <junit> now support <assertions>, which let you enable + and disable Java1.4 assertions on a package or class basis. These + only work when fork=true, currently. + +* .NET tasks expanded with VB support <vbc> and J#, via <jsharp>, + <importtypelib> and <ilasm>. <csc> supports nested <src> types, + <defines> for (potentially conditional) definitions, <reference> + filesets for references. The executable attribute lets you switch to + mono or other implementations -<csc> has been tested with Mono on + Linux and OSX. + + +Changes from Ant 1.5.3 to Ant 1.5.4 +=================================== + +Changes that could break older environments: +-------------------------------------------- + +* If the Visual Age tasks used to work for you, they may stop doing so + now - and we'd like to know about it. The current set of tasks is + supposed to work with any version of VAJ starting with 3.0. + +Fixed bugs: +----------- + +* The Visual Age for Java tasks didn't work (at least for versions 3.0 + and higher). Bugzilla Report 10016. + +* URL-encoding in <vaj*port> didn't work properly. + +* VAJRemoteUtil called getAbsolutePath instead of getPath + causing problems when using a Windows VAJ server from a UNIX server. + Bugzilla Report 20457. + +* VAJImport task failed with NullPointerException when using DirectoryScanner. + Bugzilla Report 22080. + +Other changes: +-------------- + +* Shipped XML parser is now Xerces 2.5.0 + +* <javah> will invoke oldjavah on JDK 1.4.2. Bugzilla Report 18667. + +* The VAJ tasks now support a haltonfailure attribute to conditionally + keep building even if they fail. + +* It is now possible to use the latest (versioned or unversioned) edition + in <vajload> by using special wildcard characters. Also fixes + Bugzilla Report 2236. + +Changes from Ant 1.5.2 to Ant 1.5.3 +=================================== + +Changes that could break older environments: +-------------------------------------------- + +* The <zip> task and friends have again changed a method signature + (sorry, was necessary to fix bug 17780). The return type of + getResourcesToAdd has changed. + +Fixed bugs: +----------- + +* <zipfileset>'s filemode would get ignored and the dirmode was used + for the included files as well. As a side effect, WinZIP was unable + to extract or display the files, so they seemed to be missing from + the archive. Bugzilla Report 17648. + +* <ftp> could use the wrong path separator when trying to change the + remote working directory. Bugzilla Report 17735. + +* <jar update="true"> would loose all original files if you didn't + specify any nested <(zip)fileset>s and the manifest had changed. + Bugzilla Report 17780. + +* If you used a value starting with \ on Windows for the appxml + attribute of <ear> or the webxml attribute of <war>, it would be + ignored. Bugzilla Report 17871. + +* Ant will no longer implicitly add Sun's rt.jar in <javac> when you + use jvc and don't specify a bootclasspath. Bugzilla Report 18055. + +* The prefix attribute of <zipfileset> would not generate directory + entries for the prefix itself. Bugzilla Report 18403. + +* starteam checkout can now handle deleted labels. Bugzilla Report 17646. + +* The Unix wrapper script failed if you invoked it as a relative + symlink and ANT_HOME has not been set. Bugzilla Report 17721. + +Other Changes: +-------------- +* Added ability to specify manifest encoding for the <jar> and + <manifest> tasks + +Changes from Ant 1.5.1 to Ant 1.5.2 +============================================= + +Changes that could break older environments: +-------------------------------------------- +* ANT_OPTS environment variable is now applied at the start of the + Java command line, allowing position specific parameters of some + JVMs, such as -classic to be specified. + +* ZipScanner#getIncludedFiles will now return the names of the ZipEntries + that have been matched instead of the name of the archive. + +* The <zip> task and friends have been heavily modified, almost every + method signature of the Zip class has changed. If you have subclassed + Zip (or one of its subclasses), your class will most likely not + compile against the current code base. If it still compiles, it will + probably not work as in Ant 1.5.1. + +Fixed bugs: +----------- +* <translate> was not ignoring comment lines. + +* <manifest> wouldn't update an existing manifest if only an attribute + of an existing section changed. + +* ant.bat now supports the ANT_ARGS and JAVACMD environment variables + again (like Ant 1.5 did). + +* The "plain" <junit> <formatter> could throw a NullPointerException + if an error occurred in setUp. + +* <junit> will now produce output when a test times out as well. + +* <replace> would count some internal character replacements when + reporting the number of replaced tokens. + +* <concat> would cause an exception if a <filelist> pointed to files + that do not exist. + +* <javadoc> will now pass -source to custom doclets as well. + +* <cvstagdiff> would throw a NullPointException if there had been no + differences. + +* <cvschangelog> could miss today's changes. + +* <concat> could append newline characters between concatenated files. + +* <xmlvalidate> ignored the specified encoding of the files to + validate. + +* the errorsbeginat attribute of the <http> condition didn't work. + +* Ant will try to force loading of certain packages like com.sun.* + from the system classloader. The packages are determined by the + version of the JVM running Ant. + +* Ant didn't find the runtime libraries on IBM's JDK 1.4 for Linux. + +* random component of temporary files is now always a positive integer. + +* Ant could incorrectly try to use the 1.4 regexp implementation even + if it isn't available if you run the JVM with -Xverify:none. + +* Ant would die with an exception if you used nested <reference> + elements in Ant and the refid attribute didn't point to an existing + project reference. + +* The <get> task can now be compiled (and Ant thus bootstrapped) using + Kaffee. + +* build.sysclasspath will now be honored by more tasks. + +* The signjar keystore attribute has been reverted to a String allowing + it to once again accept URLs. This should not affect current File based usage + unless you are extending the Signjar task. + +* <jar update="true"> would remove the original manifest. + +* fix up folder creation in PVCS task + +* <tar>'s up-to-date check didn't work for nested <(tar)fileset>s. + +* Corrected a problem in XMLLogger where it would not associated + messages with a taskdef'd task + +* <uptodate> now works when using attributes (i.e. not filesets) and pointing + to the same file + +* Java task (and output system) now stores output which doos not end + with a line feed. + +* splash screen wouldn't disappear when build was finished. + +* <exec> now supports OS/2. + +* <zip> and friends would only update/recreate existing archives if + the files to add/update have been newer than the archive. + +* <javadoc>'s <link> element could fail for offline="true" on some JDKs. + +Other changes: +-------------- + +* MailLogger now sets the Date header correctly. + +* Shipped XML parser is now Xerces 2.3.0 + +* signjar now accepts a maxmemory attribute to allow the memory allocated to the + jarsigner tool to be specified. The jarsigner from the JDK's JAVA_HOME bin + dir is now used rather than the first jarsigner on the path. + +* **/.DS_Store has been added to the list of default pattern excludes. + +* The Created-By header in the default manifest now contains the JVM + vendor and version according to the jar specification. A new header, + Ant-Version provides the Ant version used to create the jar. + +* <zip> can now store Unix permissions in a way that can be + reconstructed by Info-Zip's unzip command. + +Changes from Ant 1.5.1Beta1 to 1.5.1 +==================================== + +Fixed bugs: +----------- + +* <tstamp>'s prefix attribute failed to apply to nested <format> elements. + +* <junitreport> created an empty junit-noframes.html if no format had + been specified. + +* <basename> would remove more than it should if the file name + contained more than one dot. + +* <filterset>s nested into <filterset>s didn't work. + +Other changes: +-------------- + +* Shipped XML parser is now Xerces 2.2.0 + +* Filesets now support a 'file' attribute, allowing a single-file + fileset to be constructed without having to specify its parent + directory separately. + +* <junit> will now return the result of a call to getName instead of + "unknown" for Test implementations that don't extend TestCase but have + a public String getName() method. + +Changes from Ant 1.5 to 1.5.1Beta1 +================================== + +Fixed bugs: +----------- +* Date/time in CvsChangeLog was in local timezone and 12 hour format leading + to a problem when sorting by time. It is now UTC (GMT) and in 24-hour + format as per cvs 'specifications'. + +* CvsTagDiff now supports ampersand modules or modules that have a different + root directory than their name. + +* EjbJar threw NPEs for the Websphere element. The property 'websphere.home' + was not documented. + +* Mail example in the documentation was not correct. + +* Checksum was broken in the following scenario: + (using verifyproperty OR in a condition) AND using filesets + with multiple files. + +* The ExpandProperties filter threw NPEs when defined using + the <filterreader> format. + +* The sh wrapper script didn't work under Cygwin if ANT_HOME wasn't + set with a Unix style filename. + +* The sh wrapper script could fail if you started Ant from a directory + with whitespace in its name. + +* ant -diagnostics was not working properly when the task dependency + was missing and was just printing the missing dependency. + +* If a task got redefined via <taskdef>, it lost its child elements. + +* <property>'s classpathref attribute was broken. + +* <arg line="''" /> would result in no command line argument, will now + be a single empty argument. Use <arg value="''"/> if you need the + quotes literally. + +* <replaceregexp> could append a newline character at the end of the + file. + +Other changes: +-------------- + +* Appendix E of Java Development with Ant (Loughran/Hatcher) was + contributed to the docs. + +* <available> will only print deprecration warnings if it is actually + used to change the value of a property. + +Changes from Ant 1.5beta3 to Ant 1.5 +==================================== + +Changes that could break older environments: +-------------------------------------------- + +* The filesetmanifest attribute added to <jar> after the 1.4.1 + release has been removed for now. This change may affect only + the 1.5Beta/1.6Alpha users. An attempt will be made to add this + feature back into Ant 1.6. + +Fixed bugs: +----------- + +* <zip> and friends would always update existing archive if you set + the update attribute to true. + +* To support backward compatibility with older versions, <pathconvert> + will once again set the property, even if the result is the empty + string, unless the new 'setonempty' attribute is set to false|no|off + (default is "true"). + +* The manifest task would crash XmlLogger + +Other changes: +-------------- + +* added **/.svn and **/.svn/** to the default excludes + +Changes from Ant 1.5beta2 to Ant 1.5beta3 +========================================= + +Changes that could break older environments: +-------------------------------------------- + +* <pvcs> default filenameformat has been different from Ant 1.4.1. + Now it is different from 1.5beta1 and 1.5beta2. + +* <pathconvert> won't set the property if the result is the empty string. + +Fixed bugs: +----------- + +* <available> could fail to find files or directories that happen to + start with the name of the project's basedir but are not children of + the basedir. + +* Nested <property>'s inside <ant> can now be overriden by subsequent + <ant> and <antcall> tasks. + +* <xslt>'s outputtype attribute wouldn't do anything. + +* <linecontains> filterreader could swallow lines. + +* <sequential> used to configure the tasks (set their attributes) + before the first task has been executed. This means that properties + that have been set by nested task seemed to be unset for the other + tasks in the same <sequential> element. + +* <javac>'s sourcepath setting has been ignored by some compiler + implementations. + +* <javadoc>'s packagelist attribute didn't work. + +* the plain mailer would always use port 25 in <mail>. + +* Ant's default logger could swallow empty lines. + +* ejbjar's iPlanet nested element now can process multiple descriptors. + +* IPlanetEjbc was looking in the wrong place for four iiop files. + +* <javac> would pass the -source switch to JDK 1.3's javac, even + though it doesn't support it. + +Other changes: +-------------- + +* <checksum> now uses a buffer (of configurable size). + +* The "Trying to override task definition" warning has been degraded + to verbose level if the two task definitions only differ in the class + loader instance that has loaded the definition. + +* Add a jvmargs to the ejbjar's weblogic element to allow additional + arguments to be provided to the VM runnign ejbc. Document the + jvmdebuglevel attribute which can be used to avoid warnings about + interface classess being found on the classpath. Document the new + <sysproperty> element which allows JVM properties to be defined. + Added an outputdir attribute to allow the destination to be a + directory into which the exploded jar is written. + +* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5 + +Changes from Ant 1.5beta1 to Ant 1.5beta2 +========================================= + +Changes that could break older environments: +-------------------------------------------- + +* Properties will now be expanded in mail message bodies. This means + that one $ sign will be stripped if your mail message contains the text $$. + +* org.apache.tools.ant.taskdefs.Expand no longer extends MatchingTask. + +* Available#setFile now again uses a File argument as it did in 1.4, + this may break environments that have been adapted to the String + argument version present in 1.5beta1. + +Fixed bugs: +----------- +* When <move> attempts a rename, it deletes the destination file, if it + exists, before renaming the source file. However, <move> was not + checking if the destination file was actually a directory before + trying to delete it. + +* Make CVS Tasks to work under Cygwin. + +* Fix LineContains to handle huge files elegantly without causing + Stack Overflows. + +* if you ask for the "classic" compiler on Java1.4, you get upgraded to + "modern" because there is no classic compiler any more. + +* the <http> condition was viewing 404 'not found' exceptions as success. Now + it defaults to viewing any response >=400 as an error, and has an + errorsBeginAt attribute you can use if you want a higher or lower value. + +* <get> throws a build exception on an http authorization error, unless you + have set ignoreerrors to true. + +* <wsdltodotnet> was spelt in Wintel case: <WsdlToDotnet>. It is now lower + case, though the old spelling is retained for anyone who used it. + +* Merging of Manifests in jar now works as documented. + +* paths that have been separated by colons would be incorrectly parsed + on NetWare. + +* runant.pl now supports NetWare. + +* <tempfile> and <setproxy> tasks were in beta1, but not defined by + default; They now are. <tempfile> fills a property with the name of a + temporary file; <setproxy> lets you set the JVM's http, ftp and socks proxy + settings. + +* <available classname="foo" ignoresystemclasses="true"> failed for + JDK 1.1 and 1.2, even if the class could be found on the + user-specified classpath. + +* <property environment=... /> now works on z/OS. + +* forked <javac> failed for the wrong reason on JDK 1.1 - Ant would + use a temporary file to hold the names of the files to compile under + some conditons, but 1.1 doesn't support this feature. Ant will no + longer try this, but you may run into problems with the length of the + command line now. + +* the refid attribute for <property>s nested into <ant> or <param>s + nested into <antcall> didn't work. + +* <replaceregexp> didn't work for nested <fileset>s. + +* <javadoc> dropped sourcepath entries if no "interesting" .java + source files could be found below them. This has been backwards + incompatible and caused problems with custom doclets like xdoclet. + +* Using the doclet, docletpath or docletpathref attributes of + <javadoc> may have caused NullPointerExceptions. + +* nested <filesets> of <javadoc> would include too much. + +* <dependset> will no longer choke on <targetfileset>s that point to + non-existing directories. + +* <patch> didn't work at all. + +* <replace> and <replaceregexp> now fail if the file they are working + on is locked. + +* <javadoc> would pick up the wrong executable in the combination JDK + 1.2 and AIX. + +Other changes: +-------------- + +* z/OS now gets detected by the os condition. + +* <fileset> and <dirset> now have an optional followsymlink attribute + that can prevent Ant from following symbolic links on some platforms. + +* BeanShell is now supported in the <script> task. + +* <ejbjar> under Weblogic attempts to use the ejbc20 compiler for 2.0 beans + based on the deployment descriptor's DTD reference. Under weblogic 7.00 Beta + this ejbc class has been deprecated. To avoid the deprecation warning use + ejbcclass="weblogic.ejbc". + +* <ejbjar> will add a manifest to the generated jar based on the naming + convention in use. This overrides the manifest specified in the + <ejbjar> attribute + + +Changes from Ant 1.4.1 to 1.5beta1 +================================== + +Changes that could break older environments: +-------------------------------------------- + +* Important: Single $ signs are no longer silently stripped! + Before you panic that we have broken all your build files, we have kept + the old "$$" -> "$" behaviour. So only build files which accidentally had + a $ sign in a string that was being silently stripped may break. + We added this fix to stop newbie confusion; if you want to write a + build file which works on ant versions 1.4.1 or earlier, stay with + the double $$ sign rule. + +* Project.getBuildListeners now returns a clone of the listener + list. Changes to the returned list will not affect the listeners + currently attached to the Project. It also means that it is safe to + iterate over the returned list if listeners are added or removed + during the traversal. + +* <pvcs> default filenameformat has been different from Ant 1.4.1. + +* Some messages that are printed during startup will not be + written to the logfile specified via -logfile as they might destroy + the format of the file for special BuildLoggers (like XmlLogger). + +* The filesetmanifest attribute added to <jar> after the 1.4.1 + release has been removed for now. This change may affect only + the 1.5Beta/1.6Alpha users. An attempt will be made to add this + feature back into Ant 1.6. +* Shipped XML parser is now Xerces 2.0.1 along with the XML Parser APIs. + XML Parser APIs is a separate jar that contains the necessary + JAXP/DOM/SAX classes. + +* <telnet> was fixed to expand properties inside nested <read> and + <write> elements; before this only happened when you assigned the text + to the string attribute. If you had $ signs in the string, they may + need escaping. + +* the RegexpMatcher interface has been extended to support case + insensitive matches and other options - custom implementations of + this interface won't work any longer. We recommend to use the new + Regexp interface that also supports substitution instead of the + RegexpMatcher interface in the future. + +* <gzip> will throw an exception if your src attribute points to a directory. + +* Unjar, Unzip and Unwar will throw an exception if the Src attribute + represents a directory. Support for nested filesets is provided + instead. + +* It is no longer possible to overwrite a property using tasks like + <condition>, <exec>, <pathconvert>, or <tstamp>. In some exceptional + cases it will generate a warning if you attempt to overwrite an + existing property. + +* Taskwriters please note: Whenever tasks had any overloaded set* methods, + Ant's introspection mechanism would select the last overloaded method + provided to it by the Java Runtime. A modification has now been made such + that when the Java Runtime provides a method with a String as its argument, + a check is made to see if there is another overloaded method that takes in + some other type of argument. If there is one such method, then the method + that takes in String as an argument is not selected by the Introspector. + +* The pattern definition **/._* has been included into the Default + Excludes list. + +* <propertyfile>'s <entry> element was modified to remove "never" as a value + as its behavior was undocumented and flakey. + +* The -projecthelp flag now only prints out targets that include the + 'description' attribute, unless the -verbose or -debug flag is included + on the Ant command line. + +* Ant's testcases now require JUnit 3.7 or above, as they now use the new + assertTrue method instead of assert. + +* If the 'output' attribute of <ant> is set to a simple filename or a + relative path, the file is created relative to ${basedir}, not ${user.dir}. + +* The default value for build.compiler is now javac1.x with x + depending on the JDK that is running Ant instead of classic/modern. + +Fixed bugs: +----------- + +* <available> could fail to find files or directories that happen to + start with the name of the project's basedir but are not children of + the basedir. + +* Nested <property>'s inside <ant> can now be overriden by subsequent + <ant> and <antcall> tasks. + +* <xslt>'s outputtype attribute wouldn't do anything. + +* <linecontains> filterreader could swallow lines. + +* <sequential> used to configure the tasks (set their attributes) + before the first task has been executed. This means that properties + that have been set by nested task seemed to be unset for the other + tasks in the same <sequential> element. + +* <javac>'s sourcepath setting has been ignored by some compiler + implementations. + +* <javadoc>'s packagelist attribute didn't work. + +* the plain mailer would always use port 25 in <mail>. + +* Ant's default logger could swallow empty lines. + +* ejbjar's iPlanet nested element now can process multiple descriptors. + +* IPlanetEjbc was looking in the wrong place for four iiop files. + +* <javac> would pass the -source switch to JDK 1.3's javac, even + though it doesn't support it. + +* <zip> and friends would always update existing archive if you set + the update attribute to true. + +* To support backward compatibility with older versions, <pathconvert> + will once again set the property, even if the result is the empty + string, unless the new 'setonempty' attribute is set to false|no|off + (default is "true"). + +* The manifest task would crash XmlLogger + +* A bug existed that prevented generated log files from being deleted as + part of the build process itself. This has now been fixed. + +* Fixed bug where <move> ignored <filterset>s. + +* Ant works properly with the combination of Java1.4/WindowsXP. + +* Fixed bug where <java> used to sometimes invoke class constructors twice. + +* Fixed bug with 4NT shell support. + +* Fixed bug where ant would not perform ftp without remotedir being + specified even though this was not mandatory. + +* Fixed bug where ant would not copy system properties into new Project + in ant/antcall tasks when inheritall="false" is set. + +* <propertyfile> would not close the original property file. + +* <ant> will no longer override a subbuild's basedir with inheritall="true". + +* Fixed problem with the built-in <junit> formatters which assumed + that only one test could be running at the same time - this is not + necessarily true, see junit.extensions.ActiveTestSuite. + +* <jar>'s whenEmpty attribute is useless as JARs are never empty, they + contain at least a manifest file, therefore it will now print a + warning and do nothing. + +* <typedef> hasn't been all that useful as it couldn't be used outside + of targets (it can now) and nested "unknown" elements have always + been considered to be tasks (changed as well). + +* <fixcrlf> would fail for files that contained lines longer than 8kB. + +* Some junit formatters incorrectly assumed that all testcases would + inherit from junit.framework.TestCase. + +* <fixcrlf> dropped the first characters from Mac files. + +Other changes: +-------------- + +* <checksum> now uses a buffer (of configurable size). + +* The "Trying to override task definition" warning has been degraded + to verbose level if the two task definitions only differ in the class + loader instance that has loaded the definition. + +* Add a jvmargs to the ejbjar's weblogic element to allow additional + arguments to be provided to the VM runnign ejbc. Document the + jvmdebuglevel attribute which can be used to avoid warnings about + interface classess being found on the classpath. Document the new + <sysproperty> element which allows JVM properties to be defined. + Added an outputdir attribute to allow the destination to be a + directory into which the exploded jar is written. + +* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5 + +* added **/.svn and **/.svn/** to the default excludes. + +* Selector Elements now provide a way to create filesets based on + sophisticated selection criteria. + +* Gzip and Bzip2 files can now be constructed in the fly when using + the tar task without having to create the intermediate tar file on + disk. The Untar task can also untar GZip and BZip2 files on the fly + without creating the intermediate tar file. + +* New optional type, <classfileset> added. + +* <ejbjar> now allows control over which additional classes and interfaces + are added to the generated EJB jars. A new attribute "dependency" can be + defined which controls what classes are added. The addition of classes now + uses the Jakarta-BCEL library rather than reflection, meaning bean classes are + no longer loaded into Ant's JVM. The default dependency analyzer is known as + the ancestor analyzer. It provides the same behaviour as the 1.4.1 version of + <ejbjar>. If the BCEL library is not present, a warning will be issued stating + the ancestor analyzer is not available. In this case <ejbjar> will continue + to function but will not add super classes to the jar. + +* <available> has a new attribute named ignoreSystemClasses. + +* New task <cvschangelog/> generates an XML report of changes that occur + on CVS repository. + +* New filter readers: ClassConstants, ExpandProperties, HeadFilter, + LineContains, LineContainsRegExp, PrefixLines, ReplaceTokens, + StripJavaComments, StripLineBreaks, StripLineComments, TabsToSpaces, + TailFilter. + +* <copy>, <loadfile>, <loadproperties>, <move> support FilterChains + of FilterReaders. + +* New task <loadproperties> to load contents of file as Ant properties, + with nested <filterchain> elements. + +* New task <loadfile> to load a whole file into a property. + +* New task <echoproperties> to list your current properties to the screen + or a file. + +* New tasks <bzip2> and <bunzip2> to pack and unpack files using the + BZip2 algorithm. + +* New tasks <replaceregexp>, <checksum>, <translate>, <waitfor>, + <manifest>, <vsscp>, <vssadd>, <vsscreate>, <splash>, <basename>, <dirname>, + <concat>, <sourceoffsite>, <jarlib-available>, <jarlib-display>, + <jarlib-manifest>, <jarlib-resolve>. + +* A new combined <mail> task, which replaces the old <mail> and + <mimemail> tasks, has been added. The <mimemail> task, and + old SendEmail and MimeMail classes have been deprecated. + +* Mail task allows specification of port number. + +* Users can control what <zip> and <jar> must do when duplicate files + are found. A new element <zipgroupfileset> allows for multiple zip + files to be merged into the archive. In addition, <jar> also has + another new attribute: filesetmanifest. The existing manifest + attribute of <jar> now also accepts the name of a jar added through + a fileset. + +* gzip now checks that the zipfile is older than the source file + before rebuilding the zipfile. + +* TarFileset takes in three new attributes - fullpath, prefix + and preserveLeadingSlashes. + +* <move> attempts to rename the directory, if everything inside it is + included, before performing file-by-file moves. This attempt will + be done only if filtering is off and if mappers are not used. This + is a performance improvement and there is no change otherwise in + the functionality of this task. + +* Exec task has extra attribute "resultproperty" to get the return code + into a property. + +* Exec task prints a message when a timed-out process is killed. + +* Added optional attributes - name, arch and version to the <os> task. + +* Unjar, Untar, Unwar and Unzip now support patternsets to + select files from an archive for extraction. Filesets may be + used to select archived files for unarchival. + +* Javac task allows debug levels to be specified. Debug levels + will have an effect only when the modern compiler or the + classic compiler (version 1.2 and higher) is used and debugging + is enabled. + +* Added support for specifying CVS_RSH in the <cvs/> task + +* The attributes zipfile, jarfile, warfile and earfile (from the Zip, + Jar, War and Ear tasks) have been deprecated and superseded by a + new attribute "destfile". + +* Added new conditions <isset>, <checksum>, <http>, <socket>, <contains>, + <filesmatch>. + +* <taskdef> and <typedef> will now emit a warning if a task/type of + the given name already exists. + +* A new revision of VAJ tasks: The most important new feature + is the ability to execute VAJ tasks from the command line by + exploiting the Remote Tool Access feature of VAJ. + +* Improved support for Novell NetWare. + +* Added an optional encoding attribute to <fixcrlf>. + +* <apply> has a new attribute relative that allows users to pass the + filenames as relative instead of absolute paths on the command line. + +* References can now be copied into the child build by <ant> and + <antcall> using nested <reference> elements or the new inheritRefs + attribute. + +* <fail> now supports builds to fail based on conditions via if and + unless attributes. + +* Ant now comes with two new BuildLogger implementations - one that + can send emails containing a log of the build process (MailLogger), + and one that colorizes the output based on message levels, using + ANSI color code escape sequences (AnsiColorLogger). + +* A "package" mapper type has been added to allow package directory + names replaced with the dotted form. + +* You can now specify environment variables in the <java> and <junit> tasks + if the fork attribute has been set to true. + +* -propertyfile command-line option has been added to load an entire + property file just as -D properties are declared (as user properties). + -D properties take precedence over -propertyfile specified ones. + +* You can now set an ANT_ARGS environment variable to hold arguments you + always want passed to the 'ant' command -- for example, if you always + want to use a different logger or the -find flag. + +* <tstamp> now supports a new "prefix" attribute to prefix properties set. + +* You can now specify the -sourcepath for <javac> explicitly. + +* <javac> now supports a new "listfiles" attribute to list the source + files it's handing off to the compiler. + +* The compiler implementation for <javac> can now be chosen on a task by + task basis. The new "compiler" attribute of <javac> can be used to override + the value of the build.compiler property, if set. + +* <javac> has a new nested element, <compilerarg>, which allows you + to specify additional args for the specific compiler you're using. + +* <javac>'s "source" attribute is now enabled for jikes as well. + +* <propertyfile>'s <entry> now has a 'unit' attribute to specify the + increment/decrement unit on date operations. + +* <property> now supports a 'prefix' attribute when loading from a file + or resource. + +* In Ant 1.4, a feature has been added to the <junit> task that would + add ant.jar, optional.jar and junit.jar implicitly to the classpath - + this feature can now be disabled by setting the new includeantruntime + attribute to false. + +* <style> behaves differently from any other directory-based task, as it + processes all files that it finds in included directories in + addition to the files matched by your patterns. There is now a new + attribute, 'scanincludeddirectories', to suppress this behavior. + +* <javadoc> now supports a <tag> nested element to provide the -tag option + to the standard Java 1.4 doclet. The element is ignored when not running + on Java 1.4. + +* <ftp> can now chmod files on a remote server that supports + "site chmod", as well as set the umask before transferring files, if + the server supports "site umask". + +* New <serverdeploy> "optional" task. + +* <patternset> now supports nested patternsets. + +* Perforce tasks now support a "failonerror" attribute (defaults to "true"). + +* Open Source application server JOnAS support: + EJB hot deploy and deploy with <serverdeploy> and <ejbjar> + +* Added new DirSet (<dirset>) datatype. + +* <path> now supports nested <dirset> and <filelist> elements. + +* <pathconvert> now supports nested <dirset> and <filelist> elements. + +* <pathconvert>'s "dirsep" and "pathsep" attributes now accept + multi-character values. + +* <copy> task now has a 'failonerror' attribute to allow keep-going + behaviour when the file to be copied is not found (defaults to "true"). + +* <uptodate> now has a 'srcfile' attribute to allow specifying a + full-path filename. + +* <exec>, <sql> and <java> now support append attributes to allow + appending the output to an existing file. + +* <java> now supports a timeout attribute analog to <exec> - it is + highly recommended to only use it together with fork="true". + +* <javadoc> now supports a source attribute to enable javadoc to + handle assertions present in JDK 1.4 source code. + +* <replace> supports a new replacefilterfile attribute that + automatically turns all properties of a given file into + replacefilters. + +* An alias of <xslt> has been added to refer to the <style> task. + +* The compiler implementation for <rmic> can now be chosen on a task by + task basis. The new "compiler" attribute of <rmic> can be used to override + the value of the build.rmic property, if set. + +* <rmic> has a new nested element, <compilerarg>, which allows you + to specify additional args for the specific compiler you're using. + +* org.apache.tools.ant.XmlLogger now is a BuildLogger, rather than just + a BuildListener. It can operate in either mode successfully. + +* <junit> has a new attribute "showoutput". If set to true, output + generated by tests will be sent to Ant's logging system as well as + to the formatters (instead of sending it to the formatters + exclusively). + +* Ant has now a pluggable way to prompt users for input, which is used + by the new <input> task. IDE integrators can provide an + implementation of the InputHandler interface to decouple Ant's input + from the console. An implementation that gets its input from a file + for unattended builds is part of Ant's distribution. + + For more details see docs/manual/inputhandler.html. + +* <patch> has a new attribute that selects the directory in which to + run the command. + +* <javadoc> now supports two new nested elements, <fileset> and <packageset>. + + +Changes from Ant 1.4 to Ant 1.4.1 +=========================================== + +Fixed bugs: +----------- + +* <ant>'s antfile attribute will now also be considered an absolute path on + Windows systems, if it starts with a \ and no drive specifier. + +* The fullpath attribute of <zipfileset> has been ignored if you used + the src attribute at the same time. + +* The manifest file is now always placed as the second entry (after /META-INF) + in generated jars. This allows the manifest to be read by JarInputStreams + +* Fixed bug in depend task which would fail with a NullPointerException if no + dependency cache was specified. + +* sql task now handles REM statements correctly so that lines starying with rem + but which are not comments are actually processed. + +* XMLLogger now uses the task's name rather than the classname + +* <mapper>s will now work as expected if the to pattern expands to an + absolute pathname. + +* <javac> didn't ignore memory settings in non-fork mode + +* <cab> didn't split the options attribute into several command line + arguments correctly. + +Other changes: +-------------- + +* New source attribute for <javac> to enable assertion in JDK 1.4 + +* XmlLogger and <antstructure> now add an encoding declaration to the + XML files they generate. + +* <fileset> has a new attribute "casesensitive" to make it match + filenames in a case insensitive way (if you set it to false) - by + default filesets remain case sensitive. + +Changes from Ant 1.3 to Ant 1.4 +=========================================== + +Changes that could break older environments: +-------------------------------------------- +* JUnitReport now uses the xalan redirect extension for multi-output. + With Xalan 1.2.2 it forces the use of bsf.jar in the classpath. + (Available in the xalan distribution). It is recommended to switch + to Xalan 2.x that do not need it. + +* Zip.setWhenempty() has changed its signature. + +* <rmic> is now implemented using a factory. This makes extending + rmic to use a new compiler a lot easier but may break custom + versions of this task that rely on the old implementation. + +* several Zip methods have changed their signature as we now use a Zip + package of our own that handles Unix permissions for directories. + Furthermore <zip> will now use the platform's default character + encoding for filenames - this is consistent with the command line + ZIP tools, but causes problems if you try to open them from within + Java and your filenames contain non US-ASCII characters. Use the new + encoding attribute of the task and set it to UTF8 to get the old + behavior. + +* The <pvcs> task has been moved to a package of its own. + +* JUnitResultFormater has two additional methods that must be + implemented by custom formatters. + +* Ant will no longer use the canonical version of a path internally - + this may yield different results on filesystems that support + symbolic links. + +* The output generated by the xml formatter for <junit> has changed + again, it doesn't format the numeric value in the time attribute anymore. + +* Pattern matching rules have changes slightly, the pattern foo* + doesn't match files contained in a directory named foo - use foo/* + instead. + +* <fixcrlf> will not remove trailing whitespace at the end of lines anymore. + +* The Classloader usage has been changed for the taskdef, property, available + and sql tasks so that it delegates to the parent classloader. This may cause + ClassNotFoundExceptions to be thrown if a system class attempts to load a + class in the taskdef's classpath (typically factory objects). + +* Ant now allows multithreading of tasks and the containment of tasks within + other tasks. This can break customer listeners which do not expect messages + from a task before the previous task has finished. + +* Ant now installs its own output stream into System.out to route output to the + task currently executing on the current thread. This also means that all + output is now routed as Ant message events. Customer listeners and loggers + should not call System.out at any time. This has always been true but such + usage now will cause problems due to possible recursion. + +* Invalid manifest files will now cause build failures in the <jar> task. + +* Ant Introspection now looks for methods with method names starting with + addConfigured. When called these methods are passed an argument after it has + been configured from the build file. Custom tasks supporting nested elements + starting with the name configured will no longer function. + +* The environment variable JAVACMD that can be used to specify the + java executable to Ant's wrapper scripts must not contain additional + command line parameters any longer - please use the environment + variable ANT_OPTS for such parameters now. + +* Ant's wrapper scripts now quote the CLASSPATH environment variable, thus + supporting classpaths which refer to directories containing spaces. This means + that the CLASSPATH environment variable cannot have quotes. Any quotes should + be removed. This will not affect the operation of the CLASSPATH environment + variable in other contexts. + +* A delete task like + <delete includeEmptyFilesets="true"> + <fileset dir="somedir" /> + </delete> + will now remove "somedir" as well, unless there are still files left + in it (matched by the default excludes). + +* The copy task will now fail if the file to be copied is not found. + +* Ant properties defined in properties files now behave the same way as + properties defined in the build file. In particular the $ character needs + to be escaped in property values by doubling it to $$. So, to define a + property with the value $hello, you need to define it in a properties file + as + test.prop=$$hello + This was not the case in Ant 1.3 + +Other changes: +-------------- + +* New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout, + typedef, sleep, mimemail, set of tasks for Continuus/Synergy, dependset, + condition, maudit, mmetrics, jpcoverage, jpcovreport, jpcovmerge + +* Ant now uses JAXP 1.1 + +* rmic now supports Kaffe's and Weblogic's version of rmic. + +* new magic property build.rmic to chose the rmic implementation + +* <tar> will now add empty directories as well + +* you can now specify a description for <p4change> + +* <touch> can now work on <fileset>s + +* <uptodate> now supports a value attribute + +* <fail> supports nested text + +* <fixcrlf> won't override files that are already in the correct + format. + +* <sql> now supports REM comments as well as // and -- + +* <jar> now has a nested <metainf> element following the same idea as + <war>'s <webinf>. + +* <pvcs> can now handle multiple projects. + +* <available> now has a "type" attribute you can use in conjunction + with the "file" attribute to specify whether the "file" you're + looking for is a file or a directory. + +* New <junit> formatter named "brief" + +* <ejbjar> changes + * Add support for Borland Application Server to the <ejbjar> task using + a <borland> nested element. + * Add support for iPlanet Application Server to the <ejbjar> task. Also + includes some iPlanet utility tasks + * Add support for JBoss Application Server to the <ejbjar> task. + * Add a naming attribute to control the naming scheme that + ejbjar uses to name the generated EJB jars. + * Weblogic element now sets the compiler class for EJB 2.0 beans + * <dtd> elements can be specified at the <ejbjar> level for building generic + beans + * <dtd> elements can now be URLs + * Allow the manifest to be specified for the generated jars + * The weblogic element now supprts an attribte noEJBC to skip the processing + of the jar by ejbc. The ejbc step will then occur at deployment + * weblogic will tell ejbc to use Jikes compiler if build.compiler is set to + jikes. It can be restored to the default, javac, operation if desired. + +* Allow the <sql> Delimiter to be set in the so that Oracle stored procs may be + entered + +* <execon> and <apply> can now optionally skip empty filesets. + +* <javadoc> has a new useexternalfile attribute that makes it use a + temporary file for sourcefile and package names - helps to defeat + command line length limitations. + +* Data types like <path> can now be defined inside of <target>s + +* you can now specify a classpath for <style> - the XSLZ processor + will be loaded from this path + +* added a force attribute to <style> to support dependencies that the + task cannot determine itself (dependency on parameters, not file + modification times for example) + +* added vmlauncher attribute to exec tasks. This defaults to true. If + it is set to false, the VM's ability to launch commands in bypassed + and the OS shell, either directly or through the auxiliary antRun + scripts is used. + +* regexp mapper now supports the java.util.regex package of JDK 1.4. + +* New filesonly attribute for <zip> and friends to suppress directory + entries. + +* New update attribute for <zip> and friends - update an existing + archive instead of creating a new one. + +* <apply> and <execon> have been merged into a single task. + +* added vssver.scc to the default excludes + +* <available> has a new filepath attribute/nested element that allows + you top search for a file in a given path. + +* <junit> can now optionally set a property on test failure. + +* <taskdef> can now define several tasks at once, reading the + name/classname pairs from a property file or resource. + +* <unzip/unjar/unwar> and <untar> now have an overwrite attribute that + defaults to true. If set to false, files that are newer than the + files in the archive will not be replaced. + +* <patternset> and <fileset> now support nested <in/excludesfile> + elements - using these you can have more than one in/excludes file + per <patternset>. + +* Three new supported compilers for javac: kjc for kopi, gcj for the + gcc frontend and sj for Symantec's compiler. + In addition extJavac or the new fork attribute can be + used to run the JDK's javac in a JVM separate from Ant. + +* <fixrlf> can now with CR only line-ends and can use an arbitraty + between 2 and 80. + +* The .NET tasks have been adapted to the beta2 release of the framework. + +* <move> will now try to rename() files before copying them byte by + byte - only if filtering is of, of course. + +* <ant> and <antcall> tasks now support a new attribute inheritAll. When set to + false, only user properties are passed through to the target Ant instance. + This includes properties set on the command line and properties explicitly + passed + +* <javadoc> now skips off line links if the package list cannot be found. + +* <wlrun> now allows the security policy file to exist outside the weblogic + directory. + +* <java> task will set the Thread contextClassLoader under JDKs 1.2+ to the + classloader for the class being executed. + +* Introduce the concept of a TaskContainer - a task or element which can contain + Ant Tasks. + +* Add new tasks implementing the TaskContainer interface <parallel> and + <sequential> which allow parallel execution of tasks to be specified. + +* <depend> task will now take into account dependencies on jar files and class + files from a given classpath. + +* <jar> manifest entries may now be specified in the build file either + completely or to be merged with a manifest file. + +* <tstamp> task custom formats now support locales. + +* Added a listner which will forward events to Log4J. The log4j configuration + file should be in the directory from which Ant is run or passed as a system + property using a JVM argument. + +* Introduced the concept of <filtersets> to allow for more control in which + filters get applied in a <copy> or <move> operation. + +* Added nowarn attribute to javac and deprecated the Jikes-magic property + build.compiler.warnings. + +* The <depend> task cache format has changed and all dependency information is + now stored in a single file. + +Fixed bugs: +----------- + +* Testcases have been made independent of current working directory. + +* Input ZIP-Files will be closed when using a <zipfileset>. + +* p4 tasks now don't fail if user, port or client have been omitted + (and this is acceptable for the context of the command). + +* <javah>'s outputfile attribute will be resolved as relative to the + projects basedir. + +* <antstructure> should create a valid DTD for propertyfile.operation.entry + and omit tasks it fails to load. + +* won't try to pass a -bootclasspath flag to javac 1.1 anymore + +* <style>'s style attribute no handles absolute paths correctly. + +* <delete includeemptydirs="true"> now deletes more than just the leaf + directories. + +* You can now specify a <fileset> for a directory that doesn't exist at + declaration time but will created before the fileset gets used for the + first time. + +* If the quiet attribute has been set, <delete> will handle <fileset>s + with non-existing directories gracefully. + +* Output written by testcases will now be captured by the <junit> task + and passed to the formatters. + +* Quote the -group parameter to Javadoc as per the specification + +* Initialise classes when loaded through the AntClassLoader - that is, run + static initializers + +* Implement getResource() and getResources() in AntClassLoader + +* Create the <ejbjar> weblogic command line as a set of arguments rather than + as a single line. Avoids problems with paths which contain spaces. + +* <ejbjar> now fails when the weblogic ejbc compiler reports an error. + +* Make the AntClassLoader load resources in the same order as it currently + loads classes. + +* Handle classpaths with spaces + +* Make sure XSLT processors close their output files in <style>. + +* perform proper uptodate check in <rmic> when compiling for IIOP. + +* <jjtree>'s uptodate test works even if outputdirectory is not the + parent dir of target + +* <copy> will remove target file (if it exists) before writing to it - + this avoids problems with links on filesystems that support them. + +* <ftp> now properly recurses remote directories. + +* <ftp> closes remote connection when it's done. + +* <junit> tries to include all necessary classes for the task itself + to the classpath when running in fork mode - doesn't work for JDK 1.1 + +* <apply> and <execon> do now execute the command only once, if you + specify the parallel attribute - instead of once per fileset. + +* directory based tasks and fileset could miss some included files in + directories that have been excluded + +* <fixcrlf> failed for large files. + +* <move> removed files you tried to move to themselves. + +* <sql> task will not trty to print the result set unless the query succeeded. + +* Ant classloader will now ignore paths which are invalid relative to the + project base + +* <ejbjar> weblogic elements check for jar file changes has been fixed. + Previously some changes would not be included. + +* properties loaded from properties files are now resolved internally. This + removes the spurious warnings about usage of properties which have not been + set. + +* <jar> task and friends now process the JAR manifest to ensure it is valid. + +* The task finished event now includes any exception thrown by the task. + +* <java> task now supports a jvmVersion attribute so that if another JVM is + being used, Ant can determine which options to use for features such as the + VM memory limits + + +Changes from Ant 1.2 to Ant 1.3 +=========================================== + +Changes that could break older environments: +-------------------------------------------- + +* Ant doesn't search for the buildfile anymore, unless you use the new + -find argument. + +* <perforce> has been replaced by a number of new tasks. + +* <javac> is now implemented using a factory. This makes extending + javac to use a new compiler a lot easier but may break custom + versions of this task that rely on the old implementation. + +* The output generated by the xml formatter for <junit> has changed a + little, it doesn't append " sec" in the time attribute anymore. + +Other changes: +-------------- + +* A GUI Frontend: Antidote. This is currently in development. At this + time, this is not part of the Ant release, although the source is + included if you are interested. + +* New tasks: stylebook, propertyfile, depend, antlr, telnet, csc, + ilasm, apply, javah, several clearcase tasks, junitreport, sound + +* Added output attribute to <java>. + +* Added nested zipfileset element to <zip> + +* Changed <sql> so that printing is at the task level rather than + the statement level. + +* javadoc task will pass -d flag to any doclet if the destDir attribute is + given. If the doclet does not accept the -d flag then omit the destdir + attribute. + +* <cab> can work on non-Windows platforms with the help of libcabinet. + See http://trill.cis.fordham.edu/~barbacha/cabinet_library/. + +* <ftp> now supports passive mode. + +* New <mapper> data type that can be used to get influence on the + target files for some tasks like <copy> or enable new types of tasks + like <apply>. + +* <execon> provides more control over the command line now, the names + of the source files are no longer required to be at the end of the + command. + +* Style tasks will now support TraX compliant XSL processors if one is present + in your classpath. + +* Added a failonerror to the javac task. If set to false, the build will + continue even if there are compilation errors. + +* Added nested format elements to the tstamp task allowing additional time + formats to be defined for arbitrary properties. + +* Added classpath attribute and nested classpath element to <property> + to make the resource attribute more powerful. + +* ${} property expansion will now be performed on the patterns read + from files specified as includesfile or excludesfile attributes. + +* The <tar> and <untar> tasks now support GNU format for handling paths + which are greater than 100 characters in length. In addition the <tar> + task now supports nested filesets through which the file permissions + may be controlled. + +* wlrun, wlstop and ejbjar now support Weblogic 6.0 + +* The MPasre task has been updated to work with MParse 2.0 + +* The documentation has been significantly updated. + + +Fixed bugs: +----------- + +* <signjar> no longer uses deprecated methods. + +* javadoc's failonerror attribute works again + +* javadoc's additionalparam attribute will now be split into separate + parameters (on spaces) to allow for more than one parameter. + +* Changed <sql> task so that printing result sets works on Oracle + +* Changes to ddcreator and ejbc helper to respect the descriptor hierarchy + keppgenerated in ejbc can now be turned off + +* ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor. + CMP files are included by parsing the weblogic deployment descriptor rather + than relying on the naming convention used in ant 1.2 + +* ejbjar includes super classes and super interfaces into the generated ejb + jar files. The <support> nested element allows support classes to be + included in the EJB jar. The toplink element should now correctly locate + the toplink descriptor. + +* <vssget> now correctly deals with spaces in arguments + +* <jar> fails early if a given manifest file doesn't exist + +* <rmic> doesn't search for the _Skel file anymore when stubversion is + set to 1.2. + +* <rmic> uses the the same classpath to verify a class can be rmic'd + as it passes to the compiler. + +* org.apache.tools.mail.MailMessage (and therefore <mail>) can now + handle SMTP servers sending multi line responses. + +* nested <classpath> elements of <taskdef> now work for <taskdef>s not + nested into <target> as well. + +* <property> and <available> will search for the resource "foo" instead + of "/org/apache/tools/ant/taskdefs/foo" when given a relative resource + name foo. + +* Handle build files in directories whose name contained a "#" character + +* <junit> can now log to files whose name contains a comma as well. + +* The AntClassLoader now refers to the loader which loaded it, any + requests it does not handle itself. Previously these went to the + primordial loader. + +Changes from Ant 1.1 to Ant 1.2 +=============================== + +Changes that could break older environments: +-------------------------------------------- + +* Semantics of <property> has changed again in the hope to be more + intuitive. ${} expansion now happens at runtime and <property> tags + living inside of targets only take effect if they are visited at + runtime. + + As a side effect of this change, task's attributes get set at runtime + not at parser time as well, which might change the results of + <script>s or other custom tasks that reference other tasks by their id + attribute. + +* copying of support files in <javac> has been removed - as well as + the filtering attribute. + +* the <expand> and <keysubst> tasks have been removed. + +* the ignore and items attributes of directory based tasks have been removed. + +* the command line switches _not_ starting with - have been removed. + +* Path and EnumeratedAttribute have been moved from + org.apache.tools.ant to org.apache.tools.ant.types. + +* the class attributes of <available>, <java>, <rmic> and <taskdef> + have been removed. + +* the src attribute of <chmod> has been removed. + +* <patch> and <javadoc> have lost some of their attributes. + +* <java> and <cvs> have lost some undocumented attributes. + +* the Unix antRun script would search for command.sh in the directory + it changed to and invoke this instead of command if present. This + behavior has been dropped. + +* <ejbjar> task syntax has been changed significantly + +* <exec> is no longer implemented by org.apache.tool.ant.taskdefs.Exec. + Custom tasks that rely on Project.createTask("exec") to return an + instance of this class are going to fail. + +* nested <include> and <exclude> elements expect the value of their + name attribute to be a single pattern, they don't accept multiple + patterns anymore. Split them into multiple elements of the same type. + +* <delete dir="somedir" /> will now delete the directory itself as + well as all included files. If you just want to clean out the + directory and keep the empty one, use a nested fileset. + +Other changes: +-------------- + +* New tasks: antstructure, cab, execon, fail, ftp, genkey, jlink, + junit, sql, javacc, jjtree, starteam, war, unwar, uptodate, + native2ascii, copy, move, mparse. + +* copydir, copyfile, deltree and rename are now deprecated. They + should be replaced with the new copy, delete and move tasks. + +* <java> uses a ClassLoader of its own in no-fork mode if a classpath is + specified. + +* <style> will create the necessary target directories and reprocess + all files if the stylesheet changes. + +* New data types fileset and patternset - expected to get a broader use. + They, as well as PATH like structures, can now be defined on a global + level and later be referenced by their id attribute. + +* You can specify environment variables to <exec>. + +* <get> can check whether a remote file is actually newer than a local + copy before it starts a download (HTTP only). + +* Added a -logger option to allow the class which performs logging to be + specified on the command line. + +* Added a -emacs option to tell the logger to leave out taskname adornments + on log output. + +* <chmod> works on all files in parallel and supports multiple filesets. + +* <replace> can now use tokens and/or values that cross line boundaries. + +* build.compiler supports now jvc as well. + +* project specific help can now be obtained with the -projecthelp option. + +* Added a -debug option to make -verbose less verbose (and more useful) + +* Ant will now search for a file named build.xml in the parent directory + and above (towards the root of the filesystem) if you didn't specify + -buildfile and there is no build.xml in the current directory. + +* <echo> can now write to a file and accepts nested text. + +Fixed bugs: +----------- + +* <chmod> didn't work when used as a directory based task. + +* Path, Available, Property didn't resolve relative filenames with + respect to the Project's basedir. + +* Project didn't interpret the basedir attribute correctly in all + cases. + +* Nested <src> in <javac> caused NullPointerException. + +* Corrupt Zip- and Jar-files ar now deleted if the task fails. + +* many more fixes we've forgotten to document here ... + +* The packagelistloc attribute of <javadoc>'s <link> child will be + resolved as a file (i.e. it is either absolute or relative to + basedir). |