Changes from Ant 1.10.17 TO Ant 1.10.18 ======================================= Changes that could break older environments: ------------------------------------------- * the default value for <ftp>'s useSecureDataChannel has been changed to true which means using ftps now also tries to use an encrypted data channel by default. * the <ftp> and <scp> tasks have new allowFilesToEscapeDest attributes. When set to false - which is the default - te tasks will not download files or create directories outside the designated destination directory when downloading from the remote server. In the unlikely case you need the old bahaviour of writing outside the destination directory you must set the value to true explicitly. Other changes: -------------- * when using the SOURCE_DATE_EPOCH environment variable to set the time for <tstamp> the timezone will now be set to UTC for DSTAMP, TSTAMP and TODAY. This also applies to nested formats where the locale now also defaults to en_US unless it (or the timezone) have been set explicitly. Based on a patch used by the Debian Ant package maintainers. Part of Bugzilla Report 61269 * Upgraded the jakarta.mail dependency to 2.0.2 because of CVE-2025-7962. * the SOURCE_DATE_EPOCH environment variable as well as the magic ant.tstamp.now and ant.tstamp.now.iso properties now also affect the timestamp added to a properties file written by <propertyfile> - but only if jdkproperties has its default value of false. Based on a patch used by the Debian Ant package maintainers. Part of Bugzilla Report 61269 * a new method getBuildDate in Project can now be used to calculate a notion of a "build date" that consults the SOURCE_DATE_EPOCH environment variable as well as the magic ant.tstamp.now and ant.tstamp.now.iso properties in this order which you can use if you want to obtain a reproducible timestamp in tasks you write yourself. * The "record" task now has a new "relativeToBaseDir" attribute, which can be set to "yes" or "no", to control where the recorder's file gets created. In the absence of this attribute, if the "name" of the recorder was a relative path, then the recorder would create the file in the current working directory of the process. With this new attribute, the recorder can be configured to create that file in the basedir of the project. Bugzilla Report 17781 Fixed bugs: ----------- * When running with "microsoft" Java, Ant used to hardcode the "$JAVA_HOME/Packages" directory in the runtime Paths for certain tasks. The JDK shipped by Microsoft no longer contains that directory (for several decades now). As a result, when running with "microsoft" Java, an exception would be raised due to the missing directory. This has now been fixed and Ant no longer adds that directory to the Java runtime Paths. Github Pull Request #230 * Inaccuracies in the documentation of the "record" task have been fixed. Bugzilla Report 70158 * <mappedresources> with "enableMultipleMappings" set to "true" threw a NullPointerException if the mapper didn't apply to one of the resources. Unmapped resources are now omitted from the collection.