Changes from current Ant 1.7.0Beta1 version to current SVN version ============================================================= Changes that could break older environments: ------------------------------------------- Fixed bugs: ----------- Other changes: -------------- 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 now as per default installs a security manager using the default permissions. This is now independent of the failonerror attribute. Bugzilla report 33361. * 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. * 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 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. * used \r (Mac) line endings on OS X, whose proper line separator is \n (Unix). Bugzilla report 39585. * 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 files). Bugzilla Report 40281. * Converting a to a string was broken. Bugzilla Report 39683. * Manifests have improved line length handling, taking care of encoding. Bug reports 37548 / 34425. * now closes the inputstream explicitly. Bug report 39628. * now also correctly searches the first element of the path. Bug report 39345. * ant.bat now handles classpath set to "". Bug report 38914. * now supports JUnit 4. Bugzilla Report 38811. * can now work with junit.jar in its . Bugzilla Report 38799. * Some potential NullPointerExceptions, Bugzilla Reports 37765 and 38056. * Problem when adding multiple filter files, Bugzilla Report 37341. * problem referencing jars specified by Class-Path attribute in manifest of a ant task jar file, when this ant task jar file is located in a directory with space, Bugzilla Report 37085. * Backward incompatible change in ZipFileSet, Bugzilla Report 35824. * Wrong replacement of file separator chars prevens junitbatchtest from running correctly on files from a zipfileset. Bugzilla Report 35499. * Calling close twice on ReaderInputStream gave a nullpointer exception. Bugzilla Report 35544. * Memory leak from IntrospectionHelper.getHelper(Class) in embedded environments. Bugzilla Report 30162. * Translate task does not remove tokens when a key is not found. It logs a verbose message. Bugzilla Report 13936. * Incorrect task name with invalid "javac" task after a "presetdef". Bugzilla reports 31389 and 29499. * was not printing warnings about invalid manifest elements. Bugzilla report 32190. * got out of memory on large files (part of report 32566). can now handle files as long as there is enough disk space available. * Commandline.describeCommand() methods would attempt to describe arguments even when none, other than the executable name, were present. * Create signjar's helper ExecTask instance directly rather than by typedef discovery mechanisms. Bugzilla report 33433. * FileUtils.resolveFile() promised to return absolute files but did not always do so. * failed to retrieve a file when the path towards the file contained an element starting with . Bugzilla report 33770. * " always compiles on Java1.5" bugzilla report=33862. Fixed default stub version to always be "compat", even on Java1.5+. * The .NET compilation tasks failed if filenames given as references contained spaces. Bugzilla Report 27170. * 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. * Task.init() was called twice for most tasks. Bugzilla Report 34411. * JavaTest testcases sometimes fail on windows. Bugzilla Report 34502. * Targets with identical name work in imported project. Bugzilla Report 34566. * DemuxOutputStream now uses a WeakHashMap to store the thread-stream mapping, to avoid holding on to thread references after they terminate. * and create a new parser for every file in a fileset, and so validate multiple files properly. Bugzilla Report 32791. * / now accepts files upto 8GB, gives an error if larger files are to be included. This is the POSIX size limit. * removed line-breaks from stack-traces. Bugzilla Report 34963. * off-by-one error in environment setup for execution under OpenVMS fixed. * Bugzilla report 36171: -noclasspath crashes ant if no system classpath is set. * used wrong switch for retrieving revisions by label. Bugzilla Report 36359. * closed System.out, disabling output on second and subsequent invocations. Bugzilla report 36302. * was crashing with CVS versions >= 1.12.x due to change in the date format. Bugzilla report 30962. * The same IntrospectionHelper instance was continuously added as a listener to project. Bugzilla report 37184. * FileUtils.toURI() was not encoding non-ASCII characters to ASCII, causing impossibility to process XML entities referenced by XML documents in non ASCII paths. Bugzilla report 37348. * > 1 ssh invocations to a given host would fail. Bugzilla report 36207. * EmailTask was eating SMTP error messages. Bugzilla report 37547. * PropertySet API setMapper(...) didn't properly set up the Mapper. Bugzilla report 37760. * Proper return code for ant.bat. Bugzilla report 13655. * Project not set on ChainReaderHelpers used by the Redirector. Bugzilla report 37958. * Copy task would fail on locked (or otherwise uncopyable) files even if failonerror set to false. Bugzilla report 38175. * task did not print all the Test names when using forkmode='once'. Bugzilla report 37426. * could leak resources, Bugzilla Report 38260. * Redirector called Thread.sleep in a synchronized block. Bugzilla report 37767. * CCUnlock's objselect attribute could exhibit unpredictable behavior; standardized improperly included objselect and objsel property accessors to delegate to the inherited objSelect property accessor. Bugzilla report 37766. * and now correctly merge multiple nested patternsets. Bugzilla Report 38973. * On case-insensitive filesystems, a to change filename case erroneously deleted the "destination" file before attempting to rename the source file. Bugzilla 37701. * can now handle uris with @s other than the final one denoting the domain. Bugzilla 38082. * If the class invoked by the task threw a ClassNotFoundException, this was misinterpreted as the specified class itself not being found. * setPrefix javadoc claimed null or empty prefix would be ignored; instead an error was thrown. Bugzilla report 39954. * would fetch files that were up to date, because it used > in a remote/local timestamp comparison, not >=. Bugzilla 35607. * passes the current file (name + directory) to the stylesheet/transformation. xsl-parameter name is configurable. Bugzilla report 21042. * The API allowed creation of directories in file-only archives; a habitual offender was the subclassed , which included META-INF/ in the destination file regardless of whether filesonly was set to true. * has a new adapter, xnew, to use the -XNew back end on java1.5+. By forking rmic, this works on java1.6+. Bugzilla report 38732. * Copy of UnknownElement in macroinstance was not recursive. Bugzilla report 40238. * mixing of add and addConfigured methods in Mapper/ChainedMapper causes incorrect chaining. Bugzilla report 40228. Other changes: -------------- * Improved recursion detection for lines with multiple matches of same token on a single line. Bugzilla report 38456. * Task will now log correctly even if no project is set. Bugzilla report 38458. * Use alternative names for the command line arguments in javac. Bugzilla Report 37546. * The Reference class now has a project field that will get used (if set) in preference to the passed in project, when dereferencing the reference. Bugzilla Report 25777. * On DOS and Netware, filenames beginning with a drive letter and followed by a colon but with no directory separator following the colon are no longer (incorrectly) accepted as absolute pathnames by FileUtils.normalize() and FileUtils.isAbsolutePath(). Netware volumes can still be specified without an intervening separator. UNC pathnames on Windows must include a server and share name, i.e. "\\a\b" to be considered valid absolute paths. * A bug in SQLExec would prevent the execution of trailing, non-semicolon-delimited statements. Bugzilla Report 37764. * InputHandler implementations may now call InputRequest.getDefaultValue() if they wish. The default handler uses this also. Bugzilla report 28621. * Took in bugzilla report 39320, "Simple code cleanups" * Improve compatibility with GNU Classpath and java versions prior to 1.5. Bugzilla 39027. * ${ant.core.lib} may now be used to refer to the library containing the Ant classes, for instance useful when compiling tasks. * Minor performance improvements Bugzilla report 37777 * New task converts a path into a property suitable as the value for a manifest's Class-Path attribute. * Fixed references to obsoleted CVS web site. Bugzilla Report 36854. * Log fine-grained events at verbose level from JUnit. Bugzilla report 31885. * and