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 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 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 *