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
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Could not be committed due to merge conflict:
devel/py-traitlets/distinfo
The following distfiles were unfetchable (note: some may be only fetched
conditionally):
./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
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
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 <http> 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 <resourcelist> to return
the same resource multiple times when set to true.
Bugzilla Report 64854
* a new attribute filterbeforeconcat in <concat> 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.
Ant 1.10.9 contains a bugfixes and support for using GraalVM
JavaScript inside the script family of tasks and types..
It also addresses an insecure temporary file vulnerability
vulnerability, see the security report for details
(https://ant.apache.org/security.html)
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
pkglint --only "https instead of http" -r -F
With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.
This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
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 "<testclasses>",
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.
Changelog:
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 <junitlauncher> 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 <modified> 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 <arg> elements for
command line arguments that are not supported explicitly by the
tasks via attributes.
* added several attributes to <javadoc> 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:
-------------------------------------------
* <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.
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 <verifyjar>
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 <verifyjar>, 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. Java11 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:
<delete file="/foo/bar/*.something"/>
should instead be changed to use resource collections like:
<delete>
<fileset dir="/foo/bar/" includes="*.something"/>
</delete>
* 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:
-----------
* <genkey>'s <dname> child now skips <param>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
* <fileset>/<zipfileset>/<tarfileset> 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 <csv> task. When enabled the
values always get quoted.
Github Pull Request #32
* Added <encoding> attributes to various script related tasks and a
compiled attribute to scriptdef.
Github Pull Request #30
* Added support for jarsigner's -tsadigestalg to <signjar>.
Bugzilla Report 60665
* added "regexp" attribute to <linecontainsregexp>
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 <tstamp>.
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 <javaversion> 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 <xz> and <unxz> and resource <xzresource> for XZ
compression. Also the compression attribute of <tar>/<untar> 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 <apt> task has been removed since apt itself has been removed
with Java8.
* <fileset>/<zipfileset>/<tarfileset> 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
* <native2ascii> 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.
* <rmic> 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
* <javah> 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
* <get>'s quiet attribute was broken, it didn't suppress any messages.
Bugzilla Report 59379
* <zip>'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
* <touch>'s default pattern as well as the default patterns used by
the <date> (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 <get>'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 <junitreport> could contain duplicate
characters in stack traces.
Bugzilla Report 58661
Other changes:
--------------
* New file selectors <executable>, <symlink> and <ownedBy>.
* New task <setpermissions> that provides the ability to set POSIX
compatible permssions via NIO's PosixFilePermission
* <junit> now initializes the cause of the AssertionFailedError when
converting from AssertionError.
Bugzilla Report 58982
* <scp> now supports compression via the optional compressed attribute.
Bugzilla Report 47552
* <junit> now supports JDK9 modules
Github Pull Request #18
* a new implementation "builtin" has been added to <native2ascii> and
is the default when running on JDK9+ since the tool itself has been
removed from the JDK.
Bugzilla Report 59855
* added a new <native2asciifilter> filter that can perform non-ASCII
to Unicode-escape conversions.
* <rmic> 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 <javah> 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 <xslt>
and <junitreport>.
* it is now possible to use references to Ant types and classloaders
built around Ant <path>s as values for TraX factory attributes.
* AntClassLoader and its subclasses register themselves as parallel
capable.
* <junitreport> 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:
-------------------------------------------
* <exec> and <apply> 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.
* <gunzip> and <bunzip2> didn't work for non-filesystem resources.
* <jar> ignored the zip64Mode attribute when creating manifest-only
jars. This resulted in jar files that couldn't be read by Java5.
Bugzilla Report 58428
* <untar> 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
* <script> could fail to find javax.script on JDK9 with Jigsaw.
Bugzilla Report 58271
* <import> sometimes failed to normalize file names which could lead
to files getting imported twice which in turn could lead to targets
getting executed twice.
Bugzilla Report 58886
* TarInputStream now properly extraxt directory entries with a
non-zero size.
* <union> would drop file resources pointing to the same file but
using different names.
Bugzilla Report 57965
* <replace>'s result was undefined when using the replacefilterfile
attribute and some keys inside the properties files have been
substrings of other keys. Keys are now sorted by descending size.
Bugzilla Report 58997
* Ant fails to run when arguments contain double-quote character.
Bugzilla Report 58898
* Ant fails to run if ANT_HOME contains a double-quote character.
Bugzilla Report 58874
* Definer's way to parse URLs from classloader breaks with
recent Java 9 builds (b108).
Bugzilla Report 59130
* <ant> and <antcall> now preserve the ext status set by an <exit>
task.
Bugzilla Report 59228
Other changes:
--------------
* <scp> now supports (filesystem-only) resource collections in
addition to filesets.
Bugzilla Report 50769
* The <http> condition has a new optional attribute followRedirects.
Bugzilla Report 58840
* <java> now supports Java9 modules.
https://github.com/apache/ant/pull/15
* <javac> now supports Java9 modules.
https://github.com/apache/ant/pull/16
* <sshexec> and <scp> have two new attributes serverAliveInterval and
serverAliveCountMax that can be used to keep a intermediaries from
closing idle connections.
Bugzilla Report 59162
Issues found with existing distfiles:
distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
distfiles/fortran-utils-1.1.tar.gz
distfiles/ivykis-0.39.tar.gz
distfiles/enum-1.11.tar.gz
distfiles/pvs-3.2-libraries.tgz
distfiles/pvs-3.2-linux.tgz
distfiles/pvs-3.2-solaris.tgz
distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Changes from Ant 1.9.5 TO Ant 1.9.6
===================================
Changes that could break older environments:
-------------------------------------------
Fixed bugs:
-----------
* ArrayIndexOutOfBoundsException when ZIP extra fields are read and
the entry contains an UnparseableExtraField.
https://issues.apache.org/jira/browse/COMPRESS-317
Other changes:
--------------
* Hidden <javaconstant> resource is published now. It reads the
value of a specified java constant.
Changes from Ant 1.9.4 TO Ant 1.9.5
===================================
Changes that could break older environments:
-------------------------------------------
* The ReplaceTokens filter can now use token-separators longer than
one character. This means it can be used to replace mustache-style
{{patterns}} and similar templates. This is going to break code
that invokes the setters on ReplaceTokens via the Java API as their
parameters have been changed from char to String. It may also
break build files that specified multi character tokens and relied
on Ant silently ignoring all but the first character.
Bugzilla Report 56584
* The changes that added <get>'s support for gzip encoding
automatically uncompressed content that would not have been touched
before - like when downloading .tar.gz files. A new flag has been
added to control the behavior and its default will make <get> work
as it did in 1.9.3. I.e. if you want it to work like 1.9.4
you have to explicitly set tryGzipEncoding to true.
Bugzilla Report 57048
Fixed bugs:
-----------
* TarArchiveInputStream failed to read archives with empty gid/uid
fields.
Bugzilla Report 56641
* TarArchiveInputStream could throw IOException when reading PAX
headers from a "slow" InputStream.
* XMLJunitResultFormatter could throw NullPointerException if Java
cannot determine the local hostname.
Bugzilla Report 56593
* URLResource#getLastModified tried to access the connection to the
URL without making sure it was established, potentially leading to
a NullPointerException when using FTP.
Bugzilla Report 56873
* Long-Name and -link or PAX-header entries in TAR archives
always had the current time as last modfication time, creating
archives that are different at the byte level each time an
archive was built.
* runant.py should now work as well when the path of the Java executable
contains spaces.
github pull request #1
* <junitreport> now supports nested <classpath> and <factory> elements.
Bugzilla Report 47002
* complete-ant-cmd.pl now also knows about the -file option.
Bugzilla Report 57371
* the br-replace template inside the XSLT stylesheets used by
<junitreport> could cause stack overflows or out-of-memory errors
when applied to big outputs.
Bugzilla Report 57341
* removed spurious warning about unclosed ZipFiles when reading the
archive failed.
Port of https://issues.apache.org/jira/browse/COMPRESS-297
* FileUtils.rename which is used by several tasks can throw a
NullPointerException if the "normal" renameTo operation fails and
an exception occurs while rename falls back to copying and deleting
the file.
Bugzilla Report 57533
* complete-ant-cmd.pl would incorrectly suggest words from the build
file description.
Bugzilla Report 51931
* complete-ant-cmd.pl now also completes tasks without a description.
Bugzilla Report 57542
* LocalPropertyStack could run into ConcurrentModificationException
when tasks spawned new child threads that accessed the properties.
Bugzilla Report 55074
* TarEntry's constructor with a File and a String arg didn't
normalize the name.
* Between 1.8.4 and 1.9.0 TarInputStream started to parse file
names using the platform's default encoding rather than as ASCII.
This has been a breaking change that has never been marked as such
(in fact it went unnoticed). In order to allow <untar> and
<tarfileset> to work on platforms who's encoding doesn't match the
encoding of file names inside the archive, both now support
encoding attributes.
The attribute has also been added to <tar> for symmetry.
Bugzilla Report 57822
Other changes:
--------------
* it is now possible to provide proxy configuration to signjar
when using the timestamped authority.
Bugzilla Report 56678
* complete-ant-cmd.pl now also analyzes the ANT_ARGS environment
variable.
Bugzilla Report 57371
* ported some of the write-optimization of Commons Compress 1.10 to
the ZIP package
* adapted unit tests to Java9 and added "javac1.9" as valid option
for javac's compiler attribute.
* performance improvements for <intersect>
Bugzilla Report 57588
* MailLogger can now add CC and BCC addresses.
Bugzilla Report 57789.
* <scp>'s buffer size has been increased from 1k to 100k to match
<ftp> and <get>.
github pull requests #8 and #9
* The tar package can now deal with group and user ids bigger than
0x80000000.
https://issues.apache.org/jira/browse/COMPRESS-314https://issues.apache.org/jira/browse/COMPRESS-315
* <scp> has new attributes fileMode and dirMode that control the
permissions on the remote side when sending data via SSH.
Bugzilla Report 43271.
* New <allbutlast> and <allbutfirst> resource collections can be used
to select all but a given subset of a resource collection.
Bugzilla Report 57834.
Changes from Ant 1.9.3 TO Ant 1.9.4
===================================
Changes that could break older environments:
-------------------------------------------
* the prefixValues attribute of <property> didn't work as expected
when set to false (the default).
It is quite likely existing build files relied on the wrong
behavior and expect Ant to resolve the value side against the
properties defined in the property file itself - these build files
must now explicitly set the prefixValues attribute to true.
Bugzilla Report 54769
* when matching an entry of a zip/tarfileset against a pattern a
leading slash will be stripped from the entry name. Most archives
don't contain paths with leading slashes anyway.
This may cause include/exclude patterns that start with a / to stop
matching anything. Such patterns only used to work by accident and
only on platforms with multiple file system roots.
Bugzilla Report 53949
* DirectoryScanner and thus fileset/dirset will now silently drop all
filesystem objects that are neither files nor directories according
to java.io.File. This prevents Ant from reading named pipes which
might lead to blocking or other undefined behavior.
Bugzilla Report 56149
* BuildFileTest and BaseSelectorTest have both been deprecated in
favour of BuildFileRule and BaseSelectorRule respectively, and the
tests that previously extended these base tests have been converted to
JUnit 4 tests using the new "rule"s. Any external test that sub-classed
a test in the Ant workspace, rather than BuildFileTest, will need
changed to either use JUnit4's annotations, or be modified to
extend BuildFileTest directly. This will not affect any tests that are
being executed by Ant's junit or batchtest tasks that are not specifically
testing Ant's code.
Fixed bugs:
-----------
* <import>/<include> failed when the importing file was loaded from an
URI or a jar and it imported a file from the local file system via
an absolute path.
Bugzilla Report 50953
* <import> could import the same resource twice when imported via
different resource types.
Bugzilla Report 55097
* several calls to File#mkdirs could fall victim to a race condition
where another thread already created the same directory.
Bugzilla Report 55290
* <manifestclasspath> created '/' rather than './' for the parent
directory of the given jarfile.
Bugzilla Report 55049
* <concat>'s fixlastline="true" didn't work when using certain filter
readers.
Bugzilla Report 54672
* several places where resources are read from jars will now
explicitly disable caching to avoid problems with reloading jars.
Bugzilla Report 54473
* AntClassloader will now ignore files that are part of the classpath
but not zip files when scanning for resources. It used to throw an
exception.
Bugzilla Report 53964
* <javadoc> caused a NullPointerException when no destdir was set.
Bugzilla Report 55949
* <jar filesetmanifest="mergewithoutmain"> would still include the
Main section of the fileset manifests if there was no nested
manifest or manifest attribute.
Bugzilla Report 54171
* reading of compiler args has become more defensive
Bugzilla Report 53754
* <copy> without force="true" would not only fail to overwrite a
read-only file as expected but also remove the existing file.
Bugzilla Report 53095
* <delete removeNotFollowedSymlinks="true"> would remove symbolic
links to not-included files. It will still delete symlinks to
directories that would have been followed even if they are not
explicitly included. exclude-Patterns can still be used to
preserve symbolic links.
Bugzilla Report 53959
* Sometimes copy-operations using NIO FileChannels fail. Ant will
now try to use a Stream based copy operation as fallback when the
Channel based copy fails.
Bugzilla Reports 53102 and 54397
* Javadoc.postProcessGeneratedJavadocs() fails for Classes that
extend Javadoc
Bugzilla Report 56047
* TarInputStream will now read archives created by tar
implementations that encode big numbers by not adding a trailing
NUL.
* the isExists() method of URLResource returned false positives for
HTTP and FTP URLs.
Other changes:
--------------
* initial support for Java 1.9
* <sshexec> can optionally pass System.in to the remote process
Bugzilla Report 55393
* <sshexec> now supports capturing error output of the executed
process and setting a property from the return code.
Bugzilla Report 48478
* <javadoc> now has an option to fail if javadoc issues warnings.
Bugzilla Report 55015
* <sql> has a new outputencoding attribute.
Bugzilla Report 39541
* changes to JUnitTestRunner and PlainJUnitResultFormatter to make
OutOfMemoryErrors less likely.
Bugzilla Report 45536
* changes to DOMElementWriter to make OutOfMemoryErrors less likely.
Bugzilla Report 54147
* <redirector> has a new attribute binaryOutput that prevents Ant
from splitting the output into lines. This prevents binary output
from being corrupted but may lead to error and normal output being
mixed up.
Bugzilla Report 55667
Bugzilla Report 56156
* the nested <message> elements of <mail> now have an optional
inputEncoding attribute that can be used to specify the encoding of
files read that don't use the platform's default encoding.
Bugzilla Report 56258
* The <get> task now explicitly accepts and supports the gzip content encoding.
Bugzilla Report 49453
* A new resourcecollection type <multirootfileset> acts like a union
of <fileset>s and <dirset>s that share the same configuration but
have different base directories.
Bugzilla Report 48621
* <get> has a quiet attribute that makes the task log errors only
when enabled.
GitHub Pull Request #1
* <junit> has now a threads attribute allowing to run the tests in several threads.
Bugzilla Report 55925
* addition of a new ProcessUtil class providing the process id of the current process
* changes to allow to run the JUnit testcases of Ant in parallel,
by making them use unique temporary directories
Changes from Ant 1.9.2 TO Ant 1.9.3
===================================
Fixed bugs:
-----------
* <parallel> swallowed the status code of nested <fail> tasks.
Bugzilla Report 55539.
* a race condition could make <fixcrlf> tasks of parallel builds to
interfere with each other.
Bugzilla Report 54393.
* <mail>'s mailport still didn't work properly when using smtps.
Bugzilla Report 49267.
* using attributes belonging to the if and unless namespaces
made macrodef fail.
Bugzilla Report 55885.
* Ant 1.8 exec task changes have slowed exec to a crawl
Bugzilla Report 54128.
* Apt is not available under JDK 1.8
Bugzilla Report 55922.
Other changes:
--------------
* Documentation fix for if/unless attributes. PR 55359.
* tar entries with long link names are now handled the same way as
entries with long names.
* Addition of 'skipNonTests' attribute to <junit> and <batchtest>
tasks to allow the tasks to skip classes that don't contain tests.
* <filterset> now supports a nested <propertyset> to specify filters.
Bugzilla Report 55794.
* <xslt>'s params can now be typed.
Bugzilla Report 21525.
* build of Mac OS X pkg installer
Bugzilla Report 55899.
Changelog:
Changes from Ant 1.9.0 TO Ant 1.9.1
===================================
Changes that could break older environments:
-------------------------------------------
* Users who have their own ProjectHelper implementation will need to change it because the import and include tasks
will now default the targetPrefix to ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX.
Users using the default ProjectHelper2 with ant need not worry about this change done to fix Bugzilla Report 54940.
Fixed bugs:
-----------
* Corrected XSLTC error in <junitreport>.
Bugzilla Report 54641.
* Provide more control over Zip64 extensions created by <zip> and
related tasks. In particular no Zip64 extensions will be used at
all by the <jar> task family by default - this is required for jars
to be readably by Java5.
Bugzilla Report 54762.
* Fixed loading of external dependencies in JUnit task.
Bugzilla Report 54835.
* Target rewriting for nested "include" only works when "as" is specified.
See also "Changes that could break older environments"
Bugzilla Report 54940.
Other changes:
--------------
* strict attribute added to <signjar>.
Bugzilla Report 54889.
* simplifying Execute.getEnvironmentVariables since we are only running on Java 1.5 or higher now
* Add conditional attributes
Bugzilla report 43362
* Recommending to upgrade jsch to 0.1.50, particularly if you are using Java 1.7.
jsch is the library behind the sshexec and scp Ant tasks.
Versions of jsch older than 0.1.50 fail randomly under Java 1.7 with an error message "verify: false"
Changes from Ant 1.8.4 TO Ant 1.9.0
===================================
Changes that could break older environments:
-------------------------------------------
* Ant now requires at least Java 1.5 to compile and to run
* FixCRLF used to treat the EOL value ASIS to convert to the system property
line.separator. Specified was that ASIS would leave the EOL characters alone,
the task now really leaves the EOL characters alone. This also implies that
EOL ASIS will not insert a newline even if fixlast is set to true.
Bugzilla report 53036
* The CommandLauncher hierarchy that used to be a set of inner
classes of Execute has been extracted to the
org.apache.tools.ant.taskdefs.launcher package.
* Any FileResource whose represented File has a parent also has a basedir.
* Removing the Perforce Ant tasks replaced by tasks supplied by Perforce Inc.
* Setting the default encoding of StringResource to UTF-8 instead of null
* Upgrade JUnit 4 to JUnit 4.11
Fixed bugs:
-----------
* Made VectorSet faster.
Bugzilla Report 53622.
* Incorrect URLs in Ant child POMs.
Bugzilla Report 53617.
* Subclasses of JUnitTask did not correctly find junit.jar.
Bugzilla Report 53571.
* External XML catalog resolver failed to use project basedir when given an
unmentioned relative path like the internal resolver does.
Bugzilla Report 52754.
* Fixed some potential stream leaks.
Bugzilla Reports 52738, 52740, 52742, 52743.
* Updated documentation to fix spelling errors / broken links.
Bugzilla Reports 53215, 53291, 53202
* Unable to override system properties. It was not possible not to override
system properties from the command line (or from a property file).
Bugzilla Report 51792
* <javac> by default fails when run on JDK 8.
Bugzilla Report 53347.
* ExtensionPoint doesn't work with nested import/include
Bugzilla Report 53405.
* <packagemapper> failed to strip the non-matched parts with
handledirsep="true".
Bugzilla Report 53399.
* <expandproperties> filter caused a NullPointerException when input
was empty.
Bugzilla Report 53626.
* <get> now supports HTTP redirects using status code 307.
Bugzilla Report 54374.
* ssh tasks prompt for kerberos username/password under Java 7
Bugzilla Report 53437.
* Zip task on <mappedresources> that excludes certain files by way of the mapper resulted in a NullPointerException
Bugzilla Report 54026
* The ant launcher script should properly detect JAVA_HOME on
MacOS X 10.7
Bugzilla Report 52632
* Depend task does not handle invokeDynamic constant pool entries - java.lang.ClassFormatError: Invalid Constant Pool entry Type 18
Bugzilla Report 54090
* Base64Converter not properly handling bytes with MSB set (not masking byte to int conversion)
Bugzilla Report 54460
* The size resource comparator would return wrong results if file
sizes differed by more than 2 GB.
Bugzilla Report 54623
* Unable to encode properly into UTF-8 when the system property file.encoding is
set to ANSI_X3.4-1968.
Bugzilla Report 54606
* JUnit4 tests marked @Ignore do not appear in XML output
Bugzilla Report 43969
Other changes:
--------------
* merged the ZIP package from Commons Compress, it can now read
archives using Zip64 extensions (files and archives bigger that 4GB
and with more that 64k entries).
* a new task <commandlauncher> can be used to configure the
CommandLauncher used by Ant when forking external programs or new
Java VMs.
Bugzilla Report 52706.
* merged the TAR package from Commons Compress, it can now read
archives using POSIX extension headers and STAR extensions.
* merged the BZIP2 package from Commons Compress, it can now
optionally read files that contain multiple streams properly.
* <bunzip2> will now properly expand files created by pbzip2 and
similar tools that create files with multiple bzip2 streams.
* <tar> now supports a new "posix" option for longfile-mode which
will make it create PAX extension headers for long file names. PAX
extension headers are supported by all modern implementations of
tar including GNU tar.
This option should now be used in preference to "warn" or "gnu" as
it is more portable. For backwards compatibility reasons "warn"
will still create "gnu" extensions rather than "posix" extensions.
* The ProjectHelper class now exposes a method to be used by third party
implementations to properly resolve the binding between target extensions
and extension points.
Bugzilla Report 53549.
* Make extension point bindable to imported prefixed targets
Bugzilla Report 53550.
* Add the possibility to register a custom command line argument processor.
See org.apache.tools.ant.ArgumentProcessor and manual/argumentprocessor.html
* add the possibility to suppress stdout in the sshexec task.
Bugzilla Report 50270.
* add an encoding attribute to the contains selector.
This will be useful to use the contains selector if the encoding of the VM is different from the encoding
of the files being selected.
* support for GNU Classpath.
Bugzilla report 54760.
Changes from Ant 1.8.3 TO Ant 1.8.4
Fixed bugs:
* Ported libbzip2's fallback sort algorithm to CBZip2OutputStream to
speed up compression in certain edge cases. Merge from Commons
Compress.
* Using specially crafted inputs this can be used as a denial of
service attack.
See CVE-2012-2098.
Changes from Ant 1.8.2 TO Ant 1.8.3
===================================
Changes that could break older environments:
-------------------------------------------
* The Enumeration returned by AntClassLoader#getResources used to
return null in nextElement after hasNextElement would return false.
It has been changed to throw a NoSuchElementException instead so
that it now adheres to the contract of java.util.Enumeration.
Bugzilla Report 51579.
Fixed bugs:
-----------
* Removed buggy duplicate JAR list in RPM mode.
Bugzilla Report 52556.
* Launcher fixed to pass the right class loader parent.
Bugzilla Report 48633.
* <junitreport> mishandled ${line.separator}.
Bugzilla Report 51049.
* <junitreport> did not work in embedded environments on JDK 7.
Nor did <xslt> when using Xalan redirects.
Bugzilla Report 51668, 52382.
* Encoding of unicode escape sequences by the property file task
Bugzilla Report 50515.
* The code that implicitly sets the -source switch if only -target
has been specified in <javac> was broken for Java 5 and 6.
Bugzilla Report 50578.
* MailLogger ignore the Maillogger.starttls.enable property.
Bugzilla Report 50668.
* Delete task example does not work
Bugzilla Report 50816.
* <splash>'s proxy handling has been delegated to <setproxy>
internally so the two tasks are consistent. <splash>'s way of not
setting a proxy caused problems with other Java libraries.
Bugzilla Report 50888.
* Include task breaks dependencies or extension-points for multiple
files.
Bugzilla Report 50866.
* Read on System.in hangs for forked java task.
Bugzilla Report 50960.
* FileResource specified using basedir/name attributes was non-functional.
* Resource collection implementation of mapped PropertySet returned
unusable resources.
* The hasmethod condition failed with a NullPointerException when
ignoresystemclasses is true and Ant tried to load a "restricted
class" - i.e. a class that the Java VM will only accept when loaded
via the bootclassloader (a java.* class).
It will now fail with a more useful error message.
Bugzilla Report 51035.
* Exec task may mix the stderr and stdout output while logging it
Bugzilla Report 50507.
* Missing space between "finished" and timestamp in task/target
finish message from ProfileLogger.
Bugzilla Report 51109.
* Redirecting the output of a java, exec or apply task could print in the
error output stream some "Pipe broken" errors.
Bugzilla Report 48789.
* ZipFile failed to clean up some resources which could lead to
OutOfMemoryException while unzipping large archives.
A similar problem in ZipArchiveOutputStream has been fixed as well.
Bugzilla Report 42696.
* quiet attribute added to the copy and move tasks, to be used together
with failonerror=false, so warnings won't get logged
Bugzilla Report 48789.
* System.in was closed and not readable anymore by the DefaultInputHandler
when Ant is used via its Java API.
Bugzilla Report 51161
* <sync> only supported a single non-fileset resource collection even
though the manual said it could be multiple.
* <sync> didn't work properly when working on resource collections.
Bugzilla Report 51462.
* <augment> cause a NullPointerException if it was used in a target
that was invoked by multiple targets from the command line.
Bugzilla Report 50894.
* The ZipFile class could read past the start of the file if the
given file is not a ZIP archive and it is smaller than the size of
a ZIP "end of central directory record".
* <javac> would create the empty package-info.class file in the wrong
directory if no destdir was specified. Note it may still pick the
wrong directory if you specify more than one source directory but
no destDir. It is highly recommended that you always explicitly
specify the destDir attribute.
Bugzilla Report 51947.
* packagemapper now honors the handleDirSep attribute.
Bugzilla Report 51086.
* the attributes of macrodef tasks had their values run through
property expansion twice. Still true by default, but can be disabled.
Bugzilla Report 42046.
* jvc doesn't like it if source file names in argument files are
quoted.
Bugzilla Report 31667.
* ZipFile didn't work properly for archives using unicode extra
fields rather than UTF-8 filenames and the EFS-Flag.
* Access to DirectoryScanner's default excludes wasn't synchronized.
Bugzilla Report 52188.
* When a Project instance was created by a custom tasks its
createTask method didn't work.
Bugzilla Report 50788.
Other changes:
--------------
* -f/-file/-buildfile accepts a directory containing build.xml.
* The <javacc>, <jjtree> and <jjdoc> now support a new maxmemory
attribute.
Bugzilla Report 50513.
* the documented inputstring attribute of sshexec has been
implemented and the actually existing attribute inputproperty
documented.
Bugzilla Report 50576.
* The concat task now permits the name of its exposed resource
by means of its 'resourcename' attribute.
* The expandproperties filter now accepts a nested propertyset
which, if specified, provides the properties for expansion.
Bugzilla Report 51044.
* <junit filtertrace="true"/> will no longer filter out the very
first line of the stacktrace containing the original exception
message even if it matches one of the filter expressions.
* Upgraded to Apache AntUnit 1.2
* Provide read access to Mkdir.dir. Bugzilla Report 51684.
* <delete> and <move> have a new attribute performGCOnFailedDelete
that may - when set to true - help resolve some problems with
deleting empty directories on NFS shares.
Bugzilla Report 45786.
* <loadfile> and <loadresource> used to log at level INFO to signal a
property hasn't been set when the resource was empty even if the
quiet attribute was set to true. They will now use VERBOSE
instead.
Bugzilla Report 52107.
* <javac> has a new attribute createMissingPackageInfoClass that can
be set to false to prevent Ant from creating empty dummy classes
used for up-to-date-ness checks.
Bugzilla Report 52096.
* URLResources#isExists has become less noisy.
Bugzilla Report 51829.
* The <retry> task has a new optional attribute retryDelay that can
be used to make the task sleep between retry attempts.
Bugzilla Report 52076.
* <signjar> has new attributes that control the signature and digest
algorithms.
Bugzilla Report 52344.
* Initial support for Java 8.
* <sshexec> can optionally create a pseudo terminal (like ssh -t)
Bugzilla Report 52554.
Changes from Ant 1.8.1 TO Ant 1.8.2
===================================
Changes that could break older environments:
-------------------------------------------
* Prior to Ant 1.8.0 the <copy> task and several other tasks would
overwrite read-only destination files. Starting with 1.8.0 they
would only do so under special circumstances. Ant 1.8.2 now
consistently won't replace a read-only file by default. The same is
true for a number of other tasks.
The <copy>, <move> and <echo> tasks now have a new force attribute
and <concat> has a new forceReadonly attribute that can be used to
make the task overwrite read-only destinations.
Bugzilla Report 49261.
* Removed ant-nodeps.jar; it is now merged into ant.jar.
* DOMElementWriter#encode used to employ special code before encoding
ampersands so that { remained { rather than being turned
into &#123;. This is no longer the case, ampersands will now
be encoded unconditionally.
Also DOMElementWriter#encodeData will treat CDATA sections containing a
literal "]]>" sequence different now - it will split the CDATA
section between the second "]" and ">" and create two sections.
This affects <echoxml> task as well as the XML logger or JUnit
formatter where ampersands will now always get encoded.
In addition DOMElementWriter will now replace the characters \t, \r
and \n in attribute values by entity references.
Bugzilla Report 49404.
* The list elements returned by ProjectHelper#getExtensionStack are
now String arrays of length 3 rather than 2 in order to support the
onMissingExtensionPoint attribute.
Bugzilla Report 49473.
* When using <property file="..." prefix="..."/> properties defined
inside the same file will only get used in expansions if the ${}
reference uses the same prefix. This is different from Ant 1.8.1
but is the same behavior Ant 1.8.0 and earlier exhibited.
A new attribute prefixValues can be used to re-enable the behavior
of Ant 1.8.1.
Bugzilla Report 49373.
* The files and directories used by Git, Mercurial and Bazaar to
store their information are now excluded by the defaultexcludes.
Bugzilla Report 49624.
* The <junit> task no longer generates TestListener events - which
have been introduced in ant 1.7.0 - by default. The task has a new
attribute enableTestListenerEvents and a new "magic" property
ant.junit.enabletestlistenerevents has been added that can be used
to reinstate the old behavior.
Fixed bugs:
-----------
* hostinfo now prefers addresses with a hostname over addresses without
a hostname, provided the addresses have the same scope.
For local lookup, no IP address will be put in NAME / DOMAIN anymore.
For remote lookup, if a host name was provided and only an IP address is
found, the IP address will no longer overwrite the host name provided to the
task.
Bugzilla Report 49513
* mmap-based file copy problems under JDK 1.4 on Linux.
Bugzilla Report 49430.
* The Sun JVM tries to mmap the entire file during a copy.
For large files this is not feasible.
We now explicitly request to copy at most 16 MiB per request.
Bugzilla Report 49326.
* DemuxInputStream.read() should return unsigned values
Bugzilla Report 49279.
* The MIME mailer ignored the port parameter when using SSL.
Bugzilla Report 49267.
* <xslt> ignored the classpath when using the default TraX processor.
Bugzilla Report 49271.
* <checksum>'s totalproperty only worked reliably if the same file
name didn't occur inside more than one directory.
Bugzilla Report 36748.
* <ftp> could fail to download files from remote subdirectories under
certain circumstances.
Bugzilla Report 49296.
* <junit> will now produce better diagnostics when it fails to delete
a temporary file.
Bugzilla Report 49419.
* Ant would often scan directories even though there were known to
only hold excluded files when evaluating filesets. This never
resulted in wrong results but degraded performance of the scan
itself.
Bugzilla Report 49420.
* <javac> failed for long command lines on OS/2.
Bugzilla Report 49425.
* <junitreport> did not handle encodings well for stdout/stderr.
Bugzilla Report 49418.
* <junit> could issue a warning about multiple versions of Ant on the
CLASSPATH if two CLASSPATH entries differed in case on a
case-insensitive file system.
Bugzilla Report 49041.
* The <restrict> resource collection was checking every resource even if
we actually just want the first one, like in the example of use of
resourcelist in the documentation (getting the first available resource
from a mirror list).
* A race condition could lead to build failures if multiple <mkdir>
tasks were trying to create the same directory.
Bugzilla Report 49572.
* the toString() method of the Resources class - and thus any
${toString:} expansion of a reference to a <resources> element -
didn't iterate over its nested elements if it hadn't done so prior
to the toString invocation already.
Bugzilla Report 49588.
* <apply> in parallel mode didn't work together with a nested
<redirector> if maxparallel was <= 0 (the default) or no source
files matched.
Bugzilla Report 49594.
* <jar filesetmanifest="merge"> didn't work for manifests added via
<zipfileset>s that used the prefix or fullpath attributes.
Bugzilla Report 49605.
* <tempfile createfile="true"> would cause an error unless the prefix
attribute has been specified.
Bugzilla Report 49755.
* If forked, after finished <java> was still reading the input stream
for a bunch of characters, then stealing them from a following <input>.
Bugzilla Report 49119.
* Ant could be leaking threads for each forked process (started by
<exec>, <apply>, <java> or similar tasks) that didn't receive input
from a resource or string explicitly.
Bugzilla Report 49587.
* Project#setDefault threw an exception when null was passed in as
argument, even though the Javadoc says null is a valid value.
Bugzilla Report 49803.
* runant.py would swallow the first argument if CLASSPATH wasn't set.
Bugzilla Report 49963.
* <taskdef> failed to load resources from jar files contained in a
directory that has a "!" in its name.
Bugzilla Report 50007.
* ant.bat exit strategy improvements and issues
make the exit codes work in environments where 4NT or MKS are installed
Bugzilla Report 41039.
* <signjar> would fail if used via its Java API and the File passed
into the setJar method was not "normalized" (i.e. contained ".."
segments).
Bugzilla Report 50081.
* <delete> ignored <fileset>'s errorOnMissingDir attribute
Bugzilla Report 50124.
* <symlink> failed to close files when reading a list of symbolic
links from a properties file.
Bugzilla Report 50136.
* <parallel> could allow tasks to start executing even if a task
scheduled to run before them timed out.
Bugzilla Report 49527.
* If a <junit> batch with multiple tests times out Ant logs a message
about a test named Batch-With-Multiple-Tests since 1.8.0 but the
logic that determined the Java package of this pseudo-test has been
wrong.
Bugzilla Report 45227.
* <propertyfile> didn't preserve the original linefeed style when
updating a file.
Bugzilla Report 50049.
* <zip>'s whenEmpty behavior never consulted the non-fileset
resources so the task could fail even though resources have been
provided using non-fileset resource collections.
Bugzilla Issue 50115.
* ftp chmod could throw a NPE.
Bugzilla report 50217.
* The project help (-p option in the command line) will now print
the dependencies of the targets in debug mode (-d on the command
line)
Other changes:
--------------
* <concat>'s force attribute has been deprecated in favor of a new
overwrite attribute that is consistent with <copy>'s attribute
names.
* You can now specify a list of methods to run in a JUnit test case.
Bugzilla Report 34748.
* properties in files read because of the -propertyfile command line
option will now get resolved against other properties that are
defined before the project starts executing (those from the same or
earlier -propertfiles or defined via the -D option).
Bugzilla Report 18732.
* <pathelement>s can now contain wildcards in order to use wildcard
CLASSPATH entries introduced with Java6.
The wildcards are not expanded or even evaluated by Ant and will be
used literally. The resulting path may be unusable as a CLASSPATH
for Java versions prior to Java6 and likely doesn't mean anything
when used in any other way than a CLASSPATH for a forked Java VM.
Bugzilla Report 46842.
* A new attribute allows targets to deal with nonexistent extension
points, i.e. they can extend an extension-point if it has been
defined or silently work as plain targets if it hasn't. This is
useful for targets that get included/imported in different
scenarios where a given extension-point may or may not exist.
Bugzilla Report 49473.
* Ant now logs a warning message if it fails to change the file
modification time in for example when using <touch> or preserving
timestamps in various tasks.
Bugzilla Report 49485.
* ProjectHelpers can now be installed dynamically via the <projecthelper>
Ant task.
* <import> is now able to switch to the proper ProjectHelper to parse
the imported resource. This means that several kinds of different build
files can import each other.
* <copy tofile=""> now also works for non-filesystem resources.
Bugzilla Report 49756.
* The <linecontainsregexp> filter now supports a casesensitive
attribute.
* The <containsregexp> selector now supports casesensitive, multiline
and singleline attributes.
Bugzilla Report 49764.
* A new <cutdirsmapper> can be used like wget's --cut-dirs option to
strip leading directories from file names.
* <javah> now supports the GNU project's gcjh compiler.
Bugzilla Report 50149.
* <checksum> supports additional views of a file's path as elements
for a custom pattern.
Bugzilla Report 50114.
* JUnit XMLResultAggregator logs the stack trace of caught IO exceptions
in verbose runs.
Bugzilla Report 48836.
* StringUtils.parseHumanSizes() should turn parse failures into
BuildExceptions.
Bugzilla Report 48835.
* New task <bindtargets> to make a list of targets bound to some
specified extension point.
* Initial support for OpenJDK7 has been added.
* Ant now uses java.net.CookieStore rather than
java.util.ServiceLocator to detect whether the environment is a
Java 1.6 system. This means releases of gcj/gij at the time of
this release of Ant are detected as Java 1.5 and not 1.6.
Bugzilla Report 50256.
* It is now possible to write a compiler adapter for <javac> that
compiles sources with extensions other than .java (but that still
compile to .class files).
Bugzilla Report 48829.
* The performance of VectorSet#add(Object) has been improved which
should also benefit any operation that scans directories in Ant.
Bugzilla Report 50200.
Fixes PR pkg/43752
Changes from Ant 1.8.0 TO Ant 1.8.1:
- Changes that could break older environments:
* ant-trax.jar is no longer produced since TrAX is included in JDK 1.4+.
* Ant no longer ships with Apache Xerces-J or the XML APIs but relies
on the Java runtime to provide a parser and matching API versions.
* The stylebook ant task and the ant-stylebook.jar are removed.
- Fixed bugs:
* Tasks that iterate over task or type definitions, references or
targets now iterate over copies instead of the live maps to avoid
ConcurrentModificationExceptions if another thread changes the
maps.
* The filesmatch condition threw a NullPointerException when
comparing text files and the second file contained fewer lines than
the first one.
* Regression: The <ear> task would allow multiple
META-INF/application.xml files to be added.
* VectorSet#remove(Object) would fail if the size of the vector
equaled its capacity.
* Regression : ant -diagnostics was returning with exit code 1
* Fix for exec task sometimes inserts extraneous newlines
* SymlinkTest#testSymbolicLinkUtilsMethods failing on MacOS
* If <concat>'s first resourcecollection child is a <resources>,
any subsequently added child resourcecollection joins the first.
* <get> with an invalid URL could trigger an NPE in some JVMs.
* Broken Pipe issue under Ubuntu Linux
* Properties wrongly read from file or not update during read
* AntClassLoader in Ant 1.8.0 has been considerably slower than in
1.7.1
* ANT_CMD_LINE_ARGS are rippling through lower level Ant usage
* email : IO error sending mail with plain mimetype
* the complete-ant-cmd.pl script failed to create a proper cache of
target if "ant -p" failed.
* <rmic>'s sourcebase attribute was broken.
* <copy>'s failonerror didn't work as expected when copying a single
element resource collection to a file.
* <get> no longer followed redirects if the redirect URL was relative
and not an absolute URL.
* fixed a performance degradation in the code that expands property
references.
* <jar filesetmanifest="merge"> was broken on Windows.
* <symlink> delete failed if the link attribute was a relative path
to a link inside the current directory without a leading ".".
* <telnet> and <rexec> failed to find the expected strings when
waiting for responses and thus always failed.
- Other changes:
* Project provides new get methods that return copies instead of the
live maps of task and type definitions, references and targets.
* Ant is now more lenient with ZIP extra fields and will be able to
read archives that it failed to read in earlier versions.
* The <zip> family of tasks has been sped up for bigger archives.
* Add removeKeepExtension option to NetRexxC task.
* Add prefix attribute to loadproperties task.
* Add resource attribute to length task.
* PropertyResource will effectively proxy another Resource if ${name}
evaluates to a Resource object.
* Added forcestring attribute to equals condition to force evaluation
of Object args as strings; previously only API-level usage of the
equals condition allowed Object args, but Ant 1.8.x+ property
evaluation may yield values of any type.
* BuildFileTest.assertPropertyUnset() fails with a slightly more
meaningful error message
* <junit> will now throw an exception if a test name is empty. This
used to manifest itself in unrelated errors like
* A change that made <exec> more reliable on Windows (Bugzilla Report
5003) strongly impacts the performance for commands that execute
quickly, like attrib. Basically no single execution of a command
could take less than a second on Windows.
A few timeouts have been tweaked to allow these commands to finish
more quickly but still they will take longer than they did with Ant
1.7.1.
* Added SimpleBigProjectLogger, intermediate between NoBannerLogger and
BigProjectLogger.
* <mappedresources> supports new attributes enablemultiplemappings
and cache.
* Added the augment task to manipulate existing references via Ant's basic
introspection mechanisms.
Fix PR pkg/42990
* Lexically scoped local properties, i.e. properties that are only defined
inside a target, sequential block or similar environment.
* <import> can now import from any file- or URL-providing resource - this
includes <javaresource>.
* Various improvements to the directory scanning code that help with symbolic
link cycles (as can be found on MacOS X Java installations for example) and
improve scanning performance. For big directory trees the improvement is
dramatic.
* The way developers can extend Ant's property expansion algorithm has been
rewritten (breaking the older API) to be easier to use and be more powerful.
a new top level element extension-point allows build files to be extended
with custom targets more easily
* At the same time the if and unless attributes have been rewritten to do the
expected thing if applied to a property expansion (i.e. if="${foo}" will mean
"yes, do it" if ${foo} expands to true, in Ant 1.7.1 it would mean "no"
unless a property named "true" existed). This adds "testing conditions" as a
new use-case to property expansion.
* Ant now requires Java 1.4 or later
* new task include provides an alternative to <import> that should be preferred
when you don't want to override any targets
* numerous bug fixes and improvements as documented in Bugzilla and in WHATSNEW
patches to add it). Drop pax from the default USE_TOOLS list.
Make bsdtar the default for those places that wanted gtar to extract
long links etc, as bsdtar can be built of the tree.
Changes that could break older environments:
-------------------------------------------
* Initial support for JDK 6 (JSR 223) scripting.
<*script*> tasks will now use javax.scripting if BSF is
not available, or if explicitly requested by using
a "manager" attribute.
* The -noproxy option which was in the previous 1.7 alpha and beta
releases has been removed. It is the default behavior and not needed.
* Removed launcher classes from nodeps jar.
* <classconstants> filter reader uses ISO-8859-1 encoding to read
the java class file. Bugzilla report 33604.
* Defer reference process. Bugzilla 36955, 34458, 37688.
This may break build files in which a reference was set in a target which was
never executed. Historically, Ant would set the reference early on, during parse
time, so the datatype would be defined. Now it requires the reference to have
been in a bit of the build file which was actually executed. If you get
an error about an undefined reference, locate the reference and move it somewhere
where it is used, or fix the depends attribute of the target in question to
depend on the target which defines the reference/datatype.
* <script> and <scriptdef> now set the current thread context.
* Unrestrict the dbvendor names in the websphere element of the ejbjar task.
* <env> nested element in <java>, <exec> and others is now case-insensitive
for windows OS. Bugzilla Report 28874.
* Removed support for xalan1 completely. Users of Xalan1 for Ant builds will
have to stay at ant 1.6.5 or upgrade to xalan2.
* Use org.apache.log4j.Logger instead of org.apache.log4j.Category.
Category has been deprecated for ~2 years and has been removed from
the log4j code. Logger was introduced in log4j 1.2 so users of
log4j 1.1 and log4j 1.0 need to upgrade to a newer version of log4j.
* build.sysclasspath now also affects the bootclasspath handling of
spawned Java VMs. If you set build.sysclasspath to anything other
than "ignore" (or leave it unset, since "ignore" is the default when
it comes to bootclasspath handling), then the bootclasspath of the
VM running Ant will be added to the bootclasspath you've specified.
* The <java fork="false"> now as per default installs a security manager
using the default permissions. This is now independent of the
failonerror attribute.
* <signjar> now notices when the jar and signedjar are equal, and switches
to the same dependency logic as when signedjar is omitted. This may break
something that depended upon signing in this situation. However, since
invoking the JDK jarsigner program with -signedjar set to the source jar
actually crashes the JVM on our (Java1.5) systems, we don't think any
build files which actually worked will be affected by the change.
* <signjar> used to ignore a nested fileset when a jar was also provided as an
attribute, printing a warning message; now it signs files in the fileset.
* An improved method of handling timestamp granularity differences between
client and server was added to the <ftp> task. FTP servers typically
have HH:mm timestamps whereas local filesystems have HH:mm:ss timestamps.
Previously, this required tweaking with the timediffmillis attribute
which also was used to handle timezone differences. Now, there is a new
timestampgranularity attribute. The default value for get operations is 0
since the user has the more powerful preservelastmodified attribute to work
with. Since this is not available on put operations the default value
adds a minute to the server timestamp in order to account for this,
Scripts which previously used timediffmillis to do this compensation may
need to be rewritten. timediffmillis has now been deprecated.
* On Java1.5+, Ant automatically sets the system property
java.net.useSystemProxies to true, which gives it automatic use of the local
IE (Windows) or Gnome2 (Unix/Linux) proxy settings. This may break any build
file that somehow relied on content outside the firewall being unreachable:
use the -noproxy command-line option to disable this new feature.
Note that the Java1.5 proxy configuration system still does not
appear to work reliably on Windows or Linux.
* Support for the XSL:P XML parser has been removed.
* Visual Age for Java optional tasks removed.
* Testlet (test) optional task removed.
* Icontract optional task removed.
* Metamata (maudit, mmetrics, and mparse tasks) removed.
* Sitraka (jpcoverage, jpcovmerge, jpcovreport) tasks suppressed.
* <fixcrlf> used \r (Mac) line endings on OS X, whose proper line separator
is \n (Unix).
* <scp> now optionally supports the sftp protocol, you may need a
newer jsch.jar.
* Ant launcher program prints errors to stderr, and exits with a 2 exit code
value if, for any reason, it cannot actually start Ant proper. This will only
affect programs/scripts that called the launcher and which did not want to
receive an error if Ant itself would not start
* All .NET tasks are now deprecated in favor of the new .NET Antlib:
http://ant.apache.org/antlibs/dotnet/index.html
Remove the files/ant script, by patching the bin/ant script, as ant people
worked on it.
I'm taking maintainership for this one
Fix PR 29038 and PR 29338, apache-ant now can use plugins
Fix PR 30332 (update to 1.6.5)
Approved by jwise@
Ant 1.6.2 fixes a large number of bugs and adds a number of features which
were asked for by users on Bugzilla.
Important changes (for a complete list see the included WHATSNEW document):
Changes that could break older environments:
--------------------------------------------
* The import task used the canonical version of a file path. This
has been changed to use the absolute path. Bugzilla 28505.
* ant-xalan2.jar has been removed since the only class contained in it
didn't depend on Xalan-J 2 at all. Its sole dependency has always
been TraX and so it has been merged into ant-trax.jar.
* All exceptions thrown by tasks are now wrapped in a buildexception
giving the location in the buildfile of the task.
* Nested elements for namespaced tasks and types may belong to the
Ant default namespace as well as the task's or type's namespace.
* <junitreport> will very likely no longer work with Xalan-J 1.
Note that Xalan-J 1 has been deprecated for a very long time and we
highly recommend that you upgrade.
If you really need to continue using Xalan-J 1, please copy the
junit-frames-xalan1.xsl from the distribution's etc directory as
junit-frames.xsl into a new directory and use the task's styledir
attribute to point to. This is the last version of the XSLT
stylesheet that is expected to be compatible with Xalan-J 1.