Changes from Ant 1.10.3 TO Ant 1.10.4
=====================================

Changes that could break older environments:
-------------------------------------------

 * <unzip>, <unjar> and <untar> 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

 * <cab> died with a NullPointerException since Ant 1.10.2.
   Bugzilla Report 62335

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

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

 * <resourcelist> 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 <includesfile> and <excludesfile> nested elements of
   <patternset> and <fileset> 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.