Changes from Ant 1.10.12 TO Ant 1.10.13 ======================================= Changes that could break older environments: ------------------------------------------- * has a new attribute authenticateOnRedirect that can be used to prevent Ant from sending the configured credentials when following a redirect. It is false by default, which means builds that rely on credentials being used on the redirected URI may break. Github Pull Request #173 Fixed bugs: ----------- * the PropertyEnumerator change introduced in 1.10.9 proved to be not fully backwards compatible when combined with certain custom PropertyHelper implementations - for example when using AntXtras. Bugzilla Report 65799 * legacy-xml reporter of the junitlauncher task now escapes ]]> when writing CDATA. Bugzilla Report 65833 * may leak connections when trying to preserve the last modified timestamps of files transferred recursively from a server. Bugzilla Report 66001 * tstamp task would in certain cases parse the SOURCE_DATE_EPOCH environment variable value to an incorrect date. This has now been fixed. Github Pull Request #186 * fetch.xml didn't set up non-default repositories propery and thus failed to download JAI. Github Pull Request #191 * When building and installing Ant distribution from source, the build script would change permissions on unrelated files in the destination directory. This is now fixed and such unrelated files in the destination directory will be left untouched. Bugzilla Report 66164 * parsing tar entries with multiple NUL bytes in their name would include garbage bytes as the name included all bytes up to the last NUL rather than the first. Github Pull Request #194 * loadresource might log warnings even though quiet was set to true Bugzilla Report 65647 * javac task would add paths constructs containing wildcards to the internally created argument file where wildcards are not allowed Bugzilla Report 65621 Other changes: -------------- * added an implementation of the MIME Mail sender based on the repackaged Jakarta Mail package rather than javax Mail. Github Pull Request #161 * The "listener" element in the junitlauncher task now supports an "extension" attribute to control the filename extension of the generated output file from the listener. Github Pull Request #168 * now supports FTPs. Github Pull Request #170 * DirectoryScanner avoids listing directory contents when it known it will never use the information retrieved. This may improve performance in some special cases. Bugzilla Report 66048 * will now create the parent directory of the manifestFile attribute if it doesn't exist. Bugzilla Report 66231 * org.apache.tools.ant.BuildLogger now has a new method getMessageOutputLevel() which returns the currently set message output level. Changes from Ant 1.10.11 TO Ant 1.10.12 ======================================= Fixed bugs: ----------- * The http condition would follow redirects even when "followRedirects" attribute was set to "false". This has now been fixed. Bugzilla Report 65489 * Made sure setting build.compiler to the fully qualified classname that corresponds to extJavac or modern has the same effect as using the shorter alias names. Bugzilla Report 65539 * Prevent potential deadlocks in org.apache.tools.ant.IntrospectionHelper. Bugzilla Report 65424 Other changes: -------------- * The implementation of AntClassLoader#findResources() has been changed to optimize it for potential performance issues, as those noted at https://issues.jenkins.io/browse/JENKINS-22310?focusedCommentId=197405&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-197405 Github Pull Request #151 * AntClassLoader now implements the ClassLoader#findResource(String) method. Github Pull Request #150 * Ant tries to avoid file name canonicalization when possible. Bugzilla Report 65499 * javadoc task will now look for warning messages in the STDERR stream too when "failonwarning" is set to true to account for changes in JDK 17+ * The tar task now preserves symlinks of nested tarfilesets. Github Pull Request #142 Changes from Ant 1.10.10 TO Ant 1.10.11 ======================================= Fixed bugs: ----------- * a race condition could lead to NullPointerExceptions when running tasks in parallel. Bugzilla Report 65316 * fixed potential OutOfMemory errors when reading broken archives using the tar or zip formats or formats derived from zip. Other changes: -------------- * org.apache.tools.ant.taskdefs.optional.junitlauncher.confined.JUnitLauncherTask now has a new protected createExecuteWatchdog() method for allowing it to be overriden. Github Pull Request #147 * Upgraded AntUnit to 1.4.1. Changes from Ant 1.10.9 TO Ant 1.10.10 ====================================== Fixed bugs: ----------- * SCP (with sftp=true) task would fail if fetching file located in root directory Bugzilla Report 64742 * javac task would fail if the arguments file it (internally) created didn't quote the # character. This has now been fixed. Bugzilla Reports 64912, 64790 * made sure LegacyXmlResultFormatter encodes characters illegal in XML the same way JUnit5's built-in formatter would. Bugzilla Report 65030 * LegacyXmlResultFormatter no longer double-encodes <>& in system-err and system-out Bugzilla Report 63436 * Fixes a bug in junitlauncher task's legacy-xml formatter, where the testcase representing a @Parameterized JUnit4 test wasn't being reported in the XML. Bugzilla Report 64952 * Fixes a bug where the ant-testutil-sources.jar that gets published to Maven central repository didn't contain any source files. Bugzilla Report 65110 * The condition didn't follow redirects from http to https. Bugzilla Report 65105 * ZipOutputStream now overrides write(int) in order to make sure single byte writes get the same treatment as array writes. Github Pull Request #145 * Fixes a potential deadlock in junitlauncher task when using legacy-xml reporter. Bugzilla Report 64733 Other changes: -------------- * javaversion condition now has a new "atmost" attribute. See the javaversion manual for more details * The "listener" nested element of the "junitlauncher" task now has a new "useLegacyReportingName" attribute which can be used to control the test identifiers names that get reported by the listener. See the junitlauncher manual for more details. Note that this change also introduces a new "setUseLegacyReportingName" method on the org.apache.tools.ant.taskdefs.optional.junitlauncher.TestResultFormatter interface. This will break backward compatibility with any of your custom result formatters which implemented this interface and such implementations are now expected to implement this new method. * a new attribute preserveduplicates allows to return the same resource multiple times when set to true. Bugzilla Report 64854 * a new attribute filterbeforeconcat in can be used to decide whether the filterchain should be applied to the concatenated content (the default) or each nested resource individually before concatenating them. Bugzilla Report 64855 * the ssh tasks now share a new nested element additionalConfig that can be used to set config values for the jsch Session used by the task. Bugzilla Report 65089 * added new discardOutput and discardError properties to redirector and the exec, apply and java tasks which can be used to completely discard any (error) output. This is a platform independent alternative to directiong output to any kind of null device. * junitlauncher now prints a more useful and instantaneous summary of tests being run, closely matching the junit task's summary. Bugzilla Report 64836 Changes from Ant 1.10.8 TO Ant 1.10.9 ===================================== Fixed bugs: ----------- * the ftp task could throw a NullPointerException if an error occured Bugzilla Report 64438 * propertyset now also sees in-scope local properties Bugzilla Report 50179 * replaced our version of ReaderInputStream with the battle-tested version of Apache Commons IO as our version had problems with surrogate pairs (and likely other edge cases as well). Bugzilla Report 40455 * will no longer remove the temporary file it just created before writing to it. * and didn't deal with wildcard hostnames in ssh config files properly. Bugzilla Report 64530 Other changes: -------------- * Ant will no longer log a warning if it doesn't find tools.jar Bugzilla Report 63577 * the task accepts now a nested element that can be used to perform custom filename transformations for the archives. Github Pull Request #134 * added a new PropertyEnumerator interface that extensions can provide if they are managing properties unknown to the Ant project. * added some special code to support GraalVM JavaScript as javax.script scripting engine for JavaScript. In particular we relax some security settings of GraalVM so that scripts can access Ant objects. Also Ant enables Nashorn compatibility mode by default, you can disable that by setting the magic Ant property ant.disable.graal.nashorn.compat to true. See the script task manual for additional details. * If the magic property ant.tmpdir hasn't been set and Ant can control the permissions of directories it creates it will create an owner-owned temporary directory unaccessible to others as default tempdir as soon as a temporary file is created for the first time, Changes from Ant 1.10.7 TO Ant 1.10.8 ===================================== Fixed bugs: ----------- * "legacy-xml" formatter of junitlauncher task wasn't writing out the stacktrace for failures. This is now fixed. Bugzilla Report 63827 * sshexec failed to write output to a file if the file didn't exist * Fixes a regression in javac task involving command line argument files. Bugzilla Report 63874 * sshexec, sshsession and scp now support a new sshConfig parameter. It specified the SSH configuration file (typically ${user.home}/.ssh/config) defining the username and keyfile to be used per host. * "legacy-xml" formatter of junitlauncher task wasn't writing out exceptions that happen in @BeforeAll method of a test. This is now fixed. Bugzilla Report 63850 * Building Ant from source could result in the javadocs target failing if the optional dependencies were missing. This has now been fixed. Bugzilla Report 63438 * Fixes a potential ConcurrentModificationException in XMLLogger. Bugzilla Report 63921 * Fixes a bug in junitlauncher task in forked mode, where if a listener element was used as a sibling element for either the test or testclasses element, then the forked mode launch would fail. Bugzilla Report 63958 * Fixes an issue in AntStructure where an incorrect DTD was being generated. Github Pull Request #116 * Fixes an incorrect variable name usage in junit-frames-xalan1.xsl. Github Pull Request #117 Other changes: -------------- * org.apache.tools.mail.MailMessage will now send a fully qualified domain name in its HELO message. Github Pull Request #101 * The runant.py script should now work with Python 3. Github Pull Request #96 * tstamp task now honors SOURCE_DATE_EPOCH environment variable for reproducible builds (https://reproducible-builds.org/specs/source-date-epoch/#idm55) Bugzilla Report 62617 * rmic has been removed from Java 15. The task will now throw an exception if you try to use it while running Java 15 or newer. * a new property ant.tmpdir provides improved control over the location Ant uses to create temporary files Changes from Ant 1.10.6 TO Ant 1.10.7 ===================================== Fixed bugs: ----------- * FTP still tries checking or entering directories after a timeout Bugzilla Report 63454 * junitlauncher - does not detect failure in @BeforeAll Bugzilla Report 63479 * Error using ant-1.10.6 with jdk8 Bugzilla Report 63457 * FTP task no longer duplicates a check for a file being a symlink. Bugzilla Report 63259 * junitlauncher task, when used in fork mode with "", used to create the wrong number of listeners per test class. This has now been fixed. Bugzilla Report 63446 * The "legacy-xml" junitlauncher task's listener would not include @ParameterizedTest testcases in its XML report file. This has now been fixed. Bugzilla Report 63680 Other changes: -------------- * FTP task timeout improvements. Bugzilla Reports 63252 and 47414 * junitlauncher task now supports selecting test classes for execution, based on the JUnit 5 tags, through the new "includeTags" and "excludeTags" attributes. * prefer https over http when building ant itself, and in the ant documentation and sources * changed the references and Maven coordinates of JavaMail dependency to Jakarta Mail and thus javax.mail to jakarta.mail - and upgraded the dependency to 1.6.3. Changes from Ant 1.10.5 TO Ant 1.10.6 ===================================== Changes that could break older environments: ------------------------------------------- * image task no longer works on Java 9+ because internal classes supporting Java Advanced Imaging are removed; imageio task (based on ImageIO and AWT) is provided as a replacement. * junitlauncher task has changed the class names and package names of the task as well as some of the supporting classes of that task. If any code depended on these class or package names, they will have to be updated to reference these newly named classes. This however, doesn't impact build scripts if their reference to junitlauncher task was merely through the use of the element. * ClearCase#runS has been augmented by a two arg-version and the one-arg version will no longer be called. This may affect subclasses that have overridden runS. Fixed bugs: ----------- * fetch.xml must retrieve runtime rather than compile dependencies for mail task. Bugzilla Report 62621 * Fixes an issue in junitreport task, which used to throw a java.net.MalformedURLException when saxon was used on Windows OS. Bugzilla Report 62594 * augment task now throws a BuildException (as noted in its manual) instead of a IllegalStateException in the absence of the "id" attribute. Bugzilla Report 62655 * org.apache.tools.zip.ZipOutputStream would sometimes potentially use an incorrect compression level for a zip entry. This is now fixed. Bugzilla Report 62686 * sync task, in some cases on case insensitive file systems, would consider a file in a destination directory to be orphaned and would delete it. This task has now been fixed to infer the case sensitivity of the filesystem of the destination directory. Bugzilla Report 62890 * Fixes a potential java.util.ConcurrentModificationException in org.apache.tools.ant.Project#getCopyOfReferences. Github Pull Request #81 * cccheckout would ignore an error of the "ls checkout" command even if failOnError was set to false. Bugzilla Report 63071 * The isreachable condition could in some cases return true even if the actual address could potentially be unreachable. This is now fixed and the resolved address is actually checked for reachability. * Fixes an issue where scp transfer completion tracking wasn't being triggered for 100% completion. Github Pull Request #91 Other changes: -------------- * generatekey task now supports SubjectAlternativeName during key generation. * the selector has a new built-in algorithm 'lastmodified' which computes a value based upon the lastmodified time of the file. * junitlauncher task now supports running tests in a forked JVM. More details available in the junitlauncher task manual. * signjar and verifyjar now support the -providerName, -providerClass and -providerArg command line options of keytool via new attributes. Bugzilla Report 65234 * signjar and verifyjar now supported nested elements for command line arguments that are not supported explicitly by the tasks via attributes. * added several attributes to that support modules. Bugzilla Report 62424 * properties used or set by BuildFileTask/BuildFileRule are documented in MagicTestNames. A new magic property, ant.test.basedir.ignore, is introduced for cases where Ant projects set up for test purposes must ignore basedir set externally by test harness. * a new CharSet type is provided for encoding or charset attributes in tasks that must deal with different character encodings in files, file names and other string resources. * org.apache.tools.ant.AntClassLoader is now multi-release jar aware. Starting Java 9, jar files can be packaged as multi-release jars, AntClassLoader now recognizes such multi-release jar files while loading resources at runtime in Java 9+ runtime environments. Bugzilla Report 62952 * Added jmod and link tasks, to support jmod and jlink tools of JDK 9+. Github Pull Request #80 * Jsch library dependency has now been upgraded to 0.1.55. Jsch is the library behind the sshexec and scp Ant tasks. Github Pull Request #84 * The "http" condition, now has a "readTimeout" attribute which can be used to control the amount of time to wait for the read to complete. Bugzilla Report 63193 * ftp task manual has been updated to mention that the remote listing of files honours the followsymlinks attribute. Bugzilla Report 63226 Changes from Ant 1.10.4 TO Ant 1.10.5 ===================================== Fixed bugs: ----------- * Fixes a regression in the "get" task where redirects from a HTTP resource to a HTTPS resource started throwing an exception. Bugzilla Report 62499 * the new allowFilesToEscapeDest didn't work when set to false and archive entries contained relative paths with so many ".." segnments that the resulting path would go beyond the file system root. Bugzilla Report 62502 Other changes: -------------- * Java task now accepts a "sourcefile" attribute to allow single file source program execution, a feature that is introduced in Java 11. Changes from Ant 1.10.3 TO Ant 1.10.4 ===================================== Changes that could break older environments: ------------------------------------------- * , and will no longer extract entries whose names would make the created files be placed outside of the destination directory anymore by default. A new attribute allowFilesToEscapeDest can be used to override the behavior. Another special case is when stripAbsolutePathSpec is false (which no longer is the default) and the entry's name starts with a (back)slash and allowFilesToEscapeDest hasn't been specified explicitly, in this case the file may be created outside of the dest directory as well. In addition stripAbsolutePathSpec is now true by default. Based on a recommendation by the Snyk Security Research Team. Fixed bugs: ----------- * Delay the class initialization of the test classes until they are passed to JUnit. This way we can avoid that failing static initializers from non-test classes are reported as error when the 'skipNonTests' option is 'true'. Bugzilla Report 60062 * The junit task when used with includeantruntime="no" was incorrectly printing a warning about multiple versions of ant detected in path * died with a NullPointerException since Ant 1.10.2. Bugzilla Report 62335 * The task would fail with "java.lang.ClassFormatError: Invalid Constant Pool entry Type 19" while parsing a module-info.class. The task is compatible with Java bytecode version 53 now. Bug reported by Simon IJskes https://issues.apache.org/jira/browse/NETBEANS-781 * Default and SecureInputHandler will now raise an error when then end of the input stream (usually System.in or System.console) are reached before a valid input has been read. * junitreport does not list testsuites that fail to start any tests because of an exception inside the all-tests and alltests-errors frames. Bugzilla Report 62443 Other changes: -------------- * AntAssert is deprecated, assertThat from JUnit 4.4+, Hamcrest matchers and/or ExpectedException rule provide equivalent functionality * PumpStreamHandler now explicitly verifies the streams for output and error are not null and will throw an exception if they are. This way creating a PumpStreamHandler will fail early as opposed to some obscure errors later when closing streams or finishing threads might fail. Bugzilla Report 62148 * has a new attribute runtime which can be used to set properties with values taken as snapshots from the availableProcessors, freeMemory, maxMemory and totalMemory methods of the Java Runtime class. * linecontains filter now has a new "matchAny" attribute which when set to "true" allows any (instead of all) of the user-specified strings to be present in the line. Bugzilla Report 62313 * has a new basedir attribute that can be used to resolve relative names and provides a root for the FileResources generated. Bugzilla Report 62379 * The and nested elements of and now support an encoding attribute that can be used to specify the file's encoding. Bugzilla Report 62379 * New file selectors, posixGroup and posixPermissions, are available. The new selectors and related ownedBy selector have "followSymlinks" attribute that defaults to "true" for consistency. Bugzilla Report 22370 * The junitlauncher task now has a "printSummary" attribute which when set to "true" will print the test execution summary to System.out. Changes from Ant 1.10.2 TO Ant 1.10.3 ===================================== Changes that could break older environments: ------------------------------------------- * Previous versions of Ant's copy task would throw a BuildException if the "name" of the resource to copy was null. Starting this version, the copy task instead silently skips such resources and no longer throws an exception. ant-dev list https://www.mail-archive.com/dev@ant.apache.org/msg46634.html * Reverted the signature change of various clone method implementation in Ant's data-types introduced with 1.10.2 as they broke subclasses of said data-types which tried to override clone. Fixed bugs: ----------- * Fixed NullPointerException in ChainedMapper Bugzilla Report 62086 * Fixed NullPointerException when a mappedresource is used in pathconvert Bugzilla Report 62076 * Fixed an issue where a string, when used as a resource collection, within tokens, would be replaced by property values Bugzilla Report 62147 * Added a workaround for a bug in the jarsigner tool to which requires the -storepass command line argument when verifying signatures using -strict together with a PKCS12 keystore. Unlike when signing the jar it will not prompt for the keystore's password and read it from standard input. This means Ant will now pass the keystore's password on the command line when using , which poses a security risk you should be aware of. Bugzilla Report 62194 Other changes: -------------- * Allow Saxon to be used for junitreport XSL transformation Github Pull Request #57 * when running on Java 11+ rmic will fail early if iiop or idl are requested. Java 11 removes support for CORBA and the switches have been removed from the rmic tool. * A new junitlauncher task which support JUnit 5 test framework. Bugzilla Report 61796 Changes from Ant 1.10.1 TO Ant 1.10.2 ===================================== Changes that could break older environments: ------------------------------------------- * updated the dependency of BCEL to 6.2. Bugzilla Report 61196 * delete task previously would silently accept wildcard (*) value for the "file" attribute. That's no longer the case and an exception could get thrown by the underlying filesystem for such use. Usage like: should instead be changed to use resource collections like: * Commons Net 3.6 is binary-code, but not source compatible; see change list of Commons Net 3.0 for details * The Log4jListener is marked as deprecated as the required log4j library (in version 1.x) is not maintained any more. * Image task is marked as deprecated as the required JAI library is not maintained any more and internal APIs that JAI depended on are no longer available in Java 9. Fixed bugs: ----------- * 's child now skips s that lack a key or value. Bugzilla Report 60767 * bootstrapping Ant on Windows failed Bugzilla Report 61027 * Fixed the issue where the SCP based tasks would try to change the permissions on the parent directory of a transferred file, instead of changing it on the transferred file itself. Bugzilla Reports 59648 and 43271 * Fixed the issue where the source file being copied could end up being corrupted if the target of the copy happened to be the same source file (symlinked back to itself). Bugzilla Report 60644 * Fixed the issue where symlink creation with "overwrite=false", on existing symlink whose target was a directory, would end up creating a new symlink under the target directory. Bugzilla Report 58683 * Improvement to the Zip task for reduced memory usage in certain cases. Thanks to Glen Lewis for reporting the issue and suggesting the fix. Bugzilla Report 19516 * Fixed an issue where the content redirected from output/error streams of a process, could end up being truncated. Bugzilla Report 58833, 58451 * // will now throw an exception with a more useful error message when setFile is called twice on the same instance. Bugzilla Report 62071 Other changes: -------------- * Added forceCsvQuoteChar option to task. When enabled the values always get quoted. Github Pull Request #32 * Added attributes to various script related tasks and a compiled attribute to scriptdef. Github Pull Request #30 * Added support for jarsigner's -tsadigestalg to . Bugzilla Report 60665 * added "regexp" attribute to Bugzilla Report 60968 * reduced GC pressure by replacing all usage of FileInputStream and FileOutputStream. * Task can now also use attribute setters that expect a java.nio.file.Path argument. Bugzilla Report 61042 * added a new magic property ant.tstamp.now that can be used to override the current time/date used by . Bugzilla Report 61079 * added Orion support to ejbjar Github Pull Request #33 * SCP task, when configured to use SFTP protocol, now preserves last modified timestamp on files that it uploads, if the preserveLastModified attribute is set to true for that task Bugzilla Report 58589 * zip and the related tasks can now set the modification time of all entries to a fixed timestamp. Github Pull Request #36 * Jsch library dependency has now been upgraded to 0.1.54. Jsch is the library behind the sshexec and scp Ant tasks. Bugzilla Report 61718 * Added a new condition. * added "javac10+" as new supported value for javac's compiler attribute. * javah has been removed from Java 10. The task will now throw an exception if you try to use it while running Java 10 or newer. * Updated Maven Ant Tasks, Jakarta Regexp and JUnit 4 to the latest stable version (2.1.3, 1.4, and 4.12 respectively); updated JRuby to the latest Java 5 compatible version (1.6.8); added resolve target for AntUnit to facilitate updates. Github Pull Request #50 * Updated Java Mail API, Jython, Rhino and Commons Net to the latest stable version (1.6.0, 2.7.0, 1.7.7.2 and 3.6, respectively). Github Pull Request #53 Changes from Ant 1.10.0 TO Ant 1.10.1 ===================================== Fixed bugs: ----------- * Ant 1.10.0 made Path#systemClasspath final which broke the Eclipse integration. Bugzilla Report 60582 * the wrapper script still didn't work on Solaris 10, but worked on Solaris 11. The "fixed" script should work in most cases but will not preserve newlines present in command line arguments. Bugzilla Report 60562 Other changes: -------------- * new tasks and and resource for XZ compression. Also the compression attribute of / now accepts "xz" as valid value. The tasks and type are contained in the new ant-xz.jar and require the library XZ for Java to be on the CLASSPATH. Bugzilla Report 60350 Changes from Ant 1.9.7 TO Ant 1.10.0 ==================================== Changes that could break older environments: ------------------------------------------- * Ant 1.10.x requires Java8 or newer at compile or build time. The 1.9.x series wil stay compatible with Java5. * The task has been removed since apt itself has been removed with Java8. * // exhibited undefined behavior when both the dir and file attribute have been used on the same instance. This will now cause the build to fail. Bugzilla Report 59402 * will default to the builtin implementation on Java8 as well (sun isn't available for Java9+ anyway). * The ant.java.version property will now hold the value "9" rather than "1.9" if running on Java 9. * will no longer allow the -Xnew option (or xmic compiler) to be used when running on Java 9 since this option has been removed. Bugzilla Report 59906 * will default to the "forking" implementation on Java8 as well. Fixed bugs: ----------- * setDynamicAttribute on MacroInstance now lower-cases the attribute name in order to allow users of the API to use the attributes names they have specified. Bugzilla Report 59339 * 's quiet attribute was broken, it didn't suppress any messages. Bugzilla Report 59379 * 's check whether an archive is already up-to-date failed on NTFS filesystems and re-created archives more often than necessary. Bugzilla Report 59562 * AntClassLoader didn't delegate to the parent loader for classes in the "jdk" package or one of its subpackages. This hierarchy has been introduced with Java 7. Bugzilla Report 59556 * The ant wrapper script used on Unix-like operating systems only worked on OSes where sed is GNU sed. Bugzilla Report 59898 * 's default pattern as well as the default patterns used by the (resource) selectors depended on the JDK being used - or rather the locale provider being used and the default locale provider changed with Java 9. They are now fixed and the documentation has been updated to reflect the real patterns used rather than a non-formal description of the expected format. Bugzilla Report 59909 * Clarified the documentation of 's retries attribute. Bugzilla Report 59930 * The ant wrapper script failed if backticks were passed on the command line. Bugzilla Report 60150, 59445 * The report generated by could contain duplicate characters in stack traces. Bugzilla Report 58661 Other changes: -------------- * New file selectors , and . * New task that provides the ability to set POSIX compatible permssions via NIO's PosixFilePermission * now initializes the cause of the AssertionFailedError when converting from AssertionError. Bugzilla Report 58982 * now supports compression via the optional compressed attribute. Bugzilla Report 47552 * now supports JDK9 modules Github Pull Request #18 * a new implementation "builtin" has been added to and is the default when running on JDK9+ since the tool itself has been removed from the JDK. Bugzilla Report 59855 * added a new filter that can perform non-ASCII to Unicode-escape conversions. * defaults to the "forking" compiler on JDK 9+ as the implementation class of rmic is not exported by its containing module and thus not accessible to Ant without applying -XaddExports magic. Bugzilla Report 59860 * a new implementation "forking" has been added to and is used as default when running on JDK9. * support for javac's -h switch has been added with the nativeheaderdir attribute. Bugzilla Report 59905 * it is now possible to set features of the TraX factory used by and . * it is now possible to use references to Ant types and classloaders built around Ant s as values for TraX factory attributes. * AntClassLoader and its subclasses register themselves as parallel capable. * now enables the feature http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions when run on Java 9 so the redirect extension function can be used if when a SecurityManager is active. Bugzilla Report 60060 * support for javac's --release switch introduced with Java9 has been added. Bugzilla Report 60172 Changes from Ant 1.9.6 TO Ant 1.9.7 =================================== Changes that could break older environments: ------------------------------------------- * and used to ignore the dir attribute if it was the same as the current working directory. They now no longer do, which changes the behavior for vmlauncher="false" which would have used the project's basedir rather than the current working directory in that case. Bugzilla Report 58555 Fixed bugs: ----------- * ZipOutputStream could cause an ArrayIndexOutOfBoundsException when adding entries with comments. This never happens when using Ant as a build tool but may affect users using Ant's zip package as a library. * and didn't work for non-filesystem resources. * ignored the zip64Mode attribute when creating manifest-only jars. This resulted in jar files that couldn't be read by Java5. Bugzilla Report 58428 * will now detect GNU tar longname/link records even if they don't use the names used by GNU tar itself. star is known to create archives of that kind. https://issues.apache.org/jira/browse/COMPRESS-324 *