Changes from Ant 1.6.4 to Ant 1.6.5 =================================== Changes that could break older environments: -------------------------------------------- Fixed bugs: ----------- * was unable to replace existing files or write into existing directories. Bugzilla report 34962. * with redefined default values was incorrect. (Fix for 31215 had a bug). Bugzilla report 35109. * will convert backslashes to forwardslashes when generating file list by useexternalfile. Bugzilla report 27814. Changes from Ant 1.6.3 to Ant 1.6.4 =================================== Changes that could break older environments: -------------------------------------------- Fixed bugs: ----------- * Sun javah failed with java.lang.NoClassDefFoundError. Bugzilla report 34681. * DirectoryScanner.slowScan() was broken. Bugzilla report 34722. * DirectoryScanner.scan() could throw a NullPointerException on case-insensitive filesystems (read Windows or MacOS X). * Get w/authentication failed with ArrayOutOfBoundsExceptions. Bugzilla report 34734. * Granularity attribute for task was undocumented. Bugzilla report 34871. * and could leave file handles open on invalid archives. Bugzilla report 34893. * propertyset threw NPE with nested, mapped propertysets. * up to date calculations were wrong. Bugzilla report 34941. Other changes: -------------- * AntXMLContext.setCurrentTargets() is now public. Bugzilla report 34680. Changes from Ant 1.6.2 to Ant 1.6.3 =================================== Changes that could break older environments: -------------------------------------------- * The subant task used the canonical version of a file path. This has been changed to use the absolute path. Bugzilla 30438. * Tar now writes two EOF blocks rather than one. Bugzilla report 28776 * The Reference object now has a project field which it uses in preference to the project passed in. This allows composite references to be handled to nested projects. Bugzilla report 25777 * with filtertrace="true" will now also swallow lines for the sun.reflect package. If you need to see them in your stack trace, you must set filtertrace to false. Bugzilla Report 22758 * The jikes compiler adapter now supports -bootclasspath, -extdirs and -sourcepath and also uses the same logic for debug flags as javac. This means, the jikes compiler adapter now requires Jikes 1.15 or later. Bugzilla Reports 25868, 26404 and 32609. * Targets with identical name work in imported project. Bugzilla Report 34566. * The gcj compiler adapter used to include the Java runtime classes even if includeJavaRuntime was set to false, unless the bootclasspath has been specified as well. It will now always adhere to includeJavaRuntime, you may need to set it to true explicitly now if you relied on the old behavior. Other changes: -------------- * can now take an attribute 'executable'. Bugzilla report 30606. * New attribute ignorecontents for selector * Javadoc fixes for Location, Project, and RuntimeConfigurable Bugzilla 30160. * Enable to choose the regexp implementation without system property. Bugzilla Report 15390. * Expose objects and methods in IntrospectionHelper. Bugzilla Report 30794. * Allow file attribute of to rename a directory. Bugzilla Report 22863. * Add xmlcatalog nested element to XmlProperty. Bugzilla report 27053. * New attribute alwayslog for type. * Added nested elements to and to allow specification of multiple sub-build targets, which are executed with a single dependency analysis. * Refactored Target invocation into org.apache.tools.ant.Executor implementations. Bugzilla Reports 21421, 29248. * now also supports Kaffe's rmic version shipping with Kaffe 1.1.2 and above. * added casesensitive attribute to and Bugzilla report 16686 * added handledirsep attribute to and Bugzilla report 32487 * added a new mapper * When a BuildListener tried to access System.err or System.out, Ant would have thrown an exception - this has been changed. Ant now silently ignores the message. BuildListeners still should avoid accessing either stream. * Added a comment attribute to the zip task. Bugzilla report 22793. * Overloaded FileUtils.createNewFile with a boolean mkdirs attribute to create nonexistent parent directories. * has a new "force" attribute that, when true, disables checking of target files. * Made the dest attribute of the apply task optional; mapped target filenames will be interpreted as absolute pathnames when dest is omitted. * Changed default tempdir for from user.dir to java.io.tmpdir. * Added searchpath attribute to for searching path variable(s) when resolveexecutable = true. * Added revision and userid attributes to documentation. * Added support to the touch task for a mkdirs attribute to create nonexistent parent directories before touching new files. * Added support to the touch task for a pattern attribute to allow alternate datetime formats. * Added support to the touch task to map touched files using a nested mapper element. * Added support to the touch task for a verbose attribute to suppress logging of new file creation. * bad link in docs to the enhancement page in bugzilla. Bugzilla report 33252. * Added length task to get strings' and files' lengths. * and now also support Kaffe's versions. * Recursive token expansion in a filterset can now be disabled by setting its recurse attribute to false. * Pathconvert no longer requires that one of (targetos|pathsep|dirsep) be set; platform defaults are used when this is the case. * Added preservelastmodified attribute to fixcrlf task. Bugzilla 25770. * Added isfileselected condition. * Added verbose="true|false" attribute to . When verbose is enabled, the directory name is logged on entry and exit of the sub-build. Bugzilla 33787. * Added -nouserlib option to allow running ant without automatically loading up ${user.home}/.lib/ant. This is useful when compiling ant, and antlibs. Modified the build.sh and build.bat to use the option. * Added -noclasspath option to allow running ant WITHOUT using CLASSPATH env variable. Modified ant.bat to do this so that %CLASSPATH% is not looked at. * Add else attribute to the condition task, which specifies an optional alternate value to set the property to if the nested condition evaluates to false. Bugzilla report 33074. * Ant generated jar files should now be detected as jar files by Solaris. Bugzilla Report 32649. * Added two tutorials - beginner: introduction into Ant - task developers: using path, fileset etc * has new attributes failonerror and quiet. Fixed bugs: ----------- * Do not pass on ThreadDeath when halting . Bugzilla 32941. * Killing a thread running (e.g. from an IDE) would not stop the forked process. Bugzilla 31928. * Programs run with can now accept standard input from the Ant console. (Programs run with could already do so.) Bugzilla 24918. * AbstractCvsTask prematurely closed its outputStream and errorStream. Bugzilla 30097. * Impossible to use implicit classpath for when Ant core loader != Java application loader and Path.systemClassPath taken from ${java.class.path} Bugzilla 30161. * MacroInstance did not clean up nested elements correctly in the execute method, causing multiple use of the same macro instance with nested elements to fail. * checksum fileext property doc wrong. Bugzilla 30787. * FTP task, getTimeDiff method was returning wrong value. Bugzilla 30595. * Zip task was not zipping when only empty directories were found. Bugzilla 30365. * Jar task was not including manifest files when duplicate="preserve" was chosen. Bugzilla 32802. * Classpath was treated in the same way as -lib options. Bugzilla 28046. * Manual page for cvsversion contained incorrect attributes and did not say since 1.6.1. Bugzilla 31408. * Typo in definition of task causing it not to be defined. Bugzilla 31403. * Execution of top level tasks in imported files get delayed by targets. Bugzilla report 31487. * ExecTask executes checkConfiguration() even though os does not match. Bugzilla report 31805. * Concat task instance could not be run twice. Bugzilla report 31814. * NPE using XmlLogger and antlib. Bugzilla report 31840. * Properties.propertyNames() should be used instead of .keys(). Bugzilla report 27261. * Target location is not set for default target. Bugzilla report 32267. * Incorrect classloader parent in junittask when using with ant-junit.jar and junit.jar not in the project classloader. Bugzilla report 28474. * getResources() on the classloader returned by ClasspathUtils would see each resource twice - if the resource is in the project classpath and if the classloader is requested with a null path. * XMLValidate used URL#getFile rather than the ant method FileUtils#fromURI Bugzilla report 32508 * fixed Regexp-Mapper docs which gave outdated instructions (optional.jar) Bugzilla report 28584 * using didn't work with OpenSSH 3.9 and later. Bugzilla report 31939 * failed to set user/password on some JDKs. Bugzilla report 32667 * untar would go into infinite loop for some invalid tar files. Bugzilla report 29877 * forked won't pass -source to a JDK 1.1 or 1.2 javac anymore. Bugzilla report 32948 * propertyset references did not handle nested propertyset references. * oata.types.Description.getDescription(Project) would throw a NullPointerException when the "ant.targets" reference was unset. * Wrapper scripts did not detect WINNT value of dynamic OS environment variable when logged into workstations using Novell authentication. Bugzilla Report 30366. * DependScanner.getResource() always returned nonexistent resources, even when the resource actually existed. Bugzilla Report 30558. * was broken with classfilesets. Bugzilla Report 30567. * returned false positives when checking a file passed in with the current basedir leading twice: e.g. ${basedir}${file.separator}${basedir}${file.separator}foo . * The first file open that took place when using input files with the , , or tasks was always logged to System.out instead of to the managing Task. * and would try to disconnect from servers they never connetced to, potentially leading to exceptions in commons-net. Bugzilla Report 33618. * would drop files matched by defaultexcludes during updates. Bugzilla Report 33412. * couldn't store files with size between 2GB and 4GB (the upper limit set by the ZIP format itself). Bugzilla Report 33310. * NPE when when tries to configure a task that cannot be instantiated. Bugzilla Report 33689. * created an invalid command line when running the Symantec Java compiler. * Get with usetimestamp did not work on Java 1.2. * Get with usetimestamp did not work when local timestamp roughly >= now. * The framed JUnit report now handles multiple reports for the same testcase properly. Bugzilla Report 32745. * didn't work for files with spaces in their names on Windows. Bugzilla Report 17182. * The VAJ tasks could fail if the project name contained characters that need to get URL encoded. Bugzilla Report 23322. * The FTP task could crash with an ArrayIndexOutOfBoundsException Bugzilla Report 28797 * Improved handling of paths on cygwin Bugzilla Report 31245 * TarInputStream#read() wasn't implemented correctly. Bugzilla Report 34097. * failed to process file-hierarchies of more than one level if scanincludeddirectories was true. Bugzilla Report 24866. * forkmode="perBatch" or "once" would ignore extension attributes that had been specified for s. Bugzilla Report 32973. * minor performance update of Locator.fromUri. Bugzilla Report 34529. * The refid attribute of the I/O redirector was not functional. * SQL task would try access result sets of statements that didn't return any, causing problems with Informix IDS 9.2 and IBM DB2 8.1 FixPak 6 (or later). Bugzilla Reports 27162 and 29954. * make sure that Zip and its derivates call the createEmptyZip method when there are no resources to zip/jar/... * ant.bat was missing runAntNoClasspath label for goto. Bugzilla 34510. Changes from Ant 1.6.1 to Ant 1.6.2 =================================== 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. * 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. * 's extraoptions can now contain multiple arguments. Bugzilla Report 23599. * with default values set by properties would be seen as new definitions when called twice with different properties. This was confusing so the definitions are now treated as similar. Bugzilla Report 31215. * has a new attribute "includenosourcepackages" that can be used to document packages that don't hold source files but a package.html file. Bugzilla Report 25339. Fixed bugs: ----------- * eliminate memory leak in AntClassLoader. Bugzilla Report 8689. * subant haltonfailure=false did not catch all failures. Bugzilla Report 27007. * macrodef @@ escaping was broken. Bugzilla Report 27069. * SQL task did not work with Informix IDS 9.2. Bugzilla Report 27162. * MacroDef did not allow attributes named 'description'. Bugzilla Report 27175. * Throw build exception if name attribute missing from patternset#NameEntry. Bugzilla Report 25982. * Throw build exception if target repeated in build file, but allow targets to be repeated in imported files. * didn't compare timestamps of source and targetfiles when using a nested . Bugzilla Report 26985. * tagdiff.xml was broken in ant 1.6.1. Bugzilla Report 27057. * if the basedir contained .. or . dirs, and the build file name contained .. or ., the basedir was set incorrectly. Bugzilla Report 26765. * regression from ant 1.5, exec task outputted two redundant trailing newlines. Bugzilla Report 27546. * NPE when running commons listener. Bugzilla Report 27373. * swallowed the stack trace of exceptions thrown by the executed program if run in the same VM. * -projecthelp swallowed (configuration) errors silently. Bugzilla report 27732. * filterset used by filtertask doesn't respect loglevel. Bugzilla Report 27568. * wrong compare used in ProjectComponent for logging. Bugzilla Report 28070. * failOnAny attribute for was broken. Bugzilla Report 28122. * If uses gcj and any of the nested s implies compilation to native code (like -o or --main), Ant will not pass the -C switch to gcj. This means you can now compile to native code with gcj which has been impossible in Ant < 1.6.2. * and behaved identically. * now sets the context classloader if you've specified a nested . Bugzilla Report 24802. * and friends would delete the original file when trying to update a read-only archive. Bugzilla Report 28419. * and are working together. Bugzilla report 27218 * AntClassLoader#getResource could return invalid URLs. Bugzilla Report 28060. * Ant failed to locate tools.jar if the jre directory name wasn't all lowercase. Bugzilla Report 25798. * Redirector exhibited inconsistent behavior with regard to split output. When sent to file only, files would be created in all cases; when split file-property, files were only created if writes were performed. * fixed case handling of scriptdef attributes and elements. * UNC pathnames did not work for ANT_HOME or -lib locations on Windows. Bugzilla report 27922. * replacestring tokenfilter only replaced the first occurrence. * AntLikeTasksAtTopLevelTest failed on cygwin. * I/O-intensive processes hung when executed via . Bugzilla reports 23893/26852. * JDependTask did not close an output file. Bugzilla Report 28557. * Using could break XmlLogger. Bugzilla Report 28993. * no longer requires keytool to be in your PATH. Bugzilla Report 29382. * could create cyclic links. Bugzilla Report 25181. * didn't work in a common situation. Bugzilla Report 22865. * now properly handles remote files and directories with spaces in their names. Bugzilla Report 26097. * now has (local|remote)tofile attributes to rename files on the fly. Bugzilla Report 26758. * and didn't close the session. Bugzilla Report 25935. * and XmlLogger didn't play nicley together. Other changes: -------------- * doc fix concerning the dependencies of the ftp task Bugzilla Report 29334. * has now a property nested element, allowing to set string properties for the parser Bugzilla Report 23395. * Docs fixes for xmlvalidate.html, javadoc.html, starteam. Bugzilla Reports 27092, 27284, 27554. * now accepts nested s. Bugzilla Report 26364. * Shipped XML parser is now Xerces-J 2.6.2. * Added nested file element to filelist. * spelling fixes, occurred. Bugzilla Report 27282. * add uid and gid to tarfileset. Bugzilla Report 19120. * has a verbose attribute to get some feedback during the transfer and new [local|remote][File|Todir] alternatives to file and todir that explicitly state the direction of the transfer. * The OS/2 wrapper scripts have been adapted to use the new launcher. Bugzilla Report 28226. * now also captures stderr output. Bugzilla Report 28349. * now supports a nested . Bugzilla Report 11249. * has filelist support. * task lets you set the priority of the current thread; non-forking code will inherit this priority in their main thread. * New attribute "negate" on to invert selection criteria. * Target now supports a Location member. Bugzilla Report 28599. * New "pattern" attribute for selector. * has a new forkmode attribute that controls the number of Java VMs that get created when forking tests. This allows you to run all tests in a single forked JVM reducing the overhead of VM creation a lot. Bugzilla Report 24697. * can now optionally create an index for jars different than the one it currently builds as well. See the new element for details. Bugzilla Report 14255. * Permit building under JDK 1.5. Bugzilla Report 28996. * minor Javadoc changes. Bugzilla Report 28998. * Misc. corrections in SignJar.java. Bugzilla Report 28999. * Remove redundant
from javah.html. Bugzilla Report 28995. * Ignore built distributions. Bugzilla Report 28997. * A new roundup attribute on and related task can be used to control whether the file modification times inside the archive will be rounded up or down (since zips only store modification times with a granularity of two seconds). The default remains to round up. Bugzilla Report 17934. * A binary option has been added to . Bugzilla Report 26312. * Added DynamicConfiguratorNS, an namespace aware version of DynamicConfigurator. Bugzilla Report 28436. * Add implicit nested element to . Bugzilla Report 25633. * Add deleteonexit attribute to . * Added Target.getIf/Unless(). Bugzilla Report 29320. * has a status attribute that can be used to pass an exit status back to the command line. * accepts a nested . * supports loading from a resource. Bugzilla Report 28340. * Nested file mappers and a container mapper implementation have been introduced. Additionally, the element now accepts "defined" nested FileNameMapper implementations directly, allowing a usage comparable to those of , , and . * New type introduced to provide extreme I/O flexibility. Initial support for , , and tasks. * has a new ignoremissing attribute (default true for BC) which will allow nonexistent files specified via s to be passed to the executable. Bugzilla Report 29585. * now also works with Xalan XSLTC and/or JDK 1.5. Bugzilla Report 27541. * doesn't work properly with Tomcat 5.x. We've implemented a work-around but don't intend to support future changes in Tomcat 5.x. Please use the jspc task that ships with Tomcat instead of Ant's. Changes from Ant 1.6.0 to Ant 1.6.1 ============================================= Changes that could break older environments: -------------------------------------------- * License is now Apache Software License 2.0 see http://www.apache.org/licenses/ for more information Fixed bugs: ----------- * Remove a recursive template call in the junit xsls that could trigger a stack overflow. It now uses Xalan extensions to call a Java class directly. Bugzilla Report 19301 * Fix spurious infinite loop detection for filters (introduced in ant 1.6.0). Bugzilla Report 23154. * Fix handling of default ant namespace for nested elements. * Fix jboss element of ejb task (introduced in ant 1.6.0). * failed to load classes correctly. * Ant could fail to start with a NullPointerException if ANT_HOME/lib/ant-launcher.jar was part of the system CLASSPATH. * presetdef'ed types did not work with the ant-type attribute * fixed case handling of macrodef attributes and elements. Bugzilla Reports 25687 and 26225. * ignored the append attribute, Bugzilla Report 26137. * The gcj compiler adapter for failed if the destination directory didn't exist. Bugzilla Report 25856. * Ant now fails with a more useful message if a new process will be forked in a directory and that directory doesn't exist. * used to break the build on non-GUI environments. Bugzilla report 11482. * Ant 1.6.0 cannot run build scripts in directories with non-ASCII names. Bugzilla Report 26642. Other changes: -------------- * Shipped XML parser is now Xerces-J 2.6.1 * Translate task logs a debug message specifying the number of files that it processed. Bugzilla Report 13938. * has a new attribute - fixlast. Bugzilla Report 23262. * has 2 new attributes, needsresolveproperty and changeproperty. Bugzilla Report 25711. * add description attributes to macrodef attributes and elements. Bugzilla Report 24711. * Extending ClearCase Tasks : - Added an extra option to 'failonerr' to each ClearCase task/command. - Extended the functionality of cccheckout. It can check (notco) to see if the desired element is already checked out to the current view. Thus it won't attempt to check it out again. - Added three new ClearCase commands: ccmkattr, ccmkdir, ccmkelem Bugzilla Report 26253. * added nested text support to * added initial support for Java 1.5. Java 1.5 is now correctly detected by Ant and treated just like Java 1.4. You can now specify source="1.5" in the task. * created new task * added support for branch logging via the tag attribute in Bugzilla Report 13510. * added support the groovy language in the script and scriptdef tasks Changes from Ant 1.5.4 to Ant 1.6.0 =================================== Changes that could break older environments: -------------------------------------------- * This version of Ant can not be built with JDK 1.1 and requires at least Java 1.2 at runtime as well. Compiling for a 1.1 target is still supported. * Targets cannot have the empty string as their name any longer. * ant.jar's manifest does no longer include a Class-Path entry, so it is no longer possible to run Ant via "java -jar ant.jar" without manually altering the CLASSPATH. Instead of that a file ant-bootstrap.jar is included in the etc directory of the binary distribution, copy this to the lib directory and use "java -jar ant-bootstrap.jar" instead if you want to run Ant without the wrapper script (not recommended). * The