@@ -1,5 +1,5 @@
Changes from Ant 1.7.0RC1 to current SVN version
==================================================
Changes from Ant 1.6.5 to Ant 1.7.0
===================================
Changes that could break older environments:
-------------------------------------------
@@ -12,6 +12,104 @@ Changes that could break older environments:
* 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.
Bugzilla Report 40475.
* <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.
Bugzilla Report 31951.
* 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. Bugzilla report 33361.
* <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.
Bugzilla Report 23455.
* 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). Bugzilla report 39585.
* <scp> now optionally supports the sftp protocol, you may need a
newer jsch.jar. Bugzilla Report 39373.
* 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
Fixed bugs:
-----------
* Directory deletion did not work properly.
@@ -48,43 +146,6 @@ Fixed bugs:
not e.g. pick up files that didn't exist the first time through.
Bugzilla 41151.
Other changes:
--------------
* Warn user when a reference in the form "${refid}" cannot be resolved as this
is a sign they probably meant "refid" (misuse of property expansion syntax).
* Add dtd to javadoc for junit.
Bugzilla 40754.
* Add quiet attribute to loadfile/resource.
Bugzilla 38249.
* Make Locator#fromURI also append the drive letter when running under Windows
with JDK 1.3 or 1.2.
* Do not uppercase the drive letters systematically in FileUtils#normalize.
* Java 5 enumerations may now be used as values in XML attributes in place of
EnumeratedAttribute. Bugzilla 41058.
* Create a pom file for ant-testutil and add ant-testutil.jar to the ant
distribution. Bugzilla 40980.
* Roll back automatic proxy enabling on Java 1.5. It broke things like
Oracle JDBC drivers, and Ant itself on IBM's JVM on AIX, and didnt
seem to work to well the rest of the time.
To enable the feature, use the -autoproxy command line option.
Changes from Ant 1.7.0Beta3 to Ant 1.7.0RC1
===========================================
Changes that could break older environments:
-------------------------------------------
Fixed bugs:
-----------
* OOM caused by IH holding on to classes and thus their classloaders.
Bugzilla 28283 and 33061.
@@ -99,58 +160,6 @@ Fixed bugs:
* JUnitTestRunner had a NPE when unable to create parser, the exception
containing the error did not get reported. Bugzilla 36733.
Other changes:
--------------
* Upgraded XML API and parser to Xerces 2.8.1
* A code review of some threaded logic has tightened up the synchronization
of Watchdog, ExecuteWatchdog and ExecuteJava, which could reduce the occurence
of race conditions here, especially on Java1.5+.
* Allow broken reference build files. The defer reference processing would
break too many files - so allow them with a warning.
* Removed dependency on sun.misc.UUEncoder for UUMailer.
* Added regex attribute to the echoproperties task.
Bugzilla 40019.
* <war> task now allows you to omit the web.xml file. as this is optional
in the servlet 2.5 and Java EE 5 APIs. set needxmlfile="false" to
avoid a missing web.xml file from halting the build.
* Diagnostics catches and logs security exceptions when accessing system properties.
* <javadoc> useexternalfile now applies to all command line arguments
of javadoc. Bugzilla report 40852.
* javadoc/tag@description is now set to the name if description is
not specified. Bugzill report 32927.
Changes from Ant 1.7.0Beta2 to Ant 1.7.0Beta3
=============================================
Changes that could break older environments:
-------------------------------------------
* 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.
Fixed bugs:
-----------
* <checksum> with file and todir option failed. Bugzilla report 37386.
@@ -197,44 +206,6 @@ Fixed bugs:
Since <path> is historically heavily used this was undesirable, and since it
is also avoidable, the change to <path>'s taxonomy was reverted.
Other changes:
--------------
* Some performance improvements, including Bugzilla report 25778.
* Add <matches> condition. Bugzilla report 28883.
* Extending JAR-Task for SPI. Bugzilla report 31520.
* Added <tokens> resource collection for convenient creation of string
resources from other resources' content. Inspired by Bugzilla 40504.
* Added <compare> resource selector to select resources based on the
results of their comparison to other resources.
* Added outputtoformatters attribute to <junit> to allow suppression
of noisey tests. Bugzilla report 12817.
* Log level of message 'Overriding previous definition of reference to'
set to Verbose. Bugzilla report 17240.
Changes from Ant 1.7.0Beta1 to Ant 1.7.0Beta2
=============================================
Changes that could break older environments:
-------------------------------------------
* <script> and <scriptdef> now set the current thread context.
* Unrestrict the dbvendor names in the websphere element of the ejbjar task.
Bugzilla Report 40475.
* <env> nested element in <java>, <exec> and others is now case-insensitive
for windows OS. Bugzilla Report 28874.
Fixed bugs:
-----------
* <zip filesonly="true"> included empty directories. Bugzilla report 40258.
* Invalid hash code of Target causes XmlLogger to fail.
@@ -262,122 +233,6 @@ Fixed bugs:
* <available> searched parent directories for files.
Bugzilla report 37148.
Other changes:
--------------
* Added setbeans attribute to <script> to allow <script>'s to be
run without referencing all references.
Bugzilla report 37688.
* Added classpath attribute and nested element to <script> to allow
the language jars to be specified in the build script.
Bugzilla report 29676.
* Trim the driver attribute on the <sql> task. Bugzilla report 21228.
* Allow (jar) files as well as directories to be given to jdepend.
Bugzilla report 28865.
* Convert SplashTask to use NOT sun internal classes.
Bugzilla report 35619.
* Made PatternSet#hasPatterns public to allow custom filesets access.
Bugzilla report 36772.
* Added searchparents attribute to <available>. Bugzilla report 39549.
* Tasks that don't extend Ant's Task class will now get the build file
location reflected into a method of the signature void setLocation(Location)
- if such a method exists.
* Remove needless synchronization in DirectoryScanner.
Bugzilla report 40237.
Changes from Ant 1.6.5 to Ant 1.7.0Beta1
========================================
Changes that could break older environments:
-------------------------------------------
* 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.
Bugzilla Report 31951.
* 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. Bugzilla report 33361.
* <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.
Bugzilla Report 23455.
* 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). Bugzilla report 39585.
* <scp> now optionally supports the sftp protocol, you may need a
newer jsch.jar. Bugzilla Report 39373.
* 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
Fixed bugs:
-----------
* The build could be halted if a file path contained more ".." components than
the actual depth of the preceding path. Now such paths are left
alone (meaning they will likely be treated as nonexistent
@@ -559,6 +414,103 @@ Fixed bugs:
Other changes:
--------------
* Warn user when a reference in the form "${refid}" cannot be resolved as this
is a sign they probably meant "refid" (misuse of property expansion syntax).
* Add dtd to javadoc for junit.
Bugzilla 40754.
* Add quiet attribute to loadfile/resource.
Bugzilla 38249.
* Make Locator#fromURI also append the drive letter when running under Windows
with JDK 1.3 or 1.2.
* Do not uppercase the drive letters systematically in FileUtils#normalize.
* Java 5 enumerations may now be used as values in XML attributes in place of
EnumeratedAttribute. Bugzilla 41058.
* Create a pom file for ant-testutil and add ant-testutil.jar to the ant
distribution. Bugzilla 40980.
* Roll back automatic proxy enabling on Java 1.5. It broke things like
Oracle JDBC drivers, and Ant itself on IBM's JVM on AIX, and didnt
seem to work to well the rest of the time.
To enable the feature, use the -autoproxy command line option.
* Upgraded XML API and parser to Xerces 2.8.1
* A code review of some threaded logic has tightened up the synchronization
of Watchdog, ExecuteWatchdog and ExecuteJava, which could reduce the occurence
of race conditions here, especially on Java1.5+.
* Allow broken reference build files. The defer reference processing would
break too many files - so allow them with a warning.
* Removed dependency on sun.misc.UUEncoder for UUMailer.
* Added regex attribute to the echoproperties task.
Bugzilla 40019.
* <war> task now allows you to omit the web.xml file. as this is optional
in the servlet 2.5 and Java EE 5 APIs. set needxmlfile="false" to
avoid a missing web.xml file from halting the build.
* Diagnostics catches and logs security exceptions when accessing system properties.
* <javadoc> useexternalfile now applies to all command line arguments
of javadoc. Bugzilla report 40852.
* javadoc/tag@description is now set to the name if description is
not specified. Bugzill report 32927.
* Some performance improvements, including Bugzilla report 25778.
* Add <matches> condition. Bugzilla report 28883.
* Extending JAR-Task for SPI. Bugzilla report 31520.
* Added <tokens> resource collection for convenient creation of string
resources from other resources' content. Inspired by Bugzilla 40504.
* Added <compare> resource selector to select resources based on the
results of their comparison to other resources.
* Added outputtoformatters attribute to <junit> to allow suppression
of noisey tests. Bugzilla report 12817.
* Log level of message 'Overriding previous definition of reference to'
set to Verbose. Bugzilla report 17240.
* Added setbeans attribute to <script> to allow <script>'s to be
run without referencing all references.
Bugzilla report 37688.
* Added classpath attribute and nested element to <script> to allow
the language jars to be specified in the build script.
Bugzilla report 29676.
* Trim the driver attribute on the <sql> task. Bugzilla report 21228.
* Allow (jar) files as well as directories to be given to jdepend.
Bugzilla report 28865.
* Convert SplashTask to use NOT sun internal classes.
Bugzilla report 35619.
* Made PatternSet#hasPatterns public to allow custom filesets access.
Bugzilla report 36772.
* Added searchparents attribute to <available>. Bugzilla report 39549.
* Tasks that don't extend Ant's Task class will now get the build file
location reflected into a method of the signature void setLocation(Location)
- if such a method exists.
* Remove needless synchronization in DirectoryScanner.
Bugzilla report 40237.
* Improved recursion detection for lines with multiple matches of same token
on a single line. Bugzilla report 38456.