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.