OSDN Git Service

3f37d82be7121b4d5b33471264c25b3a1b7a9340
[ea2ddl/ea2ddl.git] / ea2ddl-gen / dbflute / ant / WHATSNEW
1 Changes from Ant 1.7.0 TO current SVN version
2 =============================================
3
4 Changes that could break older environments:
5 -------------------------------------------
6
7 Fixed bugs:
8 -----------
9
10 Other changes:
11 --------------
12
13 Changes from Ant 1.6.5 to Ant 1.7.0
14 ===================================
15
16 Changes that could break older environments:
17 -------------------------------------------
18
19 * Initial support for JDK 6 (JSR 223) scripting.
20   <*script*> tasks will now use javax.scripting if BSF is
21   not available, or if explicitly requested by using
22   a "manager" attribute.
23
24 * The -noproxy option which was in the previous 1.7 alpha and beta
25   releases has been removed. It is the default behavior and not needed.
26
27 * Removed launcher classes from nodeps jar.
28
29 * <classconstants> filter reader uses ISO-8859-1 encoding to read
30   the java class file. Bugzilla report 33604.
31
32 * Defer reference process. Bugzilla 36955, 34458, 37688.
33   This may break build files in which a reference was set in a target which was
34   never executed. Historically, Ant would set the reference early on, during parse
35   time, so the datatype would be defined. Now it requires the reference to have
36   been in a bit of the build file which was actually executed. If you get
37   an error about an undefined reference, locate the reference and move it somewhere
38   where it is used, or fix the depends attribute of the target in question to
39   depend on the target which defines the reference/datatype.
40
41 * <script> and <scriptdef> now set the current thread context.
42
43 * Unrestrict the dbvendor names in the websphere element of the ejbjar task.
44   Bugzilla Report 40475.
45
46 * <env> nested element in <java>, <exec> and others is now case-insensitive
47   for windows OS. Bugzilla Report 28874.
48
49 * Removed support for xalan1 completely. Users of Xalan1 for Ant builds will
50   have to stay at ant 1.6.5 or upgrade to xalan2.
51
52 * Use org.apache.log4j.Logger instead of org.apache.log4j.Category.
53   Category has been deprecated for ~2 years and has been removed from
54   the log4j code.  Logger was introduced in log4j 1.2 so users of
55   log4j 1.1 and log4j 1.0 need to upgrade to a newer version of log4j.
56   Bugzilla Report 31951.
57
58 * build.sysclasspath now also affects the bootclasspath handling of
59   spawned Java VMs.  If you set build.sysclasspath to anything other
60   than "ignore" (or leave it unset, since "ignore" is the default when
61   it comes to bootclasspath handling), then the bootclasspath of the
62   VM running Ant will be added to the bootclasspath you've specified.
63
64 * The <java fork="false"> now as per default installs a security manager
65   using the default permissions. This is now independent of the
66   failonerror attribute.  Bugzilla report 33361.
67
68 * <signjar> now notices when the jar and signedjar are equal, and switches
69   to the same dependency logic as when signedjar is omitted. This may break
70   something that depended upon signing in this situation. However, since
71   invoking the JDK jarsigner program with -signedjar set to the source jar
72   actually crashes the JVM on our (Java1.5) systems, we don't think any
73   build files which actually worked will be affected by the change.
74
75 * <signjar> used to ignore a nested fileset when a jar was also provided as an
76   attribute, printing a warning message; now it signs files in the fileset.
77
78 * An improved method of handling timestamp granularity differences between
79   client and server was added to the <ftp> task.  FTP servers typically
80   have HH:mm timestamps whereas local filesystems have HH:mm:ss timestamps.
81   Previously, this required tweaking with the timediffmillis attribute
82   which also was used to handle timezone differences.  Now, there is a new
83   timestampgranularity attribute.  The default value for get operations is 0
84   since the user has the more powerful preservelastmodified attribute to work
85   with.  Since this is not available on put operations the default value
86   adds a minute to the server timestamp in order to account for this,
87   Scripts which previously used timediffmillis to do this compensation may
88   need to be rewritten.  timediffmillis has now been deprecated.
89
90 * On Java1.5+, Ant automatically sets the system property
91   java.net.useSystemProxies to true, which gives it automatic use of the local
92   IE (Windows) or Gnome2 (Unix/Linux) proxy settings. This may break any build
93   file that somehow relied on content outside the firewall being unreachable:
94   use the -noproxy command-line option to disable this new feature.
95   Note that the Java1.5 proxy configuration system still does not
96   appear to work reliably on Windows or Linux.
97
98 * Support for the XSL:P XML parser has been removed.
99   Bugzilla Report 23455.
100
101 * Visual Age for Java optional tasks removed.
102
103 * Testlet (test) optional task removed.
104
105 * Icontract optional task removed.
106
107 * Metamata (maudit, mmetrics, and mparse tasks) removed.
108
109 * Sitraka (jpcoverage, jpcovmerge, jpcovreport) tasks suppressed.
110
111 * <fixcrlf> used \r (Mac) line endings on OS X, whose proper line separator
112   is \n (Unix).  Bugzilla report 39585.
113
114 * <scp> now optionally supports the sftp protocol, you may need a
115   newer jsch.jar.  Bugzilla Report 39373.
116
117 * Ant launcher program prints errors to stderr, and exits with a 2 exit code
118   value if, for any reason, it cannot actually start Ant proper. This will only
119   affect programs/scripts that called the launcher and which did not want to
120   receive an error if Ant itself would not start
121
122 * All .NET tasks are now deprecated in favor of the new .NET Antlib:
123   http://ant.apache.org/antlibs/dotnet/index.html
124
125 Fixed bugs:
126 -----------
127 * Directory deletion did not work properly.
128   Bugzilla 40972.
129
130 * docletpath attribute of javadoc was ignored.
131   Bugzilla 40900.
132
133 * Fixed incorrect recursion in DOMUtil.listChildNodes().
134   Bugzilla 40918.
135   
136 * CompressedResource.compareTo() did not 
137   take comparison with another CompressedResource into account.
138   Bugzilla 40949.
139
140 * Avoid possible NPE in Jar.java.
141   Bugzilla 40847.
142
143 * regression in attribute prefix (+ others) for refid in zipfileset and tarfileset.
144   Bugzilla 41004, 30498.
145
146 * dependset failed if the basedir of a target fileset did not exist.
147   Bugzilla 40916.
148
149 * Recursive filtering encountered NullPointerExceptions under certain
150   circumstances.  Bugzilla 41086.
151
152 * XmlProperty overrides previously set property value when handling duplicate 
153   elements. Bugzilla 41080.
154
155 * Having many tasks causes OOM.  Bugzilla 41049.
156
157 * Regression: <path> was evaluating nested content only once, so that it could
158   not e.g. pick up files that didn't exist the first time through.
159   Bugzilla 41151.
160
161 * OOM caused by IH holding on to classes and thus their classloaders.
162   Bugzilla 28283 and 33061.
163
164 * <delete> doesnt delete when defaultexcludes="false" and no includes is set 
165   fixed. Bugzilla 40313.
166
167 * Behavior change of DirectoryScanner/AbstractFileset when conditional include
168   patterns are used. Bugzilla 40722.
169
170 * <javac> fails with NPE when compiling with eclipse ecj 3.1.x.
171   Bugzilla 40839.
172
173 * JUnitTestRunner had a NPE when unable to create parser, the exception
174   containing the error did not get reported. Bugzilla 36733.
175
176 * <checksum> with file and todir option failed. Bugzilla report 37386.
177
178 * <path location="loc"> was broken (Regression from beta1).
179   Bugzilla report 40547.
180
181 * Nested fileset in <cab> did not work. Bugzilla report 39439.
182
183 * The ant wrapper script should now correctly locate the java
184   executable in more recent IBM JDKs for AIX as well.
185
186 * URLResource did not close jar files, and also did not disconnect HTTPConnection (s).
187
188 * Error calling junitreport. Bugzilla 40595. 
189
190 * <junittask/> created junitvmwatcher*.properties files but did not close and delete them.  
191
192 * <xmlproperty> did not create properties for empty leaf elements.
193   Bugzilla report 26286.
194
195 * UnknownElement.maybeConfigure always configured.
196   Bugzilla report 40641.
197
198 * No check for refid when prefix attribute is set in zipfileset.
199   Bugzilla report 30498.
200
201 * Fix for junit4 issue introduced since beta2.
202   Bugzilla report 40682.
203
204 * Error in duplicate project name with <import> and <antcall>.
205   Bugzilla report 39920.
206
207 * junit4 did not work with fork=no and junit4 in $ANT_HOME/lib.
208   Bugzilla report 40697.
209
210 * PathConvert on Windows should process forward and back slashes equivalently.
211   Bugzilla report 32884.
212
213 * ant.bat now looks in %USERPROFILE% and %HOMEDRIVE%%HOMEPATH% in addition to
214   %HOME% for pre/post batch files. Bugzilla report 39298.
215
216 * The inheritance hierarchy of the legacy <path> type was changed; code built
217   against Ant 1.7 would therefore no longer execute on older versions of Ant.
218   Since <path> is historically heavily used this was undesirable, and since it
219   is also avoidable, the change to <path>'s taxonomy was reverted.
220
221 * <zip filesonly="true"> included empty directories.  Bugzilla report 40258.
222
223 * Invalid hash code of Target causes XmlLogger to fail.
224   Bugzilla report 40207.
225
226 * Macro element did not include top level Text. Bugzilla report 36803.
227
228 * AntClassLoader did not isolate resources when isolate was set. Bugzilla report 38747.
229
230 * Diagnostics broken when using java 1.4. Bugzilla report 40395.
231
232 * Exception reporting in <copy> was broken. Bugzilla report 40300.
233
234 * Handling of corrupt tar files, TarInputStream.read() never returns EOF.
235   Bugzilla report 39924.
236
237 * Some bugs in ReaderInputStream. Bugzilla report 39635.
238
239 * <antlr> did not recognise whether the target is up-to-date for html option.
240   Bugzilla report 38451.
241
242 * Documented minimal version of jsch now 0.1.29.
243   Bugzilla report 40333.
244
245 * <available> searched parent directories for files.
246   Bugzilla report 37148.
247
248 * The build could be halted if a file path contained more ".." components than
249   the actual depth of the preceding path. Now such paths are left
250   alone (meaning they will likely be treated as nonexistent
251   files). Bugzilla Report 40281.
252
253 * Converting a <dirset> to a string was broken. Bugzilla Report 39683.
254
255 * Manifests have improved line length handling, taking care of encoding.
256   Bug reports 37548 / 34425.
257
258 * <manifest> now closes the inputstream explicitly. Bug report 39628.
259
260 * <rpm> now also correctly searches the first element of the path.
261   Bug report 39345.
262
263 * ant.bat now handles classpath set to "". Bug report 38914.
264
265 * <junit> now supports JUnit 4. Bugzilla Report 38811.
266
267 * <junit> can now work with junit.jar in its <classpath>. Bugzilla
268   Report 38799.
269
270 * Some potential NullPointerExceptions, Bugzilla Reports 37765 and 38056.
271
272 * Problem when adding multiple filter files, Bugzilla Report 37341.
273
274 * Problem referencing jars specified by Class-Path attribute in manifest
275   of a ant task jar file, when this ant task jar file is located in
276   a directory with space, Bugzilla Report 37085.
277
278 * Backward incompatible change in ZipFileSet, Bugzilla Report 35824.
279
280 * Wrong replacement of file separator chars prevens junitbatchtest
281   from running correctly on files from a zipfileset. Bugzilla Report 35499.
282
283 * Calling close twice on ReaderInputStream gave a nullpointer exception.
284   Bugzilla Report 35544.
285
286 * Memory leak from IntrospectionHelper.getHelper(Class) in embedded
287   environments. Bugzilla Report 30162.
288
289 * Translate task does not remove tokens when a key is not found.
290   It logs a verbose message.  Bugzilla Report 13936.
291
292 * Incorrect task name with invalid "javac" task after a "presetdef".
293   Bugzilla reports 31389 and 29499.
294
295 * <manifest> was not printing warnings about invalid manifest elements.
296   Bugzilla report 32190.
297
298 * <replace> got out of memory on large files (part of report 32566).
299   <replace> can now handle files as long as there is enough disk space
300   available.
301
302 * Commandline.describeCommand() methods would attempt to describe
303   arguments even when none, other than the executable name, were present.
304
305 * Create signjar's helper ExecTask instance directly rather than by
306   typedef discovery mechanisms. Bugzilla report 33433.
307
308 * FileUtils.resolveFile() promised to return absolute files but
309   did not always do so.
310
311 * <ftp> failed to retrieve a file when the path towards the file contained
312   an element starting with . Bugzilla report 33770.
313
314 * "<rmic> always compiles on Java1.5" bugzilla report=33862. Fixed default
315   stub version to always be "compat", even on Java1.5+.
316
317 * The .NET compilation tasks failed if filenames given as references
318   contained spaces.  Bugzilla Report 27170.
319
320 * SQL task would try access result sets of statements that didn't
321   return any, causing problems with Informix IDS 9.2 and IBM DB2 8.1
322   FixPak 6 (or later). Bugzilla Reports 27162 and 29954.
323
324 * Task.init() was called twice for most tasks.  Bugzilla Report 34411.
325
326 * JavaTest testcases sometimes fail on windows. Bugzilla Report 34502.
327
328 * Targets with identical name work in imported project. Bugzilla Report 34566.
329
330 * DemuxOutputStream now uses a WeakHashMap to store the thread-stream mapping,
331   to avoid holding on to thread references after they terminate.
332
333 * <xmlvalidate> and <schemavalidate> create a new parser for every file in a
334   fileset, and so validate multiple files properly. Bugzilla Report 32791.
335
336 * <tar> / <untar> now accepts files upto 8GB, <tar> gives an error if larger
337   files are to be included. This is the POSIX size limit.
338
339 * <junitreport> removed line-breaks from stack-traces.  Bugzilla
340   Report 34963.
341
342 * Off-by-one error in environment setup for execution under OpenVMS fixed.
343
344 * Bugzilla report 36171: -noclasspath crashes ant if no system
345   classpath is set.
346
347 * <pvcs> used wrong switch for retrieving revisions by label.
348   Bugzilla Report 36359.
349
350 * <sshexec> closed System.out, disabling output on second and subsequent
351   invocations.  Bugzilla report 36302.
352
353 * <cvschangelog> was crashing with CVS versions >= 1.12.x due to change in
354   the date format. Bugzilla report 30962.
355
356 * The same IntrospectionHelper instance was continuously added as a listener
357   to project. Bugzilla report 37184.
358
359 * FileUtils.toURI() was not encoding non-ASCII characters to ASCII,
360   causing impossibility to process XML entities referenced by XML
361   documents in non ASCII paths. Bugzilla report 37348.
362
363 * > 1 ssh invocations to a given host would fail. Bugzilla report 36207.
364
365 * EmailTask was eating SMTP error messages. Bugzilla report 37547.
366
367 * PropertySet API setMapper(...) didn't properly set up the Mapper.
368   Bugzilla report 37760.
369
370 * Proper return code for ant.bat. Bugzilla report 13655.
371
372 * Project not set on ChainReaderHelpers used by the Redirector.
373   Bugzilla report 37958.
374
375 * Copy task would fail on locked (or otherwise uncopyable) files even if
376   failonerror set to false. Bugzilla report 38175.
377
378 * <junit> task did not print all the Test names when using forkmode='once'.
379   Bugzilla report 37426.
380
381 * <available> could leak resources, Bugzilla Report 38260.
382
383 * Redirector called Thread.sleep in a synchronized block. Bugzilla
384   report 37767.
385
386 * CCUnlock's objselect attribute could exhibit unpredictable behavior;
387   standardized improperly included objselect and objsel property accessors to
388   delegate to the inherited objSelect property accessor. Bugzilla report 37766.
389
390 * <unzip> and <untar> now correctly merge multiple nested patternsets.
391   Bugzilla Report 38973.
392
393 * On case-insensitive filesystems, a <move> to change filename case
394   erroneously deleted the "destination" file before attempting to rename
395   the source file.  Bugzilla 37701.
396
397 * <scp> can now handle uris with @s other than the final one denoting the
398   domain.  Bugzilla 38082.
399
400 * If the class invoked by the <java> task threw a ClassNotFoundException,
401   this was misinterpreted as the specified class itself not being found.
402
403 * <echoproperties> setPrefix javadoc claimed null or empty prefix would be
404   ignored; instead an error was thrown.  Bugzilla report 39954.
405
406 * <get> would fetch files that were up to date, because it used > in a
407   remote/local timestamp comparison, not >=. Bugzilla 35607.
408
409 * <xslt> passes the current file (name + directory) to the
410   stylesheet/transformation.  xsl-parameter name is configurable.
411   Bugzilla report 21042.
412
413 * The <zip> API allowed creation of directories in file-only archives; a
414   habitual offender was the subclassed <jar>, which included META-INF/ in
415   the destination file regardless of whether filesonly was set to true.
416   
417 * <rmic> has a new adapter, xnew, to use the -XNew back end on java1.5+.
418   By forking rmic, this works on java1.6+. Bugzilla report 38732.
419
420 * Copy of UnknownElement in macroinstance was not recursive.
421   Bugzilla report 40238.
422
423 * Mixing of add and addConfigured methods in Mapper/ChainedMapper
424   causes incorrect chaining. Bugzilla report 40228.
425
426 Other changes:
427 --------------
428
429 * Warn user when a reference in the form "${refid}" cannot be resolved as this
430   is a sign they probably meant "refid" (misuse of property expansion syntax).
431
432 * Add dtd to javadoc for junit.
433   Bugzilla 40754.
434
435 * Add quiet attribute to loadfile/resource.
436   Bugzilla 38249.
437
438 * Make Locator#fromURI also append the drive letter when running under Windows 
439   with JDK 1.3 or 1.2.
440
441 * Do not uppercase the drive letters systematically in FileUtils#normalize.
442
443 * Java 5 enumerations may now be used as values in XML attributes in place of
444   EnumeratedAttribute. Bugzilla 41058.
445
446 * Create a pom file for ant-testutil and add ant-testutil.jar to the ant
447   distribution. Bugzilla 40980.
448
449 * Roll back automatic proxy enabling on Java 1.5. It broke things like
450   Oracle JDBC drivers, and Ant itself on IBM's JVM on AIX, and didnt
451   seem to work to well the rest of the time.
452   To enable the feature, use the -autoproxy command line option. 
453
454 * Upgraded XML API and parser to Xerces 2.8.1
455
456 * A code review of some threaded logic has tightened up the synchronization
457   of Watchdog, ExecuteWatchdog and ExecuteJava, which could reduce the occurence
458   of race conditions here, especially on Java1.5+.
459
460 * Allow broken reference build files. The defer reference processing would
461   break too many files - so allow them with a warning.
462
463 * Removed dependency on sun.misc.UUEncoder for UUMailer.
464
465 * Added regex attribute to the echoproperties task.
466   Bugzilla 40019.
467
468 * <war> task now allows you to omit the web.xml file. as this is optional
469   in the servlet 2.5 and Java EE 5 APIs. set needxmlfile="false" to
470   avoid a missing web.xml file from halting the build.  
471
472 * Diagnostics catches and logs security exceptions when accessing system properties.
473
474 * <javadoc> useexternalfile now applies to all command line arguments
475   of javadoc. Bugzilla report 40852.
476
477 * javadoc/tag@description is now set to the name if description is
478   not specified. Bugzill report 32927.
479
480 * Some performance improvements, including Bugzilla report 25778.
481
482 * Add <matches> condition. Bugzilla report 28883.
483
484 * Extending JAR-Task for SPI. Bugzilla report 31520.
485
486 * Added <tokens> resource collection for convenient creation of string
487   resources from other resources' content. Inspired by Bugzilla 40504.
488
489 * Added <compare> resource selector to select resources based on the
490   results of their comparison to other resources.
491
492 * Added outputtoformatters attribute to <junit> to allow suppression
493   of noisey tests. Bugzilla report 12817.
494
495 * Log level of message 'Overriding previous definition of reference to'
496   set to Verbose. Bugzilla report 17240.
497
498 * Added setbeans attribute to <script> to allow <script>'s to be
499   run without referencing all references.
500   Bugzilla report 37688.
501
502 * Added classpath attribute and nested element to <script> to allow
503   the language jars to be specified in the build script.
504   Bugzilla report 29676.
505
506 * Trim the driver attribute on the <sql> task. Bugzilla report 21228.
507
508 * Allow (jar) files as well as directories to be given to jdepend.
509   Bugzilla report 28865.
510
511 * Convert SplashTask to use NOT sun internal classes.
512   Bugzilla report 35619.
513
514 * Made PatternSet#hasPatterns public to allow custom filesets access.
515   Bugzilla report 36772.
516
517 * Added searchparents attribute to <available>. Bugzilla report 39549.
518
519 * Tasks that don't extend Ant's Task class will now get the build file
520   location reflected into a method of the signature void setLocation(Location)
521   - if such a method exists.
522
523 * Remove needless synchronization in DirectoryScanner.
524   Bugzilla report 40237.
525
526 * Improved recursion detection for lines with multiple matches of same token
527   on a single line.  Bugzilla report 38456.
528
529 * Task will now log correctly even if no project is set.
530   Bugzilla report 38458.
531
532 * Use alternative names for the command line arguments in javac. Bugzilla
533   Report 37546.
534
535 * The Reference class now has a project field that will get
536   used (if set) in preference to the passed in project, when
537   dereferencing the reference. Bugzilla Report 25777.
538
539 * On DOS and Netware, filenames beginning with a drive letter
540   and followed by a colon but with no directory separator following
541   the colon are no longer (incorrectly) accepted as absolute pathnames
542   by FileUtils.normalize() and FileUtils.isAbsolutePath().  Netware
543   volumes can still be specified without an intervening separator.
544   UNC pathnames on Windows must include a server and share name, i.e.
545   "\\a\b" to be considered valid absolute paths.
546
547 * A bug in SQLExec would prevent the execution of trailing,
548   non-semicolon-delimited statements.  Bugzilla Report 37764.
549
550 * InputHandler implementations may now call InputRequest.getDefaultValue()
551   if they wish. The default handler uses this also. Bugzilla report 28621.
552
553 * Took in bugzilla report 39320, "Simple code cleanups"
554
555 * Improve compatibility with GNU Classpath and java versions prior to
556   1.5. Bugzilla 39027.
557
558 * ${ant.core.lib} may now be used to refer to the library containing the
559   Ant classes, for instance useful when compiling tasks.
560
561 * Minor performance improvements Bugzilla report 37777
562
563 * New task <manifestclasspath> converts a path into a property
564   suitable as the value for a manifest's Class-Path attribute.
565
566 * Fixed references to obsoleted CVS web site. Bugzilla Report 36854.
567
568 * Log fine-grained events at verbose level from JUnit. Bugzilla report 31885.
569
570 * <WsdlToDotnet> and <style> are now deprecated in favor of <wsdltodotnet> and
571   <xslt>, respectively. Bugzilla report 25832.
572
573 * <echoproperties> now (alphanumerically) sorts the property list
574   before echoing. Bugzilla report 18976.
575
576 * A new base class DispatchTask has been added to facilitate elegant
577   creation of tasks with multiple actions.
578
579 * Major revision of <wsdltodotnet>. Supports mono wsdl and the microsoft
580   wsdl run on mono, as well as most of the .NET WSE2.0 options. Extra
581   schemas (files or urls) can be named in the <schema> element.
582   Compilers can be selected using the compiler attribute, which defaults
583   to "microsoft" on windows, and "mono" on everything else.
584
585 * It is now possible to specify the pattern created/parsed by <checksum>.
586   Bugzilla Report 16539.
587
588 * Added a new "failall" value for the onerror attribute of <typedef>.
589   Bugzilla report 31685.
590
591 * unzip/unwar/unjar/untar now supports a nested mapper, which lets you unzip
592   in useful ways.
593
594 * Junit task -- display suite first.
595   Bugzilla report 31962.
596
597 * Added isSigned condition and signedselector selector
598   Bugzilla report 32126.
599
600 * Added preserveLastModified attribute to signjar task.
601   Bugzilla report 30987.
602
603 * Added <scriptcondition> condition, for inline scripted conditions
604
605 * Added <xor> condition for exclusive-or combining of nested conditions.
606
607 * Added <scriptselector> selector for scripted file selection
608
609 * ant -diagnostics lists contents of ${user.home}/.ant/lib , and
610   checks that the java.io.tmpdir directory exists and is writeable.
611
612 * mail task accepts nested header element.  Bugzilla report 24713.
613
614 * zip/jar/war/ear supports level attribute for deflate compression level.
615   Bugzilla report 25513.
616
617 * Added loginputstring attribute to the redirector type.
618
619 * Tighten security by sending storepass and keypass to signjar
620   via the input stream of the forked process.
621
622 * New task <schemavalidate> extends <xmlvalidate> with extra support
623   for XML Schema (XSD) files.
624
625 * <fixcrlf> supports a file attribute for easy fixup of a single file.
626
627 * New condition <parsersupports> which can look for XML parser feature or
628   property support in the parser Ant is using.
629
630 * fixcrlf can be used in a filterchain.
631
632 * <sync> has a new nested element <preserveInTarget> that can be used
633   to protect extra-content in the target directory.  Bugzilla Report
634   21832.
635
636 * <signjar> now supports:
637   -nested filesets at the same time as the jar attribute
638   -a destDir attribute with the appropriate dependency logic, which
639    can be used with the jar attribute or nested filesets
640   -a mapper to permit filename remapping on signing
641   -tsaurl and tsacert attributes for timestamped JAR signing
642   -nested <sysproperty> elements, which can be used for proxy setup
643   and the like
644
645 * The linecontains and linecontainsregexp filterreaders now support a
646   negate attribute to select lines -not- containing specified text.
647   Bugzilla Report 34374.
648
649 * <os> condition adds "winnt" as a family which can be tested. This is
650   all windows platforms other than the Win9x line or Windows CE.
651
652 * <exec> (and hence, <apply> and any other derived classes) have an OsFamily
653   attribute, which can restrict execution to a single OS family.
654
655 * Added "backtrace" attribute to macrodef. Bugzilla report 27219.
656
657 * Ant main provides some diagnostics if it ever sees a -cp or -lib option,
658   as this is indicative of a script mismatch. Bugzilla report 34860
659
660 * <junitreport> prints a special message if supplied an empty XML File. This
661   can be caused by the test JVM exiting during a test, either via a
662   System.exit() call or a JVM crash.
663
664 * Project name is now used for *all* targets so one can write consistent import
665   build files. Bugzilla report 28444.
666
667 * New condition <typefound> that can be used to probe for the declaration
668   and implementation of a task, type, preset, macro, scriptdef, whatever.
669   As it tests for the implementation, it can be used to check for optional
670   tasks being available.
671
672 * Check for 1.5.* Ant main class. (weblogic.jar in classpath reports)
673
674 * New condition <isfailure> that tests the return-code of an executable. This
675   contains platform-specific logic and is better than comparing the result with
676   "0".
677
678 * Added initial support for Resource Collections, including the
679   resourcecount task.
680
681 * property attribute of pathconvert is now optional. If omitted the
682   result will be written to the log.
683
684 * New mapper, <scriptmapper>, supports scripted mapping of source files/strings
685   to destination strings.
686
687 * Add the echoxml task. This will echo nested XML to a file, with
688   the normal <?xml ?> processor instruction. UTF-8 encoding only; no-namespace
689   support.
690
691 * Try to make subprojects of custom Project subclasses instances of the
692   same type. Bugzilla report 17901.
693
694 * <ssh> and <scp> support keyboard-interactive authentication now.
695
696 * <javadoc> now supports -breakiterator for custom doclets if Ant is
697   running on JSE 5.0 or higher.  Bugzilla Report: 34580.
698
699 * New logger, TimestampedLogger, that prints the wall time that a build
700   finished/failed. Use with
701   -logger org.apache.tools.ant.listener.TimestampedLogger
702
703 * <junitreport> now generates pages alltests-errors.html and
704   alltests-fails.html, that list only the errors and failures, respectively.
705   Bugzilla Report: 36226
706
707 * New task <makeurl> that can turn a file reference into an absolute file://
708   url; and nested filesets/paths into a (space, comma, whatever) separated
709   list of URLs. Useful for RMI classpath setup, amongst other things.
710
711 * <xslt> now accepts nested FileNameMappers e.g. <globmapper>.
712   Bugzilla report 37604.
713
714 * New task <loadresource> that accompanies <loadfile> for non file resources.
715
716 * <echo> now supports an encoding when saving to a file.
717
718 * New GreedyInputHandler added.
719
720 * Add textfile attribute to the <filesmatch> condition. When true, the text
721   contents of the two files are compared, ignoring line ending differences.
722
723 * New <resourcesmatch> condition.
724
725 * Added the onmissingfiltersfile attribute to filterset. Bugzilla report 19845.
726
727 * Added the inline handler element to the input task.
728
729 * <sql> supports property expansion if you set the expandProperties
730   attribute. By default it does not expand properties, something we
731   dare not change for fear of breaking complex SQL operations in
732   existing files.
733
734 * <javadoc>'s packagenames attribute is now optional and defaults to "*".
735
736 * <javac>'s source and target attributes as well as <javadoc>'s source
737   attribute will read default values from the properties
738   ant.build.javac.source and ant.build.javac.target.
739
740 * Handling of ' ', '#' in CLASSPATH and '#' in -lib (cannot use ' '
741   in -lib on UNIX at the moment). Bugzilla Report 39295.
742
743 * <scp> now optionally supports the sftp protocol.  Bugzilla Report 39373.
744
745 * Resources can now be used to indicate the location of the stylesheet to use
746   in <xslt>. Bugzilla Report 39407.
747
748 * New <antversion> condition. Bugzilla report 32804.
749
750 * ReplaceTokens should allow properties files. Bugzilla report 39688.
751
752 * FTP Account could not be specified in ant FTP task. Bugzilla report 39720.
753
754 * Minor performance updates. Bugzilla report 39565.
755
756 * New deleteonexit attribute for the <tempfile> task. Bugzilla report 39842.
757   Remember that the exit of the JVM can be a long time coming,
758   especially under an IDE. Don't rely on this being called.
759
760 * <scriptdef>-created scripts have support for nested text. All text
761   passed to a scripted task can be accessed via self.text.
762
763 * <fixcrlf> now supports an outputencoding attribute.  Bugzilla report 39697.
764
765 * <junitreport> now supports nested XSL parameters. Bugzilla report 39708.
766
767 * <javacc> has a jdkversion attribute to pass the desired JDK version
768   down to javacc.  Bugzilla report 38715.
769
770 * <cvs> prints passfile info at -verbose level instead of -info. Bugzilla
771   report 35268
772
773 * When <javac> can't find the compiler class, it prints out java.home for
774   immediate diagnostics
775
776 * Ant launcher now supports a -main attribute so that you can specify
777   an extension class to the built in org.apache.tools.ant.Main
778   class. This class must implement the interface AntMain
779
780 Changes from Ant 1.6.4 to Ant 1.6.5
781 ===================================
782
783 Changes that could break older environments:
784 --------------------------------------------
785
786 Fixed bugs:
787 -----------
788
789 * <move> was unable to replace existing files or write into
790   existing directories.  Bugzilla report 34962.
791
792 * <macrodef> with redefined default values was incorrect. (Fix for
793    31215 had a bug). Bugzilla report 35109.
794
795 * <javadoc> will convert backslashes to forwardslashes when generating file
796   list by useexternalfile. Bugzilla report 27814.
797
798 Changes from Ant 1.6.3 to Ant 1.6.4
799 ===================================
800
801 Changes that could break older environments:
802 --------------------------------------------
803 * <ftp> task has had a number of changes.  Uptodate calculation previously
804   did not call a file uptodate if the source timestamp and the destination
805   timestamp were equal. Bugzilla report 34941.  Any script that attempted
806   to compensate for this by using the timediffmillis attribute might need
807   to be tweaked.
808
809
810 Fixed bugs:
811 -----------
812
813 * Sun javah failed with java.lang.NoClassDefFoundError.
814   Bugzilla report 34681.
815
816 * DirectoryScanner.slowScan() was broken. Bugzilla report 34722.
817
818 * DirectoryScanner.scan() could throw a NullPointerException on
819   case-insensitive filesystems (read Windows or MacOS X).
820
821 * Get w/authentication failed with ArrayOutOfBoundsExceptions.
822   Bugzilla report 34734.
823
824 * Granularity attribute for <sync> task was undocumented.
825   Bugzilla report 34871.
826
827 * <unzip> and <untar> could leave file handles open on invalid
828   archives.  Bugzilla report 34893.
829
830 * propertyset threw NPE with nested, mapped propertysets.
831
832 Other changes:
833 --------------
834
835 * AntXMLContext.setCurrentTargets() is now public. Bugzilla report 34680.
836
837 Changes from Ant 1.6.2 to Ant 1.6.3
838 ===================================
839
840 Changes that could break older environments:
841 --------------------------------------------
842
843 * The subant task used the canonical version of a file path. This
844   has been changed to use the absolute path. Bugzilla 30438.
845
846 * Tar now writes two EOF blocks rather than one.
847   Bugzilla report 28776
848
849 * The Reference object now has a project field which it uses in preference
850   to the project passed in. This allows composite references to be
851   handled to nested projects.
852   Bugzilla report 25777
853
854 * <junit> with filtertrace="true" will now also swallow lines for the
855   sun.reflect package.  If you need to see them in your stack trace,
856   you must set filtertrace to false.
857   Bugzilla Report 22758
858
859 * The jikes compiler adapter now supports -bootclasspath, -extdirs and
860   -sourcepath and also uses the same logic for debug flags as javac.
861   This means, the jikes compiler adapter now requires Jikes 1.15 or later.
862   Bugzilla Reports 25868, 26404 and 32609.
863
864 * The gcj compiler adapter used to include the Java runtime classes
865   even if includeJavaRuntime was set to false, unless the
866   bootclasspath has been specified as well.  It will now always adhere
867   to includeJavaRuntime, you may need to set it to true explicitly now
868   if you relied on the old behavior.
869
870 Other changes:
871 --------------
872
873 * <javadoc> can now take an attribute 'executable'. Bugzilla report 30606.
874
875 * New attribute ignorecontents for <different> selector
876
877 * Javadoc fixes for Location, Project, and RuntimeConfigurable
878   Bugzilla 30160.
879
880 * Enable to choose the regexp implementation without system property.
881   Bugzilla Report 15390.
882
883 * Expose objects and methods in IntrospectionHelper. Bugzilla Report 30794.
884
885 * Allow file attribute of <move> to rename a directory.
886   Bugzilla Report 22863.
887
888 * Add xmlcatalog nested element to XmlProperty. Bugzilla report 27053.
889
890 * New attribute alwayslog for <redirector> type.
891
892 * Added <target> nested elements to <ant> and <antcall> to allow
893   specification of multiple sub-build targets, which are executed
894   with a single dependency analysis.
895
896 * Refactored Target invocation into org.apache.tools.ant.Executor
897   implementations.  Bugzilla Reports 21421, 29248.
898
899 * <rmic> now also supports Kaffe's rmic version shipping with Kaffe
900   1.1.2 and above.
901
902 * added casesensitive attribute to <globmapper> and <regexpmapper>
903   Bugzilla report 16686
904
905 * added handledirsep attribute to <globmapper> and <regexpmapper>
906   Bugzilla report 32487
907
908 * added a new mapper <filtermapper>
909
910 * When a BuildListener tried to access System.err or System.out, Ant
911   would have thrown an exception - this has been changed.  Ant now
912   silently ignores the message.  BuildListeners still should avoid
913   accessing either stream.
914
915 * Added a comment attribute to the zip task.
916   Bugzilla report 22793.
917
918 * Overloaded FileUtils.createNewFile with a boolean mkdirs attribute
919   to create nonexistent parent directories.
920
921 * <apply> has a new "force" attribute that, when true, disables
922   checking of target files.
923
924 * Made the dest attribute of the apply task optional; mapped target
925   filenames will be interpreted as absolute pathnames when dest is omitted.
926
927 * Changed default tempdir for <javac> from user.dir to java.io.tmpdir.
928
929 * Added searchpath attribute to <exec> for searching path variable(s)
930   when resolveexecutable = true.
931
932 * Added revision and userid attributes to <pvcs> documentation.
933
934 * Added support to the touch task for a mkdirs attribute to create
935   nonexistent parent directories before touching new files.
936
937 * Added support to the touch task for a pattern attribute to allow
938   alternate datetime formats.
939
940 * Added support to the touch task to map touched files using a nested
941   mapper element.
942
943 * Added support to the touch task for a verbose attribute to suppress
944   logging of new file creation.
945
946 * bad link in docs to the enhancement page in bugzilla.
947   Bugzilla report 33252.
948
949 * Added length task to get strings' and files' lengths.
950
951 * <native2ascii> and <javah> now also support Kaffe's versions.
952
953 * Recursive token expansion in a filterset can now be disabled by
954   setting its recurse attribute to false.
955
956 * Pathconvert no longer requires that one of (targetos|pathsep|dirsep)
957   be set; platform defaults are used when this is the case.
958
959 * Added preservelastmodified attribute to fixcrlf task. Bugzilla 25770.
960
961 * Added isfileselected condition.
962
963 * Added verbose="true|false" attribute to <subant>. When verbose is enabled,
964   the directory name is logged on entry and exit of the sub-build.
965   Bugzilla 33787.
966
967 * Added -nouserlib option to allow running ant without automatically loading
968   up ${user.home}/.lib/ant. This is useful when compiling ant, and antlibs.
969   Modified the build.sh and build.bat to use the option.
970
971 * Added -noclasspath option to allow running ant WITHOUT using CLASSPATH env
972   variable. Modified ant.bat to do this so that %CLASSPATH% is not looked at.
973
974 * Add else attribute to the condition task, which specifies an
975   optional alternate value to set the property to if the nested
976   condition evaluates to false. Bugzilla report 33074.
977
978 * Ant generated jar files should now be detected as jar files by
979   Solaris.  Bugzilla Report 32649.
980
981 * <rexec> with a single command should now work with unusal login
982   dialogs without special read/write pairs.  Bugzilla Report 26632.
983
984 * <csc>'s extraoptions can now contain multiple arguments.
985   Bugzilla Report 23599.
986
987 * <macrodef> with default values set by properties would be
988   seen as new definitions when called twice with different properties.
989   This was confusing so the definitions are now treated as similar.
990   Bugzilla Report 31215.
991
992 * <javadoc> has a new attribute "includenosourcepackages" that can be
993   used to document packages that don't hold source files but a
994   package.html file.  Bugzilla Report 25339.
995
996 * <rpm> has new attributes failonerror and quiet.
997
998 * Added two tutorials
999   - beginner: introduction into Ant
1000   - task developers: using path, fileset etc
1001
1002 * a number of new attributes that allow the user to handle non-standard
1003   server listing formats and time zone differences have been added in
1004   the <ftp> task.
1005
1006
1007 Fixed bugs:
1008 -----------
1009
1010 * Do not pass on ThreadDeath when halting <java fork="false">. Bugzilla
1011   32941.
1012
1013 * Killing a thread running <java fork="true"> (e.g. from an IDE) would
1014   not stop the forked process. Bugzilla 31928.
1015
1016 * Programs run with <java fork="true"> can now accept standard input
1017   from the Ant console.  (Programs run with <java fork="false"> could
1018   already do so.)  Bugzilla 24918.
1019
1020 * AbstractCvsTask prematurely closed its outputStream and errorStream.
1021   Bugzilla 30097.
1022
1023 * Impossible to use implicit classpath for <taskdef>
1024   when Ant core loader != Java application loader and
1025   Path.systemClassPath taken from ${java.class.path} Bugzilla 30161.
1026
1027 * MacroInstance did not clean up nested elements correctly in the execute
1028   method, causing multiple use of the same macro instance with nested
1029   elements to fail.
1030
1031 * checksum fileext property doc wrong. Bugzilla 30787.
1032
1033 * FTP task, getTimeDiff method was returning wrong value. Bugzilla 30595.
1034
1035 * make sure that Zip and its derivates call the createEmptyZip method when
1036  there are no resources to zip/jar/...
1037
1038 * Zip task was not zipping when only empty directories were found.
1039   Bugzilla 30365.
1040
1041 * Jar task was not including manifest files when duplicate="preserve" was
1042   chosen. Bugzilla 32802.
1043
1044 * ant.bat was missing runAntNoClasspath label for goto.
1045   Bugzilla 34510.
1046
1047 * Classpath was treated in the same way as -lib options. Bugzilla 28046.
1048
1049 * Manual page for cvsversion contained incorrect attributes and did not
1050   say since 1.6.1. Bugzilla 31408.
1051
1052 * Typo in definition of <cvsversion> task causing it not to be defined.
1053   Bugzilla 31403.
1054
1055 * Execution of top level tasks in imported files get delayed by targets.
1056   Bugzilla report 31487.
1057
1058 * ExecTask executes checkConfiguration() even though os does not match.
1059   Bugzilla report 31805.
1060
1061 * Concat task instance could not be run twice.
1062   Bugzilla report 31814.
1063
1064 * NPE using XmlLogger and antlib.
1065   Bugzilla report 31840.
1066
1067 * Properties.propertyNames() should be used instead of .keys().
1068   Bugzilla report 27261.
1069
1070 * Target location is not set for default target.
1071   Bugzilla report 32267.
1072
1073 * Incorrect classloader parent in junittask when using with
1074   ant-junit.jar and junit.jar not in the project classloader. Bugzilla
1075   report 28474.
1076
1077 * getResources() on the classloader returned by ClasspathUtils would
1078   see each resource twice - if the resource is in the project
1079   classpath and if the classloader is requested with a null path.
1080
1081 * XMLValidate used URL#getFile rather than the ant method FileUtils#fromURI
1082   Bugzilla report 32508
1083
1084 * fixed Regexp-Mapper docs which gave outdated instructions (optional.jar)
1085   Bugzilla report 28584
1086
1087 * <scp> using <fileset> didn't work with OpenSSH 3.9 and later.
1088   Bugzilla report 31939
1089
1090 * <setproxy> failed to set user/password on some JDKs.
1091   Bugzilla report 32667
1092
1093 * untar would go into infinite loop for some invalid tar files.
1094   Bugzilla report 29877
1095
1096 * forked <javac> won't pass -source to a JDK 1.1 or 1.2 javac anymore.
1097   Bugzilla report 32948
1098
1099 * propertyset references did not handle nested propertyset references.
1100
1101 * oata.types.Description.getDescription(Project) would throw a
1102   NullPointerException when the "ant.targets" reference was unset.
1103
1104 * Wrapper scripts did not detect WINNT value of dynamic OS environment
1105   variable when logged into workstations using Novell authentication.
1106   Bugzilla Report 30366.
1107
1108 * DependScanner.getResource() always returned nonexistent resources,
1109   even when the resource actually existed.  Bugzilla Report 30558.
1110
1111 * <apply> was broken with classfilesets.  Bugzilla Report 30567.
1112
1113 * <available> returned false positives when checking a file
1114   passed in with the current basedir leading twice:
1115   e.g. ${basedir}${file.separator}${basedir}${file.separator}foo .
1116
1117 * The first file open that took place when using input files with the
1118   <exec>, <apply>, or <java> tasks was always logged to System.out
1119   instead of to the managing Task.
1120
1121 * <telnet> and <rexec> would try to disconnect from servers they never
1122   connetced to, potentially leading to exceptions in commons-net.
1123   Bugzilla Report 33618.
1124
1125 * <zip> would drop files matched by defaultexcludes during updates.
1126   Bugzilla Report 33412.
1127
1128 * <zip> couldn't store files with size between 2GB and 4GB (the
1129   upper limit set by the ZIP format itself).  Bugzilla Report 33310.
1130
1131 * NPE when when <presetdef> tries to configure a task that
1132   cannot be instantiated. Bugzilla Report 33689.
1133
1134 * <javac debug="false"> created an invalid command line when running
1135   the Symantec Java compiler.
1136
1137 * Get with usetimestamp did not work on Java 1.2.
1138
1139 * Get with usetimestamp did not work when local timestamp roughly >= now.
1140
1141 * The framed JUnit report now handles multiple reports for the same
1142   testcase properly.  Bugzilla Report 32745.
1143
1144 * <cab> didn't work for files with spaces in their names on Windows.
1145   Bugzilla Report 17182.
1146
1147 * The VAJ tasks could fail if the project name contained characters
1148   that need to get URL encoded.  Bugzilla Report 23322.
1149
1150 * TarInputStream#read() wasn't implemented correctly.  Bugzilla Report
1151   34097.
1152
1153 * <xslt> failed to process file-hierarchies of more than one level if
1154   scanincludeddirectories was true.  Bugzilla Report 24866.
1155
1156 * forkmode="perBatch" or "once" would ignore extension attributes that
1157   had been specified for <formatter>s.  Bugzilla Report 32973.
1158
1159 * The refid attribute of the I/O redirector was not functional.
1160
1161 Changes from Ant 1.6.1 to Ant 1.6.2
1162 ===================================
1163
1164 Changes that could break older environments:
1165 --------------------------------------------
1166
1167 * The import task used the canonical version of a file path. This
1168   has been changed to use the absolute path. Bugzilla 28505.
1169
1170 * ant-xalan2.jar has been removed since the only class contained in it
1171   didn't depend on Xalan-J 2 at all.  Its sole dependency has always
1172   been TraX and so it has been merged into ant-trax.jar.
1173
1174 * All exceptions thrown by tasks are now wrapped in a buildexception
1175   giving the location in the buildfile of the task.
1176
1177 * Nested elements for namespaced tasks and types may belong to the
1178   Ant default namespace as well as the task's or type's namespace.
1179
1180 * <junitreport> will very likely no longer work with Xalan-J 1.
1181
1182   Note that Xalan-J 1 has been deprecated for a very long time and we
1183   highly recommend that you upgrade.
1184
1185   If you really need to continue using Xalan-J 1, please copy the
1186   junit-frames-xalan1.xsl from the distribution's etc directory as
1187   junit-frames.xsl into a new directory and use the task's styledir
1188   attribute to point to.  This is the last version of the XSLT
1189   stylesheet that is expected to be compatible with Xalan-J 1.
1190
1191 Fixed bugs:
1192 -----------
1193
1194 * eliminate memory leak in AntClassLoader. Bugzilla Report 8689.
1195
1196 * subant haltonfailure=false did not catch all failures. Bugzilla Report 27007.
1197
1198 * macrodef @@ escaping was broken.  Bugzilla Report 27069.
1199
1200 * MacroDef did not allow attributes named 'description'. Bugzilla Report 27175.
1201
1202 * Throw build exception if name attribute missing from patternset#NameEntry.
1203   Bugzilla Report 25982.
1204
1205 * Throw build exception if target repeated in build file, but allow targets
1206   to be repeated in imported files.
1207
1208 * <apply> didn't compare timestamps of source and targetfiles when
1209   using a nested <filelist>.  Bugzilla Report 26985.
1210
1211 * tagdiff.xml was broken in ant 1.6.1. Bugzilla Report 27057.
1212
1213 * if the basedir contained .. or . dirs, and the build file name contained
1214   .. or ., the basedir was set incorrectly. Bugzilla Report 26765.
1215
1216 * regression from ant 1.5, exec task outputted two redundant trailing newlines.
1217   Bugzilla Report 27546.
1218
1219 * NPE when running commons listener. Bugzilla Report 27373.
1220
1221 * <java> swallowed the stack trace of exceptions thrown by the
1222   executed program if run in the same VM.
1223
1224 * -projecthelp swallowed (configuration) errors silently.
1225   Bugzilla report 27732.
1226
1227 * filterset used by filtertask doesn't respect loglevel. Bugzilla Report 27568.
1228
1229 * wrong compare used in ProjectComponent for logging. Bugzilla Report 28070.
1230
1231 * failOnAny attribute for <parallel> was broken. Bugzilla Report 28122.
1232
1233 * If <javac> uses gcj and any of the nested <compilerarg>s implies
1234   compilation to native code (like -o or --main), Ant will not pass
1235   the -C switch to gcj.  This means you can now compile to native code
1236   with gcj which has been impossible in Ant < 1.6.2.
1237
1238 * <import optional="false"> and <import optional="true">
1239   behaved identically.
1240
1241 * <xslt> now sets the context classloader if you've specified a nested
1242   <classpath>.  Bugzilla Report 24802.
1243
1244 * <zip> and friends would delete the original file when trying to update
1245   a read-only archive.  Bugzilla Report 28419.
1246
1247 * <junit> and <assertions> are working together. Bugzilla report 27218
1248
1249 * AntClassLoader#getResource could return invalid URLs.  Bugzilla
1250   Report 28060.
1251
1252 * Ant failed to locate tools.jar if the jre directory name wasn't all
1253   lowercase.  Bugzilla Report 25798.
1254
1255 * Redirector exhibited inconsistent behavior with regard to split
1256   output.  When sent to file only, files would be created in all
1257   cases; when split file-property, files were only created if
1258   writes were performed.
1259
1260 * fixed case handling of scriptdef attributes and elements.
1261
1262 * UNC pathnames did not work for ANT_HOME or -lib locations on Windows.
1263   Bugzilla report 27922.
1264
1265 * replacestring tokenfilter only replaced the first occurrence.
1266
1267 * AntLikeTasksAtTopLevelTest failed on cygwin.
1268
1269 * I/O-intensive processes hung when executed via <exec spawn="true">.
1270   Bugzilla reports 23893/26852.
1271
1272 * JDependTask did not close an output file. Bugzilla Report 28557.
1273
1274 * Using <macrodef> could break XmlLogger. Bugzilla Report 28993.
1275
1276 * <genkey> no longer requires keytool to be in your PATH.  Bugzilla
1277   Report 29382.
1278
1279 * <symlink> could create cyclic links.  Bugzilla Report 25181.
1280
1281 * <zip whenempty="skip"> didn't work in a common situation.  Bugzilla
1282   Report 22865.
1283
1284 * <scp> now properly handles remote files and directories with spaces
1285   in their names.  Bugzilla Report 26097.
1286
1287 * <scp> now has (local|remote)tofile attributes to rename files on the
1288   fly.  Bugzilla Report 26758.
1289
1290 * <telnet> and <rexec> didn't close the session.  Bugzilla Report 25935.
1291
1292 * <subant> and XmlLogger didn't play nicley together.
1293
1294 Other changes:
1295 --------------
1296 * doc fix concerning the dependencies of the ftp task
1297   Bugzilla Report 29334.
1298
1299 * <xmlvalidate> has now a property nested element,
1300   allowing to set string properties for the parser
1301   Bugzilla Report 23395.
1302
1303 * Docs fixes for xmlvalidate.html, javadoc.html, starteam.
1304   Bugzilla Reports 27092, 27284, 27554.
1305
1306 * <pathconvert> now accepts nested <mapper>s.  Bugzilla Report 26364.
1307
1308 * Shipped XML parser is now Xerces-J 2.6.2.
1309
1310 * Added nested file element to filelist.
1311
1312 * spelling fixes, occurred. Bugzilla Report 27282.
1313
1314 * add uid and gid to tarfileset. Bugzilla Report 19120.
1315
1316 * <scp> has a verbose attribute to get some feedback during the
1317   transfer and new [local|remote][File|Todir] alternatives to file and
1318   todir that explicitly state the direction of the transfer.
1319
1320 * The OS/2 wrapper scripts have been adapted to use the new launcher.
1321   Bugzilla Report 28226.
1322
1323 * <sshexec> now also captures stderr output.  Bugzilla Report 28349.
1324
1325 * <xslt> now supports a nested <mapper>.  Bugzilla Report 11249.
1326
1327 * <touch> has filelist support.
1328
1329 * <nice> task lets you set the priority of the current thread; non-forking
1330   <java> code will inherit this priority in their main thread.
1331
1332 * New attribute "negate" on <propertyset> to invert selection criteria.
1333
1334 * Target now supports a Location member.  Bugzilla Report 28599.
1335
1336 * New "pattern" attribute for <date> selector.
1337
1338 * <junit> has a new forkmode attribute that controls the number of
1339   Java VMs that get created when forking tests.  This allows you to
1340   run all tests in a single forked JVM reducing the overhead of VM
1341   creation a lot.  Bugzilla Report 24697.
1342
1343 * <jar> can now optionally create an index for jars different than the
1344   one it currently builds as well.  See the new <indexjars> element
1345   for details.  Bugzilla Report 14255.
1346
1347 * Permit building under JDK 1.5. Bugzilla Report 28996.
1348
1349 * minor Javadoc changes. Bugzilla Report 28998.
1350
1351 * Misc. corrections in SignJar.java. Bugzilla Report 28999.
1352
1353 * Remove redundant <hr> from javah.html. Bugzilla Report 28995.
1354
1355 * Ignore built distributions. Bugzilla Report 28997.
1356
1357 * A new roundup attribute on <zip> and related task can be used to
1358   control whether the file modification times inside the archive will
1359   be rounded up or down (since zips only store modification times with
1360   a granularity of two seconds).  The default remains to round up.
1361   Bugzilla Report 17934.
1362
1363 * A binary option has been added to <concat>. Bugzilla Report 26312.
1364
1365 * Added DynamicConfiguratorNS, an namespace aware version of
1366   DynamicConfigurator. Bugzilla Report 28436.
1367
1368 * Add implicit nested element to <macrodef>. Bugzilla Report 25633.
1369
1370 * Add deleteonexit attribute to <delete>.
1371
1372 * Added Target.getIf/Unless().  Bugzilla Report 29320.
1373
1374 * <fail> has a status attribute that can be used to pass an exit
1375   status back to the command line.
1376
1377 * <fail> accepts a nested <condition>.
1378
1379 * <loadproperties> supports loading from a resource.
1380   Bugzilla Report 28340.
1381
1382 * Nested file mappers and a container mapper implementation have been
1383   introduced.  Additionally, the <mapper> element now accepts "defined"
1384   nested FileNameMapper implementations directly, allowing a usage
1385   comparable to those of <condition>, <filter>, and <selector>.
1386
1387 * New <redirector> type introduced to provide extreme I/O flexibility.
1388   Initial support for <exec>, <apply>, and <java> tasks.
1389
1390 * <apply> has a new ignoremissing attribute (default true for BC)
1391   which will allow nonexistent files specified via <filelist>s to
1392   be passed to the executable.  Bugzilla Report 29585.
1393
1394 * <junitreport> now also works with Xalan XSLTC and/or JDK 1.5.
1395   Bugzilla Report 27541.
1396
1397 * <jspc> doesn't work properly with Tomcat 5.x.  We've implemented a
1398   work-around but don't intend to support future changes in Tomcat
1399   5.x.  Please use the jspc task that ships with Tomcat instead of
1400   Ant's.
1401
1402 Changes from Ant 1.6.0 to Ant 1.6.1
1403 =============================================
1404
1405 Changes that could break older environments:
1406 --------------------------------------------
1407
1408 * License is now Apache Software License 2.0
1409   see http://www.apache.org/licenses/ for more information
1410
1411 Fixed bugs:
1412 -----------
1413 * Remove a recursive template call in the junit xsls that could trigger a stack
1414   overflow. It now uses Xalan extensions to call a Java class directly.
1415   Bugzilla Report 19301
1416
1417 * Fix spurious infinite loop detection for filters (introduced in ant 1.6.0).
1418   Bugzilla Report 23154.
1419
1420 * Fix handling of default ant namespace for nested elements.
1421
1422 * Fix jboss element of ejb task (introduced in ant 1.6.0).
1423
1424 * <whichresource> failed to load classes correctly.
1425
1426 * Ant could fail to start with a NullPointerException if
1427   ANT_HOME/lib/ant-launcher.jar was part of the system CLASSPATH.
1428
1429 * presetdef'ed types did not work with the ant-type attribute
1430
1431 * fixed case handling of macrodef attributes and elements. Bugzilla
1432   Reports 25687 and 26225.
1433
1434 * <java> ignored the append attribute, Bugzilla Report 26137.
1435
1436 * The gcj compiler adapter for <javac> failed if the destination
1437   directory didn't exist.  Bugzilla Report 25856.
1438
1439 * Ant now fails with a more useful message if a new process will be
1440   forked in a directory and that directory doesn't exist.
1441
1442 * <splash> used to break the build on non-GUI environments.  Bugzilla
1443   report 11482.
1444
1445 * Ant 1.6.0 cannot run build scripts in directories with non-ASCII names.
1446   Bugzilla Report 26642.
1447
1448 Other changes:
1449 --------------
1450 * Shipped XML parser is now Xerces-J 2.6.1
1451
1452 * Translate task logs a debug message specifying the number of files
1453   that it processed.  Bugzilla Report 13938.
1454
1455 * <fixcrlf> has a new attribute - fixlast. Bugzilla Report 23262.
1456
1457 * <p4submit> has 2 new attributes, needsresolveproperty and changeproperty.
1458   Bugzilla Report 25711.
1459
1460 * add description attributes to macrodef attributes and elements.
1461   Bugzilla Report 24711.
1462
1463 * Extending ClearCase Tasks :
1464  - Added an extra option to 'failonerr' to each ClearCase task/command.
1465  - Extended the functionality of cccheckout. It can check (notco) to see if
1466   the desired element is already checked out to the current view. Thus it
1467    won't attempt to check it out again.
1468  - Added three new ClearCase commands: ccmkattr, ccmkdir, ccmkelem
1469   Bugzilla Report 26253.
1470
1471 * added nested text support to <macrodef>
1472
1473 * added initial support for Java 1.5.  Java 1.5 is now correctly
1474   detected by Ant and treated just like Java 1.4.  You can now specify
1475   source="1.5" in the <javac> task.
1476
1477 * created new task <cvsversion>
1478
1479 * added support for branch logging via the tag attribute in <cvschangelog>
1480   Bugzilla Report 13510.
1481
1482 * added support the groovy language in the script and scriptdef tasks
1483
1484 Changes from Ant 1.5.4 to Ant 1.6.0
1485 ===================================
1486
1487 Changes that could break older environments:
1488 --------------------------------------------
1489
1490 * This version of Ant can not be built with JDK 1.1 and requires at
1491   least Java 1.2 at runtime as well.  Compiling for a 1.1 target is
1492   still supported.
1493
1494 * Targets cannot have the empty string as their name any longer.
1495
1496 * ant.jar's manifest does no longer include a Class-Path entry, so it
1497   is no longer possible to run Ant via "java -jar ant.jar" without
1498   manually altering the CLASSPATH.  Instead of that a file
1499   ant-bootstrap.jar is included in the etc directory of the binary
1500   distribution, copy this to the lib directory and use
1501   "java -jar ant-bootstrap.jar" instead if you want to run Ant without
1502   the wrapper script (not recommended).
1503
1504 * The <script> task now requires Apache BSF instead of the older IBM
1505   version.  See <http://jakarta.apache.org/bsf/>
1506
1507 * <xmlproperty> will no longer fail if the file to be loaded doesn't exist.
1508
1509 * XML namespaces are now enabled in the XML parser, meaning XML namespace
1510   declarations no longer cause errors. However task names containing colons
1511   will cause errors unless there is a corresponding namespace uri.
1512
1513 * The <ftp> and <telnet> tasks now require Jakarta Commons Net instead
1514   of the older ORO Netcomponents version.  See
1515   <http://jakarta.apache.org/commons/net/index.html>.
1516
1517 * <input> will no longer prompt the user and wait for input if the
1518   addproperty attribute is set to a property that has already been
1519   defined in the project.  If you rely on the task waiting for input,
1520   don't use the addproperty attribute.
1521
1522 * The Class-Path attribute in manifests will no longer merge the
1523   entries of all manifests found, but will be treated like all other
1524   manifest attributes - the most recent attribute(s) will be used.
1525
1526 * New Launch mechanism implemented. This moves some functionality from
1527   the batch files / shell scripts into Java. This removes environment
1528   limitations, for command issues, directory depth issues on Windows. Also
1529   allows a per-user library location to be used if the main Ant install
1530   is locked down.
1531
1532 * The Entry nested element of PropertyFile will not any more have its value
1533   attribute (actually increment) overwritten with the new value of the entry
1534   after execution.
1535
1536 * Output stored from a <java> or <exec> task is now exactly as generated. No
1537   conversion to platform end-of-line characters is performed.
1538
1539 * <translate> will now preserve line endings.
1540
1541 * <ftp> followsymlinks="false" in nested fileset definitions is explicitly
1542   required in order to exclude remote symbolic links (when doing a get, chmod,
1543   delete, rmdir).
1544
1545 * The values of the Copy#fileCopyMap variable has changed from String to
1546   String[]. (In java 1.5 terms it was Hashtable<String, String> and
1547   is now Hashtable<String, String[]>). This will affect third party code
1548   that extend Copy and override Copy#doFileOperations.
1549
1550 * <loadproperties> didn't expand properties while <property file="..."/>
1551   does, so they were not equivalent.  This has been fixed, which means
1552   that propetries may get expanded twice if you use an
1553   <expandproperties> filterreader.  Bugzilla Report 17782.
1554
1555 * User defined tasks and typedefs are now handled internally in the
1556   same way as predefined tasks and typedefs. Also tasks and typedefs
1557   are resolved at a later stage. This causes some
1558   differences especially for user defined task containers.
1559
1560 * <checksum> log message "Calculating checksum ..." has been degraded
1561   from INFO to VERBOSE.
1562
1563 Fixed bugs:
1564 -----------
1565 * Filter readers were not handling line endings properly.  Bugzilla
1566   Report 18476.
1567
1568 * Filtersets were also not handling line endings properly.
1569
1570 * Expand tasks did not behave as expected with PatternSets.
1571
1572 * <property environment=... /> now works on OS/400.
1573
1574 * <cab> could hang listcab on large <fileset>s.
1575
1576 * The starteam stcheckout, stcheckin tasks now correctly compute
1577   status of files against whatever local tree they are run against
1578   and, optionally, will not process a file if it is current.
1579   Previously you had to process everything unless you ran against the
1580   default folder which wasn't the normal use-case for ant-starteam.
1581   The stlist task now similarly displays that status correctly making
1582   it a more generally useful tool.
1583
1584 * entity includes would cause exceptions if path names included spaces.
1585
1586 * addConfiguredXXX would not work for TaskAdapter wrapped tasks
1587
1588 * Fix <ilasm> outputfile testing so that the output file does not need
1589   to exist beforehand.
1590
1591 * Ant will now exit with a return code of 1 if it encounters problems
1592   with the command line arguments.
1593
1594 * ClassLoader creation changes to use a factory method in Project. A new
1595   class AntClassLoader2 implemented for 1.2+ specific features including
1596   Package information and addition of classes specified in the Class-Path
1597   element of a Jar's manifest.
1598
1599 * It is now possible in <exec> to resolve the executable to a project
1600   basedir or execution dir relative executable. The resolveExecutable
1601   must be used to pick up such executables.
1602
1603 * splash screen wouldn't disappear when build was finished.
1604
1605 * <exec> output and error streams can now be redirected independently
1606   to either a property or a file (or both)
1607
1608 * TarEntry's File-arg constructor would fail with a
1609   StringIndexOutOfBoundsException on all OSes where os.name is shorter
1610   than seven characters.  Bugzilla Report 18105.
1611
1612 * <copy> and <move>'s failonerror didn't apply to filesets pointing to
1613   non-existant directories.  Bugzilla Report 18414.
1614
1615 * The <stripjavacomments> filter sometimes removed parts of string
1616   constants.  Bugzilla Report 17441.
1617
1618 * <antlr> will now recompile your grammar if the supergrammar has
1619   changed.  Bugzilla Report 12691.
1620
1621 * <property env> will now work on Unices with /bin/env instead of
1622   /usr/bin/env.  Bugzilla Report 17642.
1623
1624 * <jar index="on"> could include multiple index lists.  Bugzilla 10262.
1625
1626 * The index created by <jar> didn't conform to the spec as it didn't
1627   include the top-level entries.  Bugzilla Report 16972.
1628
1629 * <tar> and <zip> didn't honor the defaultexcludes attribute for the
1630   implicit fileset.  Bugzilla Report 18637.
1631
1632 * The <replacetokens> filter would throw an exception if the token's
1633   value was an empty string.  Bugzilla Report 18625.
1634
1635 * Perforce tasks relying on output from the server such as <p4change>
1636   and <p4label> were hanging. Bugzilla Reports 18129 and 18956.
1637
1638 * Improve exception and logging behavior of Perforce tasks.
1639   Bugzilla report 18154.
1640
1641 * build.sh install had a problem on cygwin (with REALANTHOME).
1642   Bugzilla Report 17257
1643
1644 * <replaceregexp> didn't work for multi-byte encodings if byline was false.
1645   Bugzilla Report 19187.
1646
1647 * <replaceregexp> was altering unnecessarily the timestamp of the directories
1648   containing the files to process
1649   Bugzilla Report 22541.
1650
1651 * file names that include spaces need to be quoted inside the @argfile
1652   argument using forked <javac> and (all JDKS).  Bugzilla Report 10499.
1653   NB : a first correction was only introducing quotes for JDK 1.4
1654   It has been changed to quote for all external compilers when paths
1655   contain spaces.
1656   Also the backslashes need to be converted to forward slashes
1657   Bugzilla Report 17683.
1658
1659 * Setting filesonly to true in <zip> and related tasks would cause the
1660   archives to be always recreated.  Bugzilla Report 19449.
1661
1662 * file names that include spaces need to be quoted inside the @argfile
1663   argument using <javadoc> and JDK 1.4.  Bugzilla Report 16871.
1664
1665 * <junit> didn't work with custom formatters that were only available
1666   on the user specified classpath when a timeout occurred.  Bugzilla
1667   Report 19953.
1668
1669 * <different> selector : make ignoreFileTimes effectively default to true
1670   and fix a bug in the comparison of timestamps. Bugzilla Report 20205.
1671
1672 * <different> selector can now be nested directly under a fileset
1673   Bugzilla Report 20220.
1674
1675 * <cvstagdiff> had a problem with "dd-MM-yy hh:mm:ss" formats
1676   Bugzilla Report 15995.
1677
1678 * <cvstagdiff> cvsroot and package attributes added to the root
1679   element tagdiff of the xml output
1680   Bugzilla Report 16081.
1681
1682 * <cvstagdiff> had a problem with aliased modules and with requests for
1683   multiple modules. Bugzilla Reports 21373 and 22877.
1684
1685 * <cvstagdiff> could not parse properly the revision number of new files with
1686   CVS 1.11.9 or higher. Bugzilla Report 24406.
1687
1688 * <fixcrlf> make fixcrlf create its temporary files in the default directory
1689   of FileUtils#createTempFile instead of the destination dir of fixcrlf.
1690   Bugzilla Report 20870.
1691
1692 * <ejbjar> implementation for Borland.
1693   Prevent the task from being blocked by error messages coming from java2iiop.
1694   Bugzilla Report 19385.
1695
1696 * <unzip>'s and <untar>'s nested patternsets didn't work as documented
1697   when the pattern ended in a slash or backslash.  Bugzilla Report 20969.
1698
1699 * <fixcrlf> will now create the parent directories for the destination
1700   files if necessary.  Bugzilla Report 20840.
1701
1702 * <xmlproperty> now handles CDATA sections. BugZilla Report 17195
1703
1704 * <translate> now translate tokens that are placed close together.
1705   Bugzilla Report 17297
1706
1707 * Nested websphere element for ejbjar does not support spaces in file name.
1708   Bugzilla Report 21298
1709
1710 * Don't multiply Class-Path attributes when updating jars.  Bugzilla
1711   Report 21170.
1712
1713 * Do not overwrite the value (increment) attribute of PropertyFile nested
1714   Entry element. Bugzilla Report 21505.
1715
1716 * Prevent sysproperties with no key or no value from being added in <junit>.
1717   Bugzilla Report 21684.
1718
1719 * Allow references to be properly inherited via antcall
1720   Bugzilla Report 21724.
1721
1722 * ftp chmod failed when the remote system was UNIX and local system Windows
1723   Bugzilla Report 21865.
1724
1725 * ftp put with chmod failed when the remote system was UNIX and local system
1726   Windows. Bugzilla Report 23143.
1727
1728 * ftp did not set the ascii mode explicity, causing problems with ftp servers
1729   having binary as default
1730
1731 * ftp was not able to download files when they were pointed to by symbolic
1732   links. Bugzilla Report 14063.
1733
1734 * ftp is able to download also directories pointed to by symbolic links.
1735
1736 * replace would change \r\n into \r\r\n under Windows.
1737
1738 * junitreport with frames did not display a link for classes without a package
1739   or in the top package.
1740   Bugzilla Report 21915.
1741
1742 * Project.toBoolean(String) now handles null as argument and does not throw a
1743   NullPointerException any more.
1744
1745 * The socket condition will now close the socket created to test.
1746   Bugzilla Report 23040.
1747
1748 * <junit includeantruntime="true" fork="true"> replaced the CLASSPATH instead
1749   of adding to it.  Bugzilla Report 14971.
1750
1751 * <splash> could fail on JVMs that use null to indicate the system classloader.
1752   Bugzilla Report 23320.
1753
1754 * <xmlcatalog>s only worked when defined inside of tasks.  Bugzilla
1755   Report 20965.
1756
1757 * <csc> and siblings (<vbc> <jsharpc>) handle large filesets by
1758 automatic use of response files.  Bugzilla report #19630
1759
1760 Other changes:
1761 --------------
1762
1763 * Shipped XML parser is now Xerces 2.6.0
1764
1765 * All tasks can be used outside of <target>s.  Note that some tasks
1766   will not work at all outside of targets as they would cause infinite
1767   loops (<antcall> as well as <ant> and <subant> if they invoke the
1768   current build file).
1769
1770 * Six new Clearcase tasks added.
1771
1772 * A new filter reader namely tokenfilter has been added.  Bugzilla
1773   Report 18312.
1774
1775 * A new attribute named skip is added to the TailFilter and
1776   HeadFilter filter readers.
1777
1778 * The filesetmanifest attribute of <jar> has been reenabled.
1779
1780 * The start and end tokens for <translate> may now be longer than a
1781   single character.
1782
1783 * <setproxy> lets you set the username and password for proxies that
1784   want authentication
1785
1786 * <loadproperties> has a new encoding attribute.
1787
1788 * <echoproperties> can now create XML output.
1789
1790 * <echoproperties> has a new srcfile attribute that can make it read
1791   properties files and output them instead of Ant's properties.
1792
1793 * <filterset> will now resolve filters recursively.
1794
1795 * <input> has a new attribute that allows you to specify a default value.
1796
1797 * Added <image> task (requires JAI).
1798
1799 * <image> task has now proportions attribute in the <scale/> nested element
1800   instead of keepproportions (bringing in more functionality)
1801
1802 * New condition <isreference>
1803
1804 * <ftp> now has a preservelastmodified attribute to preserve the
1805   timestamp of a downloaded file.
1806
1807 * new rmdir action for <ftp> that removes directories from a fileset.
1808
1809 * <ftp> has attributes timediffauto and timediffmillis to use together
1810   with the newer attribute to tell ant to take into account a time difference
1811   between client and remote side.
1812   Bugzilla Report 19358.
1813
1814 * <ftp> has been optimized to go directly to the include patterns.
1815   This reduces scanning time under UNIX when followsymlinks="true"
1816   and casesensitive="true" (the default)
1817   Bugzilla Report 20103.
1818
1819 * The SOS and VSS tasks will no longer unconditionally prepend a $ to
1820   vsspath or projectpath.
1821
1822 * OS/400 now gets detected by the os condition.
1823
1824 * <arg> has a new attribute pathref that can be used to reference
1825   previously defined paths.
1826
1827 * <xmlproperty> has been improved, you can now expand ${properties},
1828   define ids or paths and use Ant's location magic for filename resolutions
1829   in the XML file.
1830
1831 * <xmlcatalog> will now support external catalogs according to the
1832   OASIS "Open Catalog" standard - if resolver.jar (newer than version
1833   1.0) from Apache's xml-commons is in your CLASSPATH.
1834
1835 * Starteam tasks now have support for revision labels and build labels.
1836   Checkouts now have the option of using repository timestamps, instead
1837   of current.
1838
1839 * new task <symlink> that creates and maintains symbolic links.
1840
1841 * new tasks <chown> and <chgrp> which are wrappers of the Unix commands.
1842
1843 * new task <attrib> to change file attributes on Windows systems.
1844
1845 * <style> has a new attribute reloadstylesheet to work around a
1846   bug in widespread Xalan versions.
1847
1848 * <tarfileset> has a new dirmode attribute to specify the permissions
1849   for directories.
1850
1851 * <fixcrlf>'s eol attribute now also understands "mac", "unix" and "dos".
1852
1853 * <classfileset> now picks up dependencies of the form MyClass.class. This
1854   works for the code generated by the Sun java compiler. It may not work for
1855   all compilers.
1856
1857 * a new attribute "globalopts" can be added to all Perforce tasks.
1858   You can put in it all the strings described by p4 help usage. Refer to
1859   the docs for more information.
1860
1861 * new Perforce tasks <p4integrate> , <p4resolve>, and <p4labelsync>
1862
1863 * <p4submit> will change the property p4.change if the Perforce server
1864   renumbers the change list.
1865   It will set the property p4.needsresolve if the submit fails,
1866   and the message says that file(s) need to be resolved.
1867
1868 * <replaceregexp> now has an optional encoding attribute to support
1869   replacing in files that are in a different encoding than the
1870   platform's default.
1871
1872 * The <exec> task may now have its input redirected from either a file
1873   or a string from the build file. The error output can be separated
1874   to a different file when outut is redirected. standard error may be
1875   logged to the Ant log when redirecting output to a file
1876
1877 * The <java> task also supports the input redirection and separate
1878   error streams introduced to the <exec> task. In addition, it is now
1879   possible to save the output into a property for use within the build
1880   file as was possible with <exec> in Ant 1.5
1881
1882 * The <javadoc> task <tag> subelement has been enhanced to allow files
1883   with tag mappings to be used.
1884
1885 * New tasks: <scp> supports file transfers, <sshexec> executes a
1886   command over SSH.  They require jsch, a BSD licensed SSH library that
1887   can be found at http://www.jcraft.com/jsch/index.html
1888
1889 * New filterreader <escapeunicode/>.
1890
1891 * Support for HP's NonStop Kernel (Tandem) OS has been added.
1892
1893 * <cab>'s basedir attribute is now optional if you specify nested
1894   filesets.  Bugzilla Report 18046.
1895
1896 * New task <sync> that synchronizes two directory trees.
1897
1898 * <apply> has new forwardslash attribute that can force filenames to
1899   use forward slashes (/) as file separators even on platforms with a
1900   different separator.  This is useful if you want to run certain
1901   ported Unix tools.
1902
1903 * Copy has a new outputencoding attribute that can be used to change
1904   the encoding while copying files.  Bugzilla Report 18217.
1905
1906 * The xml formatter for JUnit will now honor test case names set with
1907   setName.  Bugzilla Report 17040.
1908
1909 * JUnit now has an attribute reloading, which, when set to false,
1910   makes the task reuse the same class loader for a series of tests.
1911
1912 * <concat> now supports filtering and can check timestamps before
1913   overriding a file.  Bugzilla Report 18166.
1914
1915 * <junit> has a new attribute tempdir that controls the placement of
1916   temporary files.  Bugzilla Report 15454.
1917
1918 * <jdepend> now supports a new nested element <classespath> which is
1919   the same as <sourcespath> but point to compiled classes (the
1920   prefered mode of operation for JDepend > 2.5).  Additionally, nested
1921   <exclude> elements can be used to exclude certain packages from
1922   being parsed.  Bugzilla Report 17134.
1923
1924 * The JProbe tasks now also work with JProbe 4.x.  Bugzilla Report 14849.
1925
1926 * <javacc> and <jjtree> will now autodetect JavaCC 3.x and can use it.
1927
1928 * <sql> has a new attribute to control escape processing.
1929
1930 * <sql> is able to display properly several resultsets if you are
1931   running a compound sql statement. Bugzilla Report 21594.
1932
1933 * A new <containsregexp> selector has been added, that selects files
1934   if their content matches a certain regular expression.
1935
1936 * <antlr>'s debug attribute has been enabled.  Bugzilla Report 19051.
1937
1938 * <mail> has a new attribute charset. Bugzilla Report 15434.
1939
1940 * <mail> has new attributes user and password for SMTP auth.
1941   maillogger can also use this.
1942   The implementation only works with JavaMail (encoding="MIME").
1943   Implementation with plain mail remains to do.
1944   Bugzilla Report 5969.
1945
1946 * <mail> and mailloger support SMTP over TLS/SSL
1947   Bugzilla Report 19180.
1948
1949 * <mail> the attributes from, replyto ,tolist, cclist, bcclist
1950   can now contain email addresses of the form name <address@xyz.com>
1951   or (name) address@xyz.com
1952   Bugzilla Report 22474.
1953
1954 * <mail> (version PlainMail)
1955   prevent blank headers from being sent,
1956   make the order of the headers of plain mail messages predictable
1957   Bugzilla Report 22088.
1958
1959 * <zipfileset> can now be defined in the main body of a project
1960   and referred to with refid="xyz". Bugzilla Report 17007.
1961
1962 * A wrapper script for OS/2 has been added.
1963
1964 * <unzip> will now detect and successfully extract self-extracting
1965   archives.  Bugzilla Report 16213.
1966
1967 * <stcheckout> has a new attribute "converteol" that can be used to
1968   control the automatic line-end conversion performed on ASCII files.
1969   Bugzilla Report 18884.
1970
1971 * Users can now modify the list of default excludes using the new
1972   defaultexcludes task.  Bugzilla Report 12700.
1973
1974 * There is a new data type <propertyset> that can be used to collect
1975   properties.  It is supported by <ant>, <antcall>, <subant>, <java>,
1976   <echoproperties> and <junit>.
1977
1978 * <concat> can now control the encoding of the output as well and optionally
1979   add new-line characters at the end of files that get concatenated but
1980   don't end in newlines.  Bugzilla Report 12511.
1981
1982 * <rpm> will detect the rpmbuild executable of RedHat 8.0 and newer
1983   and use that if it is on your PATH.  Bugzilla Report 14650.
1984
1985 * A new task <rexec> has been added that requires commons-net to work.
1986   Bugzilla Report 19541.
1987
1988 * <javadoc> now supports a nested <arg> element in addition to the
1989   additionalparams attribute.
1990
1991 * You can now determine the order of standard tags in <javadoc> via
1992   <tag> elements - you must not use the description attribute for them.
1993   Bugzilla Report 18912.
1994
1995 * <javadoc> now supports the -noqualifier switch.  Bugzilla Report 19288.
1996
1997 * <javac>'s executable attribute can now also be used to specify the
1998   executable for jikes, jvc, sj or gcj.  Bugzilla Report 13814.
1999
2000 * <javac> has a new attribute tempdir that can control the placement
2001   of temporary files.  Bugzilla Report 19765.
2002
2003 * A new magic property build.compiler.jvc.extensions has been added
2004   that can be used to turn of Microsoft extensions while using the jvc
2005   compiler.  Bugzilla Report 19826.
2006
2007 * You can now limit the parallelism of <apply> and <chmod> by using the new
2008   maxparallel attribute.
2009
2010 * With the new addsourcefile attribute, you can make <apply> ommit the
2011   source file names from the command line.  Bugzilla Report 13654.
2012
2013 * <apply> and <chmod> now support nested <filelist>s as well as <dirset>s.
2014   Bugzilla Reports 15929 and 20687.
2015
2016 * <apply> and <chmod> will display a summary if you set the new
2017   verbose attribute to true.  Bugzilla Report 19883.
2018
2019 * <copy>/<move>'s failonerror attribute can now also be used to
2020   continue the build if an I/O error caused a problem.  Bugzilla
2021   Report 12999.
2022
2023 * new selector <type/> allowing to select only files or only directories.
2024   Bugzilla Report 20222.
2025
2026 * <java> and <junit> now support a nested <bootclasspath> element that
2027   will be ignored if not forking a new VM.
2028
2029 * <junit>'s nested <formatter> elements now support if/unless clauses.
2030
2031 * <ejbjar>
2032   cmpversion attribute added
2033   jboss element will look for jbosscmp-jdbc.xml descriptor
2034   if ejbjar has cmpversion="2.0" set
2035   Bugzilla Reports 14707 and 14709.
2036
2037 * <pvcs> config attribute added to set the location of a specific PVCS
2038   .cfg file
2039   Bugzilla Report 9752
2040
2041 * <mapper> has an "unpackage" mapper
2042   Bugzilla Report 18908
2043
2044 * Added <scriptdef> task allowing tasks to be defined using any BSF-supported
2045   scripting language.
2046
2047 * <touch>'s datetime attribute can now accept time with a granularity
2048   of seconds as well.  Bugzilla Report 21014.
2049
2050 * <checksum> has two new properties: totalproperty and todir.
2051
2052 * FileUtils#createTempFile will now create temporary files in the
2053   directory pointed to by the property java.io.tmpdir
2054
2055 * <unzip> and friends now supports an optional encoding attribute to
2056   enable it to expand archives created with filenames using an encoding
2057   other than UTF8.  Bugzilla Report 10504.
2058
2059 * <patch> has a new attribute destfile that can be used to create a new
2060   file instead of patching files in place.
2061
2062 * OpenVMS is detected as a valid OS family.
2063
2064 * DirectoryScanner has been optimized for cases where include patterns do not
2065   start with wildcards.  Bugzilla Report 20103.
2066
2067 * DirectoryScanner begins to be optimized not to scan excluded directories.
2068   Bugzilla Report 21941.
2069
2070 * Added keep-going feature. Bugzilla Report 21144
2071
2072 * The archives generated by <zip> and friends will now contain CRC and
2073   size information in the "local file header", thereby providing this
2074   information to applications that read the archives using
2075   java.util.ZipInputStream.  Bugzilla Report 19195.
2076
2077 * <copy> and <move> can now handle mappers that return multiple
2078   mappings per source path. This behaviour is enabled by using
2079   an enablemultiplemapping attribute. Bugzilla Report 21320.
2080
2081 * <exec> will now work on OpenVMS (please read the notes in
2082   <exec>'s manual page).  Bugzilla Report 21877.
2083
2084 * <exec> will now have a new attribute spawn (default false).
2085   If set to true, the process will be spawned. Bugzilla Report 5907.
2086
2087 * <java> will now have a new attribute spawn (default false).
2088   If set to true, the process will be spawned. Bugzilla Report 5907.
2089
2090 * <parallel> now supports a timeout which can be used to recover
2091   from deadlocks, etc in the parallel threads. <parallel> also
2092   now supports a <daemons> nested element. This can be used to
2093   run tasks in daemon threads which the parallel task will not
2094   wait for before completing. A new attribute failonany will cause
2095   <parallel> to throw an exception if any thread fails without
2096   waiting for all other threads to complete.
2097
2098 * <zip> and friends will consume far less memory than they used to
2099   when run with compress="false".  Bugzilla Report 21899.
2100
2101 * <if/> and <unless/> attributes added to <param/> element of <style>
2102    Bugzilla Report 22044
2103
2104 * <zip> and friends have a new attribute "keepcompression" that can be
2105   used to incrementally build an archive mixing compressed and uncompressed
2106   entries.
2107
2108 * <junit>'s XML formatter adds a new classname attribute to the <testcase>
2109   elements.
2110
2111 * new <permissions> type add permission handling to the code
2112   this type can be nested in the <java> and <junit> tasks.
2113   Bugzilla Report 22533.
2114
2115 * additional shortcuts for ant options (-d --> -debug, -e --> -emacs,
2116   -h --> -help, -p --> -projecthelp, -s --> -find).
2117
2118 * new selector <modified>. "cache" was renamed to "modified".
2119   Bugzilla Report 20474.
2120
2121 * <stcheckout> and <stlist> have a new asofdate attribute that can be
2122   used to checkout/list files based on a date instead of a label.
2123   Bugzilla Report 20578.
2124
2125 * New filter <concatfilter>. Adds the content of file at the beginning
2126   or end of a file. Discussion started at
2127   http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2
2128
2129 * New task <import>
2130
2131 * New task <macrodef>
2132
2133 * New task <presetdef>
2134
2135 * Ant libraries that can make use of namespaces to avoid name
2136   clashes of custom tasks
2137
2138 * <java> and <junit> now support <assertions>, which let you enable
2139   and disable Java1.4 assertions on a package or class basis. These
2140   only work when fork=true, currently.
2141
2142 * .NET tasks expanded with VB support <vbc> and J#, via <jsharp>,
2143   <importtypelib> and <ilasm>. <csc> supports nested <src> types,
2144   <defines> for (potentially conditional) definitions, <reference>
2145   filesets for references. The executable attribute lets you switch to
2146   mono or other implementations -<csc> has been tested with Mono on
2147   Linux and OSX.
2148
2149
2150 Changes from Ant 1.5.3 to Ant 1.5.4
2151 ===================================
2152
2153 Changes that could break older environments:
2154 --------------------------------------------
2155
2156 * If the Visual Age tasks used to work for you, they may stop doing so
2157   now - and we'd like to know about it.  The current set of tasks is
2158   supposed to work with any version of VAJ starting with 3.0.
2159
2160 Fixed bugs:
2161 -----------
2162
2163 * The Visual Age for Java tasks didn't work (at least for versions 3.0
2164   and higher).  Bugzilla Report 10016.
2165
2166 * URL-encoding in <vaj*port> didn't work properly.
2167
2168 * VAJRemoteUtil called getAbsolutePath instead of getPath
2169   causing problems when using a Windows VAJ server from a UNIX server.
2170   Bugzilla Report 20457.
2171
2172 * VAJImport task failed with NullPointerException when using DirectoryScanner.
2173   Bugzilla Report 22080.
2174
2175 Other changes:
2176 --------------
2177
2178 * Shipped XML parser is now Xerces 2.5.0
2179
2180 * <javah> will invoke oldjavah on JDK 1.4.2.  Bugzilla Report 18667.
2181
2182 * The VAJ tasks now support a haltonfailure attribute to conditionally
2183   keep building even if they fail.
2184
2185 * It is now possible to use the latest (versioned or unversioned) edition
2186   in <vajload> by using special wildcard characters.  Also fixes
2187   Bugzilla Report 2236.
2188
2189 Changes from Ant 1.5.2 to Ant 1.5.3
2190 ===================================
2191
2192 Changes that could break older environments:
2193 --------------------------------------------
2194
2195 * The <zip> task and friends have again changed a method signature
2196   (sorry, was necessary to fix bug 17780).  The return type of
2197   getResourcesToAdd has changed.
2198
2199 Fixed bugs:
2200 -----------
2201
2202 * <zipfileset>'s filemode would get ignored and the dirmode was used
2203   for the included files as well.  As a side effect, WinZIP was unable
2204   to extract or display the files, so they seemed to be missing from
2205   the archive.  Bugzilla Report 17648.
2206
2207 * <ftp> could use the wrong path separator when trying to change the
2208   remote working directory.  Bugzilla Report 17735.
2209
2210 * <jar update="true"> would loose all original files if you didn't
2211   specify any nested <(zip)fileset>s and the manifest had changed.
2212   Bugzilla Report 17780.
2213
2214 * If you used a value starting with \ on Windows for the appxml
2215   attribute of <ear> or the webxml attribute of <war>, it would be
2216   ignored.  Bugzilla Report 17871.
2217
2218 * Ant will no longer implicitly add Sun's rt.jar in <javac> when you
2219   use jvc and don't specify a bootclasspath.  Bugzilla Report 18055.
2220
2221 * The prefix attribute of <zipfileset> would not generate directory
2222   entries for the prefix itself.  Bugzilla Report 18403.
2223
2224 * starteam checkout can now handle deleted labels.  Bugzilla Report 17646.
2225
2226 * The Unix wrapper script failed if you invoked it as a relative
2227   symlink and ANT_HOME has not been set.  Bugzilla Report 17721.
2228
2229 Other Changes:
2230 --------------
2231 * Added ability to specify manifest encoding for the <jar> and
2232   <manifest> tasks
2233
2234 Changes from Ant 1.5.1 to Ant 1.5.2
2235 =============================================
2236
2237 Changes that could break older environments:
2238 --------------------------------------------
2239 * ANT_OPTS environment variable is now applied at the start of the
2240   Java command line, allowing position specific parameters of some
2241   JVMs, such as -classic to be specified.
2242
2243 * ZipScanner#getIncludedFiles will now return the names of the ZipEntries
2244   that have been matched instead of the name of the archive.
2245
2246 * The <zip> task and friends have been heavily modified, almost every
2247   method signature of the Zip class has changed.  If you have subclassed
2248   Zip (or one of its subclasses), your class will most likely not
2249   compile against the current code base.  If it still compiles, it will
2250   probably not work as in Ant 1.5.1.
2251
2252 Fixed bugs:
2253 -----------
2254 * <translate> was not ignoring comment lines.
2255
2256 * <manifest> wouldn't update an existing manifest if only an attribute
2257   of an existing section changed.
2258
2259 * ant.bat now supports the ANT_ARGS and JAVACMD environment variables
2260   again (like Ant 1.5 did).
2261
2262 * The "plain" <junit> <formatter> could throw a NullPointerException
2263   if an error occurred in setUp.
2264
2265 * <junit> will now produce output when a test times out as well.
2266
2267 * <replace> would count some internal character replacements when
2268   reporting the number of replaced tokens.
2269
2270 * <concat> would cause an exception if a <filelist> pointed to files
2271   that do not exist.
2272
2273 * <javadoc> will now pass -source to custom doclets as well.
2274
2275 * <cvstagdiff> would throw a NullPointException if there had been no
2276   differences.
2277
2278 * <cvschangelog> could miss today's changes.
2279
2280 * <concat> could append newline characters between concatenated files.
2281
2282 * <xmlvalidate> ignored the specified encoding of the files to
2283   validate.
2284
2285 * the errorsbeginat attribute of the <http> condition didn't work.
2286
2287 * Ant will try to force loading of certain packages like com.sun.*
2288   from the system classloader.  The packages are determined by the
2289   version of the JVM running Ant.
2290
2291 * Ant didn't find the runtime libraries on IBM's JDK 1.4 for Linux.
2292
2293 * random component of temporary files is now always a positive integer.
2294
2295 * Ant could incorrectly try to use the 1.4 regexp implementation even
2296   if it isn't available if you run the JVM with -Xverify:none.
2297
2298 * Ant would die with an exception if you used nested <reference>
2299   elements in Ant and the refid attribute didn't point to an existing
2300   project reference.
2301
2302 * The <get> task can now be compiled (and Ant thus bootstrapped) using
2303   Kaffee.
2304
2305 * build.sysclasspath will now be honored by more tasks.
2306
2307 * The signjar keystore attribute has been reverted to a String allowing
2308   it to once again accept URLs. This should not affect current File based usage
2309   unless you are extending the Signjar task.
2310
2311 * <jar update="true"> would remove the original manifest.
2312
2313 * fix up folder creation in PVCS task
2314
2315 * <tar>'s up-to-date check didn't work for nested <(tar)fileset>s.
2316
2317 * Corrected a problem in XMLLogger where it would not associated
2318   messages with a taskdef'd task
2319
2320 * <uptodate> now works when using attributes (i.e. not filesets) and pointing
2321   to the same file
2322
2323 * Java task (and output system) now stores output which doos not end
2324   with a line feed.
2325
2326 * splash screen wouldn't disappear when build was finished.
2327
2328 * <exec> now supports OS/2.
2329
2330 * <zip> and friends would only update/recreate existing archives if
2331   the files to add/update have been newer than the archive.
2332
2333 * <javadoc>'s <link> element could fail for offline="true" on some JDKs.
2334
2335 Other changes:
2336 --------------
2337
2338 * MailLogger now sets the Date header correctly.
2339
2340 * Shipped XML parser is now Xerces 2.3.0
2341
2342 * signjar now accepts a maxmemory attribute to allow the memory allocated to the
2343   jarsigner tool to be specified. The jarsigner from the JDK's JAVA_HOME bin
2344   dir is now used rather than the first jarsigner on the path.
2345
2346 * **/.DS_Store has been added to the list of default pattern excludes.
2347
2348 * The Created-By header in the default manifest now contains the JVM
2349   vendor and version according to the jar specification. A new header,
2350   Ant-Version provides the Ant version used to create the jar.
2351
2352 * <zip> can now store Unix permissions in a way that can be
2353   reconstructed by Info-Zip's unzip command.
2354
2355 Changes from Ant 1.5.1Beta1 to 1.5.1
2356 ====================================
2357
2358 Fixed bugs:
2359 -----------
2360
2361 * <tstamp>'s prefix attribute failed to apply to nested <format> elements.
2362
2363 * <junitreport> created an empty junit-noframes.html if no format had
2364   been specified.
2365
2366 * <basename> would remove more than it should if the file name
2367   contained more than one dot.
2368
2369 * <filterset>s nested into <filterset>s didn't work.
2370
2371 Other changes:
2372 --------------
2373
2374 * Shipped XML parser is now Xerces 2.2.0
2375
2376 * Filesets now support a 'file' attribute, allowing a single-file
2377   fileset to be constructed without having to specify its parent
2378   directory separately.
2379
2380 * <junit> will now return the result of a call to getName instead of
2381   "unknown" for Test implementations that don't extend TestCase but have
2382   a public String getName() method.
2383
2384 Changes from Ant 1.5 to 1.5.1Beta1
2385 ==================================
2386
2387 Fixed bugs:
2388 -----------
2389 * Date/time in CvsChangeLog was in local timezone and 12 hour format leading
2390   to a problem when sorting by time. It is now UTC (GMT) and in 24-hour
2391   format as per cvs 'specifications'.
2392
2393 * CvsTagDiff now supports ampersand modules or modules that have a different
2394   root directory than their name.
2395
2396 * EjbJar threw NPEs for the Websphere element. The property 'websphere.home'
2397   was not documented.
2398
2399 * Mail example in the documentation was not correct.
2400
2401 * Checksum was broken in the following scenario:
2402   (using verifyproperty OR in a condition) AND using filesets
2403   with multiple files.
2404
2405 * The ExpandProperties filter threw NPEs when defined using
2406   the <filterreader> format.
2407
2408 * The sh wrapper script didn't work under Cygwin if ANT_HOME wasn't
2409   set with a Unix style filename.
2410
2411 * The sh wrapper script could fail if you started Ant from a directory
2412   with whitespace in its name.
2413
2414 * ant -diagnostics was not working properly when the task dependency
2415   was missing and was just printing the missing dependency.
2416
2417 * If a task got redefined via <taskdef>, it lost its child elements.
2418
2419 * <property>'s classpathref attribute was broken.
2420
2421 * <arg line="''" /> would result in no command line argument, will now
2422   be a single empty argument.  Use <arg value="''"/> if you need the
2423   quotes literally.
2424
2425 * <replaceregexp> could append a newline character at the end of the
2426   file.
2427
2428 Other changes:
2429 --------------
2430
2431 * Appendix E of Java Development with Ant (Loughran/Hatcher) was
2432   contributed to the docs.
2433
2434 * <available> will only print deprecration warnings if it is actually
2435   used to change the value of a property.
2436
2437 Changes from Ant 1.5beta3 to Ant 1.5
2438 ====================================
2439
2440 Changes that could break older environments:
2441 --------------------------------------------
2442
2443 * The filesetmanifest attribute added to <jar> after the 1.4.1
2444   release has been removed for now.  This change may affect only
2445   the 1.5Beta/1.6Alpha users.  An attempt will be made to add this
2446   feature back into Ant 1.6.
2447
2448 Fixed bugs:
2449 -----------
2450
2451 * <zip> and friends would always update existing archive if you set
2452   the update attribute to true.
2453
2454 * To support backward compatibility with older versions, <pathconvert>
2455   will once again set the property, even if the result is the empty
2456   string, unless the new 'setonempty' attribute is set to false|no|off
2457   (default is "true").
2458
2459 * The manifest task would crash XmlLogger
2460
2461 Other changes:
2462 --------------
2463
2464 * added **/.svn and **/.svn/** to the default excludes
2465
2466 Changes from Ant 1.5beta2 to Ant 1.5beta3
2467 =========================================
2468
2469 Changes that could break older environments:
2470 --------------------------------------------
2471
2472 * <pvcs> default filenameformat has been different from Ant 1.4.1.
2473   Now it is different from 1.5beta1 and 1.5beta2.
2474
2475 * <pathconvert> won't set the property if the result is the empty string.
2476
2477 Fixed bugs:
2478 -----------
2479
2480 * <available> could fail to find files or directories that happen to
2481   start with the name of the project's basedir but are not children of
2482   the basedir.
2483
2484 * Nested <property>'s inside <ant> can now be overriden by subsequent
2485   <ant> and <antcall> tasks.
2486
2487 * <xslt>'s outputtype attribute wouldn't do anything.
2488
2489 * <linecontains> filterreader could swallow lines.
2490
2491 * <sequential> used to configure the tasks (set their attributes)
2492   before the first task has been executed.  This means that properties
2493   that have been set by nested task seemed to be unset for the other
2494   tasks in the same <sequential> element.
2495
2496 * <javac>'s sourcepath setting has been ignored by some compiler
2497   implementations.
2498
2499 * <javadoc>'s packagelist attribute didn't work.
2500
2501 * the plain mailer would always use port 25 in <mail>.
2502
2503 * Ant's default logger could swallow empty lines.
2504
2505 * ejbjar's iPlanet nested element now can process multiple descriptors.
2506
2507 * IPlanetEjbc was looking in the wrong place for four iiop files.
2508
2509 * <javac> would pass the -source switch to JDK 1.3's javac, even
2510   though it doesn't support it.
2511
2512 Other changes:
2513 --------------
2514
2515 * <checksum> now uses a buffer (of configurable size).
2516
2517 * The "Trying to override task definition" warning has been degraded
2518   to verbose level if the two task definitions only differ in the class
2519   loader instance that has loaded the definition.
2520
2521 * Add a jvmargs to the ejbjar's weblogic element to allow additional
2522   arguments to be provided to the VM runnign ejbc. Document the
2523   jvmdebuglevel attribute which can be used to avoid warnings about
2524   interface classess being found on the classpath. Document the new
2525   <sysproperty> element which allows JVM properties to be defined.
2526   Added an outputdir attribute to allow the destination to be a
2527   directory into which the exploded jar is written.
2528
2529 * ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5
2530
2531 Changes from Ant 1.5beta1 to Ant 1.5beta2
2532 =========================================
2533
2534 Changes that could break older environments:
2535 --------------------------------------------
2536
2537 * Properties will now be expanded in mail message bodies.  This means
2538   that one $ sign will be stripped if your mail message contains the text $$.
2539
2540 * org.apache.tools.ant.taskdefs.Expand no longer extends MatchingTask.
2541
2542 * Available#setFile now again uses a File argument as it did in 1.4,
2543   this may break environments that have been adapted to the String
2544   argument version present in 1.5beta1.
2545
2546 Fixed bugs:
2547 -----------
2548 * When <move> attempts a rename, it deletes the destination file, if it
2549   exists, before renaming the source file.  However, <move> was not
2550   checking if the destination file was actually a directory before
2551   trying to delete it.
2552
2553 * Make CVS Tasks to work under Cygwin.
2554
2555 * Fix LineContains to handle huge files elegantly without causing
2556   Stack Overflows.
2557
2558 * if you ask for the "classic" compiler on Java1.4, you get upgraded to
2559   "modern" because there is no classic compiler any more.
2560
2561 * the <http> condition was viewing 404 'not found' exceptions as success. Now
2562   it defaults to viewing any response >=400 as an error, and has an
2563   errorsBeginAt attribute you can use if you want a higher or lower value.
2564
2565 * <get> throws a build exception on an http authorization error, unless you
2566   have set ignoreerrors to true.
2567
2568 * <wsdltodotnet> was spelt in Wintel case: <WsdlToDotnet>. It is now lower
2569   case, though the old spelling is retained for anyone who used it.
2570
2571 * Merging of Manifests in jar now works as documented.
2572
2573 * paths that have been separated by colons would be incorrectly parsed
2574   on NetWare.
2575
2576 * runant.pl now supports NetWare.
2577
2578 * <tempfile> and <setproxy> tasks were in beta1, but not defined by
2579   default; They now are. <tempfile> fills a property with the name of a
2580   temporary file; <setproxy> lets you set the JVM's http, ftp and socks proxy
2581   settings.
2582
2583 * <available classname="foo" ignoresystemclasses="true"> failed for
2584   JDK 1.1 and 1.2, even if the class could be found on the
2585   user-specified classpath.
2586
2587 * <property environment=... /> now works on z/OS.
2588
2589 * forked <javac> failed for the wrong reason on JDK 1.1 - Ant would
2590   use a temporary file to hold the names of the files to compile under
2591   some conditons, but 1.1 doesn't support this feature.  Ant will no
2592   longer try this, but you may run into problems with the length of the
2593   command line now.
2594
2595 * the refid attribute for <property>s nested into <ant> or <param>s
2596   nested into <antcall> didn't work.
2597
2598 * <replaceregexp> didn't work for nested <fileset>s.
2599
2600 * <javadoc> dropped sourcepath entries if no "interesting" .java
2601   source files  could be found below them.  This has been backwards
2602   incompatible and caused problems with custom doclets like xdoclet.
2603
2604 * Using the doclet, docletpath or docletpathref attributes of
2605   <javadoc> may have caused NullPointerExceptions.
2606
2607 * nested <filesets> of <javadoc> would include too much.
2608
2609 * <dependset> will no longer choke on <targetfileset>s that point to
2610   non-existing directories.
2611
2612 * <patch> didn't work at all.
2613
2614 * <replace> and <replaceregexp> now fail if the file they are working
2615   on is locked.
2616
2617 * <javadoc> would pick up the wrong executable in the combination JDK
2618   1.2 and AIX.
2619
2620 Other changes:
2621 --------------
2622
2623 * z/OS now gets detected by the os condition.
2624
2625 * <fileset> and <dirset> now have an optional followsymlink attribute
2626   that can prevent Ant from following symbolic links on some platforms.
2627
2628 * BeanShell is now supported in the <script> task.
2629
2630 * <ejbjar> under Weblogic attempts to use the ejbc20 compiler for 2.0 beans
2631   based on the deployment descriptor's DTD reference. Under weblogic 7.00 Beta
2632   this ejbc class has been deprecated. To avoid the deprecation warning use
2633   ejbcclass="weblogic.ejbc".
2634
2635 * <ejbjar> will add a manifest to the generated jar based on the naming
2636   convention in use. This overrides the manifest specified in the
2637   <ejbjar> attribute
2638
2639
2640 Changes from Ant 1.4.1 to 1.5beta1
2641 ==================================
2642
2643 Changes that could break older environments:
2644 --------------------------------------------
2645
2646 * Important: Single $ signs are no longer silently stripped!
2647   Before you panic that we have broken all your build files, we have kept
2648   the old "$$" -> "$" behaviour. So only build files which accidentally had
2649   a $ sign in a string that was being silently stripped may break.
2650   We added this fix to stop newbie confusion; if you want to write a
2651   build file which works on ant versions 1.4.1 or earlier, stay with
2652   the double $$ sign rule.
2653
2654 * Project.getBuildListeners now returns a clone of the listener
2655   list. Changes to the returned list will not affect the listeners
2656   currently attached to the Project. It also means that it is safe to
2657   iterate over the returned list if listeners are added or removed
2658   during the traversal.
2659
2660 * <pvcs> default filenameformat has been different from Ant 1.4.1.
2661
2662 * Some messages that are printed during startup will not be
2663   written to the logfile specified via -logfile as they might destroy
2664   the format of the file for special BuildLoggers (like XmlLogger).
2665
2666 * The filesetmanifest attribute added to <jar> after the 1.4.1
2667   release has been removed for now.  This change may affect only
2668   the 1.5Beta/1.6Alpha users.  An attempt will be made to add this
2669   feature back into Ant 1.6.
2670 * Shipped XML parser is now Xerces 2.0.1 along with the XML Parser APIs.
2671   XML Parser APIs is a separate jar that contains the necessary
2672   JAXP/DOM/SAX classes.
2673
2674 * <telnet> was fixed to expand properties inside nested <read> and
2675   <write> elements; before this only happened when you assigned the text
2676   to the string attribute. If you had $ signs in the string, they may
2677   need escaping.
2678
2679 * the RegexpMatcher interface has been extended to support case
2680   insensitive matches and other options - custom implementations of
2681   this interface won't work any longer.  We recommend to use the new
2682   Regexp interface that also supports substitution instead of the
2683   RegexpMatcher interface in the future.
2684
2685 * <gzip> will throw an exception if your src attribute points to a directory.
2686
2687 * Unjar, Unzip and Unwar will throw an exception if the Src attribute
2688   represents a directory.  Support for nested filesets is provided
2689   instead.
2690
2691 * It is no longer possible to overwrite a property using tasks like
2692   <condition>, <exec>, <pathconvert>, or <tstamp>. In some exceptional
2693   cases it will generate a warning if you attempt to overwrite an
2694   existing property.
2695
2696 * Taskwriters please note: Whenever tasks had any overloaded set* methods,
2697   Ant's introspection mechanism would select the last overloaded method
2698   provided to it by the Java Runtime.  A modification has now been made such
2699   that when the Java Runtime provides a method with a String as its argument,
2700   a check is made to see if there is another overloaded method that takes in
2701   some other type of argument.  If there is one such method, then the method
2702   that takes in String as an argument is not selected by the Introspector.
2703
2704 * The pattern definition **/._* has been included into the Default
2705   Excludes list.
2706
2707 * <propertyfile>'s <entry> element was modified to remove "never" as a value
2708   as its behavior was undocumented and flakey.
2709
2710 * The -projecthelp flag now only prints out targets that include the
2711   'description' attribute, unless the -verbose or -debug flag is included
2712   on the Ant command line.
2713
2714 * Ant's testcases now require JUnit 3.7 or above, as they now use the new
2715   assertTrue method instead of assert.
2716
2717 * If the 'output' attribute of <ant> is set to a simple filename or a
2718   relative path, the file is created relative to ${basedir}, not ${user.dir}.
2719
2720 * The default value for build.compiler is now javac1.x with x
2721   depending on the JDK that is running Ant instead of classic/modern.
2722
2723 Fixed bugs:
2724 -----------
2725
2726 * <available> could fail to find files or directories that happen to
2727   start with the name of the project's basedir but are not children of
2728   the basedir.
2729
2730 * Nested <property>'s inside <ant> can now be overriden by subsequent
2731   <ant> and <antcall> tasks.
2732
2733 * <xslt>'s outputtype attribute wouldn't do anything.
2734
2735 * <linecontains> filterreader could swallow lines.
2736
2737 * <sequential> used to configure the tasks (set their attributes)
2738   before the first task has been executed.  This means that properties
2739   that have been set by nested task seemed to be unset for the other
2740   tasks in the same <sequential> element.
2741
2742 * <javac>'s sourcepath setting has been ignored by some compiler
2743   implementations.
2744
2745 * <javadoc>'s packagelist attribute didn't work.
2746
2747 * the plain mailer would always use port 25 in <mail>.
2748
2749 * Ant's default logger could swallow empty lines.
2750
2751 * ejbjar's iPlanet nested element now can process multiple descriptors.
2752
2753 * IPlanetEjbc was looking in the wrong place for four iiop files.
2754
2755 * <javac> would pass the -source switch to JDK 1.3's javac, even
2756   though it doesn't support it.
2757
2758 * <zip> and friends would always update existing archive if you set
2759   the update attribute to true.
2760
2761 * To support backward compatibility with older versions, <pathconvert>
2762   will once again set the property, even if the result is the empty
2763   string, unless the new 'setonempty' attribute is set to false|no|off
2764   (default is "true").
2765
2766 * The manifest task would crash XmlLogger
2767
2768 * A bug existed that prevented generated log files from being deleted as
2769   part of the build process itself.  This has now been fixed.
2770
2771 * Fixed bug where <move> ignored <filterset>s.
2772
2773 * Ant works properly with the combination of Java1.4/WindowsXP.
2774
2775 * Fixed bug where <java> used to sometimes invoke class constructors twice.
2776
2777 * Fixed bug with 4NT shell support.
2778
2779 * Fixed bug where ant would not perform ftp without remotedir being
2780   specified even though this was not mandatory.
2781
2782 * Fixed bug where ant would not copy system properties into new Project
2783   in ant/antcall tasks when inheritall="false" is set.
2784
2785 * <propertyfile> would not close the original property file.
2786
2787 * <ant> will no longer override a subbuild's basedir with inheritall="true".
2788
2789 * Fixed problem with the built-in <junit> formatters which assumed
2790   that only one test could be running at the same time - this is not
2791   necessarily true, see junit.extensions.ActiveTestSuite.
2792
2793 * <jar>'s whenEmpty attribute is useless as JARs are never empty, they
2794   contain at least a manifest file, therefore it will now print a
2795   warning and do nothing.
2796
2797 * <typedef> hasn't been all that useful as it couldn't be used outside
2798   of targets (it can now) and nested "unknown" elements have always
2799   been considered to be tasks (changed as well).
2800
2801 * <fixcrlf> would fail for files that contained lines longer than 8kB.
2802
2803 * Some junit formatters incorrectly assumed that all testcases would
2804   inherit from junit.framework.TestCase.
2805
2806 * <fixcrlf> dropped the first characters from Mac files.
2807
2808 Other changes:
2809 --------------
2810
2811 * <checksum> now uses a buffer (of configurable size).
2812
2813 * The "Trying to override task definition" warning has been degraded
2814   to verbose level if the two task definitions only differ in the class
2815   loader instance that has loaded the definition.
2816
2817 * Add a jvmargs to the ejbjar's weblogic element to allow additional
2818   arguments to be provided to the VM runnign ejbc. Document the
2819   jvmdebuglevel attribute which can be used to avoid warnings about
2820   interface classess being found on the classpath. Document the new
2821   <sysproperty> element which allows JVM properties to be defined.
2822   Added an outputdir attribute to allow the destination to be a
2823   directory into which the exploded jar is written.
2824
2825 * ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5
2826
2827 * added **/.svn and **/.svn/** to the default excludes.
2828
2829 * Selector Elements now provide a way to create filesets based on
2830   sophisticated selection criteria.
2831
2832 * Gzip and Bzip2 files can now be constructed in the fly when using
2833   the tar task without having to create the intermediate tar file on
2834   disk.  The Untar task can also untar GZip and BZip2 files on the fly
2835   without creating the intermediate tar file.
2836
2837 * New optional type, <classfileset> added.
2838
2839 * <ejbjar> now allows control over which additional classes and interfaces
2840   are added to the generated EJB jars. A new attribute "dependency" can be
2841   defined which controls what classes are added. The addition of classes now
2842   uses the Jakarta-BCEL library rather than reflection, meaning bean classes are
2843   no longer loaded into Ant's JVM. The default dependency analyzer is known as
2844   the ancestor analyzer. It provides the same behaviour as the 1.4.1 version of
2845   <ejbjar>. If the BCEL library is not present, a warning will be issued stating
2846   the ancestor analyzer is not available. In this case <ejbjar> will continue
2847   to function but will not add super classes to the jar.
2848
2849 * <available> has a new attribute named ignoreSystemClasses.
2850
2851 * New task <cvschangelog/> generates an XML report of changes that occur
2852   on CVS repository.
2853
2854 * New filter readers: ClassConstants, ExpandProperties, HeadFilter,
2855   LineContains, LineContainsRegExp, PrefixLines, ReplaceTokens,
2856   StripJavaComments, StripLineBreaks, StripLineComments, TabsToSpaces,
2857   TailFilter.
2858
2859 * <copy>, <loadfile>, <loadproperties>, <move> support FilterChains
2860   of FilterReaders.
2861
2862 * New task <loadproperties> to load contents of file as Ant properties,
2863   with nested <filterchain> elements.
2864
2865 * New task <loadfile> to load a whole file into a property.
2866
2867 * New task <echoproperties> to list your current properties to the screen
2868   or a file.
2869
2870 * New tasks <bzip2> and <bunzip2> to pack and unpack files using the
2871   BZip2 alogrithm.
2872
2873 * New tasks <replaceregexp>, <checksum>, <translate>, <waitfor>,
2874   <manifest>, <vsscp>, <vssadd>, <vsscreate>, <splash>, <basename>, <dirname>,
2875   <concat>, <sourceoffsite>, <jarlib-available>, <jarlib-display>,
2876   <jarlib-manifest>, <jarlib-resolve>.
2877
2878 * A new combined <mail> task, which replaces the old <mail> and
2879   <mimemail> tasks, has been added.  The <mimemail> task, and
2880   old SendEmail and MimeMail classes have been deprecated.
2881
2882 * Mail task allows specification of port number.
2883
2884 * Users can control what <zip> and <jar> must do when duplicate files
2885   are found.  A new element <zipgroupfileset> allows for multiple zip
2886   files to be merged into the archive.  In addition, <jar> also has
2887   another new attribute: filesetmanifest.  The existing manifest
2888   attribute of <jar> now also accepts the name of a jar added through
2889   a fileset.
2890
2891 * gzip now checks that the zipfile is older than the source file
2892   before rebuilding the zipfile.
2893
2894 * TarFileset takes in three new attributes - fullpath, prefix
2895   and preserveLeadingSlashes.
2896
2897 * <move> attempts to rename the directory, if everything inside it is
2898   included, before performing file-by-file moves.  This attempt will
2899   be done only if filtering is off and if mappers are not used.  This
2900   is a performance improvement and there is no change otherwise in
2901   the funtionality of this task.
2902
2903 * Exec task has extra attribute "resultproperty" to get the return code
2904   into a property.
2905
2906 * Exec task prints a message when a timed-out process is killed.
2907
2908 * Added optional attributes - name, arch and version to the <os> task.
2909
2910 * Unjar, Untar, Unwar and Unzip now support patternsets to
2911   select files from an archive for extraction.  Filesets may be
2912   used to select archived files for unarchival.
2913
2914 * Javac task allows debug levels to be specified.  Debug levels
2915   will have an effect only when the modern compiler or the
2916   classic compiler (version 1.2 and higher) is used and debugging
2917   is enabled.
2918
2919 * Added support for specifying CVS_RSH in the <cvs/> task
2920
2921 * The attributes zipfile, jarfile, warfile and earfile (from the Zip,
2922   Jar, War and Ear tasks) have been deprecated and superseded by a
2923   new attribute "destfile".
2924
2925 * Added new conditions <isset>, <checksum>, <http>, <socket>, <contains>,
2926   <filesmatch>.
2927
2928 * <taskdef> and <typedef> will now emit a warning if a task/type of
2929   the given name already exists.
2930
2931 * A new revision of VAJ tasks: The most important new feature
2932   is the ability to execute VAJ tasks from the command line by
2933   exploiting the Remote Tool Access feature of VAJ.
2934
2935 * Improved support for Novell NetWare.
2936
2937 * Added an optional encoding attribute to <fixcrlf>.
2938
2939 * <apply> has a new attribute relative that allows users to pass the
2940   filenames as relative instead of absolute paths on the command line.
2941
2942 * References can now be copied into the child build by <ant> and
2943   <antcall> using nested <reference> elements or the new inheritRefs
2944   attribute.
2945
2946 * <fail> now supports builds to fail based on conditions via if and
2947   unless attributes.
2948
2949 * Ant now comes with two new BuildLogger implementations - one that
2950   can send emails containing a log of the build process (MailLogger),
2951   and one that colorizes the output based on message levels, using
2952   ANSI color code escape sequences (AnsiColorLogger).
2953
2954 * A "package" mapper type has been added to allow package directory
2955   names replaced with the dotted form.
2956
2957 * You can now specify environment variables in the <java> and <junit> tasks
2958   if the fork attribute has been set to true.
2959
2960 * -propertyfile command-line option has been added to load an entire
2961   property file just as -D properties are declared (as user properties).
2962   -D properties take precedence over -propertyfile specified ones.
2963
2964 * You can now set an ANT_ARGS environment variable to hold arguments you
2965   always want passed to the 'ant' command -- for example, if you always
2966   want to use a different logger or the -find flag.
2967
2968 * <tstamp> now supports a new "prefix" attribute to prefix properties set.
2969
2970 * You can now specify the -sourcepath for <javac> explicitly.
2971
2972 * <javac> now supports a new "listfiles" attribute to list the source
2973   files it's handing off to the compiler.
2974
2975 * The compiler implementation for <javac> can now be chosen on a task by
2976   task basis.  The new "compiler" attribute of <javac> can be used to override
2977   the value of the build.compiler property, if set.
2978
2979 * <javac> has a new nested element, <compilerarg>, which allows you
2980   to specify additional args for the specific compiler you're using.
2981
2982 * <javac>'s "source" attribute is now enabled for jikes as well.
2983
2984 * <propertyfile>'s <entry> now has a 'unit' attribute to specify the
2985   increment/decrement unit on date operations.
2986
2987 * <property> now supports a 'prefix' attribute when loading from a file
2988   or resource.
2989
2990 * In Ant 1.4, a feature has been added to the <junit> task that would
2991   add ant.jar, optional.jar and junit.jar implicitly to the classpath -
2992   this feature can now be disabled by setting the new includeantruntime
2993   attribute to false.
2994
2995 * <style> behaves differently from any other directory-based task, as it
2996   processes all files that it finds in included directories in
2997   addition to the files matched by your patterns.  There is now a new
2998   attribute, 'scanincludeddirectories', to suppress this behavior.
2999
3000 * <javadoc> now supports a <tag> nested element to provide the -tag option
3001   to the standard Java 1.4 doclet. The element is ignored when not running
3002   on Java 1.4.
3003
3004 * <ftp> can now chmod files on a remote server that supports
3005   "site chmod", as well as set the umask before transferring files, if
3006   the server supports "site umask".
3007
3008 * New <serverdeploy> "optional" task.
3009
3010 * <patternset> now supports nested patternsets.
3011
3012 * Perforce tasks now support a "failonerror" attribute (defaults to "true").
3013
3014 * Open Source application server JOnAS support:
3015     EJB hot deploy and deploy with <serverdeploy> and <ejbjar>
3016
3017 * Added new DirSet (<dirset>) datatype.
3018
3019 * <path> now supports nested <dirset> and <filelist> elements.
3020
3021 * <pathconvert> now supports nested <dirset> and <filelist> elements.
3022
3023 * <pathconvert>'s "dirsep" and "pathsep" attributes now accept
3024   multi-character values.
3025
3026 * <copy> task now has a 'failonerror' attribute to allow keep-going
3027   behaviour when the file to be copied is not found (defaults to "true").
3028
3029 * <uptodate> now has a 'srcfile' attribute to allow specifying a
3030   full-path filename.
3031
3032 * <exec>, <sql> and <java> now support append attributes to allow
3033   appending the output to an existing file.
3034
3035 * <java> now supports a timeout attribute analog to <exec> - it is
3036   highly recommended to only use it together with fork="true".
3037
3038 * <javadoc> now supports a source attribute to enable javadoc to
3039   handle assertions present in JDK 1.4 source code.
3040
3041 * <replace> supports a new replacefilterfile attribute that
3042   automatically turns all properties of a given file into
3043   replacefilters.
3044
3045 * An alias of <xslt> has been added to refer to the <style> task.
3046
3047 * The compiler implementation for <rmic> can now be chosen on a task by
3048   task basis.  The new "compiler" attribute of <rmic> can be used to override
3049   the value of the build.rmic property, if set.
3050
3051 * <rmic> has a new nested element, <compilerarg>, which allows you
3052   to specify additional args for the specific compiler you're using.
3053
3054 * org.apache.tools.ant.XmlLogger now is a BuildLogger, rather than just
3055   a BuildListener. It can operate in either mode successfully.
3056
3057 * <junit> has a new attribute "showoutput".  If set to true, output
3058   generated by tests will be sent to Ant's logging system as well as
3059   to the formatters (instead of sending it to the formatters
3060   exclusively).
3061
3062 * Ant has now a pluggable way to prompt users for input, which is used
3063   by the new <input> task.  IDE integrators can provide an
3064   implementation of the InputHandler interface to decouple Ant's input
3065   from the console.  An implementation that gets its input from a file
3066   for unattended builds is part of Ant's distribution.
3067
3068   For more details see docs/manual/inputhandler.html.
3069
3070 * <patch> has a new attribute that selects the directory in which to
3071   run the command.
3072
3073 * <javadoc> now supports two new nested elements, <fileset> and <packageset>.
3074
3075
3076 Changes from Ant 1.4 to Ant 1.4.1
3077 ===========================================
3078
3079 Fixed bugs:
3080 -----------
3081
3082 * <ant>'s antfile attribute will now also be considered an absolute path on
3083   Windows systems, if it starts with a \ and no drive specifier.
3084
3085 * The fullpath attribute of <zipfileset> has been ignored if you used
3086   the src attribute at the same time.
3087
3088 * The manifest file is now always placed as the second entry (after /META-INF)
3089   in generated jars. This allows the manifest to be read by JarInputStreams
3090
3091 * Fixed bug in depend task which would fail with a NullPointerException if no
3092   dependency cache was specified.
3093
3094 * sql task now handles REM statements correctly so that lines starying with rem
3095   but which are not comments are actually processed.
3096
3097 * XMLLogger now uses the task's name rather than the classname
3098
3099 * <mapper>s will now work as expected if the to pattern expands to an
3100   absolute pathname.
3101
3102 * <javac> didn't ignore memory settings in non-fork mode
3103
3104 * <cab> didn't split the options attribute into several command line
3105   arguments correctly.
3106
3107 Other changes:
3108 --------------
3109
3110 * New source attribute for <javac> to enable assertion in JDK 1.4
3111
3112 * XmlLogger and <antstructure> now add an encoding declaration to the
3113   XML files they generate.
3114
3115 * <fileset> has a new attribute "casesensitive" to make it match
3116   filenames in a case insensitive way (if you set it to false) - by
3117   default filesets remain case sensitive.
3118
3119 Changes from Ant 1.3 to Ant 1.4
3120 ===========================================
3121
3122 Changes that could break older environments:
3123 --------------------------------------------
3124 * JUnitReport now uses the xalan redirect extension for multi-output.
3125   With Xalan 1.2.2 it forces the use of bsf.jar in the classpath.
3126   (Available in the xalan distribution). It is recommended to switch
3127   to Xalan 2.x that do not need it.
3128
3129 * Zip.setWhenempty() has changed its signature.
3130
3131 * <rmic> is now implemented using a factory. This makes extending
3132   rmic to use a new compiler a lot easier but may break custom
3133   versions of this task that rely on the old implementation.
3134
3135 * several Zip methods have changed their signature as we now use a Zip
3136   package of our own that handles Unix permissions for directories.
3137   Furthermore <zip> will now use the platform's default character
3138   encoding for filenames - this is consistent with the command line
3139   ZIP tools, but causes problems if you try to open them from within
3140   Java and your filenames contain non US-ASCII characters. Use the new
3141   encoding attribute of the task and set it to UTF8 to get the old
3142   behavior.
3143
3144 * The <pvcs> task has been moved to a package of its own.
3145
3146 * JUnitResultFormater has two additional methods that must be
3147   implemented by custom formatters.
3148
3149 * Ant will no longer use the canonical version of a path internally -
3150   this may yield different results on filesystems that support
3151   symbolic links.
3152
3153 * The output generated by the xml formatter for <junit> has changed
3154   again, it doesn't format the numeric value in the time attribute anymore.
3155
3156 * Pattern matching rules have changes slightly, the pattern foo*
3157   doesn't match files contained in a directory named foo - use foo/*
3158   instead.
3159
3160 * <fixcrlf> will not remove trailing whitespace at the end of lines anymore.
3161
3162 * The Classloader usage has been changed for the taskdef, property, available
3163   and sql tasks so that it delegates to the parent classloader. This may cause
3164   ClassNotFoundExceptions to be thrown if a system class attempts to load a
3165   class in the taskdef's classpath (typically factory objects).
3166
3167 * Ant now allows multithreading of tasks and the containment of tasks within
3168   other tasks. This can break customer listeners which do not expect messages
3169   from a task before the previous task has finished.
3170
3171 * Ant now installs its own ouput stream into System.out to route output to the
3172   task currently executing on the current thread. This also means that all
3173   output is now routed as Ant message events. Customer listeners and loggers
3174   should not call System.out at any time. This has always been true but such
3175   usage now will cause problems due to possible recursion.
3176
3177 * Invalid manifest files will now cause build failures in the <jar> task.
3178
3179 * Ant Introspection now looks for methods with method names starting with
3180   addConfigured. When called these methods are passed an argument after it has
3181   been configured from the build file. Custom tasks supporting nested elements
3182   starting with the name configured will no longer function.
3183
3184 * The environment variable JAVACMD that can be used to specify the
3185   java executable to Ant's wrapper scripts must not contain additional
3186   command line parameters any longer - please use the environment
3187   variable ANT_OPTS for such parameters now.
3188
3189 * Ant's wrapper scripts now quote the CLASSPATH environment variable, thus
3190   supporting classpaths which refer to directories containing spaces. This means
3191   that the CLASSPATH environment variable cannot have quotes. Any quotes should
3192   be removed. This will not affect the operation of the CLASSPATH environment
3193   variable in other contexts.
3194
3195 * A delete task like
3196   <delete includeEmptyFilesets="true">
3197     <fileset dir="somedir" />
3198   </delete>
3199   will now remove "somedir" as well, unless there are still files left
3200   in it (matched by the default excludes).
3201
3202 * The copy task will now fail if the file to be copied is not found.
3203
3204 * Ant properties defined in properties files now behave the same way as
3205   properties defined in the build file. In particular the $ character needs
3206   to be escaped in property values by doubling it to $$. So, to define a
3207   property with the value $hello, you need to define it in a properties file
3208   as
3209     test.prop=$$hello
3210   This was not the case in Ant 1.3
3211
3212 Other changes:
3213 --------------
3214
3215 * New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout,
3216   typedef, sleep, mimemail, set of tasks for Continuus/Synergy, dependset,
3217   condition, maudit, mmetrics, jpcoverage, jpcovreport, jpcovmerge
3218
3219 * Ant now uses JAXP 1.1
3220
3221 * rmic now supports Kaffe's and Weblogic's version of rmic.
3222
3223 * new magic property build.rmic to chose the rmic implementation
3224
3225 * <tar> will now add empty directories as well
3226
3227 * you can now specify a description for <p4change>
3228
3229 * <touch> can now work on <fileset>s
3230
3231 * <uptodate> now supports a value attribute
3232
3233 * <fail> supports nested text
3234
3235 * <fixcrlf> won't override files that are already in the correct
3236    format.
3237
3238 * <sql> now supports REM comments as well as // and --
3239
3240 * <jar> now has a nested <metainf> element following the same idea as
3241   <war>'s <webinf>.
3242
3243 * <pvcs> can now handle multiple projects.
3244
3245 * <available> now has a "type" attribute you can use in conjunction
3246   with the "file" attribute to specify whether the "file" you're
3247   looking for is a file or a directory.
3248
3249 * New <junit> formatter named "brief"
3250
3251 * <ejbjar> changes
3252   * Add support for Borland Application Server to the <ejbjar> task using
3253     a <borland> nested element.
3254   * Add support for iPlanet Application Server to the <ejbjar> task. Also
3255     includes some iPlanet utility tasks
3256   * Add support for JBoss Application Server to the <ejbjar> task.
3257   * Add a naming attribute to control the naming scheme that
3258     ejbjar uses to name the generated EJB jars.
3259   * Weblogic element now sets the compiler class for EJB 2.0 beans
3260   * <dtd> elements can be specified at the <ejbjar> level for building generic
3261     beans
3262   * <dtd> elements can now be URLs
3263   * Allow the manifest to be specified for the generated jars
3264   * The weblogic element now supprts an attribte noEJBC to skip the processing
3265     of the jar by ejbc. The ejbc step will then occur at deployment
3266   * weblogic will tell ejbc to use Jikes compiler if build.compiler is set to
3267     jikes. It can be restored to the default, javac, operation if desired.
3268
3269 * Allow the <sql> Delimiter to be set in the so that Oracle stored procs may be
3270   entered
3271
3272 * <execon> and <apply> can now optionally skip empty filesets.
3273
3274 * <javadoc> has a new useexternalfile attribute that makes it use a
3275   temporary file for sourcefile and package names - helps to defeat
3276   command line length limitations.
3277
3278 * Data types like <path> can now be defined inside of <target>s
3279
3280 * you can now specify a classpath for <style> - the XSLZ processor
3281   will be loaded from this path
3282
3283 * added a force attribute to <style> to support dependencies that the
3284   task cannot determine itself (dependency on parameters, not file
3285   modification times for example)
3286
3287 * added vmlauncher attribute to exec tasks. This defaults to true. If
3288   it is set to false, the VM's ability to launch commands in bypassed
3289   and the OS shell, either directly or through the auxillary antRun
3290   scripts is used.
3291
3292 * regexp mapper now supports the java.util.regex package of JDK 1.4.
3293
3294 * New filesonly attribute for <zip> and friends to suppress directory
3295   entries.
3296
3297 * New update attribute for <zip> and friends - update an existing
3298   archive instead of creating a new one.
3299
3300 * <apply> and <execon> have been merged into a single task.
3301
3302 * added vssver.scc to the default excludes
3303
3304 * <available> has a new filepath attribute/nested element that allows
3305   you top search for a file in a given path.
3306
3307 * <junit> can now optionally set a property on test failure.
3308
3309 * <taskdef> can now define several tasks at once, reading the
3310   name/classname pairs from a property file or resource.
3311
3312 * <unzip/unjar/unwar> and <untar> now have an overwrite attribute that
3313   defaults to true.  If set to false, files that are newer than the
3314   files in the archive will not be replaced.
3315
3316 * <patternset> and <fileset> now support nested <in/excludesfile>
3317   elements - using these you can have more than one in/excludes file
3318   per <patternset>.
3319
3320 * Three new supported compilers for javac: kjc for kopi, gcj for the
3321   gcc frontend and sj for Symantec's compiler.
3322   In addition extJavac or the new fork attribute can be
3323   used to run the JDK's javac in a JVM separate from Ant.
3324
3325 * <fixrlf> can now with CR only line-ends and can use an arbitraty
3326   between 2 and 80.
3327
3328 * The .NET tasks have been adapted to the beta2 release of the framework.
3329
3330 * <move> will now try to rename() files before copying them byte by
3331   byte - only if filtering is of, of course.
3332
3333 * <ant> and <antcall> tasks now support a new attribute inheritAll. When set to
3334   false, only user properties are passed through to the target Ant instance.
3335   This includes properties set on the command line and properties explicitly
3336   passed
3337
3338 * <javadoc> now skips off line links if the package list cannot be found.
3339
3340 * <wlrun> now allows the security policy file to exist outside the weblogic
3341   directory.
3342
3343 * <java> task will set the Thread contextClassLoader under JDKs 1.2+ to the
3344   classloader for the class being executed.
3345
3346 * Introduce the concept of a TaskContainer - a task or element which can contain
3347   Ant Tasks.
3348
3349 * Add new tasks implementing the TaskContainer interface <parallel> and
3350   <sequential> which allow parallel execution of tasks to be specified.
3351
3352 * <depend> task will now take into account dependencies on jar files and class
3353   files from a given classpath.
3354
3355 * <jar> manifest entries may now be specified in the build file either
3356   completely or to be merged with a manifest file.
3357
3358 * <tstamp> task custom formats now support locales.
3359
3360 * Added a listner which will forward events to Log4J. The log4j configuration
3361   file should be in the directory from which Ant is run or passed as a system
3362   property using a JVM argument.
3363
3364 * Introduced the concept of <filtersets> to allow for more control in which
3365   filters get applied in a <copy> or <move> operation.
3366
3367 * Added nowarn attribute to javac and deprecated the Jikes-magic property
3368   build.compiler.warnings.
3369
3370 * The <depend> task cache format has changed and all dependency information is
3371   now stored in a single file.
3372
3373 Fixed bugs:
3374 -----------
3375
3376 * Testcases have been made independent of current working directory.
3377
3378 * Input ZIP-Files will be closed when using a <zipfileset>.
3379
3380 * p4 tasks now don't fail if user, port or client have been omitted
3381   (and this is acceptable for the context of the command).
3382
3383 * <javah>'s outputfile attribute will be resolved as relative to the
3384   projects basedir.
3385
3386 * <antstructure> should create a valid DTD for propertyfile.operation.entry
3387   and omit tasks it fails to load.
3388
3389 * won't try to pass a -bootclasspath flag to javac 1.1 anymore
3390
3391 * <style>'s style attribute no handles absolute paths correctly.
3392
3393 * <delete includeemptydirs="true"> now deletes more than just the leaf
3394   directories.
3395
3396 * You can now specify a <fileset> for a directory that doesn't exist at
3397   declaration time but will created before the fileset gets used for the
3398   first time.
3399
3400 * If the quiet attribute has been set, <delete> will handle <fileset>s
3401   with non-existing directories gracefully.
3402
3403 * Output written by testcases will now be captured by the <junit> task
3404   and passed to the formatters.
3405
3406 * Quote the -group parameter to Javadoc as per the specification
3407
3408 * Initialise classes when loaded through the AntClassLoader - that is, run
3409   static initializers
3410
3411 * Implement getResource() and getResources() in AntClassLoader
3412
3413 * Create the <ejbjar> weblogic command line as a set of arguments rather than
3414   as a single line. Avoids problems with paths which contain spaces.
3415
3416 * <ejbjar> now fails when the weblogic ejbc compiler reports an error.
3417
3418 * Make the AntClassLoader load resources in the same order as it currently
3419   loads classes.
3420
3421 * Handle classpaths with spaces
3422
3423 * Make sure XSLT processors close their output files in <style>.
3424
3425 * perform proper uptodate check in <rmic> when compiling for IIOP.
3426
3427 * <jjtree>'s uptodate test works even if outputdirectory is not the
3428   parent dir of target
3429
3430 * <copy> will remove target file (if it exists) before writing to it -
3431   this avoids problems with links on filesystems that support them.
3432
3433 * <ftp> now properly recurses remote directories.
3434
3435 * <ftp> closes remote connection when it's done.
3436
3437 * <junit> tries to include all necessary classes for the task itself
3438   to the classpath when running in fork mode - doesn't work for JDK 1.1
3439
3440 * <apply> and <execon> do now execute the command only once, if you
3441   specify the parallel attribute - instead of once per fileset.
3442
3443 * directory based tasks and fileset could miss some included files in
3444   directories that have been excluded
3445
3446 * <fixcrlf> failed for large files.
3447
3448 * <move> removed files you tried to move to themselves.
3449
3450 * <sql> task will not trty to print the result set unless the query succeeded.
3451
3452 * Ant classloader will now ignore paths which are invalid relative to the
3453   project base
3454
3455 * <ejbjar> weblogic elements check for jar file changes has been fixed.
3456   Previously some changes would not be included.
3457
3458 * properties loaded from properties files are now resolved internally. This
3459   removes the spurious warnings about usage of properties which have not been
3460   set.
3461
3462 * <jar> task and friends now process the JAR manifest to ensure it is valid.
3463
3464 * The task finished event now includes any exception thrown by the task.
3465
3466 * <java> task now supports a jvmVersion attribute so that if another JVM is
3467   being used, Ant can determine which options to use for features such as the
3468   VM memory limits
3469
3470
3471 Changes from Ant 1.2 to Ant 1.3
3472 ===========================================
3473
3474 Changes that could break older environments:
3475 --------------------------------------------
3476
3477 * Ant doesn't search for the buildfile anymore, unless you use the new
3478   -find argument.
3479
3480 * <perforce> has been replaced by a number of new tasks.
3481
3482 * <javac> is now implemented using a factory. This makes extending
3483   javac to use a new compiler a lot easier but may break custom
3484   versions of this task that rely on the old implementation.
3485
3486 * The output generated by the xml formatter for <junit> has changed a
3487   little, it doesn't append " sec" in the time attribute anymore.
3488
3489 Other changes:
3490 --------------
3491
3492 * A GUI Frontend: Antidote. This is currently in development. At this
3493   time, this is not part of the Ant release, although the source is
3494   included if you are interested.
3495
3496 * New tasks: stylebook, propertyfile, depend, antlr, telnet, csc,
3497   ilasm, apply, javah, several clearcase tasks, junitreport, sound
3498
3499 * Added output attribute to <java>.
3500
3501 * Added nested zipfileset element to <zip>
3502
3503 * Changed <sql> so that printing is at the task level rather than
3504   the statement level.
3505
3506 * javadoc task will pass -d flag to any doclet if the destDir attribute is
3507   given. If the doclet does not accept the -d flag then omit the destdir
3508   attribute.
3509
3510 * <cab> can work on non-Windows platforms with the help of libcabinet.
3511   See http://trill.cis.fordham.edu/~barbacha/cabinet_library/.
3512
3513 * <ftp> now supports passive mode.
3514
3515 * New <mapper> data type that can be used to get influence on the
3516   target files for some tasks like <copy> or enable new types of tasks
3517   like <apply>.
3518
3519 * <execon> provides more control over the command line now, the names
3520   of the source files are no longer required to be at the end of the
3521   command.
3522
3523 * Style tasks will now support TraX compliant XSL processors if one is present
3524   in your classpath.
3525
3526 * Added a failonerror to the javac task. If set to false, the build will
3527   continue even if there are compilation errors.
3528
3529 * Added nested format elements to the tstamp task allowing additional time
3530   formats to be defined for arbitrary properties.
3531
3532 * Added classpath attribute and nested classpath element to <property>
3533   to make the resource attribute more powerful.
3534
3535 * ${} property expansion will now be performed on the patterns read
3536   from files specified as includesfile or excludesfile attributes.
3537
3538 * The <tar> and <untar> tasks now support GNU format for handling paths
3539   which are greater than 100 characters in length. In addition the <tar>
3540   task now supports nested filesets through which the file permissions
3541   may be controlled.
3542
3543 * wlrun, wlstop and ejbjar now support Weblogic 6.0
3544
3545 * The MPasre task has been updated to work with MParse 2.0
3546
3547 * The documentation has been significantly updated.
3548
3549
3550 Fixed bugs:
3551 -----------
3552
3553 * <signjar> no longer uses deprecated methods.
3554
3555 * javadoc's failonerror attribute works again
3556
3557 * javadoc's additionalparam attribute will now be split into separate
3558   parameters (on spaces) to allow for more than one parameter.
3559
3560 * Changed <sql> task so that printing result sets works on Oracle
3561
3562 * Changes to ddcreator and ejbc helper to respect the descriptor hierarchy
3563   keppgenerated in ejbc can now be turned off
3564
3565 * ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor.
3566   CMP files are included by parsing the weblogic deployment descriptor rather
3567   than relying on the naming convention used in ant 1.2
3568
3569 * ejbjar includes super classes and super interfaces into the generated ejb
3570   jar files. The <support> nested element allows support classes to be
3571   included in the EJB jar. The toplink element should now correctly locate
3572   the toplink descriptor.
3573
3574 * <vssget> now correctly deals with spaces in arguments
3575
3576 * <jar> fails early if a given manifest file doesn't exist
3577
3578 * <rmic> doesn't search for the _Skel file anymore when stubversion is
3579   set to 1.2.
3580
3581 * <rmic> uses the the same classpath to verify a class can be rmic'd
3582   as it passes to the compiler.
3583
3584 * org.apache.tools.mail.MailMessage (and therefore <mail>) can now
3585   handle SMTP servers sending multi line responses.
3586
3587 * nested <classpath> elements of <taskdef> now work for <taskdef>s not
3588   nested into <target> as well.
3589
3590 * <property> and <available> will search for the resource "foo" instead
3591   of "/org/apache/tools/ant/taskdefs/foo" when given a relative resource
3592   name foo.
3593
3594 * Handle build files in directories whose name contained a "#" character
3595
3596 * <junit> can now log to files whose name contains a comma as well.
3597
3598 * The AntClassLoader now refers to the loader which loaded it, any
3599   requests it does not handle itself. Previously these went to the
3600   primordial loader.
3601
3602 Changes from Ant 1.1 to Ant 1.2
3603 ===============================
3604
3605 Changes that could break older environments:
3606 --------------------------------------------
3607
3608 * Semantics of <property> has changed again in the hope to be more
3609   intuitive. ${} expansion now happens at runtime and <property> tags
3610   living inside of targets only take effect if they are visited at
3611   runtime.
3612
3613   As a side effect of this change, task's attributes get set at runtime
3614   not at parser time as well, which might change the results of
3615   <script>s or other custom tasks that reference other tasks by their id
3616   attribute.
3617
3618 * copying of support files in <javac> has been removed - as well as
3619   the filtering attribute.
3620
3621 * the <expand> and <keysubst> tasks have been removed.
3622
3623 * the ignore and items attributes of directory based tasks have been removed.
3624
3625 * the command line switches _not_ starting with - have been removed.
3626
3627 * Path and EnumeratedAttribute have been moved from
3628   org.apache.tools.ant to org.apache.tools.ant.types.
3629
3630 * the class attributes of <available>, <java>, <rmic> and <taskdef>
3631   have been removed.
3632
3633 * the src attribute of <chmod> has been removed.
3634
3635 * <patch> and <javadoc> have lost some of their attributes.
3636
3637 * <java> and <cvs> have lost some undocumented attributes.
3638
3639 * the Unix antRun script would search for command.sh in the directory
3640   it changed to and invoke this instead of command if present. This
3641   behavior has been dropped.
3642
3643 * <ejbjar> task syntax has been changed significantly
3644
3645 * <exec> is no longer implemented by org.apache.tool.ant.taskdefs.Exec.
3646   Custom tasks that rely on Project.createTask("exec") to return an
3647   instance of this class are going to fail.
3648
3649 * nested <include> and <exclude> elements expect the value of their
3650   name attribute to be a single pattern, they don't accept multiple
3651   patterns anymore. Split them into multiple elements of the same type.
3652
3653 * <delete dir="somedir" /> will now delete the directory itself as
3654   well as all included files. If you just want to clean out the
3655   directory and keep the empty one, use a nested fileset.
3656
3657 Other changes:
3658 --------------
3659
3660 * New tasks: antstructure, cab, execon, fail, ftp, genkey, jlink,
3661   junit, sql, javacc, jjtree, starteam, war, unwar, uptodate,
3662   native2ascii, copy, move, mparse.
3663
3664 * copydir, copyfile, deltree and rename are now deprecated. They
3665   should be replaced with the new copy, delete and move tasks.
3666
3667 * <java> uses a ClassLoader of its own in no-fork mode if a classpath is
3668   specified.
3669
3670 * <style> will create the necessary target directories and reprocess
3671   all files if the stylesheet changes.
3672
3673 * New data types fileset and patternset - expected to get a broader use.
3674   They, as well as PATH like structures, can now be defined on a global
3675   level and later be referenced by their id attribute.
3676
3677 * You can specify environment variables to <exec>.
3678
3679 * <get> can check whether a remote file is actually newer than a local
3680   copy before it starts a download (HTTP only).
3681
3682 * Added a -logger option to allow the class which performs logging to be
3683   specified on the command line.
3684
3685 * Added a -emacs option to tell the logger to leave out taskname adornments
3686   on log output.
3687
3688 * <chmod> works on all files in parallel and supports multiple filesets.
3689
3690 * <replace> can now use tokens and/or values that cross line boundaries.
3691
3692 * build.compiler supports now jvc as well.
3693
3694 * project specific help can now be obtained with the -projecthelp option.
3695
3696 * Added a -debug option to make -verbose less verbose (and more useful)
3697
3698 * Ant will now search for a file named build.xml in the parent directory
3699   and above (towards the root of the filesystem) if you didn't specify
3700   -buildfile and there is no build.xml in the current directory.
3701
3702 * <echo> can now write to a file and accepts nested text.
3703
3704 Fixed bugs:
3705 -----------
3706
3707 * <chmod> didn't work when used as a directory based task.
3708
3709 * Path, Available, Property didn't resolve relative filenames with
3710   respect to the Project's basedir.
3711
3712 * Project didn't interpret the basedir attribute correctly in all
3713   cases.
3714
3715 * Nested <src> in <javac> caused NullPointerException.
3716
3717 * Corrupt Zip- and Jar-files ar now deleted if the task fails.
3718
3719 * many more fixes we've forgotten to document here ...
3720
3721 * The packagelistloc attribute of <javadoc>'s <link> child will be
3722   resolved as a file (i.e. it is either absolute or relative to
3723   basedir).