Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6803 buildadm 1
Changes from Ant 1.10.4 TO Ant 1.10.5
2
=====================================
3
 
4
Fixed bugs:
5
-----------
6
 
7
 * Fixes a regression in the "get" task where redirects
8
   from a HTTP resource to a HTTPS resource started throwing
9
   an exception.
10
   Bugzilla Report 62499
11
 
12
 * the new allowFilesToEscapeDest didn't work when set to false and
13
   archive entries contained relative paths with so many ".."
14
   segnments that the resulting path would go beyond the file system
15
   root.
16
   Bugzilla Report 62502
17
 
18
Other changes:
19
--------------
20
 * Java task now accepts a "sourcefile" attribute to allow single file
21
   source program execution, a feature that is introduced in Java 11.
22
 
23
Changes from Ant 1.10.3 TO Ant 1.10.4
24
=====================================
25
 
26
Changes that could break older environments:
27
-------------------------------------------
28
 
29
 * <unzip>, <unjar> and <untar> will no longer extract entries whose
30
   names would make the created files be placed outside of the
31
   destination directory anymore by default. A new attribute
32
   allowFilesToEscapeDest can be used to override the behavior.
33
   Another special case is when stripAbsolutePathSpec is false (which
34
   no longer is the default) and the entry's name starts with a
35
   (back)slash and allowFilesToEscapeDest hasn't been specified
36
   explicitly, in this case the file may be created outside of the
37
   dest directory as well.
38
   In addition stripAbsolutePathSpec is now true by default.
39
   Based on a recommendation by the Snyk Security Research Team.
40
 
41
Fixed bugs:
42
-----------
43
 
44
 * Delay the class initialization of the test classes until they are
45
   passed to JUnit. This way we can avoid that failing static initializers
46
   from non-test classes are reported as error when the 'skipNonTests' option
47
   is 'true'.
48
   Bugzilla Report 60062
49
 
50
 * The junit task when used with includeantruntime="no" was incorrectly
51
   printing a warning about multiple versions of ant detected in path
52
 
53
 * <cab> died with a NullPointerException since Ant 1.10.2.
54
   Bugzilla Report 62335
55
 
56
 * The <depend> task would fail with 
57
   "java.lang.ClassFormatError: Invalid Constant Pool entry Type 19" while
58
   parsing a module-info.class. The task is compatible with
59
   Java bytecode version 53 now.
60
   Bug reported by Simon IJskes https://issues.apache.org/jira/browse/NETBEANS-781
61
 
62
 * Default and SecureInputHandler will now raise an error when then
63
   end of the input stream (usually System.in or System.console) are
64
   reached before a valid input has been read.
65
 
66
 * junitreport does not list testsuites that fail to start any tests
67
   because of an exception inside the all-tests and alltests-errors frames.
68
   Bugzilla Report 62443
69
 
70
Other changes:
71
--------------
72
 
73
 * AntAssert is deprecated, assertThat from JUnit 4.4+, Hamcrest matchers and/or
74
   ExpectedException rule provide equivalent functionality
75
 
76
 * PumpStreamHandler now explicitly verifies the streams for output
77
   and error are not null and will throw an exception if they
78
   are. This way creating a PumpStreamHandler will fail early as
79
   opposed to some obscure errors later when closing streams or
80
   finishing threads might fail.
81
   Bugzilla Report 62148
82
 
83
 * <property> has a new attribute runtime which can be used to set
84
   properties with values taken as snapshots from the
85
   availableProcessors, freeMemory, maxMemory and totalMemory methods
86
   of the Java Runtime class.
87
 
88
 * linecontains filter now has a new "matchAny" attribute which when
89
   set to "true" allows any (instead of all) of the user-specified
90
   strings to be present in the line.
91
   Bugzilla Report 62313
92
 
93
 * <resourcelist> has a new basedir attribute that can be used to
94
   resolve relative names and provides a root for the FileResources
95
   generated.
96
   Bugzilla Report 62379
97
 
98
 * The <includesfile> and <excludesfile> nested elements of
99
   <patternset> and <fileset> now support an encoding attribute that
100
   can be used to specify the file's encoding.
101
   Bugzilla Report 62379
102
 
103
 * New file selectors, posixGroup and posixPermissions, are available.
104
   The new selectors and related ownedBy selector have "followSymlinks"
105
   attribute that defaults to "true" for consistency.
106
   Bugzilla Report 22370
107
 
108
 * The junitlauncher task now has a "printSummary" attribute which when
109
   set to "true" will print the test execution summary to System.out.
110
 
111
Changes from Ant 1.10.2 TO Ant 1.10.3
112
=====================================
113
 
114
Changes that could break older environments:
115
-------------------------------------------
116
 
117
 * Previous versions of Ant's copy task would throw a BuildException
118
   if the "name" of the resource to copy was null. Starting
119
   this version, the copy task instead silently skips such resources
120
   and no longer throws an exception.
121
   ant-dev list https://www.mail-archive.com/dev@ant.apache.org/msg46634.html
122
 
123
 * Reverted the signature change of various clone method
124
   implementation in Ant's data-types introduced with 1.10.2 as they
125
   broke subclasses of said data-types which tried to override clone.
126
 
127
Fixed bugs:
128
-----------
129
 
130
 * Fixed NullPointerException in ChainedMapper
131
   Bugzilla Report 62086
132
 
133
 * Fixed NullPointerException when a mappedresource is used in pathconvert
134
   Bugzilla Report 62076
135
 
136
 * Fixed an issue where a string, when used as a resource collection, within
137
   tokens, would be replaced by property values
138
   Bugzilla Report 62147
139
 
140
 * Added a workaround for a bug in the jarsigner tool to <verifyjar>
141
   which requires the -storepass command line argument when verifying
142
   signatures using -strict together with a PKCS12 keystore. Unlike
143
   when signing the jar it will not prompt for the keystore's password
144
   and read it from standard input.
145
   This means Ant will now pass the keystore's password on the command
146
   line when using <verifyjar>, which poses a security risk you should
147
   be aware of.
148
   Bugzilla Report 62194
149
 
150
Other changes:
151
--------------
152
 
153
 * Allow Saxon to be used for junitreport XSL transformation
154
   Github Pull Request #57
155
 
156
 * when running on Java 11+ rmic will fail early if iiop or idl are
157
   requested. Java11 removes support for CORBA and the switches have
158
   been removed from the rmic tool.
159
 
160
 * A new junitlauncher task which support JUnit 5 test framework.
161
   Bugzilla Report 61796
162
 
163
Changes from Ant 1.10.1 TO Ant 1.10.2
164
=====================================
165
 
166
Changes that could break older environments:
167
-------------------------------------------
168
 
169
 * updated the dependency of BCEL to 6.2.
170
   Bugzilla Report 61196
171
 
172
 * delete task previously would silently accept wildcard (*)
173
   value for the "file" attribute. That's no longer the case
174
   and an exception could get thrown by the underlying filesystem
175
   for such use. Usage like:
176
 
177
   <delete file="/foo/bar/*.something"/>
178
 
179
   should instead be changed to use resource collections like:
180
 
181
   <delete>
182
   	 <fileset dir="/foo/bar/" includes="*.something"/>
183
   </delete>
184
 
185
 * Commons Net 3.6 is binary-code, but not source compatible;
186
   see change list of Commons Net 3.0 for details
187
 
188
 * The Log4jListener is marked as deprecated as the required log4j library
189
   (in version 1.x) is not maintained any more.
190
 
191
 * Image task is marked as deprecated as the required JAI library is not
192
   maintained any more and internal APIs that JAI depended on are no longer
193
   available in Java 9.
194
 
195
Fixed bugs:
196
-----------
197
 
198
 * <genkey>'s <dname> child now skips <param>s that lack a key or
199
   value.
200
   Bugzilla Report 60767
201
 
202
 * bootstrapping Ant on Windows failed
203
   Bugzilla Report 61027
204
 
205
 * Fixed the issue where the SCP based tasks would try to change
206
   the permissions on the parent directory of a transferred file,
207
   instead of changing it on the transferred file itself.
208
   Bugzilla Reports 59648 and 43271
209
 
210
 * Fixed the issue where the source file being copied could end
211
   up being corrupted if the target of the copy happened to be
212
   the same source file (symlinked back to itself).
213
   Bugzilla Report 60644
214
 
215
 * Fixed the issue where symlink creation with "overwrite=false",
216
   on existing symlink whose target was a directory, would end
217
   up creating a new symlink under the target directory.
218
   Bugzilla Report 58683
219
 
220
 * Improvement to the Zip task for reduced memory usage in certain
221
   cases. Thanks to Glen Lewis for reporting the issue and
222
   suggesting the fix.
223
   Bugzilla Report 19516
224
 
225
 * Fixed an issue where the content redirected from output/error
226
   streams of a process, could end up being truncated.
227
   Bugzilla Report 58833, 58451
228
 
229
 * <fileset>/<zipfileset>/<tarfileset> will now throw an exception
230
   with a more useful error message when setFile is called twice on
231
   the same instance.
232
   Bugzilla Report 62071
233
 
234
Other changes:
235
--------------
236
 
237
 * Added forceCsvQuoteChar option to <csv> task. When enabled the
238
   values always get quoted.
239
   Github Pull Request #32
240
 
241
 * Added <encoding> attributes to various script related tasks and a
242
   compiled attribute to scriptdef.
243
   Github Pull Request #30
244
 
245
 * Added support for jarsigner's -tsadigestalg to <signjar>.
246
   Bugzilla Report 60665
247
 
248
 * added "regexp" attribute to <linecontainsregexp>
249
   Bugzilla Report 60968
250
 
251
 * reduced GC pressure by replacing all usage of FileInputStream and
252
   FileOutputStream.
253
 
254
 * Task can now also use attribute setters that expect a
255
   java.nio.file.Path argument.
256
   Bugzilla Report 61042
257
 
258
 * added a new magic property ant.tstamp.now that can be used to
259
   override the current time/date used by <tstamp>.
260
   Bugzilla Report 61079
261
 
262
 * added Orion support to ejbjar
263
   Github Pull Request #33
264
 
265
 * SCP task, when configured to use SFTP protocol, now preserves last
266
   modified timestamp on files that it uploads, if the
267
   preserveLastModified attribute is set to true for that task
268
   Bugzilla Report 58589
269
 
270
 * zip and the related tasks can now set the modification time of all
271
   entries to a fixed timestamp.
272
   Github Pull Request #36
273
 
274
 * Jsch library dependency has now been upgraded to 0.1.54. Jsch is
275
   the library behind the sshexec and scp Ant tasks.
276
   Bugzilla Report 61718
277
 
278
 * Added a new <javaversion> condition.
279
 
280
 * added "javac10+" as new supported value for javac's compiler attribute.
281
 
282
 * javah has been removed from Java 10. The task will now throw an
283
   exception if you try to use it while running Java 10 or newer.
284
 
285
 * Updated Maven Ant Tasks, Jakarta Regexp and JUnit 4 to the latest
286
   stable version (2.1.3, 1.4, and 4.12 respectively); updated
287
   JRuby to the latest Java 5 compatible version (1.6.8); added
288
   resolve target for AntUnit to facilitate updates.
289
   Github Pull Request #50
290
 
291
 * Updated Java Mail API, Jython, Rhino and Commons Net to the latest
292
   stable version (1.6.0, 2.7.0, 1.7.7.2 and 3.6, respectively).
293
   Github Pull Request #53
294
 
295
Changes from Ant 1.10.0 TO Ant 1.10.1
296
=====================================
297
 
298
Fixed bugs:
299
-----------
300
 
301
 * Ant 1.10.0 made Path#systemClasspath final which broke the Eclipse
302
   integration.
303
   Bugzilla Report 60582
304
 
305
 * the wrapper script still didn't work on Solaris 10, but worked on
306
   Solaris 11.
307
   The "fixed" script should work in most cases but will not preserve
308
   newlines present in command line arguments.
309
   Bugzilla Report 60562
310
 
311
Other changes:
312
--------------
313
 
314
 * new tasks <xz> and <unxz> and resource <xzresource> for XZ
315
   compression. Also the compression attribute of <tar>/<untar> now
316
   accepts "xz" as valid value.
317
   The tasks and type are contained in the new ant-xz.jar and require
318
   the library XZ for Java to be on the CLASSPATH.
319
   Bugzilla Report 60350
320
 
321
Changes from Ant 1.9.7 TO Ant 1.10.0
322
====================================
323
 
324
Changes that could break older environments:
325
-------------------------------------------
326
 
327
 * Ant 1.10.x requires Java8 or newer at compile or build time.
328
   The 1.9.x series wil stay compatible with Java5.
329
 
330
 * The <apt> task has been removed since apt itself has been removed
331
   with Java8.
332
 
333
 * <fileset>/<zipfileset>/<tarfileset> exhibited undefined
334
   behavior when both the dir and file attribute have been used on the
335
   same instance. This will now cause the build to fail.
336
   Bugzilla Report 59402
337
 
338
 * <native2ascii> will default to the builtin implementation on Java8
339
   as well (sun isn't available for Java9+ anyway).
340
 
341
 * The ant.java.version property will now hold the value "9" rather
342
   than "1.9" if running on Java 9.
343
 
344
 * <rmic> will no longer allow the -Xnew option (or xmic compiler) to
345
   be used when running on Java 9 since this option has been removed.
346
   Bugzilla Report 59906
347
 
348
 * <javah> will default to the "forking" implementation on Java8
349
   as well.
350
 
351
Fixed bugs:
352
-----------
353
 
354
 * setDynamicAttribute on MacroInstance now lower-cases the attribute
355
   name in order to allow users of the API to use the attributes names
356
   they have specified.
357
   Bugzilla Report 59339
358
 
359
 * <get>'s quiet attribute was broken, it didn't suppress any messages.
360
   Bugzilla Report 59379
361
 
362
 * <zip>'s check whether an archive is already up-to-date failed on
363
   NTFS filesystems and re-created archives more often than necessary.
364
   Bugzilla Report 59562
365
 
366
 * AntClassLoader didn't delegate to the parent loader for classes in
367
   the "jdk" package or one of its subpackages. This hierarchy has
368
   been introduced with Java 7.
369
   Bugzilla Report 59556
370
 
371
 * The ant wrapper script used on Unix-like operating systems only
372
   worked on OSes where sed is GNU sed.
373
   Bugzilla Report 59898
374
 
375
 * <touch>'s default pattern as well as the default patterns used by
376
   the <date> (resource) selectors depended on the JDK being used - or
377
   rather the locale provider being used and the default locale
378
   provider changed with Java 9.
379
   They are now fixed and the documentation has been updated to
380
   reflect the real patterns used rather than a non-formal description
381
   of the expected format.
382
   Bugzilla Report 59909
383
 
384
 * Clarified the documentation of <get>'s retries attribute.
385
   Bugzilla Report 59930
386
 
387
 * The ant wrapper script failed if backticks were passed on the
388
   command line.
389
   Bugzilla Report 60150, 59445
390
 
391
 * The report generated by <junitreport> could contain duplicate
392
   characters in stack traces.
393
   Bugzilla Report 58661
394
 
395
Other changes:
396
--------------
397
 
398
 * New file selectors <executable>, <symlink> and <ownedBy>.
399
 
400
 * New task <setpermissions> that provides the ability to set POSIX
401
   compatible permssions via NIO's PosixFilePermission
402
 
403
 * <junit> now initializes the cause of the AssertionFailedError when
404
   converting from AssertionError.
405
   Bugzilla Report 58982
406
 
407
 * <scp> now supports compression via the optional compressed attribute.
408
   Bugzilla Report 47552
409
 
410
 * <junit> now supports JDK9 modules
411
   Github Pull Request #18
412
 
413
 * a new implementation "builtin" has been added to <native2ascii> and
414
   is the default when running on JDK9+ since the tool itself has been
415
   removed from the JDK.
416
   Bugzilla Report 59855
417
 
418
 * added a new <native2asciifilter> filter that can perform non-ASCII
419
   to Unicode-escape conversions.
420
 
421
 * <rmic> defaults to the "forking" compiler on JDK 9+ as the
422
   implementation class of rmic is not exported by its containing
423
   module and thus not accessible to Ant without applying -XaddExports
424
   magic.
425
   Bugzilla Report 59860
426
 
427
 * a new implementation "forking" has been added to <javah> and is
428
   used as default when running on JDK9.
429
 
430
 * support for javac's -h switch has been added with the
431
   nativeheaderdir attribute.
432
   Bugzilla Report 59905
433
 
434
 * it is now possible to set features of the TraX factory used by <xslt>
435
   and <junitreport>.
436
 
437
 * it is now possible to use references to Ant types and classloaders
438
   built around Ant <path>s as values for TraX factory attributes.
439
 
440
 * AntClassLoader and its subclasses register themselves as parallel
441
   capable.
442
 
443
 * <junitreport> now enables the feature
444
   http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions
445
   when run on Java 9 so the redirect extension function can be used
446
   if when a SecurityManager is active.
447
   Bugzilla Report 60060
448
 
449
 * support for javac's --release switch introduced with Java9 has been
450
   added.
451
   Bugzilla Report 60172
452
 
453
Changes from Ant 1.9.6 TO Ant 1.9.7
454
===================================
455
 
456
Changes that could break older environments:
457
-------------------------------------------
458
 
459
 * <exec> and <apply> used to ignore the dir attribute if it was the
460
   same as the current working directory.  They now no longer do,
461
   which changes the behavior for vmlauncher="false" which would have
462
   used the project's basedir rather than the current working
463
   directory in that case.
464
   Bugzilla Report 58555
465
 
466
Fixed bugs:
467
-----------
468
 
469
 * ZipOutputStream could cause an ArrayIndexOutOfBoundsException when
470
   adding entries with comments.  This never happens when using Ant as
471
   a build tool but may affect users using Ant's zip package as a
472
   library.
473
 
474
 * <gunzip> and <bunzip2> didn't work for non-filesystem resources.
475
 
476
 * <jar> ignored the zip64Mode attribute when creating manifest-only
477
   jars.  This resulted in jar files that couldn't be read by Java5.
478
   Bugzilla Report 58428
479
 
480
 * <untar> will now detect GNU tar longname/link records even if they
481
   don't use the names used by GNU tar itself.  star is known to
482
   create archives of that kind.
483
   https://issues.apache.org/jira/browse/COMPRESS-324
484
 
485
 * <script> could fail to find javax.script on JDK9 with Jigsaw.
486
   Bugzilla Report 58271
487
 
488
 * <import> sometimes failed to normalize file names which could lead
489
   to files getting imported twice which in turn could lead to targets
490
   getting executed twice.
491
   Bugzilla Report 58886
492
 
493
 * TarInputStream now properly extraxt directory entries with a
494
   non-zero size.
495
 
496
 * <union> would drop file resources pointing to the same file but
497
   using different names.
498
   Bugzilla Report 57965
499
 
500
 * <replace>'s result was undefined when using the replacefilterfile
501
   attribute and some keys inside the properties files have been
502
   substrings of other keys. Keys are now sorted by descending size.
503
   Bugzilla Report 58997
504
 
505
 * Ant fails to run when arguments contain double-quote character.
506
   Bugzilla Report 58898
507
 
508
 * Ant fails to run if ANT_HOME contains a double-quote character.
509
   Bugzilla Report 58874
510
 
511
 * Definer's way to parse URLs from classloader breaks with
512
   recent Java 9 builds (b108).
513
   Bugzilla Report 59130
514
 
515
 * <ant> and <antcall> now preserve the ext status set by an <exit>
516
   task.
517
   Bugzilla Report 59228
518
 
519
Other changes:
520
--------------
521
 
522
 * <scp> now supports (filesystem-only) resource collections in
523
   addition to filesets.
524
   Bugzilla Report 50769
525
 
526
 * The <http> condition has a new optional attribute followRedirects.
527
   Bugzilla Report 58840
528
 
529
 * <java> now supports Java9 modules.
530
   https://github.com/apache/ant/pull/15
531
 
532
 * <javac> now supports Java9 modules.
533
   https://github.com/apache/ant/pull/16
534
 
535
 * <sshexec> and <scp> have two new attributes serverAliveInterval and
536
   serverAliveCountMax that can be used to keep a intermediaries from
537
   closing idle connections.
538
   Bugzilla Report 59162
539
 
540
Changes from Ant 1.9.5 TO Ant 1.9.6
541
===================================
542
 
543
Changes that could break older environments:
544
-------------------------------------------
545
 
546
Fixed bugs:
547
-----------
548
 
549
 * ArrayIndexOutOfBoundsException when ZIP extra fields are read and
550
   the entry contains an UnparseableExtraField.
551
   https://issues.apache.org/jira/browse/COMPRESS-317
552
 
553
Other changes:
554
--------------
555
 
556
* Hidden <javaconstant> resource is published now. It reads the
557
  value of a specified java constant.
558
 
559
 
560
Changes from Ant 1.9.4 TO Ant 1.9.5
561
===================================
562
 
563
Changes that could break older environments:
564
-------------------------------------------
565
 
566
 * The ReplaceTokens filter can now use token-separators longer than
567
   one character.  This means it can be used to replace mustache-style
568
   {{patterns}} and similar templates.  This is going to break code
569
   that invokes the setters on ReplaceTokens via the Java API as their
570
   parameters have been changed from char to String.  It may also
571
   break build files that specified multi character tokens and relied
572
   on Ant silently ignoring all but the first character.
573
   Bugzilla Report 56584
574
 
575
 * The changes that added <get>'s support for gzip encoding
576
   automatically uncompressed content that would not have been touched
577
   before - like when downloading .tar.gz files.  A new flag has been
578
   added to control the behavior and its default will make <get> work
579
   as it did in 1.9.3.  I.e. if you want it to work like 1.9.4
580
   you have to explicitly set tryGzipEncoding to true.
581
   Bugzilla Report 57048
582
 
583
Fixed bugs:
584
-----------
585
 
586
 * TarArchiveInputStream failed to read archives with empty gid/uid
587
   fields.
588
   Bugzilla Report 56641
589
 
590
 * TarArchiveInputStream could throw IOException when reading PAX
591
   headers from a "slow" InputStream.
592
 
593
 * XMLJunitResultFormatter could throw NullPointerException if Java
594
   cannot determine the local hostname.
595
   Bugzilla Report 56593
596
 
597
 * URLResource#getLastModified tried to access the connection to the
598
   URL without making sure it was established, potentially leading to
599
   a NullPointerException when using FTP.
600
   Bugzilla Report 56873
601
 
602
 * Long-Name and -link or PAX-header entries in TAR archives
603
   always had the current time as last modfication time, creating
604
   archives that are different at the byte level each time an
605
   archive was built.
606
 
607
 * runant.py should now work as well when the path of the Java executable
608
   contains spaces.
609
   github pull request #1
610
 
611
 * <junitreport> now supports nested <classpath> and <factory> elements.
612
   Bugzilla Report 47002
613
 
614
 * complete-ant-cmd.pl now also knows about the -file option.
615
   Bugzilla Report 57371
616
 
617
 * the br-replace template inside the XSLT stylesheets used by
618
   <junitreport> could cause stack overflows or out-of-memory errors
619
   when applied to big outputs.
620
   Bugzilla Report 57341
621
 
622
 * removed spurious warning about unclosed ZipFiles when reading the
623
   archive failed.
624
   Port of https://issues.apache.org/jira/browse/COMPRESS-297
625
 
626
 * FileUtils.rename which is used by several tasks can throw a
627
   NullPointerException if the "normal" renameTo operation fails and
628
   an exception occurs while rename falls back to copying and deleting
629
   the file.
630
   Bugzilla Report 57533
631
 
632
 * complete-ant-cmd.pl would incorrectly suggest words from the build
633
   file description.
634
   Bugzilla Report 51931
635
 
636
 * complete-ant-cmd.pl now also completes tasks without a description.
637
   Bugzilla Report 57542
638
 
639
 * LocalPropertyStack could run into ConcurrentModificationException
640
   when tasks spawned new child threads that accessed the properties.
641
   Bugzilla Report 55074
642
 
643
 * TarEntry's constructor with a File and a String arg didn't
644
   normalize the name.
645
 
646
 * Between 1.8.4 and 1.9.0 TarInputStream started to parse file
647
   names using the platform's default encoding rather than as ASCII.
648
   This has been a breaking change that has never been marked as such
649
   (in fact it went unnoticed).  In order to allow <untar> and
650
   <tarfileset> to work on platforms who's encoding doesn't match the
651
   encoding of file names inside the archive, both now support
652
   encoding attributes.
653
   The attribute has also been added to <tar> for symmetry.
654
   Bugzilla Report 57822
655
 
656
Other changes:
657
--------------
658
 
659
 * it is now possible to provide proxy configuration to signjar
660
   when using the timestamped authority.
661
   Bugzilla Report 56678
662
 
663
 * complete-ant-cmd.pl now also analyzes the ANT_ARGS environment
664
   variable.
665
   Bugzilla Report 57371
666
 
667
 * ported some of the write-optimization of Commons Compress 1.10 to
668
   the ZIP package
669
 
670
 * adapted unit tests to Java9 and added "javac1.9" as valid option
671
   for javac's compiler attribute.
672
 
673
 * performance improvements for <intersect>
674
   Bugzilla Report 57588
675
 
676
 * MailLogger can now add CC and BCC addresses.
677
   Bugzilla Report 57789.
678
 
679
 * <scp>'s buffer size has been increased from 1k to 100k to match
680
   <ftp> and <get>.
681
   github pull requests #8 and #9
682
 
683
 * The tar package can now deal with group and user ids bigger than
684
   0x80000000.
685
   https://issues.apache.org/jira/browse/COMPRESS-314
686
   https://issues.apache.org/jira/browse/COMPRESS-315
687
 
688
 * <scp> has new attributes fileMode and dirMode that control the
689
   permissions on the remote side when sending data via SSH.
690
   Bugzilla Report 43271.
691
 
692
 * New <allbutlast> and <allbutfirst> resource collections can be used
693
   to select all but a given subset of a resource collection.
694
   Bugzilla Report 57834.
695
 
696
Changes from Ant 1.9.3 TO Ant 1.9.4
697
===================================
698
 
699
Changes that could break older environments:
700
-------------------------------------------
701
 
702
 * the prefixValues attribute of <property> didn't work as expected
703
   when set to false (the default).
704
   It is quite likely existing build files relied on the wrong
705
   behavior and expect Ant to resolve the value side against the
706
   properties defined in the property file itself - these build files
707
   must now explicitly set the prefixValues attribute to true.
708
   Bugzilla Report 54769
709
 
710
 * when matching an entry of a zip/tarfileset against a pattern a
711
   leading slash will be stripped from the entry name.  Most archives
712
   don't contain paths with leading slashes anyway.
713
   This may cause include/exclude patterns that start with a / to stop
714
   matching anything.  Such patterns only used to work by accident and
715
   only on platforms with multiple file system roots.
716
   Bugzilla Report 53949
717
 
718
 * DirectoryScanner and thus fileset/dirset will now silently drop all
719
   filesystem objects that are neither files nor directories according
720
   to java.io.File.  This prevents Ant from reading named pipes which
721
   might lead to blocking or other undefined behavior.
722
   Bugzilla Report 56149
723
 
724
 * BuildFileTest and BaseSelectorTest have both been deprecated in
725
   favour of BuildFileRule and BaseSelectorRule respectively, and the
726
   tests that previously extended these base tests have been converted to
727
   JUnit 4 tests using the new "rule"s. Any external test that sub-classed
728
   a test in the Ant workspace, rather than BuildFileTest, will need
729
   changed to either use JUnit4's annotations, or be modified to
730
   extend BuildFileTest directly. This will not affect any tests that are
731
   being executed by Ant's junit or batchtest tasks that are not specifically
732
   testing Ant's code.
733
 
734
Fixed bugs:
735
-----------
736
 
737
 * <import>/<include> failed when the importing file was loaded from an
738
   URI or a jar and it imported a file from the local file system via
739
   an absolute path.
740
   Bugzilla Report 50953
741
 
742
 * <import> could import the same resource twice when imported via
743
   different resource types.
744
   Bugzilla Report 55097
745
 
746
 * several calls to File#mkdirs could fall victim to a race condition
747
   where another thread already created the same directory.
748
   Bugzilla Report 55290
749
 
750
 * <manifestclasspath> created '/' rather than './' for the parent
751
   directory of the given jarfile.
752
   Bugzilla Report 55049
753
 
754
 * <concat>'s fixlastline="true" didn't work when using certain filter
755
   readers.
756
   Bugzilla Report 54672
757
 
758
 * several places where resources are read from jars will now
759
   explicitly disable caching to avoid problems with reloading jars.
760
   Bugzilla Report 54473
761
 
762
 * AntClassloader will now ignore files that are part of the classpath
763
   but not zip files when scanning for resources.  It used to throw an
764
   exception.
765
   Bugzilla Report 53964
766
 
767
 * <javadoc> caused a NullPointerException when no destdir was set.
768
   Bugzilla Report 55949
769
 
770
 * <jar filesetmanifest="mergewithoutmain"> would still include the
771
   Main section of the fileset manifests if there was no nested
772
   manifest or manifest attribute.
773
   Bugzilla Report 54171
774
 
775
 * reading of compiler args has become more defensive
776
   Bugzilla Report 53754
777
 
778
 * <copy> without force="true" would not only fail to overwrite a
779
   read-only file as expected but also remove the existing file.
780
   Bugzilla Report 53095
781
 
782
 * <delete removeNotFollowedSymlinks="true"> would remove symbolic
783
   links to not-included files.  It will still delete symlinks to
784
   directories that would have been followed even if they are not
785
   explicitly included.  exclude-Patterns can still be used to
786
   preserve symbolic links.
787
   Bugzilla Report 53959
788
 
789
 * Sometimes copy-operations using NIO FileChannels fail.  Ant will
790
   now try to use a Stream based copy operation as fallback when the
791
   Channel based copy fails.
792
   Bugzilla Reports 53102 and 54397
793
 
794
 * Javadoc.postProcessGeneratedJavadocs() fails for Classes that
795
   extend Javadoc
796
   Bugzilla Report 56047
797
 
798
 * TarInputStream will now read archives created by tar
799
   implementations that encode big numbers by not adding a trailing
800
   NUL.
801
 
802
 * the isExists() method of URLResource returned false positives for
803
   HTTP and FTP URLs.
804
 
805
Other changes:
806
--------------
807
 
808
 * initial support for Java 1.9
809
 
810
 * <sshexec> can optionally pass System.in to the remote process
811
   Bugzilla Report 55393
812
 
813
 * <sshexec> now supports capturing error output of the executed
814
   process and setting a property from the return code.
815
   Bugzilla Report 48478
816
 
817
 * <javadoc> now has an option to fail if javadoc issues warnings.
818
   Bugzilla Report 55015
819
 
820
 * <sql> has a new outputencoding attribute.
821
   Bugzilla Report 39541
822
 
823
 * changes to JUnitTestRunner and PlainJUnitResultFormatter to make
824
   OutOfMemoryErrors less likely.
825
   Bugzilla Report 45536
826
 
827
 * changes to DOMElementWriter to make OutOfMemoryErrors less likely.
828
   Bugzilla Report 54147
829
 
830
 * <redirector> has a new attribute binaryOutput that prevents Ant
831
   from splitting the output into lines.  This prevents binary output
832
   from being corrupted but may lead to error and normal output being
833
   mixed up.
834
   Bugzilla Report 55667
835
   Bugzilla Report 56156
836
 
837
 * the nested <message> elements of <mail> now have an optional
838
   inputEncoding attribute that can be used to specify the encoding of
839
   files read that don't use the platform's default encoding.
840
   Bugzilla Report 56258
841
 
842
 * The <get> task now explicitly accepts and supports the gzip content encoding.
843
   Bugzilla Report 49453
844
 
845
 * A new resourcecollection type <multirootfileset> acts like a union
846
   of <fileset>s and <dirset>s that share the same configuration but
847
   have different base directories.
848
   Bugzilla Report 48621
849
 
850
 * <get> has a quiet attribute that makes the task log errors only
851
   when enabled.
852
   GitHub Pull Request #1
853
 
854
* <junit> has now a threads attribute allowing to run the tests in several threads.
855
  Bugzilla Report 55925
856
 
857
* addition of a new ProcessUtil class providing the process id of the current process
858
 
859
* changes to allow to run the JUnit testcases of Ant in parallel,
860
  by making them use unique temporary directories
861
 
862
Changes from Ant 1.9.2 TO Ant 1.9.3
863
===================================
864
 
865
Fixed bugs:
866
-----------
867
 
868
 * <parallel> swallowed the status code of nested <fail> tasks.
869
   Bugzilla Report 55539.
870
 
871
 * a race condition could make <fixcrlf> tasks of parallel builds to
872
   interfere with each other.
873
   Bugzilla Report 54393.
874
 
875
 * <mail>'s mailport still didn't work properly when using smtps.
876
   Bugzilla Report 49267.
877
 
878
 * using attributes belonging to the if and unless namespaces
879
   made macrodef fail.
880
   Bugzilla Report 55885.
881
 
882
 * Ant 1.8 exec task changes have slowed exec to a crawl
883
   Bugzilla Report 54128.
884
 
885
 * Apt is not available under JDK 1.8
886
   Bugzilla Report 55922.
887
 
888
 
889
Other changes:
890
--------------
891
 
892
 * Documentation fix for if/unless attributes.  PR 55359.
893
 
894
 * tar entries with long link names are now handled the same way as
895
   entries with long names.
896
 
897
 * Addition of 'skipNonTests' attribute to <junit> and <batchtest>
898
   tasks to allow the tasks to skip classes that don't contain tests.
899
 
900
 * <filterset> now supports a nested <propertyset> to specify filters.
901
   Bugzilla Report 55794.
902
 
903
 * <xslt>'s params can now be typed.
904
   Bugzilla Report 21525.
905
 
906
 * build of Mac OS X pkg installer
907
   Bugzilla Report 55899.
908
 
909
Changes from Ant 1.9.1 TO Ant 1.9.2
910
===================================
911
 
912
Fixed bugs:
913
-----------
914
 
915
 * Parsing of zip64 extra fields has become more lenient in order to
916
   be able to read archives created by DotNetZip and maybe other
917
   archivers as well.
918
 
919
 * TarInputStream should now properly read GNU longlink entries' names.
920
   Bugzilla Report 55040.
921
 
922
 * <java> and <exec> used to be too restrictive when evaluating
923
   whether a given set of options is compatible with spawning the new
924
   process.
925
   Bugzilla Report 55112.
926
 
927
Other changes:
928
--------------
929
 
930
 * <javadoc> will now post-process the generated in order to mitigate
931
   the frame injection attack possible in javadocs generated by Oracle
932
   JDKs prior to Java7 Update 25.  The vulnerability is known as
933
   CVE-2013-1571.
934
   There is an option to turn off the post-processing but it is only
935
   recommended you do so if all your builds use a JDK that's not
936
   vulnerable.
937
   Bugzilla Report 55132.
938
 
939
Changes from Ant 1.9.0 TO Ant 1.9.1
940
===================================
941
 
942
Changes that could break older environments:
943
-------------------------------------------
944
 
945
 * Users who have their own ProjectHelper implementation will need to change it because the import and include tasks
946
   will now default the targetPrefix to ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX.
947
   Users using the default ProjectHelper2 with ant need not worry about this change done to fix Bugzilla Report 54940.
948
 
949
 
950
Fixed bugs:
951
-----------
952
 
953
 * Corrected XSLTC error in <junitreport>.
954
   Bugzilla Report 54641.
955
 
956
 * Provide more control over Zip64 extensions created by <zip> and
957
   related tasks.  In particular no Zip64 extensions will be used at
958
   all by the <jar> task family by default - this is required for jars
959
   to be readably by Java5.
960
   Bugzilla Report 54762.
961
 
962
 * Fixed loading of external dependencies in JUnit task.
963
   Bugzilla Report 54835.
964
 
965
 * Target rewriting for nested "include" only works when "as" is specified.
966
   See also "Changes that could break older environments"
967
   Bugzilla Report 54940.
968
 
969
 
970
Other changes:
971
--------------
972
 
973
 * strict attribute added to <signjar>.
974
   Bugzilla Report 54889.
975
 
976
 * simplifying Execute.getEnvironmentVariables since we are only running on Java 1.5 or higher now
977
 
978
 * Added conditional attributes.
979
   Bugzilla Report 43362
980
 
981
 * Recommending to upgrade jsch to 0.1.50, particularly if you are using Java 1.7.
982
   jsch is the library behind the sshexec and scp Ant tasks.
983
   Versions of jsch older than 0.1.50 fail randomly under Java 1.7 with an error message "verify: false"
984
 
985
Changes from Ant 1.8.4 TO Ant 1.9.0
986
===================================
987
 
988
Changes that could break older environments:
989
-------------------------------------------
990
 
991
 * Ant now requires at least Java 1.5 to compile and to run
992
 
993
 * FixCRLF used to treat the EOL value ASIS to convert to the system property
994
   line.separator. Specified was that ASIS would leave the EOL characters alone,
995
   the task now really leaves the EOL characters alone. This also implies that
996
   EOL ASIS will not insert a newline even if fixlast is set to true.
997
   Bugzilla report 53036
998
 
999
 * The CommandLauncher hierarchy that used to be a set of inner
1000
   classes of Execute has been extracted to the
1001
   org.apache.tools.ant.taskdefs.launcher package.
1002
 
1003
 * Any FileResource whose represented File has a parent also has a basedir.
1004
 
1005
 * Removing the Perforce Ant tasks replaced by tasks supplied by Perforce Inc.
1006
 
1007
 * Setting the default encoding of StringResource to UTF-8 instead of null
1008
 
1009
 * Upgrade JUnit 4 to JUnit 4.11
1010
 
1011
Fixed bugs:
1012
-----------
1013
 
1014
 * Made VectorSet faster.
1015
   Bugzilla Report 53622.
1016
 
1017
 * Incorrect URLs in Ant child POMs.
1018
   Bugzilla Report 53617.
1019
 
1020
 * Subclasses of JUnitTask did not correctly find junit.jar.
1021
   Bugzilla Report 53571.
1022
 
1023
 * External XML catalog resolver failed to use project basedir when given an
1024
   unmentioned relative path like the internal resolver does.
1025
   Bugzilla Report 52754.
1026
 
1027
 * Fixed some potential stream leaks.
1028
   Bugzilla Reports 52738, 52740, 52742, 52743.
1029
 
1030
 * Updated documentation to fix spelling errors / broken links.
1031
   Bugzilla Reports 53215, 53291, 53202
1032
 
1033
 * Unable to override system properties. It was not possible not to override
1034
   system properties from the command line (or from a property file).
1035
   Bugzilla Report 51792
1036
 
1037
 * <javac> by default fails when run on JDK 8.
1038
   Bugzilla Report 53347.
1039
 
1040
 * ExtensionPoint doesn't work with nested import/include
1041
   Bugzilla Report 53405.
1042
 
1043
 * <packagemapper> failed to strip the non-matched parts with
1044
   handledirsep="true".
1045
   Bugzilla Report 53399.
1046
 
1047
 * <expandproperties> filter caused a NullPointerException when input
1048
   was empty.
1049
   Bugzilla Report 53626.
1050
 
1051
 * <get> now supports HTTP redirects using status code 307.
1052
   Bugzilla Report 54374.
1053
 
1054
 * ssh tasks prompt for kerberos username/password under Java 7
1055
   Bugzilla Report 53437.
1056
 
1057
 * Zip task on <mappedresources> that excludes certain files by way of the mapper resulted in a NullPointerException
1058
   Bugzilla Report 54026
1059
 
1060
 * The ant launcher script should properly detect JAVA_HOME on
1061
   MacOS X 10.7
1062
   Bugzilla Report 52632
1063
 
1064
 * Depend task does not handle invokeDynamic constant pool entries - java.lang.ClassFormatError: Invalid Constant Pool entry Type 18
1065
   Bugzilla Report 54090
1066
 
1067
 * Base64Converter not properly handling bytes with MSB set (not masking byte to int conversion)
1068
   Bugzilla Report 54460
1069
 
1070
 * The size resource comparator would return wrong results if file
1071
   sizes differed by more than 2 GB.
1072
   Bugzilla Report 54623
1073
 
1074
 * Unable to encode properly into UTF-8 when the system property file.encoding is
1075
   set to ANSI_X3.4-1968.
1076
   Bugzilla Report 54606
1077
 
1078
 * JUnit4 tests marked @Ignore do not appear in XML output
1079
   Bugzilla Report 43969
1080
 
1081
Other changes:
1082
--------------
1083
 
1084
 * merged the ZIP package from Commons Compress, it can now read
1085
   archives using Zip64 extensions (files and archives bigger that 4GB
1086
   and with more that 64k entries).
1087
 
1088
 * a new task <commandlauncher> can be used to configure the
1089
   CommandLauncher used by Ant when forking external programs or new
1090
   Java VMs.
1091
   Bugzilla Report 52706.
1092
 
1093
 * merged the TAR package from Commons Compress, it can now read
1094
   archives using POSIX extension headers and STAR extensions.
1095
 
1096
 * merged the BZIP2 package from Commons Compress, it can now
1097
   optionally read files that contain multiple streams properly.
1098
 
1099
 * <bunzip2> will now properly expand files created by pbzip2 and
1100
   similar tools that create files with multiple bzip2 streams.
1101
 
1102
 * <tar> now supports a new "posix" option for longfile-mode which
1103
   will make it create PAX extension headers for long file names.  PAX
1104
   extension headers are supported by all modern implementations of
1105
   tar including GNU tar.
1106
   This option should now be used in preference to "warn" or "gnu" as
1107
   it is more portable.  For backwards compatibility reasons "warn"
1108
   will still create "gnu" extensions rather than "posix" extensions.
1109
 
1110
 * The ProjectHelper class now exposes a method to be used by third party
1111
   implementations to properly resolve the binding between target extensions
1112
   and extension points.
1113
   Bugzilla Report 53549.
1114
 
1115
 * Make extension point bindable to imported prefixed targets
1116
   Bugzilla Report 53550.
1117
 
1118
 * Add the possibility to register a custom command line argument processor.
1119
   See org.apache.tools.ant.ArgumentProcessor and manual/argumentprocessor.html
1120
 
1121
 * add the possibility to suppress stdout in the sshexec task.
1122
   Bugzilla Report 50270.
1123
 
1124
 * add an encoding attribute to the contains selector.
1125
   This will be useful to use the contains selector if the encoding of the VM is different from the encoding
1126
   of the files being selected.
1127
 
1128
 * support for GNU Classpath.
1129
   Bugzilla report 54760.
1130
 
1131
Changes from Ant 1.8.3 TO Ant 1.8.4
1132
===================================
1133
 
1134
Fixed bugs:
1135
-----------
1136
 
1137
 * Ported libbzip2's fallback sort algorithm to CBZip2OutputStream to
1138
   speed up compression in certain edge cases.  Merge from Commons
1139
   Compress.
1140
 
1141
   Using specially crafted inputs this can be used as a denial of
1142
   service attack.
1143
   See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2098
1144
 
1145
Changes from Ant 1.8.2 TO Ant 1.8.3
1146
===================================
1147
 
1148
Changes that could break older environments:
1149
-------------------------------------------
1150
 
1151
 * The Enumeration returned by AntClassLoader#getResources used to
1152
   return null in nextElement after hasNextElement would return false.
1153
   It has been changed to throw a NoSuchElementException instead so
1154
   that it now adheres to the contract of java.util.Enumeration.
1155
   Bugzilla Report 51579.
1156
 
1157
Fixed bugs:
1158
-----------
1159
 
1160
 * Removed buggy duplicate JAR list in RPM mode.
1161
   Bugzilla Report 52556.
1162
 
1163
 * Launcher fixed to pass the right class loader parent.
1164
   Bugzilla Report 48633.
1165
 
1166
 * <junitreport> mishandled ${line.separator}.
1167
   Bugzilla Report 51049.
1168
 
1169
 * <junitreport> did not work in embedded environments on JDK 7.
1170
   Nor did <xslt> when using Xalan redirects.
1171
   Bugzilla Report 51668, 52382.
1172
 
1173
 * Encoding of unicode escape sequences by the property file task
1174
   Bugzilla Report 50515.
1175
 
1176
 * The code that implicitly sets the -source switch if only -target
1177
   has been specified in <javac> was broken for Java 5 and 6.
1178
   Bugzilla Report 50578.
1179
 
1180
 * MailLogger ignore the Maillogger.starttls.enable property.
1181
   Bugzilla Report 50668.
1182
 
1183
 * Delete task example does not work
1184
   Bugzilla Report 50816.
1185
 
1186
 * <splash>'s proxy handling has been delegated to <setproxy>
1187
   internally so the two tasks are consistent.  <splash>'s way of not
1188
   setting a proxy caused problems with other Java libraries.
1189
   Bugzilla Report 50888.
1190
 
1191
 * Include task breaks dependencies or extension-points for multiple
1192
   files.
1193
   Bugzilla Report 50866.
1194
 
1195
 * Read on System.in hangs for forked java task.
1196
   Bugzilla Report 50960.
1197
 
1198
 * FileResource specified using basedir/name attributes was non-functional.
1199
 
1200
 * Resource collection implementation of mapped PropertySet returned
1201
   unusable resources.
1202
 
1203
 * The hasmethod condition failed with a NullPointerException when
1204
   ignoresystemclasses is true and Ant tried to load a "restricted
1205
   class" - i.e. a class that the Java VM will only accept when loaded
1206
   via the bootclassloader (a java.* class).
1207
   It will now fail with a more useful error message.
1208
   Bugzilla Report 51035.
1209
 
1210
 * Exec task may mix the stderr and stdout output while logging it
1211
   Bugzilla Report 50507.
1212
 
1213
 * Missing space between "finished" and timestamp in task/target
1214
   finish message from ProfileLogger.
1215
   Bugzilla Report 51109.
1216
 
1217
 * Redirecting the output of a java, exec or apply task could print in the
1218
   error output stream some "Pipe broken" errors.
1219
   Bugzilla Report 48789.
1220
 
1221
 * ZipFile failed to clean up some resources which could lead to
1222
   OutOfMemoryException while unzipping large archives.
1223
   A similar problem in ZipArchiveOutputStream has been fixed as well.
1224
   Bugzilla Report 42696.
1225
 
1226
 * quiet attribute added to the copy and move tasks, to be used together
1227
   with failonerror=false, so warnings won't get logged
1228
   Bugzilla Report 48789.
1229
 
1230
 * System.in was closed and not readable anymore by the DefaultInputHandler
1231
   when Ant is used via its Java API.
1232
   Bugzilla Report 51161
1233
 
1234
 * <sync> only supported a single non-fileset resource collection even
1235
   though the manual said it could be multiple.
1236
 
1237
 * <sync> didn't work properly when working on resource collections.
1238
   Bugzilla Report 51462.
1239
 
1240
 * <augment> cause a NullPointerException if it was used in a target
1241
   that was invoked by multiple targets from the command line.
1242
   Bugzilla Report 50894.
1243
 
1244
 * The ZipFile class could read past the start of the file if the
1245
   given file is not a ZIP archive and it is smaller than the size of
1246
   a ZIP "end of central directory record".
1247
 
1248
 * <javac> would create the empty package-info.class file in the wrong
1249
   directory if no destdir was specified.  Note it may still pick the
1250
   wrong directory if you specify more than one source directory but
1251
   no destDir.  It is highly recommended that you always explicitly
1252
   specify the destDir attribute.
1253
   Bugzilla Report 51947.
1254
 
1255
 * packagemapper now honors the handleDirSep attribute.
1256
   Bugzilla Report 51086.
1257
 
1258
 * the attributes of macrodef tasks had their values run through
1259
   property expansion twice. Still true by default, but can be disabled.
1260
   Bugzilla Report 42046.
1261
 
1262
 * jvc doesn't like it if source file names in argument files are
1263
   quoted.
1264
   Bugzilla Report 31667.
1265
 
1266
 * ZipFile didn't work properly for archives using unicode extra
1267
   fields rather than UTF-8 filenames and the EFS-Flag.
1268
 
1269
 * Access to DirectoryScanner's default excludes wasn't synchronized.
1270
   Bugzilla Report 52188.
1271
 
1272
 * When a Project instance was created by a custom tasks its
1273
   createTask method didn't work.
1274
   Bugzilla Report 50788.
1275
 
1276
Other changes:
1277
--------------
1278
 
1279
 * -f/-file/-buildfile accepts a directory containing build.xml.
1280
 
1281
 * The <javacc>, <jjtree> and <jjdoc> now support a new maxmemory
1282
   attribute.
1283
   Bugzilla Report 50513.
1284
 
1285
 * the documented inputstring attribute of sshexec has been
1286
   implemented and the actually existing attribute inputproperty
1287
   documented.
1288
   Bugzilla Report 50576.
1289
 
1290
 * The concat task now permits the name of its exposed resource
1291
   by means of its 'resourcename' attribute.
1292
 
1293
 * The expandproperties filter now accepts a nested propertyset
1294
   which, if specified, provides the properties for expansion.
1295
   Bugzilla Report 51044.
1296
 
1297
 * <junit filtertrace="true"/> will no longer filter out the very
1298
   first line of the stacktrace containing the original exception
1299
   message even if it matches one of the filter expressions.
1300
 
1301
 * Upgraded to Apache AntUnit 1.2
1302
 
1303
 * Provide read access to Mkdir.dir.  Bugzilla Report 51684.
1304
 
1305
 * <delete> and <move> have a new attribute performGCOnFailedDelete
1306
   that may - when set to true - help resolve some problems with
1307
   deleting empty directories on NFS shares.
1308
   Bugzilla Report 45786.
1309
 
1310
 * <loadfile> and <loadresource> used to log at level INFO to signal a
1311
   property hasn't been set when the resource was empty even if the
1312
   quiet attribute was set to true.  They will now use VERBOSE
1313
   instead.
1314
   Bugzilla Report 52107.
1315
 
1316
 * <javac> has a new attribute createMissingPackageInfoClass that can
1317
   be set to false to prevent Ant from creating empty dummy classes
1318
   used for up-to-date-ness checks.
1319
   Bugzilla Report 52096.
1320
 
1321
 * URLResources#isExists has become less noisy.
1322
   Bugzilla Report 51829.
1323
 
1324
 * The <retry> task has a new optional attribute retryDelay that can
1325
   be used to make the task sleep between retry attempts.
1326
   Bugzilla Report 52076.
1327
 
1328
 * <signjar> has new attributes that control the signature and digest
1329
   algorithms.
1330
   Bugzilla Report 52344.
1331
 
1332
 * Initial support for Java 8.
1333
 
1334
 * <sshexec> can optionally create a pseudo terminal (like ssh -t)
1335
   Bugzilla Report 52554.
1336
 
1337
Changes from Ant 1.8.1 TO Ant 1.8.2
1338
===================================
1339
 
1340
Changes that could break older environments:
1341
-------------------------------------------
1342
 
1343
 * Prior to Ant 1.8.0 the <copy> task and several other tasks would
1344
   overwrite read-only destination files.  Starting with 1.8.0 they
1345
   would only do so under special circumstances.  Ant 1.8.2 now
1346
   consistently won't replace a read-only file by default. The same is
1347
   true for a number of other tasks.
1348
   The <copy>, <move> and <echo> tasks now have a new force attribute
1349
   and <concat> has a new forceReadonly attribute that can be used to
1350
   make the task overwrite read-only destinations.
1351
   Bugzilla Report 49261.
1352
 
1353
 * Removed ant-nodeps.jar; it is now merged into ant.jar.
1354
 
1355
 * DOMElementWriter#encode used to employ special code before encoding
1356
   ampersands so that &#123; remained &#123; rather than being turned
1357
   into &amp;#123;.  This is no longer the case, ampersands will now
1358
   be encoded unconditionally.
1359
   Also DOMElementWriter#encodeData will treat CDATA sections containing a
1360
   literal "]]>" sequence different now - it will split the CDATA
1361
   section between the second "]" and ">" and create two sections.
1362
   This affects <echoxml> task as well as the XML logger or JUnit
1363
   formatter where ampersands will now always get encoded.
1364
   In addition DOMElementWriter will now replace the characters \t, \r
1365
   and \n in attribute values by entity references.
1366
   Bugzilla Report 49404.
1367
 
1368
 * The list elements returned by ProjectHelper#getExtensionStack are
1369
   now String arrays of length 3 rather than 2 in order to support the
1370
   onMissingExtensionPoint attribute.
1371
   Bugzilla Report 49473.
1372
 
1373
 * When using <property file="..." prefix="..."/> properties defined
1374
   inside the same file will only get used in expansions if the ${}
1375
   reference uses the same prefix.  This is different from Ant 1.8.1
1376
   but is the same behavior Ant 1.8.0 and earlier exhibited.
1377
   A new attribute prefixValues can be used to re-enable the behavior
1378
   of Ant 1.8.1.
1379
   Bugzilla Report 49373.
1380
 
1381
 * The files and directories used by Git, Mercurial and Bazaar to
1382
   store their information are now excluded by the defaultexcludes.
1383
   Bugzilla Report 49624.
1384
 
1385
 * The <junit> task no longer generates TestListener events - which
1386
   have been introduced in ant 1.7.0 - by default.  The task has a new
1387
   attribute enableTestListenerEvents and a new "magic" property
1388
   ant.junit.enabletestlistenerevents has been added that can be used
1389
   to reinstate the old behavior.
1390
 
1391
Fixed bugs:
1392
-----------
1393
 
1394
 * hostinfo now prefers addresses with a hostname over addresses without
1395
   a hostname, provided the addresses have the same scope.
1396
   For local lookup, no IP address will be put in NAME / DOMAIN anymore.
1397
   For remote lookup, if a host name was provided and only an IP address is
1398
   found, the IP address will no longer overwrite the host name provided to the
1399
   task.
1400
   Bugzilla Report 49513
1401
 
1402
 * mmap-based file copy problems under JDK 1.4 on Linux.
1403
   Bugzilla Report 49430.
1404
 
1405
 * The Sun JVM tries to mmap the entire file during a copy.
1406
   For large files this is not feasible.
1407
   We now explicitly request to copy at most 16 MiB per request.
1408
   Bugzilla Report 49326.
1409
 
1410
 * DemuxInputStream.read() should return unsigned values
1411
   Bugzilla Report 49279.
1412
 
1413
 * The MIME mailer ignored the port parameter when using SSL.
1414
   Bugzilla Report 49267.
1415
 
1416
 * <xslt> ignored the classpath when using the default TraX processor.
1417
   Bugzilla Report 49271.
1418
 
1419
 * <checksum>'s totalproperty only worked reliably if the same file
1420
   name didn't occur inside more than one directory.
1421
   Bugzilla Report 36748.
1422
 
1423
 * <ftp> could fail to download files from remote subdirectories under
1424
   certain circumstances.
1425
   Bugzilla Report 49296.
1426
 
1427
 * <junit> will now produce better diagnostics when it fails to delete
1428
   a temporary file.
1429
   Bugzilla Report 49419.
1430
 
1431
 * Ant would often scan directories even though there were known to
1432
   only hold excluded files when evaluating filesets.  This never
1433
   resulted in wrong results but degraded performance of the scan
1434
   itself.
1435
   Bugzilla Report 49420.
1436
 
1437
 * <javac> failed for long command lines on OS/2.
1438
   Bugzilla Report 49425.
1439
 
1440
 * <junitreport> did not handle encodings well for stdout/stderr.
1441
   Bugzilla Report 49418.
1442
 
1443
 * <junit> could issue a warning about multiple versions of Ant on the
1444
   CLASSPATH if two CLASSPATH entries differed in case on a
1445
   case-insensitive file system.
1446
   Bugzilla Report 49041.
1447
 
1448
 * The <restrict> resource collection was checking every resource even if
1449
   we actually just want the first one, like in the example of use of
1450
   resourcelist in the documentation (getting the first available resource
1451
   from a mirror list).
1452
 
1453
 * A race condition could lead to build failures if multiple <mkdir>
1454
   tasks were trying to create the same directory.
1455
   Bugzilla Report 49572.
1456
 
1457
 * the toString() method of the Resources class - and thus any
1458
   ${toString:} expansion of a reference to a <resources> element -
1459
   didn't iterate over its nested elements if it hadn't done so prior
1460
   to the toString invocation already.
1461
   Bugzilla Report 49588.
1462
 
1463
 * <apply> in parallel mode didn't work together with a nested
1464
   <redirector> if maxparallel was <= 0 (the default) or no source
1465
   files matched.
1466
   Bugzilla Report 49594.
1467
 
1468
 * <jar filesetmanifest="merge"> didn't work for manifests added via
1469
   <zipfileset>s that used the prefix or fullpath attributes.
1470
   Bugzilla Report 49605.
1471
 
1472
 * <tempfile createfile="true"> would cause an error unless the prefix
1473
   attribute has been specified.
1474
   Bugzilla Report 49755.
1475
 
1476
 * If forked, after finished <java> was still reading the input stream
1477
   for a bunch of characters, then stealing them from a following <input>.
1478
   Bugzilla Report 49119.
1479
 
1480
 * Ant could be leaking threads for each forked process (started by
1481
   <exec>, <apply>, <java> or similar tasks) that didn't receive input
1482
   from a resource or string explicitly.
1483
   Bugzilla Report 49587.
1484
 
1485
 * Project#setDefault threw an exception when null was passed in as
1486
   argument, even though the Javadoc says null is a valid value.
1487
   Bugzilla Report 49803.
1488
 
1489
 * runant.py would swallow the first argument if CLASSPATH wasn't set.
1490
   Bugzilla Report 49963.
1491
 
1492
 * <taskdef> failed to load resources from jar files contained in a
1493
   directory that has a "!" in its name.
1494
   Bugzilla Report 50007.
1495
 
1496
 * ant.bat exit strategy improvements and issues
1497
   make the exit codes work in environments where 4NT or MKS are installed
1498
   Bugzilla Report 41039.
1499
 
1500
 * <signjar> would fail if used via its Java API and the File passed
1501
   into the setJar method was not "normalized" (i.e. contained ".."
1502
   segments).
1503
   Bugzilla Report 50081.
1504
 
1505
 * <delete> ignored <fileset>'s errorOnMissingDir attribute
1506
   Bugzilla Report 50124.
1507
 
1508
 * <symlink> failed to close files when reading a list of symbolic
1509
   links from a properties file.
1510
   Bugzilla Report 50136.
1511
 
1512
 * <parallel> could allow tasks to start executing even if a task
1513
   scheduled to run before them timed out.
1514
   Bugzilla Report 49527.
1515
 
1516
 * If a <junit> batch with multiple tests times out Ant logs a message
1517
   about a test named Batch-With-Multiple-Tests since 1.8.0 but the
1518
   logic that determined the Java package of this pseudo-test has been
1519
   wrong.
1520
   Bugzilla Report 45227.
1521
 
1522
 * <propertyfile> didn't preserve the original linefeed style when
1523
   updating a file.
1524
   Bugzilla Report 50049.
1525
 
1526
 * <zip>'s whenEmpty behavior never consulted the non-fileset
1527
   resources so the task could fail even though resources have been
1528
   provided using non-fileset resource collections.
1529
   Bugzilla Issue 50115.
1530
 
1531
*  ftp chmod could throw a NPE.
1532
   Bugzilla report 50217.
1533
 
1534
*  The project help (-p option in the command line) will now print
1535
   the dependencies of the targets in debug mode (-d on the command
1536
   line)
1537
 
1538
Other changes:
1539
--------------
1540
 
1541
 * <concat>'s force attribute has been deprecated in favor of a new
1542
   overwrite attribute that is consistent with <copy>'s attribute
1543
   names.
1544
 
1545
 * You can now specify a list of methods to run in a JUnit test case.
1546
   Bugzilla Report 34748.
1547
 
1548
 * properties in files read because of the -propertyfile command line
1549
   option will now get resolved against other properties that are
1550
   defined before the project starts executing (those from the same or
1551
   earlier -propertfiles or defined via the -D option).
1552
   Bugzilla Report 18732.
1553
 
1554
 * <pathelement>s can now contain wildcards in order to use wildcard
1555
   CLASSPATH entries introduced with Java6.
1556
   The wildcards are not expanded or even evaluated by Ant and will be
1557
   used literally.  The resulting path may be unusable as a CLASSPATH
1558
   for Java versions prior to Java6 and likely doesn't mean anything
1559
   when used in any other way than a CLASSPATH for a forked Java VM.
1560
   Bugzilla Report 46842.
1561
 
1562
 * A new attribute allows targets to deal with nonexistent extension
1563
   points, i.e. they can extend an extension-point if it has been
1564
   defined or silently work as plain targets if it hasn't.  This is
1565
   useful for targets that get included/imported in different
1566
   scenarios where a given extension-point may or may not exist.
1567
   Bugzilla Report 49473.
1568
 
1569
 * Ant now logs a warning message if it fails to change the file
1570
   modification time in for example when using <touch> or preserving
1571
   timestamps in various tasks.
1572
   Bugzilla Report 49485.
1573
 
1574
 * ProjectHelpers can now be installed dynamically via the <projecthelper>
1575
   Ant task.
1576
 
1577
 * <import> is now able to switch to the proper ProjectHelper to parse
1578
   the imported resource. This means that several kinds of different build
1579
   files can import each other.
1580
 
1581
 * <copy tofile=""> now also works for non-filesystem resources.
1582
   Bugzilla Report 49756.
1583
 
1584
 * The <linecontainsregexp> filter now supports a casesensitive
1585
   attribute.
1586
 
1587
 * The <containsregexp> selector now supports casesensitive, multiline
1588
   and singleline attributes.
1589
   Bugzilla Report 49764.
1590
 
1591
 * A new <cutdirsmapper> can be used like wget's --cut-dirs option to
1592
   strip leading directories from file names.
1593
 
1594
 * <javah> now supports the GNU project's gcjh compiler.
1595
   Bugzilla Report 50149.
1596
 
1597
 * <checksum> supports additional views of a file's path as elements
1598
   for a custom pattern.
1599
   Bugzilla Report 50114.
1600
 
1601
 * JUnit XMLResultAggregator logs the stack trace of caught IO exceptions
1602
   in verbose runs.
1603
   Bugzilla Report 48836.
1604
 
1605
 * StringUtils.parseHumanSizes() should turn parse failures into
1606
   BuildExceptions.
1607
   Bugzilla Report 48835.
1608
 
1609
 * New task <bindtargets> to make a list of targets bound to some
1610
   specified extension point.
1611
 
1612
 * Initial support for OpenJDK7 has been added.
1613
 
1614
 * Ant now uses java.net.CookieStore rather than
1615
   java.util.ServiceLocator to detect whether the environment is a
1616
   Java 1.6 system.  This means releases of gcj/gij at the time of
1617
   this release of Ant are detected as Java 1.5 and not 1.6.
1618
   Bugzilla Report 50256.
1619
 
1620
 * It is now possible to write a compiler adapter for <javac> that
1621
   compiles sources with extensions other than .java (but that still
1622
   compile to .class files).
1623
   Bugzilla Report 48829.
1624
 
1625
 * The performance of VectorSet#add(Object) has been improved which
1626
   should also benefit any operation that scans directories in Ant.
1627
   Bugzilla Report 50200.
1628
 
1629
Changes from Ant 1.8.0 TO Ant 1.8.1
1630
===================================
1631
 
1632
Changes that could break older environments:
1633
-------------------------------------------
1634
 
1635
 * ant-trax.jar is no longer produced since TrAX is included in JDK 1.4+.
1636
 
1637
 * Ant no longer ships with Apache Xerces-J or the XML APIs but relies
1638
   on the Java runtime to provide a parser and matching API versions.
1639
 
1640
 * The stylebook ant task and the ant-stylebook.jar are removed.
1641
 
1642
Fixed bugs:
1643
-----------
1644
 
1645
 * Tasks that iterate over task or type definitions, references or
1646
   targets now iterate over copies instead of the live maps to avoid
1647
   ConcurrentModificationExceptions if another thread changes the
1648
   maps.
1649
   Bugzilla Report 48310.
1650
 
1651
 * The filesmatch condition threw a NullPointerException when
1652
   comparing text files and the second file contained fewer lines than
1653
   the first one.
1654
   Bugzilla Report 48715.
1655
 
1656
 * Regression: The <ear> task would allow multiple
1657
   META-INF/application.xml files to be added.
1658
   Bugzilla Report 6836.
1659
 
1660
 * VectorSet#remove(Object) would fail if the size of the vector
1661
   equaled its capacity.
1662
 
1663
 * Regression : ant -diagnostics was returning with exit code 1
1664
   Bugzilla Report 48782
1665
 
1666
 * Fix for exec task sometimes inserts extraneous newlines
1667
   Bugzilla Report 48746
1668
 
1669
 * SymlinkTest#testSymbolicLinkUtilsMethods failing on MacOS
1670
   Bugzilla Report 48785.
1671
 
1672
 * If <concat>'s first resourcecollection child is a <resources>,
1673
   any subsequently added child resourcecollection joins the first.
1674
   Bugzilla Report 48816.
1675
 
1676
 * <get> with an invalid URL could trigger an NPE in some JVMs.
1677
   Bugzilla Report 48833
1678
 
1679
 * Broken Pipe issue under Ubuntu Linux
1680
   Bugzilla Report 48789
1681
 
1682
 * Properties wrongly read from file or not update during read
1683
   Bugzilla Report 48768
1684
 
1685
 * AntClassLoader in Ant 1.8.0 has been considerably slower than in
1686
   1.7.1
1687
   Bugzilla Report 48853
1688
 
1689
 * ANT_CMD_LINE_ARGS are rippling through lower level Ant usage
1690
   Bugzilla Report 48876
1691
 
1692
 * email : IO error sending mail with plain mimetype
1693
   Bugzilla Report 48932
1694
 
1695
 * the complete-ant-cmd.pl script failed to create a proper cache of
1696
   target if "ant -p" failed.
1697
   Bugzilla Report 48980
1698
 
1699
 * <rmic>'s sourcebase attribute was broken.
1700
   Bugzilla Report 48970
1701
 
1702
 * <copy>'s failonerror didn't work as expected when copying a single
1703
   element resource collection to a file.
1704
   Bugzilla Report 49070
1705
 
1706
 * <get> no longer followed redirects if the redirect URL was relative
1707
   and not an absolute URL.
1708
   Bugzilla Report 48972
1709
 
1710
 * fixed a performance degradation in the code that expands property
1711
   references.
1712
   Bugzilla Reports 48961 and 49079
1713
 
1714
 * <jar filesetmanifest="merge"> was broken on Windows.
1715
   Bugzilla Report 49090
1716
 
1717
 * <symlink> delete failed if the link attribute was a relative path
1718
   to a link inside the current directory without a leading ".".
1719
   Bugzilla Report 49137
1720
 
1721
 * <telnet> and <rexec> failed to find the expected strings when
1722
   waiting for responses and thus always failed.
1723
   Bugzilla Report 49173
1724
 
1725
Other changes:
1726
--------------
1727
 
1728
 * Project provides new get methods that return copies instead of the
1729
   live maps of task and type definitions, references and targets.
1730
 
1731
 * Ant is now more lenient with ZIP extra fields and will be able to
1732
   read archives that it failed to read in earlier versions.
1733
   Bugzilla Report 48781.
1734
 
1735
 * The <zip> family of tasks has been sped up for bigger archives.
1736
   Bugzilla Report 48755.
1737
 
1738
 * Add removeKeepExtension option to NetRexxC task.
1739
   Bugzilla Report 48788.
1740
 
1741
 * Add prefix attribute to loadproperties task.
1742
 
1743
 * Add resource attribute to length task.
1744
 
1745
 * PropertyResource will effectively proxy another Resource if ${name}
1746
   evaluates to a Resource object.
1747
 
1748
 * Added forcestring attribute to equals condition to force evaluation
1749
   of Object args as strings; previously only API-level usage of the
1750
   equals condition allowed Object args, but Ant 1.8.x+ property
1751
   evaluation may yield values of any type.
1752
 
1753
 * BuildFileTest.assertPropertyUnset() fails with a slightly more
1754
   meaningful error message
1755
   Bugzilla Report 48834
1756
 
1757
 * <junit> will now throw an exception if a test name is empty.  This
1758
   used to manifest itself in unrelated errors like
1759
   Bugzilla Report 43586.
1760
 
1761
 * A change that made <exec> more reliable on Windows (Bugzilla Report
1762
   5003) strongly impacts the performance for commands that execute
1763
   quickly, like attrib.  Basically no single execution of a command
1764
   could take less than a second on Windows.
1765
   A few timeouts have been tweaked to allow these commands to finish
1766
   more quickly but still they will take longer than they did with Ant
1767
   1.7.1.
1768
   Bugzilla Report 48734.
1769
 
1770
 * Added SimpleBigProjectLogger, intermediate between NoBannerLogger and
1771
   BigProjectLogger.
1772
 
1773
 * <mappedresources> supports new attributes enablemultiplemappings
1774
   and cache.
1775
 
1776
 * Added the augment task to manipulate existing references via Ant's basic
1777
   introspection mechanisms.
1778
 
1779
Changes from Ant 1.8.0RC1 TO Ant 1.8.0
1780
======================================
1781
 
1782
Changes that could break older environments:
1783
-------------------------------------------
1784
 
1785
 * the appendtolines filter has been renamed to suffixlines.
1786
 
1787
Fixed bugs:
1788
-----------
1789
 
1790
 * stack traces were not reported at all by <junit/>
1791
   when filtertrace="on", which is the default.
1792
 
1793
 * ant.bat can now also process the -noclasspath switch when it is
1794
   the first switch on a command line.
1795
   Bugzilla Report 48186.
1796
 
1797
 * <fixcrlf> now tries to delete the created temporary files earlier.
1798
   Bugzilla Report 48506.
1799
 
1800
 * the implementation of <zip> had been changed in a way that broke
1801
   the jarjar links task and protentially other third-party subclasses
1802
   as well.
1803
   Bugzilla Report 48541.
1804
 
1805
 * <scp> task didn't report build file location when a remote operation failed
1806
   Bugzilla Report 48578.
1807
 
1808
 * <propertyfile> would add the same comment and a date line each time
1809
   it updated an existing property file.
1810
   Bugzilla Report 48558.
1811
 
1812
 * <sound> didn't work properly in recent Java VMs.
1813
   Bugzilla Report 48637.
1814
 
1815
Other changes:
1816
--------------
1817
 
1818
Changes from Ant 1.7.1 TO Ant 1.8.0RC1
1819
======================================
1820
 
1821
Changes that could break older environments:
1822
-------------------------------------------
1823
 
1824
 * if and unless attributes (on <target> as well as various tasks and other
1825
   elements) have long permitted ${property} interpolation. Now, if the result
1826
   evaluates to "true" or "false" (or "yes", "no", "on", "off"), that boolean
1827
   value will be used; otherwise the traditional behavior of treating the value
1828
   as a property name (defined ~ true, undefined ~ false) is used. Existing
1829
   scripts could be broken if they perversely defined a property named "false"
1830
   and expected if="false" to be true, or used if="true" expecting this to be
1831
   triggered only if a property named "true" were defined.
1832
 
1833
 * Ant now requires Java 1.4 or later.
1834
 
1835
 * Improved handling of InterruptException (lets suppose someone/thing
1836
   is trying to kill the thread when we receive an
1837
   InterruptException), when an InterruptException is received, we do
1838
   not wait anymore in a while loop till the end time has been
1839
   reached.
1840
   Bugzilla Report 42924.
1841
 
1842
 * Refactor PropertyHelper and introspection APIs to make extension
1843
   more granular and support setting task/type attribute values to
1844
   objects decoded by custom PropertyEvaluator delegates. Also add
1845
   <propertyhelper> task for registering delegates and/or replacing
1846
   the registered PropertyHelper instance.
1847
   Bugzilla Report 42736.
1848
 
1849
 * Added a restricted form of typedef called <componentdef>. This
1850
   allows definition of elements that can only be within tasks or
1851
   types. This method is now used to define conditions, selectors,
1852
   comparators and filterreaders. This means that tasks may now have
1853
   nested conditions just by implementing the Condition interface,
1854
   rather than extending ConditionBase. It also means that the use of
1855
   namespaces for some of the selectors introduced in Ant 1.7.0 is no
1856
   longer necessary.  Implementing this means that the DynamicElement
1857
   work-around introduced in Ant 1.7.0 has been removed.
1858
   Bugzilla Report 40511.
1859
 
1860
 * In the <touch> task when a <mapper> is used, the millis and
1861
   datetime attributes now override the time of the source resource if
1862
   provisioned.
1863
   Bugzilla Report 43235.
1864
 
1865
 * Remove fall-back mechanism for references that are not resolved
1866
   during normal runtime execution.
1867
 
1868
 * FileUtils.createTempFile now actually creates the file.
1869
   The TempFile task still does not create the file by default, can be
1870
   instructed to do so however using a new parameter.
1871
   Bugzilla Report 33969.
1872
 
1873
 * A lock in Project ensured that a BuildListener's messageLogged
1874
   method was only ever executed by a single thread at a time, while
1875
   all other methods could be invoked by multiple threads
1876
   simultaniously (while within <parallel>, for example).  This lock
1877
   is no longer in place, messageLogged should be made thread-safe
1878
   now.
1879
 
1880
 * <sql>'s onError="stop" no longer fails the build if an error
1881
   occurs,  this is the main difference between stop and error and
1882
   matches what the documentation implied.
1883
   Bugzilla Report 24668.
1884
 
1885
 * Ant's configuration introspection mechanisms have been modified to prefer
1886
   Resource and FileProvider attributes to plain java.io.File attributes;
1887
   however the configuration-from-String behavior remains equivalent, rendering
1888
   a FileResource.
1889
 
1890
 * CBZip2InputStream will now throw an IOException if
1891
   passed in a null or empty InputStream to read from.
1892
   Bugzilla Reports 32200.
1893
 
1894
 * <unzip> will now fail when trying to extract certain broken
1895
   archives that would have been silently ignored in earlier version.
1896
   Bugzilla Report 35000.
1897
 
1898
 * Ant's <zip> family of tasks tries to preserve the existing Unix
1899
   permissions when updating archives or copying entries from one
1900
   archive to another.
1901
   Since not all archiving tools support storing Unix permissions in
1902
   the same way that is used by Ant, sometimes the permissions read by
1903
   Ant seem to be 0, which means nobody is allowed to do anything to
1904
   the file or directory.
1905
   If Ant now encounters a permission set of 0 it will assume that
1906
   this is not the intended value and instead apply its own default
1907
   values.  Ant used to create entries with 0 permissions itself.
1908
   The <zip> family of tasks has a new attribute preserve0permissions
1909
   that can be set to restore the old behavior.
1910
   Bugzilla Report 42122.
1911
 
1912
 * If a batch containing multiple JUnit tests running inside a forked
1913
   Java VM caused the VM to crash (or caused a timeout), the
1914
   formatters would receive an error message for the last test in the
1915
   batch.
1916
   Ant will now pass in a test with the name "Batch-With-Multiple-Tests"
1917
   instead - this is supposed to show more clearly that the last test
1918
   may not have started at all.
1919
   Bugzilla Report 45227.
1920
 
1921
 * If the number of minutes a build takes is bigger then 1000 Ant will
1922
   no longer print a thousands separator in the "elapsed time"
1923
   message.  It used to be the thousands separator of the current
1924
   locale.
1925
   Bugzilla Report 44659.
1926
 
1927
 * <symlink action="delete"> used to fail if the link was broken (i.e.
1928
   pointing to a file or directory that no longer existed).  It will now
1929
   silently try to remove the link.
1930
   Bugzilla Report 41285.
1931
 
1932
 * <delete file="..."> used to log a warning and not delete broken
1933
   symbolic links.  <delete dir="..."/> didn't even log a warning.
1934
   The task will now try to delete them in both cases.
1935
   Bugzilla Report 41285.
1936
 
1937
 * if the dir attribute of a <fileset> points to a symbolic link and
1938
   followsymlinks is set to false, the fileset will no longer be
1939
   scanned and always seem empty.
1940
   Bugzilla Report 45741.
1941
 
1942
 * the .NET tasks that have been deprecated since Ant 1.7.0 have been
1943
   removed, please use the stand-alone Antlib you can find at
1944
   http://ant.apache.org/antlibs/dotnet/index.html
1945
   instead.
1946
 
1947
 * the logic of closing streams connected to forked processes (read
1948
   the input and output of <exec> and friends) has been changed to
1949
   deal with cases where child processes of the forked processes live
1950
   longer than their parents and keep Ant from exiting.
1951
   It is unlikely but possible that the changed logic breaks stream
1952
   handling on certain Java VMs.
1953
   Bugzilla issue 5003.
1954
 
1955
 * <checksum>'s totalproperty was platform dependent because it relied
1956
   on java.io.File#compareTo.  It has now been made platform
1957
   independent, which means that totalPropery values obtained on
1958
   Windows (and other systems where the sort order of File is not case
1959
   sensitive) can be different from the values obtained with earlier
1960
   versions of Ant.
1961
   Bugzilla Report 36748.
1962
 
1963
 * globmapper didn't work properly if the "to" or "from" patterns
1964
   didn't contain a "*".  In particular it implicitly added a * to the
1965
   end of the pattern(s).  This is no longer the case.  If you relied
1966
   on this behavior you will now need to explicitly specify the
1967
   trailing "*".
1968
   Bugzilla Report 46506.
1969
 
1970
 * <copy> silently ignored missing resources even with
1971
   failOnError="true".  If your build tries to copy non-existent
1972
   resources and you relied on this behavior you must now explicitly
1973
   set failOnError to false.
1974
   Bugzilla Report 47362.
1975
 
1976
 * Ant now prefers the java.runtime.version system property over
1977
   java.vm.version for the Created-By Manifest attribute.
1978
   Bugzilla Report 47632.
1979
 
1980
 * The <image> task now supports a nested mapper.  In order to
1981
   implement this, the Java API of the task had to change so any
1982
   custom subclass overriding the processFile method will need to
1983
   adapt (by overriding the new two-arg processFile method).
1984
   Bugzilla Report 23243.
1985
 
1986
 * A new property syntax can be used to set attributes from
1987
   references: ${ant.ref:some-reference}
1988
 
1989
   In most cases this will yield the exact same result as
1990
   ${toString:some-reference} - only when an attribute setter method
1991
   accepts an object type other than string and the project's
1992
   reference is an Object of matching type the new syntax will pass in
1993
   that object.
1994
 
1995
   If your build file already contains properties whose name starts
1996
   with "ant.ref:" there is a potential for collision.  If your
1997
   property has been set, normal property expansion will take
1998
   precedence over the new syntax.  If the property has not been set
1999
   and a reference with the postfix of your property name exists
2000
   (i.e. in a very unlikely event) then the new syntax would yield a
2001
   different result (an expanded property) than Ant 1.7.1 did.
2002
 
2003
 * A ProjectHelper implementation can now provide the default build file
2004
   name it is expecting, and can specify if they can support a specific build
2005
   file. So Ant is now capable of supporting several ProjectHelper
2006
   implementations, deciding on which to use depending of the input build file.
2007
 
2008
 * Mapper-aware selectors (depends, different, present) now accept typedef'd
2009
   FileNameMappers.
2010
 
2011
Fixed bugs:
2012
-----------
2013
 
2014
 * The default logger was failing to print complete stack traces for
2015
   exceptions other than BuildException when inside <ant> or
2016
   <antcall>, thus omitting often important diagnostic
2017
   information.
2018
   Bugzilla 43398 (continued).
2019
 
2020
 * Better handling of package-info.class.
2021
   Bugzilla Report 43114.
2022
 
2023
 * RPM task needed an inserted space between the define and the value.
2024
   Bugzilla Report 46659.
2025
 
2026
 * Got rid of deadlock between in, out and err in the Redirector.
2027
   Bugzilla Report 44544.
2028
 
2029
 * Caused by AssertionError no longer filtered.
2030
   Bugzilla Report 45631.
2031
 
2032
 * <zip> would sometimes recreate JARs unnecessarily.
2033
   Bugzilla Report 45902.
2034
 
2035
 * <symlink> task couldn't overwrite existing symlinks that pointed to
2036
   nonexistent files
2037
   Bugzilla Report 38199.
2038
 
2039
 * <symlink> task couldn't overwrite files that were in the way of the symlink.
2040
   Bugzilla Report 43426.
2041
 
2042
 * <symlink> task failonerror="false" does not stop build from failing
2043
   when 'ln' command returns non-zero.
2044
   Bugzilla Report 43624
2045
 
2046
 * <touch> task couldn't differentiate between "no resources
2047
   specified" and "no resources matched."
2048
   Bugzilla Report 43799.
2049
 
2050
 * ManifestClassPath failed when a relative path would traverse the
2051
   file system root.
2052
   Bugzilla Report 44499.
2053
 
2054
 * <globmapper> had an indexoutofbounds when the prefix and postfix
2055
   overlapped.
2056
   Bugzilla Report 44731.
2057
 
2058
 * <typedef> and <taskdef> failed to accept file names with #
2059
   characters in them.
2060
   Bugzilla Report 45190
2061
 
2062
 * A deadlock could occur if a BuildListener tried to access an Ant property
2063
   within messageLogged while a different thread also accessed one.
2064
   Bugzilla Report 45194
2065
 
2066
 * Handle null result of system getProperty() in CommandlineJava.
2067
   Similar to Bugzilla Report 42334.
2068
 
2069
 * Length task did not process nonexistent Resources even though these might
2070
   conceivably still carry file length information.
2071
   Bugzilla Report 45271.
2072
 
2073
 * <javac>'s includeJavaRuntime="false" should work for gcj now.  Note
2074
   that you may need to set includeAntRuntime to false in order to
2075
   have full control.
2076
   Bugzilla Report 34638.
2077
 
2078
 * <sql> would fail if the executed statement didn't return a result
2079
   set with some JDBC driver that dissalow Statement.getResultSet to
2080
   be called in such a situation.
2081
   Bugzilla Report 36265
2082
 
2083
 * if the executed statement in <sql> returned a result set and an
2084
   update count, the count would be lost.
2085
 
2086
 * if an executed statement in <sql> mixes update count and result set
2087
   parts, some result sets wouldn't get printed.
2088
   Bugzilla Report 32168.
2089
 
2090
 * XmlLogger could lose messages if <parallel> is used.
2091
   Bugzilla Report 25734.
2092
 
2093
 * <scp> creates remoteToDir if it doesn't exist.
2094
   Bugzilla Report 42781
2095
 
2096
 * CBZip2OutputStream threw an exception if it was closed prior to
2097
   writing anything.
2098
   Bugzilla Reports 32200, 45836
2099
 
2100
 * The IPlanetDeploymentTool didn't use the configured DTD locations.
2101
   Bugzilla Report 31876.
2102
 
2103
 * The ant shell script printed a warning under Cygwin if JAVA_HOME
2104
   was not set.
2105
   Bugzilla Report 45245.
2106
 
2107
 * <filterset> sometimes incorrectly flagged infinite recursions of
2108
   filter tokens
2109
   Bugzilla Report 44226.
2110
 
2111
 * failures were treated as errors in forked JUnit tests when JUnit 4
2112
   was used.
2113
   Bugzilla Report 43892.
2114
 
2115
 * <jar> and <manifest> disallowed manifest attributes whose name
2116
   contained the character '8'.
2117
   Bugzilla Report 45675.
2118
 
2119
 * BigProjectLogger would set the project's basedir to the current
2120
   working directory.
2121
   Bugzilla Report 45607.
2122
 
2123
 * only <formatter>s that logged to a file were notified if forked VM
2124
   crashed or a timeout occurred in <junit>.
2125
   Bugzilla Report 37312.
2126
 
2127
 * ant -v -version would print the version information twice.
2128
   Bugzilla Report 45695.
2129
 
2130
 * when nested into builds that have been invoked by <ant> tasks
2131
   <subant> might set the wrong basedir on the called projects.
2132
   Bugzilla Report 30569.
2133
 
2134
 * If the message of the failed assertion of a forked JUnit test
2135
   contained line feeds some excess output ended up in Ant's log.
2136
   Bugzilla Report 45411.
2137
 
2138
 * <symlink action="delete"> failed to delete a link that pointed to
2139
   a parent directory.
2140
   Bugzilla Report 45743.
2141
 
2142
 * <symlink action="delete"> failed if ant lacked permission to rename
2143
   the link's target.
2144
   Bugzilla Report 41525.
2145
 
2146
 * when checking whether a jar is signed, <signjar> ignored the
2147
   sigfile attribute.
2148
   Bugzilla Report 44805.
2149
 
2150
 * When using JavaMail all <mail> tasks used the same mail host
2151
   regardless of their configuration.
2152
   Bugzilla Report 37970.
2153
 
2154
 * <signjar> and <issigned> didn't handle aliases with characters other
2155
   than numbers, letters, hyphen or underscore properly.
2156
   Bugzilla Report 45820.
2157
 
2158
 * <filterset> could miss multi-character begin tokens in some cases.
2159
   Bugzilla Report 45094.
2160
 
2161
 * <depend> didn't close JARs that were part of the classpath.
2162
   Bugzilla Report 45955.
2163
 
2164
 * in some cases <depend> would delete class files even if it didn't
2165
   find the corresponding source files.
2166
   Bugzilla Report 45916.
2167
 
2168
 * <javadoc> failed if the nested <bottom> or <head> contained line
2169
   breaks.
2170
   Bugzilla Report 43342.
2171
 
2172
 * encoding="auto" has been broken in <mail> since Ant 1.7.0 and only
2173
   worked if JavaMail was available.
2174
   Bugzilla Report 42389.
2175
 
2176
 * MailLogger could cause a NullPointerException.
2177
   Bugzilla Report 44009.
2178
 
2179
 * <junit> didn't recognize failed assertions as failures if they
2180
   caused subclasses of AssertionError to be thrown (like
2181
   org.junit.ComparisonFailure that is thrown when assertEquals
2182
   fails).
2183
   Bugzilla Report 45028.
2184
 
2185
 * the Unix "ant" wrapper script failed to protect wildcards in
2186
   command line arguments in some cases.
2187
   Bugzilla Report 31601.
2188
 
2189
 * <cvstagdiff> crippled file names and could miss some entries if
2190
   multiple modules have been specified.
2191
   Bugzilla Report 35301.
2192
 
2193
 * Tasks with a "public void add(SomeType)" method failed to work as
2194
   TaskContainers at the same time.
2195
   Bugzilla Report 41647.
2196
 
2197
 * Tasks that implementes DynamicElemen or DynamicElementNS failed to
2198
   work as TaskContainers at the same time.
2199
   Bugzilla Report 41647.
2200
 
2201
 * combining SSL and authentication in <mail> and MailLogger failed in
2202
   some setups.
2203
   Bugzilla Report 46063.
2204
 
2205
 * if an error occurs while logging the buildFinished event, the
2206
   original error is now logged to System.err.
2207
   Bugzilla Report 25086.
2208
 
2209
 * <copy> failed with a NullPointerException when copying a resource
2210
   without a name.  It will now fail with a meaningful error message.
2211
   Bugzilla Report 39960.
2212
 
2213
 * <xslt> now uses the configured classpath to load the factory (when
2214
   using TraX) before falling back to Ant's own classpath.
2215
   Bugzilla Report 46172.
2216
 
2217
 * <dependset> complained about files being modified in the future if
2218
   they had been just very recently (within Ant's assumed granularity
2219
   of the file system).
2220
   Bugzilla Report 43665.
2221
 
2222
 * <sshexec> didn't store the output in outputproperty if the remote
2223
   command failed.
2224
   Bugzilla Report 46340.
2225
 
2226
 * DirectoryScanner's slow-scanning algorithm that is used when you
2227
   ask for excluded or not-included files and/or directories could
2228
   miss some files and directories in the presence of recursive
2229
   exclude patterns.
2230
 
2231
 * <sort> resource collection kept only one of entries deemed equal by
2232
   the chosen Comparator.
2233
   Bugzilla Report 46527.
2234
 
2235
 * the ZipFile class used by <unzip> and others could leave the
2236
   archive open (making it undeletable on Windows as long as the java
2237
   VM was running) for files with an unexpected internal structure.
2238
   Bugzilla Report 46559.
2239
 
2240
 * The zip package now supports the extra fields invented by InfoZIP
2241
   in order to store Unicode file names and comments.
2242
 
2243
 * The zip package detects the encoding bit set by more modern
2244
   archivers when they write UTF-8 filenames and optionally sets it
2245
   when writing zips or jars.
2246
   Bugzilla Report 45548
2247
 
2248
 * <sync> could run into a NullPointerException when faced with broken
2249
   symbolic links.
2250
   Bugzilla Report 46747.
2251
 
2252
 * The ant shell script should now support MSYS/MinGW as well.
2253
   Bugzilla Report 46936.
2254
 
2255
 * <signjar> has a new force attribute that allows re-signing of jars
2256
   that are already signed.
2257
   Bugzilla Report 46891.
2258
 
2259
 * <sshexec> now again honors failonerror in the face of connection
2260
   errors.
2261
   Bugzilla Report 46829.
2262
 
2263
 * The <replacetokens> filter threw an exception if the stream to
2264
   filter ended with a begin token.
2265
   Bugzilla Report 47306.
2266
 
2267
 * <scriptmapper>, <scriptfilter> and <scriptcondition> didn't support
2268
   the setbeans attribute.
2269
   Bugzilla Report 47336.
2270
 
2271
 * <loadproperties>' encoding attribute didn't work.
2272
   Bugzilla Report 47382.
2273
 
2274
 * Ant created tar archives could contain random bytes at the end
2275
   which confused some untar implementations.
2276
   Bugzilla Report 47421.
2277
 
2278
 * various places where unchecked PrintWriters could hide exceptions
2279
   have been revisited to now check the error status or not use a
2280
   PrintWriter at all.
2281
   Bugzilla Report 43537.
2282
 
2283
 * filesetmanifest="mergewithoutmain" in <jar> didn't treat inline
2284
   manifests as expected.
2285
   Bugzilla Report 29731.
2286
 
2287
 * <record> didn't work properly with nested builds.
2288
   Bugzilla Report 41368.
2289
 
2290
 * <jar> with filesetmanifest different from skip didn't work if the
2291
   update attribute has been set to true.
2292
   Bugzilla Report 30751.
2293
 
2294
 * The default stylesheets for <junitreport> failed to properly escape
2295
   XML content in exception stack traces.
2296
   Bugzilla Report 39492.
2297
 
2298
 * AntClassLoader didn't set the proper CodeSource for loaded classes.
2299
   Bugzilla Report 20174.
2300
 
2301
 * AntClassLoader.getResourceAsStream would return streams to
2302
   resources it didn't return with getResource and to classes it
2303
   failed to load.
2304
   Bugzilla Report 44103.
2305
 
2306
 * Logging exceptions without a message would cause a
2307
   NullPointerException.
2308
   Bugzilla Report 47623.
2309
 
2310
 * WeblogicDeploymentTool could fail on platforms with a file
2311
   separator other than "/".
2312
   Bugzilla Report 35649.
2313
 
2314
 * The update attribute of the modified selector was ignored.
2315
   Bugzilla Report 32597.
2316
 
2317
 * <manifest> and <jar> can now merge Class-Path attributes from
2318
   multiple sources and optionally flatten them into a single
2319
   attribute.
2320
   The default behaviour still is to keep multiple Class-Path
2321
   attributes if they have been specified and to only include the
2322
   attributes of the last merged manifest.
2323
   Bugzilla Report 39655.
2324
 
2325
 * <delete> didn't work correctly with a <modified> selector because
2326
   it was scanning the same filesets more than once.
2327
   Bugzilla Report 43574.
2328
 
2329
 * when using custom filterreaders with the <filterreader classname="">
2330
   syntax Ant could leak memory.
2331
   The problem didn't occur when using <typedef> or <componentdef> to
2332
   define the filterreader which is the recommended approach.
2333
   Bugzilla Report 45439.
2334
 
2335
 * Ant didn't set the proper "magic" value for tar entries containing
2336
   long file names in GNU longfile mode.
2337
   Bugzilla Report 47653.
2338
 
2339
 * The tar task failed to recognize that the archive had to be
2340
   (re-)created in some cases where the sources are filesystem based
2341
   resources but not filesets.
2342
   Bugzilla Report 48035.
2343
 
2344
 * <sshexec>'s outputproperty was prefixed by the executed command
2345
   when the command attribute has been used, breaking backwards
2346
   compatibility to Ant 1.7.0.
2347
   Bugzilla Report 48040.
2348
 
2349
 * different task instances of the same <scriptdef>ed tasks could
2350
   overwrite each others attributes/nested elements.
2351
   Bugzilla Report 41602.
2352
 
2353
 * The Hashvalue algortihm implementation of the modified task could
2354
   fail to read the file(s) completely.
2355
   Bugzilla Report 48313.
2356
 
2357
Other changes:
2358
--------------
2359
 
2360
 * The get task now also follows redirects from http to https
2361
   Bugzilla Report 47433
2362
 
2363
 * A HostInfo task was added performing information on hosts, including info on
2364
   the host ant is running on.
2365
   Bugzilla Reports 45861 and 31164.
2366
 
2367
 * There is now a FileProvider interface for resources that act as a source
2368
   of filenames. This should be used by tasks that require resources
2369
   to provide filenames, rather than require that all resources
2370
   are instances or subclasses of FileResource.
2371
   Bugzilla Report 43348
2372
 
2373
 * There is now a URLProvider interface for resources that act as a
2374
   source of URLs. This should be used by tasks that require resources
2375
   to provide URLs, rather than require that all resources are
2376
   instances or subclasses of URLResource.
2377
 
2378
 * Fixcrlf now gives better error messages on bad directory attributes.
2379
   Bugzilla Report 43936
2380
 
2381
 * a new property ant.project.default-target holds the value of the
2382
   current <project>'s default attribute.
2383
 
2384
 * a new property ant.project.invoked-targets holds a comma separated
2385
   list of the targets that have been specified on the command line
2386
   (the IDE, an <ant> task ...) when invoking the current project.
2387
 
2388
 * The <type> resource selector has had an "any" type added for better
2389
   configurability.
2390
 
2391
 * Ant should detect the OS as both a Mac and a Unix system when
2392
   running on OpenJDK.
2393
   Bugzilla Report 44889.
2394
 
2395
 * new protected getConnection and getStatement methods allow
2396
   subclasses of SQLExec more control - or access to the cached
2397
   instances when overriding other methods like runStatements.
2398
   Bugzilla Report 27178.
2399
 
2400
 * <sql> has a new failOnConnectionError attribute that can be used to
2401
   keep a build going even if the task failed to connect to the
2402
   database.
2403
   Bugzilla Report 36712.
2404
 
2405
 * A new attribute strictDelimiterMatching can be used to ignore case
2406
   or whitespace differences when <sql> searches for delimiters.
2407
   This is useful if you execute a SQL script that has contains "GO"
2408
   and "go" as delimiters.
2409
   Bugzilla Report 26459.
2410
 
2411
 * A new showWarnings attribute of <sql> allows warnings to be logged.
2412
   Bugzilla Report 41836.
2413
 
2414
 * A new treatWarningsAsErrors attribute of <sql> can be used to fail
2415
   a build if a warning occurs.
2416
   Bugzilla Report 41836.
2417
 
2418
 * Ant now supports scoped properties (see Local task).
2419
   Bugzilla Report 23942.
2420
 
2421
 * <sql>'s CSV output can be controlled via the new attributes
2422
   csvColumnSeparator and csvQuoteCharacter.
2423
   Bugzilla Report 35627.
2424
 
2425
 * <ftp>'s logging has been improved.
2426
   Bugzilla Reports 30932, 31743.
2427
 
2428
 * It is now possible to disable <ftp>'s remote verification.
2429
   Bugzilla Report 35471.
2430
 
2431
 * <sshexec> now supports input in a way similar to <exec>
2432
   Bugzilla Report 39197.
2433
 
2434
 * <scp> can now preserve the file modification time when downloading
2435
   files.
2436
   Bugzilla Report 33939.
2437
 
2438
 * the new task sshsession can run multiple tasks in the presence of
2439
   an SSH session providing (local and remote) tunnels.
2440
   Bugzilla Report 43083.
2441
 
2442
 * ZipOutputStream has been sped up for certain usage scenarios that
2443
   are not used by Ant's family of zip tasks.
2444
   Bugzilla Report 45396.
2445
 
2446
 * <echo> supports an "output" Resource attribute as an alternative to "file".
2447
 
2448
 * <sql> "output" attribute now supports any Resource in addition to a file.
2449
 
2450
 * <scp> no longer requires a passphrase when using key based
2451
   authentication.
2452
   Bugzilla Report 33718.
2453
 
2454
 * a new failOnEmptyArchive attribute on <unzip> and <untar> can now
2455
   make the task fail the build if it tries to extract an empty
2456
   archive.
2457
 
2458
 * <unzip> and <untar> have a new attribute stripAbsolutePathSpec.
2459
   When set to true, Ant will remove any leading path separator from
2460
   the archived entry's name before extracting it (making the name a
2461
   relative file name).
2462
   Bugzilla Report 28911.
2463
 
2464
 * <unzip> will now detect that it was asked to extract a file that is
2465
   not an archive earlier if the file is big.
2466
   Bugzilla Report 45463.
2467
 
2468
 * New file and resource selectors <readable/> and <writable/> have
2469
   been added that select file which the current process can read or
2470
   write.
2471
   Bugzilla Report 45081.
2472
 
2473
 * The filename file selector has a new attribute regex that allows
2474
   files to be selected by matching their names against a regular
2475
   expression.
2476
   Bugzilla Report 45284
2477
 
2478
 * The name resource selector has a new attribute regex that allows
2479
   resources to be selected by matching their names against a regular
2480
   expression.
2481
   Bugzilla Report 45284
2482
 
2483
 * Enhanced performance of Project.fireMessageLoggedEvent and DirectoryScanner
2484
   Bugzilla Reports 45651 and 45665
2485
 
2486
 * The package list location for offline links can now be specified as
2487
   an URL.
2488
   Bugzilla Report 28881
2489
 
2490
 * <echoxml> now supports XML namespaces.
2491
   Bugzilla Report 36804.
2492
 
2493
 * A new listener for <junit> has been added that tries to invoke the
2494
   tearDown method of a TestCase if that TestCase was run in a forked
2495
   VM and the VM crashed or a timeout occurred.  See the <junit> task's
2496
   manual page for details.
2497
   Bugzilla Report 37241.
2498
 
2499
 * The Jar task now supports the addition of a jar index file in update mode.
2500
   Previously the absence of the index was not enough to trigger the rebuild;
2501
   some other update was necessary.
2502
   Bugzilla report 45098.
2503
 
2504
 * <ant> has a new attribute "useNativeBasedir" that makes the child
2505
   build use the same basedir it would have used if invoked from the
2506
   command line.  No matter what other attributes/properties have been
2507
   set.
2508
   Bugzilla Report 45711.
2509
 
2510
 * <patch> has a new optional failOnError attribute.
2511
   Bugzilla Report 44772.
2512
 
2513
 * Antlib descriptors will now be parsed by the configured
2514
   ProjectHelper if the implementation overrides the new
2515
   canParseAntlibDescriptor and parseAntlibDescriptor methods.  If the
2516
   configured helper doesn't override the methods, a new instance of
2517
   ProjectHelper2 will be used just like in Ant 1.7.1.
2518
   Bugzilla Report 42208.
2519
 
2520
 * It is now possible to explicitly set the executable used by
2521
   <signjar>.
2522
   Bugzilla Report 39189.
2523
 
2524
 * <compositemapper>'s order of results is now predictable.
2525
   Bugzilla Report 44873
2526
 
2527
 * a new <firstmatchmapper> has been added, which works similar to
2528
   <compositemapper> but only returns the results of the first nested
2529
   mapper that matches.
2530
   Bugzilla Report 44873
2531
 
2532
 * <get> has a new maxtime attribute that terminates downloads that
2533
   are taking too long.
2534
   Bugzilla Report 45181.
2535
 
2536
 * <ftp> now supports selectors for remote directories as well.
2537
   Bugzilla Report 44726.
2538
 
2539
 * In some cases Ant fails to rename files if the source or target
2540
   file has just recently been closed on Windows.  It will now try to
2541
   delete the offending file once again after giving the Java VM time
2542
   to really close the file.
2543
   Bugzilla Report 45960.
2544
 
2545
 * two new properties can be used to set the MIME-Type and charset
2546
   used by MailLogger.
2547
   Bugzilla Report 27211.
2548
 
2549
 * a new attribute of <mail> allows the task to succeed if it can
2550
   reach at least one given recipient.
2551
   Bugzilla Report 36446.
2552
 
2553
 * two new properties allow MailLogger to send a fixed text instead of
2554
   the log file.
2555
   Bugzilla Report 38029.
2556
 
2557
 * <cvsversion> is supposed to support CVSNT now.
2558
   Bugzilla Report 31409.
2559
 
2560
 * <cvs>' port attribute should now work for all clients that use the
2561
   environment variable CVS_PSERVER_PORT instead of the "official"
2562
   CVS_CLIENT_PORT.
2563
   Bugzilla Report 30124.
2564
 
2565
 * <cvsversion> now works for local repositories as well.
2566
 
2567
 * <cvstagdiff> has an option to ignore removed files now.
2568
   Bugzilla Report 26257.
2569
 
2570
 * <cvs> and friends now support modules with spaces in their names
2571
   via nested <module> elements.
2572
 
2573
 * A new attribute "ignoreEmpty" controls how <concat> deals when
2574
   there are no resources to concatenate.  If it is set to false, the
2575
   destination file will be created regardless, which reinstates the
2576
   behavior of Ant 1.7.0.
2577
   Bugzilla Report 46010.
2578
 
2579
 * If the new remote attribute is set to true, <cvschangelog> can now
2580
   work against a remote repository without any working copy.
2581
   Bugzilla Report 27419.
2582
 
2583
 * start and end tags can now be used instead of dates in
2584
   <cvschangelog>.
2585
   Bugzilla Report 27419.
2586
 
2587
 * MailLogger and <mail> can now optionally enable support for
2588
   STARTTLS.
2589
   Bugzilla Report 46063.
2590
 
2591
 * <import> has new attributes "as" and "prefixSeparator" that can be
2592
   used to control the prefix prepended to the imported targets'
2593
   names.
2594
 
2595
 * a new task <include> provides an alternative to <import> that
2596
   should be preferred when you don't want to override any targets.
2597
 
2598
 * delete has a new attribute removeNotFollowedSymlink.  If set to
2599
   true, symbolic links not followed (because followSymlinks was false
2600
   or the number of symlinks was too big) will be removed.
2601
   Bugzilla Report 36658.
2602
 
2603
 * the os and osfamily attributes of <chown>, <chgrp>, <chmod> and
2604
   <attrib> can now be used to run the commands on operating systems
2605
   other than their "native" environment, i.e. non-Unix or non-Windows
2606
   operating systems respectively.
2607
   Bugzilla Report 7624.
2608
 
2609
 * a new resource collection <mappedresources> generalizes the prefix
2610
   and fullpath attributes of <zipfileset> to arbitrary mappers that
2611
   can be applied to arbitrary resource collections.
2612
   Bugzilla Report 4240.
2613
 
2614
 * <tarfileset> and <zipfileset> have a new attribute
2615
   errorOnMissingArchive that allows "optional" filesets that don't
2616
   break the build if the archive doesn't exist.
2617
   Bugzilla Report 46091.
2618
 
2619
 * <javadoc> has new attributes that correspond to the
2620
   -docfilessubdirs and -excludedocfilessubdir command line arguments.
2621
   Bugzilla Report 34455.
2622
 
2623
 * <xslt> now fails early if a specified stylesheet doesn't exist.
2624
   Bugzilla Report 34525.
2625
 
2626
 * <xslt> now has an option to suppress transformer warnings.  This
2627
   option only has an effect for processors that support this feature;
2628
   the "trax" processor included with Ant does support it.
2629
   Bugzilla Report 18897.
2630
 
2631
 * <xslt> has two new attributes failOnError and
2632
   failOnTransformationError that can be used to not make the build
2633
   process proceed if an error occurs.
2634
   Bugzilla Report 36260.
2635
 
2636
 * <xslt> has a new attribute failOnNoResources that can be used to
2637
   make the build fail/continue if the collection of resources to
2638
   transform is empty.
2639
   Bugzilla Report 46274.
2640
 
2641
 * It is now possible to define system properties that should be set
2642
   during xslt's transformation.  This can be used to enable XInclude
2643
   processing in Xerces, for example.
2644
   Bugzilla Report 36653.
2645
 
2646
 * a new resource collection <archives> can be used to specify
2647
   collections of ZIP and TAR archives as sources.  It extracts them on
2648
   the fly.  This is a generalization of the <zipgroupfileset> found
2649
   as nested element of <zip> and friends.
2650
   Bugzilla Report 46257.
2651
 
2652
 * <dependset> has a new verbose attribute that makes the task list
2653
   all deleted targets and give a hint as to why it deleted them.
2654
   Bugzilla Report 13681.
2655
 
2656
 * <replaceregexp> now supports arbitrary filesystem based resource
2657
   collections.
2658
   Bugzilla Report 46341.
2659
 
2660
 * <replace> now supports arbitrary filesystem based resource
2661
   collections.
2662
   Bugzilla Report 24062.
2663
 
2664
 * token and value of <replace>'s nested <replacefilter> can now also
2665
   be specified as nested elements to allow multiline content more
2666
   easily.
2667
   Bugzilla Report 39568.
2668
 
2669
 * <replace> and <replaceregexp> can now optionally preserve the file
2670
   timestamp even if the file is modified.
2671
   Bugzilla Report 39002.
2672
 
2673
 * The <replace> child-elements <replacetoken> and <replacevalue> have
2674
   a new attribute that controls whether properties in nested text get
2675
   expanded.
2676
   Bugzilla Report 11585.
2677
 
2678
 * <replace> has a new attribute failOnNoReplacements that makes the
2679
   build fail if the task didn't do anything.
2680
   Bugzilla Report 21064.
2681
 
2682
 * <sync>'s <preserveInTarget> has a new attribute that controls
2683
   whether empty directories should be kept.
2684
   Bugzilla Report 43159.
2685
 
2686
 * ant -diagnostics now checks that it can read as much from the
2687
   temporary directory as it has written.  This may help detecting a
2688
   full filesystem.
2689
   Bugzilla Report 32676.
2690
 
2691
 * <pathconvert> has a new preserveduplicates attribute--historically
2692
   these were eliminated in the interest of behaving in the manner
2693
   of a "path."
2694
 
2695
 * <javac>'s source and target attributes are no longer ignored when
2696
   using gcj.
2697
   Bugzilla Issue 46617.
2698
 
2699
 * ant -diagnostics now outputs information about the default XSLT
2700
   processor.
2701
   Bugzilla Issue 46612.
2702
 
2703
 * the ZIP library will now ignore ZIP extra fields that don't specify
2704
   a size.
2705
   Bugzilla Report 42940.
2706
 
2707
 * CBZip2OutputStream now has a finish method separate from close.
2708
   Bugzilla Report 42713.
2709
 
2710
 * the <zip> and <unzip> family of tasks has new options to deal with
2711
   file name and comment encoding.  Please see the zip tasks'
2712
   documentation for details.
2713
 
2714
 * <input ...><handler type="secure" /></input> now uses previously
2715
   undocumented SecureInputHandler shipped with Ant 1.7.1.
2716
 
2717
 * Command line arguments for <exec> and similar tasks can now have
2718
   optional prefix and suffix attributes.
2719
   Bugzilla Report 47365
2720
 
2721
 * <apply>'s srcfile and targetfile child elements can now have
2722
   optional prefix and suffix attributes.
2723
   Bugzilla Report 45625
2724
 
2725
 * <jar> has a new attribute to enable indexing of META-INF
2726
   directories which is disabled for backwards compatibility reasons.
2727
   Bugzilla Report 47457
2728
 
2729
 * <apt>'s executable attribute can be used to specify a different
2730
   executable.
2731
   Bugzilla Report 46230.
2732
 
2733
 * <rmic>'s new executable attribute can be used to specify a
2734
   different executable.
2735
   Bugzilla Report 42132.
2736
 
2737
 * <javac>, <rmic>, <javah> and <native2ascii> now provide a nested
2738
   element to specify a classpath that will be used when loading the
2739
   task's (compiler) adapter class.
2740
   Bugzilla Report 11143.
2741
 
2742
 * <javac>, <rmic>, <javah> and <native2ascii> now provide a nested
2743
   element to specify the task's (compiler) adapter as an instance of
2744
   a class that has been defined via typedef/componentdef.  This
2745
   allows more control over the classpath and allows adapters to be
2746
   defined in Antlibs easily.
2747
 
2748
 * A new subclass org.apache.tools.ant.loader.AntClassLoader5 of
2749
   AntClassLoader has been added which overrides getResources
2750
   which became non-final in ClassLoader with Java5+ so
2751
   this method now behaves as expected.
2752
   The new subclass will be used by Ant internally if it is available
2753
   and Ant is running on Java5 or more recent.
2754
   Bugzilla Report 46752.
2755
 
2756
 * a new attributes can chose a different request method than GET for
2757
   the http condition.
2758
   Bugzilla Report 30244
2759
 
2760
 * <splash> now supports a configurable display text and a regular
2761
   expression based way to determine progress based on logged messages.
2762
   Bugzilla Report 39957.
2763
 
2764
 * the number of retries on error in <get> is now configurable.  <get>
2765
   can be told to not download files that already exist locally.
2766
   Bugzilla Report 40058.
2767
 
2768
 * Ant now builds against commons-net 2.0 as well.
2769
   Bugzilla Report 47669.
2770
 
2771
 * A new nested element connectionProperty of <sql> allows setting of
2772
   arbitrary JDBC connection properties.
2773
   Bugzilla Report 33452.
2774
 
2775
 * A new islastmodified condition can check the last modified date of
2776
   resources.
2777
 
2778
 * <rmic> has a new destDir attribute that allows generated files to
2779
   be written to a different location than the original classes.
2780
   Bugzilla Report 20699.
2781
 
2782
 * <rmic> has a new listfiles attribute similar to the existing one of
2783
   <javac>.
2784
   Bugzilla Report 24359.
2785
 
2786
 * It is now possible to suppress the "FAILED" lines sent to Ant's
2787
   logging system via <junit>'s new logFailedTests attribute.
2788
   Bugzilla Report 35073.
2789
 
2790
 * <propertyfile> now can delete entries.
2791
 
2792
 * The <resources> resource collection can now optionally cache its
2793
   contents.
2794
 
2795
 * A new <resourceexists> condition can check whether resources exists.
2796
 
2797
 * <sql> has two new attributes errorproperty and warningproperty that
2798
   can be set if an error/warning occurs.
2799
   Bugzilla Report 38807.
2800
 
2801
 * <sql> has a new attribute rowcountproperty that can be used to set
2802
   a property to the number of rows affected by a task execution.
2803
   Bugzilla Report 40923.
2804
 
2805
 * when Ant copies files without filtering, it will now use NIO
2806
   channels.
2807
   Bugzilla Report 30094.
2808
 
2809
 * <get> has a new attribute that can be used to disable caching on
2810
   HTTP connections at the HttpUrlConnection level.
2811
   Bugzilla Report 41891.
2812
 
2813
 * <tar> and <zip> (and tasks derived from <zip>) will now create the
2814
   parent directory of the destination archive if it doesn't exist.
2815
   Bugzilla Report 45377.
2816
 
2817
 * A new filterreader <sortfilter> that sorts input lines has been
2818
   added.
2819
   Bugzilla Report 40504.
2820
 
2821
 * A new token filter <uniqfilter> that suppresses tokens that match
2822
   their ancestor token has been added.
2823
 
2824
 * <rootfileset>s nested into <classfileset>s can now use a dir
2825
   attribute different from the <classfileset>.
2826
   Bugzilla Report 37763.
2827
 
2828
 * <path> can now optionally cache its contents.
2829
 
2830
 * <property> can now specify values as nested text.
2831
   Bugzilla Report 32917.
2832
 
2833
 * a new parentFirst attribute on <javaresource> allows resources to
2834
   be loaded from the specified classpath rather than the system
2835
   classloader.
2836
   Bugzilla Report 41369.
2837
 
2838
 * <property location="from" basedir="to" relative="true"/> can now
2839
   calculate relative paths.
2840
 
2841
 * The <name> selector supports a new handleDirSep attribute that
2842
   makes it ignore differences between / and \ separators.
2843
   Bugzilla Report 47858.
2844
 
2845
 * <get> now supports resource collections (as long as the resources
2846
   contained provide URLs) and can get multiple resources in a single
2847
   task.
2848
 
2849
 * <import> can now import non-File resources if they provide an URL
2850
   - as the <url> and <javaresource> resources do.
2851
   Bugzilla Report 29251
2852
 
2853
 * <import> can now import multiple resources specified as resource
2854
   collections.
2855
   Bugzilla Report 22269.
2856
 
2857
 * a new <resourcelist> type is similar to <filelist> but can read the
2858
   list of resources from non-file resources and may return resources
2859
   that are not files.
2860
 
2861
 * a new filterreader appendtolines complements prefixlines.
2862
 
2863
 * a new top level element extension-point allows build files to be
2864
   extended with custom targets more easily.
2865
 
2866
Changes from Ant 1.7.0 TO Ant 1.7.1
2867
=============================================
2868
 
2869
Changes that could break older environments:
2870
-------------------------------------------
2871
 
2872
* String resources only have properties single expanded. If you relied on
2873
  <string> resources being expanded more than once, it no longer happens.
2874
  Bugzilla report 42277.
2875
 
2876
* A String resource's encoding attribute was only taken into account when
2877
  set from the resource's OutputStream; the InputStream provided the String's
2878
  binary content according to the platform's default encoding. Behavior has
2879
  been modified to encode outgoing (InputStream) content as well as encoding
2880
  incoming (OutputStream) content.
2881
 
2882
* <java> with fork now returns gives -1 instead of 0 as result when failonerror
2883
  is false and some exception (including timeout) occurs. Br 42377.
2884
 
2885
* ant-type attribute has been marked as deprecated and a warning has been
2886
  issued if it is encountered in the build file.
2887
 
2888
Fixed bugs:
2889
-----------
2890
 
2891
* The default logger was failing to print complete stack traces for exceptions
2892
  other than BuildException, thus omitting often important diagnostic
2893
  information. Bugzilla 43398.
2894
 
2895
* Error in FTP task
2896
  Bugzilla report 41724
2897
 
2898
* Regression: Locator fails with URI encoding problem when spaces in path
2899
  Bugzilla report 42222
2900
 
2901
* Regression in Locator: running Ant off a network share does not work:
2902
  message "URI has authority component" appears
2903
  Bugzilla report 42275
2904
 
2905
* Improvements in AntClassLoader Speed.
2906
  Bugzilla report 42259
2907
 
2908
* Error in handling of some permissions, most notably the AllPermission on
2909
  jdk 1.5
2910
  Bugzilla report 41776
2911
 
2912
* Replace task summary output incorrect.
2913
  Bugzilla report 41544
2914
 
2915
* Dependset crashes ant when timestamp on files change during Dependset
2916
  execution.
2917
  Bugzilla report 41284
2918
 
2919
* Bug in org.apache.tools.ant.types.resources.comparators.Date
2920
  Bugzilla report 41411
2921
 
2922
* <junit> in Ant 1.7.0 could throw NPE if no <classpath> was defined.
2923
  Bugzilla report 41422.
2924
 
2925
* In Ant 1.7.0, <fileset> in <javadoc> does not by default include only
2926
  **/*.java as the documentation claims and earlier revisions did.
2927
  Bugzilla report 41264.
2928
 
2929
* SPI support in jar was broken.
2930
  Bugzilla report 41201.
2931
 
2932
* jsch-0.1.30 causes SCP task to hang
2933
  Bugzilla report 41090.
2934
 
2935
* Target from imported file listed twice in projecthelp.
2936
  Bugzilla report 41226.
2937
 
2938
* <sql> task double-expands properties if expandproperties is true,
2939
  and expands properties if expandproperties is false.
2940
  Bugzilla report 41204.
2941
 
2942
* Rolling back Bugzilla 32927 (set a default description for a javadoc tag
2943
  if not set) as it caused a BC problem.
2944
  Bugzilla report 41268.
2945
 
2946
* <apt> forks properly and so memory settings are picked up.
2947
  Bug report 41280.
2948
 
2949
* Regression: NPE was thrown when using <pathconvert> against a
2950
  (third-party instantiated) fileset with null Project reference.
2951
 
2952
* Strip out all -J arguments to non forking rmic adapters, specifically
2953
  the Sun and Weblogic compilers.
2954
  Bug report 41349
2955
 
2956
* Synchonization issues in PropertyHelper.  Bugzilla 41353.
2957
 
2958
* <concat binary="true" append="true"> did not append.  Bugzilla 41399.
2959
 
2960
* -autoproxy turns Java1.5+ automatic proxy support on. Bugzilla 41904
2961
 
2962
* Handle null result of system getProperty(). Bugzilla 42334.
2963
 
2964
* Regression: concat fixlastline="true" should not have applied to
2965
  nested text, but did in Ant 1.7.0. Bugzilla 42369.
2966
 
2967
* Regression: ant.version was not passed down in <ant>, <subant>.
2968
  This worked in Ant 1.6.5, but not in 1.7.0.
2969
  ant.core.lib (added in 1.7.0) was also not being propagated.
2970
  Bugzilla bug 42263
2971
 
2972
* Regression: bzip2 task created corrupted output files for some inputs.
2973
  Bugzilla bug 41596.
2974
 
2975
* Regression: <available> with <filepath> did not work.
2976
  Bugzilla 42735.
2977
 
2978
* ant script, cd may output to stdout.
2979
  Bugzilla 42739.
2980
 
2981
* Modified selector doesn't update the cache if only one file has changed.
2982
  Bugzilla 42802.
2983
 
2984
* Regression: Path subclasses that overrode list() stopped working in
2985
  resourceCollection contexts in Ant 1.7.0. Bugzilla 42967.
2986
 
2987
* <property> supports loading from xml based property definition.
2988
  Bugzilla 42946
2989
 
2990
* <junit> supports collecting and rerunning failed test cases
2991
  (textXXX methods). Bugzilla 42984.
2992
 
2993
* War task failed with "No WEB-INF/web.xml file was added" when called
2994
  a second time. Bugzilla 43121.
2995
 
2996
* FilterMapper could throw an NPE.
2997
  Bugzilla 43292.
2998
 
2999
* Regession nested macrodefs with elements could cause StackOverFlow.
3000
  Bugzilla 43324.
3001
 
3002
* Some changes to <junit> broke third party tasks that extend it (like
3003
  Apache Cactus' Ant task).  The changes have been modified so that
3004
  subclases should now work again - without any changes to the
3005
  subclass.
3006
 
3007
Other changes:
3008
--------------
3009
 
3010
* Various small optimizations speed up common tasks such as <javac> on large
3011
  filesets, reducing both I/O and CPU usage.
3012
 
3013
* Profiling logger has been added with basic profiling capabilities.
3014
 
3015
* <script> now has basic support for JavaFX scripts
3016
 
3017
* SSH task can now take a command parameter containing the commands to execute.
3018
  This allows you to connect to a server and execute a number of commands
3019
  without constantly reconnecting for each command.
3020
 
3021
* Upgraded XML API to XML commons version 1.3.04.
3022
 
3023
* Upgraded to Xerces 2.9.0
3024
 
3025
* <script> can now work with bsf.jar and js.jar in its <classpath>.
3026
 
3027
* add errorProperty and updatedProperty to <javac>
3028
  Bugzilla 35637 and 28941.
3029
 
3030
* add classpathref attribute to <whichresource>
3031
  Bugzilla 41158.
3032
 
3033
* reduce logging noise of <apply skipemptyfilesets="true">
3034
  Bugzilla 29154
3035
 
3036
* Show Previous Revision in the tagdiff.xsl stylesheet
3037
  Bugzilla 29143
3038
 
3039
* Allow <mapper refid> to refer directly to a FileNameMapper instance.
3040
 
3041
* If you try and use a type in a namespace (or an antlib), and the type is not
3042
  recognized but there are other definitions in that namespace, Ant lists what
3043
  the known definitions are. This helps you find spelling errors.
3044
 
3045
* Add a <last> resource collection, corresponding to <first>.
3046
 
3047
* Add new <truncate> task.
3048
 
3049
* <junitreport> xsl stylesheets allow setting the title used in <title> and <h1> tags by
3050
  using <report><param> element.  Bugzilla 41742.
3051
 
3052
* Add IgnoreDependenciesExecutor for weird cases when the user wants to run
3053
  only the targets explicitly specified.
3054
 
3055
* Patternset allows nested inverted patternsets using <invert>.
3056
 
3057
* <manifest> checks for validity of attribute names.
3058
 
3059
* JUnitVersionHelper.getTestCaseClassName is now public. Bugzilla 42231
3060
 
3061
* <string> resource supports nested text. Bugzilla bug 42276
3062
 
3063
* <scriptdef> now sources scripts from nested resources/resource collections. This lets you
3064
  define scripts in JARs, remote URLs, or any other supported resource. Bugzilla report 41597.
3065
 
3066
* <concat> is now usable as a single-element ResourceCollection.
3067
 
3068
* It is now possible to provide the value of a <striplinecomments> filter's
3069
  <comment> nested element as nested text instead of using the 'value'
3070
  attribute.
3071
 
3072
* A new logger, BigProjectLogger, lists the project name with every target
3073
 
3074
* Default text added to macrodef. Bugzilla report 42301.
3075
 
3076
* "rawblobs" attribute added to SQL task.
3077
 
3078
* Add new retry task container.
3079
 
3080
* <jar> has a new strict attribute that checks if the jar complies with
3081
  the jar packaging version specification.
3082
 
3083
* <javac> has a new attribute - includeDestClasses.
3084
  Bugzilla 40776.
3085
 
3086
* <fileset> has a new attribute - errorOnMissingDir.
3087
  Bugzilla 11270.
3088
 
3089
* <javac> handles package-info.java files, there were repeatedly compiled.
3090
  Bugzilla 43114.
3091
 
3092
* SecureInputHandler added to use Java 6 System.console().readPassword()
3093
  when available.
3094
 
3095
Changes from Ant 1.6.5 to Ant 1.7.0
3096
===================================
3097
 
3098
Changes that could break older environments:
3099
-------------------------------------------
3100
 
3101
* Initial support for JDK 6 (JSR 223) scripting.
3102
  <*script*> tasks will now use javax.scripting if BSF is
3103
  not available, or if explicitly requested by using
3104
  a "manager" attribute.
3105
 
3106
* Removed launcher classes from nodeps jar.
3107
 
3108
* <classconstants> filter reader uses ISO-8859-1 encoding to read
3109
  the java class file. Bugzilla report 33604.
3110
 
3111
* Defer reference process. Bugzilla 36955, 34458, 37688.
3112
  This may break build files in which a reference was set in a target which was
3113
  never executed. Historically, Ant would set the reference early on, during parse
3114
  time, so the datatype would be defined. Now it requires the reference to have
3115
  been in a bit of the build file which was actually executed. If you get
3116
  an error about an undefined reference, locate the reference and move it somewhere
3117
  where it is used, or fix the depends attribute of the target in question to
3118
  depend on the target which defines the reference/datatype.
3119
  As a result of testing on real live build scripts, a fall-back mechanism
3120
  was put it place to allow references that are out-of-band to be resolved. If
3121
  this happens a big warning message is logged. This fall-back mechanism will
3122
  be removed in Ant 1.8.0.
3123
 
3124
* <script> and <scriptdef> now set the current thread context.
3125
 
3126
* Unrestrict the dbvendor names in the websphere element of the ejbjar task.
3127
  Bugzilla Report 40475.
3128
 
3129
* <env> nested element in <java>, <exec> and others is now case-insensitive
3130
  for windows OS. Bugzilla Report 28874.
3131
 
3132
* Removed support for xalan1 completely. Users of Xalan1 for Ant builds will
3133
  have to stay at ant 1.6.5 or upgrade to xalan2.
3134
 
3135
* Use org.apache.log4j.Logger instead of org.apache.log4j.Category.
3136
  Category has been deprecated for ~2 years and has been removed from
3137
  the log4j code.  Logger was introduced in log4j 1.2 so users of
3138
  log4j 1.1 and log4j 1.0 need to upgrade to a newer version of log4j.
3139
  Bugzilla Report 31951.
3140
 
3141
* build.sysclasspath now also affects the bootclasspath handling of
3142
  spawned Java VMs.  If you set build.sysclasspath to anything other
3143
  than "ignore" (or leave it unset, since "ignore" is the default when
3144
  it comes to bootclasspath handling), then the bootclasspath of the
3145
  VM running Ant will be added to the bootclasspath you've specified.
3146
 
3147
* The <java fork="false"> now as per default installs a security manager
3148
  using the default permissions. This is now independent of the
3149
  failonerror attribute.  Bugzilla report 33361.
3150
 
3151
* <signjar> now notices when the jar and signedjar are equal, and switches
3152
  to the same dependency logic as when signedjar is omitted. This may break
3153
  something that depended upon signing in this situation. However, since
3154
  invoking the JDK jarsigner program with -signedjar set to the source jar
3155
  actually crashes the JVM on our (Java1.5) systems, we don't think any
3156
  build files which actually worked will be affected by the change.
3157
 
3158
* <signjar> used to ignore a nested fileset when a jar was also provided as an
3159
  attribute, printing a warning message; now it signs files in the fileset.
3160
 
3161
* An improved method of handling timestamp granularity differences between
3162
  client and server was added to the <ftp> task.  FTP servers typically
3163
  have HH:mm timestamps whereas local filesystems have HH:mm:ss timestamps.
3164
  Previously, this required tweaking with the timediffmillis attribute
3165
  which also was used to handle timezone differences.  Now, there is a new
3166
  timestampgranularity attribute.  The default value for get operations is 0
3167
  since the user has the more powerful preservelastmodified attribute to work
3168
  with.  Since this is not available on put operations the default value
3169
  adds a minute to the server timestamp in order to account for this,
3170
  Scripts which previously used timediffmillis to do this compensation may
3171
  need to be rewritten.  timediffmillis has now been deprecated.
3172
 
3173
* Support for the XSL:P XML parser has been removed.
3174
  Bugzilla Report 23455.
3175
 
3176
* Visual Age for Java optional tasks removed as the required library is no
3177
  longer available.
3178
 
3179
* Testlet (test) optional task removed as the required library is no
3180
  longer available.
3181
 
3182
* IContract optional task removed as the required library is no
3183
  longer available.
3184
 
3185
* Metamata (maudit, mmetrics, and mparse tasks) removed as the required
3186
  library is no longer available.
3187
 
3188
* Sitraka (jpcoverage, jpcovmerge, jpcovreport) tasks suppressed as the
3189
  required library is no longer available.
3190
 
3191
* <fixcrlf> used \r (Mac) line endings on OS X, whose proper line separator
3192
  is \n (Unix).  Bugzilla report 39585.
3193
 
3194
* <scp> now optionally supports the sftp protocol, you may need a
3195
  newer jsch.jar.  Bugzilla Report 39373.
3196
 
3197
* Ant launcher program prints errors to stderr, and exits with a 2 exit code
3198
  value if, for any reason, it cannot actually start Ant proper. This will only
3199
  affect programs/scripts that called the launcher and which did not want to
3200
  receive an error if Ant itself would not start
3201
 
3202
* All .NET tasks are now deprecated in favor of the new .NET Antlib:
3203
  http://ant.apache.org/antlibs/dotnet/index.html
3204
 
3205
Fixed bugs:
3206
-----------
3207
* Directory deletion did not work properly.
3208
  Bugzilla 40972.
3209
 
3210
* docletpath attribute of javadoc was ignored.
3211
  Bugzilla 40900.
3212
 
3213
* Fixed incorrect recursion in DOMUtil.listChildNodes().
3214
  Bugzilla 40918.
3215
 
3216
* CompressedResource.compareTo() did not
3217
  take comparison with another CompressedResource into account.
3218
  Bugzilla 40949.
3219
 
3220
* Avoid possible NPE in Jar.java.
3221
  Bugzilla 40847.
3222
 
3223
* regression in attribute prefix (+ others) for refid in zipfileset and tarfileset.
3224
  Bugzilla 41004, 30498.
3225
 
3226
* dependset failed if the basedir of a target fileset did not exist.
3227
  Bugzilla 40916.
3228
 
3229
* Recursive filtering encountered NullPointerExceptions under certain
3230
  circumstances.  Bugzilla 41086.
3231
 
3232
* XmlProperty overrides previously set property value when handling duplicate
3233
  elements. Bugzilla 41080.
3234
 
3235
* Having many tasks causes OOM.  Bugzilla 41049.
3236
 
3237
* Regression: <path> was evaluating nested content only once, so that it could
3238
  not e.g. pick up files that didn't exist the first time through.
3239
  Bugzilla 41151.
3240
 
3241
* OOM caused by IH holding on to classes and thus their classloaders.
3242
  Bugzilla 28283 and 33061.
3243
 
3244
* <delete> doesn't delete when defaultexcludes="false" and no includes is set
3245
  fixed. Bugzilla 40313.
3246
 
3247
* Behavior change of DirectoryScanner/AbstractFileset when conditional include
3248
  patterns are used. Bugzilla 40722.
3249
 
3250
* <javac> fails with NPE when compiling with eclipse ecj 3.1.x.
3251
  Bugzilla 40839.
3252
 
3253
* JUnitTestRunner had a NPE when unable to create parser, the exception
3254
  containing the error did not get reported. Bugzilla 36733.
3255
 
3256
* <checksum> with file and todir option failed. Bugzilla report 37386.
3257
 
3258
* <path location="loc"> was broken (Regression from beta1).
3259
  Bugzilla report 40547.
3260
 
3261
* Nested fileset in <cab> did not work. Bugzilla report 39439.
3262
 
3263
* The ant wrapper script should now correctly locate the java
3264
  executable in more recent IBM JDKs for AIX as well.
3265
 
3266
* URLResource did not close jar files, and also did not disconnect HTTPConnection (s).
3267
 
3268
* Error calling junitreport. Bugzilla 40595.
3269
 
3270
* <junittask/> created junitvmwatcher*.properties files but did not close and delete them.
3271
 
3272
* <xmlproperty> did not create properties for empty leaf elements.
3273
  Bugzilla report 26286.
3274
 
3275
* UnknownElement.maybeConfigure always configured.
3276
  Bugzilla report 40641.
3277
 
3278
* No check for refid when prefix attribute is set in zipfileset.
3279
  Bugzilla report 30498.
3280
 
3281
* Fix for junit4 issue introduced since beta2.
3282
  Bugzilla report 40682.
3283
 
3284
* Error in duplicate project name with <import> and <antcall>.
3285
  Bugzilla report 39920.
3286
 
3287
* junit4 did not work with fork=no and junit4 in $ANT_HOME/lib.
3288
  Bugzilla report 40697.
3289
 
3290
* PathConvert on Windows should process forward and back slashes equivalently.
3291
  Bugzilla report 32884.
3292
 
3293
* ant.bat now looks in %USERPROFILE% and %HOMEDRIVE%%HOMEPATH% in addition to
3294
  %HOME% for pre/post batch files. Bugzilla report 39298.
3295
 
3296
* The inheritance hierarchy of the legacy <path> type was changed; code built
3297
  against Ant 1.7 would therefore no longer execute on older versions of Ant.
3298
  Since <path> is historically heavily used this was undesirable, and since it
3299
  is also avoidable, the change to <path>'s taxonomy was reverted.
3300
 
3301
* <zip filesonly="true"> included empty directories.  Bugzilla report 40258.
3302
 
3303
* Invalid hash code of Target causes XmlLogger to fail.
3304
  Bugzilla report 40207.
3305
 
3306
* Macro element did not include top level Text. Bugzilla report 36803.
3307
 
3308
* AntClassLoader did not isolate resources when isolate was set. Bugzilla report 38747.
3309
 
3310
* Diagnostics broken when using java 1.4. Bugzilla report 40395.
3311
 
3312
* Exception reporting in <copy> was broken. Bugzilla report 40300.
3313
 
3314
* Handling of corrupt tar files, TarInputStream.read() never returns EOF.
3315
  Bugzilla report 39924.
3316
 
3317
* Some bugs in ReaderInputStream. Bugzilla report 39635.
3318
 
3319
* <antlr> did not recognise whether the target is up-to-date for html option.
3320
  Bugzilla report 38451.
3321
 
3322
* Documented minimal version of jsch now 0.1.29.
3323
  Bugzilla report 40333.
3324
 
3325
* <available> searched parent directories for files.
3326
  Bugzilla report 37148.
3327
 
3328
* The build could be halted if a file path contained more ".." components than
3329
  the actual depth of the preceding path. Now such paths are left
3330
  alone (meaning they will likely be treated as nonexistent
3331
  files). Bugzilla Report 40281.
3332
 
3333
* Converting a <dirset> to a string was broken. Bugzilla Report 39683.
3334
 
3335
* Manifests have improved line length handling, taking care of encoding.
3336
  Bug reports 37548 / 34425.
3337
 
3338
* <manifest> now closes the inputstream explicitly. Bug report 39628.
3339
 
3340
* <rpm> now also correctly searches the first element of the path.
3341
  Bug report 39345.
3342
 
3343
* ant.bat now handles classpath set to "". Bug report 38914.
3344
 
3345
* <junit> now supports JUnit 4. Bugzilla Report 38811.
3346
 
3347
* <junit> can now work with junit.jar in its <classpath>. Bugzilla
3348
  Report 38799.
3349
 
3350
* Some potential NullPointerExceptions, Bugzilla Reports 37765 and 38056.
3351
 
3352
* Problem when adding multiple filter files, Bugzilla Report 37341.
3353
 
3354
* Problem referencing jars specified by Class-Path attribute in manifest
3355
  of a ant task jar file, when this ant task jar file is located in
3356
  a directory with space, Bugzilla Report 37085.
3357
 
3358
* Backward incompatible change in ZipFileSet, Bugzilla Report 35824.
3359
 
3360
* Wrong replacement of file separator chars prevens junitbatchtest
3361
  from running correctly on files from a zipfileset. Bugzilla Report 35499.
3362
 
3363
* Calling close twice on ReaderInputStream gave a nullpointer exception.
3364
  Bugzilla Report 35544.
3365
 
3366
* Memory leak from IntrospectionHelper.getHelper(Class) in embedded
3367
  environments. Bugzilla Report 30162.
3368
 
3369
* Translate task does not remove tokens when a key is not found.
3370
  It logs a verbose message.  Bugzilla Report 13936.
3371
 
3372
* Incorrect task name with invalid "javac" task after a "presetdef".
3373
  Bugzilla reports 31389 and 29499.
3374
 
3375
* <manifest> was not printing warnings about invalid manifest elements.
3376
  Bugzilla report 32190.
3377
 
3378
* <replace> got out of memory on large files (part of report 32566).
3379
  <replace> can now handle files as long as there is enough disk space
3380
  available.
3381
 
3382
* Commandline.describeCommand() methods would attempt to describe
3383
  arguments even when none, other than the executable name, were present.
3384
 
3385
* Create signjar's helper ExecTask instance directly rather than by
3386
  typedef discovery mechanisms. Bugzilla report 33433.
3387
 
3388
* FileUtils.resolveFile() promised to return absolute files but
3389
  did not always do so.
3390
 
3391
* <ftp> failed to retrieve a file when the path towards the file contained
3392
  an element starting with . Bugzilla report 33770.
3393
 
3394
* "<rmic> always compiles on Java1.5" bugzilla report=33862. Fixed default
3395
  stub version to always be "compat", even on Java1.5+.
3396
 
3397
* The .NET compilation tasks failed if filenames given as references
3398
  contained spaces.  Bugzilla Report 27170.
3399
 
3400
* SQL task would try access result sets of statements that didn't
3401
  return any, causing problems with Informix IDS 9.2 and IBM DB2 8.1
3402
  FixPak 6 (or later). Bugzilla Reports 27162 and 29954.
3403
 
3404
* Task.init() was called twice for most tasks.  Bugzilla Report 34411.
3405
 
3406
* JavaTest testcases sometimes fail on windows. Bugzilla Report 34502.
3407
 
3408
* Targets with identical name work in imported project. Bugzilla Report 34566.
3409
 
3410
* DemuxOutputStream now uses a WeakHashMap to store the thread-stream mapping,
3411
  to avoid holding on to thread references after they terminate.
3412
 
3413
* <xmlvalidate> and <schemavalidate> create a new parser for every file in a
3414
  fileset, and so validate multiple files properly. Bugzilla Report 32791.
3415
 
3416
* <tar> / <untar> now accepts files upto 8GB, <tar> gives an error if larger
3417
  files are to be included. This is the POSIX size limit.
3418
 
3419
* <junitreport> removed line-breaks from stack-traces.  Bugzilla
3420
  Report 34963.
3421
 
3422
* Off-by-one error in environment setup for execution under OpenVMS fixed.
3423
 
3424
* Bugzilla report 36171: -noclasspath crashes ant if no system
3425
  classpath is set.
3426
 
3427
* <pvcs> used wrong switch for retrieving revisions by label.
3428
  Bugzilla Report 36359.
3429
 
3430
* <sshexec> closed System.out, disabling output on second and subsequent
3431
  invocations.  Bugzilla report 36302.
3432
 
3433
* <cvschangelog> was crashing with CVS versions >= 1.12.x due to change in
3434
  the date format. Bugzilla report 30962.
3435
 
3436
* The same IntrospectionHelper instance was continuously added as a listener
3437
  to project. Bugzilla report 37184.
3438
 
3439
* FileUtils.toURI() was not encoding non-ASCII characters to ASCII,
3440
  causing impossibility to process XML entities referenced by XML
3441
  documents in non ASCII paths. Bugzilla report 37348.
3442
 
3443
* > 1 ssh invocations to a given host would fail. Bugzilla report 36207.
3444
 
3445
* EmailTask was eating SMTP error messages. Bugzilla report 37547.
3446
 
3447
* PropertySet API setMapper(...) didn't properly set up the Mapper.
3448
  Bugzilla report 37760.
3449
 
3450
* Proper return code for ant.bat. Bugzilla report 13655.
3451
 
3452
* Project not set on ChainReaderHelpers used by the Redirector.
3453
  Bugzilla report 37958.
3454
 
3455
* Copy task would fail on locked (or otherwise uncopyable) files even if
3456
  failonerror set to false. Bugzilla report 38175.
3457
 
3458
* <junit> task did not print all the Test names when using forkmode='once'.
3459
  Bugzilla report 37426.
3460
 
3461
* <available> could leak resources, Bugzilla Report 38260.
3462
 
3463
* Redirector called Thread.sleep in a synchronized block. Bugzilla
3464
  report 37767.
3465
 
3466
* CCUnlock's objselect attribute could exhibit unpredictable behavior;
3467
  standardized improperly included objselect and objsel property accessors to
3468
  delegate to the inherited objSelect property accessor. Bugzilla report 37766.
3469
 
3470
* <unzip> and <untar> now correctly merge multiple nested patternsets.
3471
  Bugzilla Report 38973.
3472
 
3473
* On case-insensitive filesystems, a <move> to change filename case
3474
  erroneously deleted the "destination" file before attempting to rename
3475
  the source file.  Bugzilla 37701.
3476
 
3477
* <scp> can now handle uris with @s other than the final one denoting the
3478
  domain.  Bugzilla 38082.
3479
 
3480
* If the class invoked by the <java> task threw a ClassNotFoundException,
3481
  this was misinterpreted as the specified class itself not being found.
3482
 
3483
* <echoproperties> setPrefix javadoc claimed null or empty prefix would be
3484
  ignored; instead an error was thrown.  Bugzilla report 39954.
3485
 
3486
* <get> would fetch files that were up to date, because it used > in a
3487
  remote/local timestamp comparison, not >=. Bugzilla 35607.
3488
 
3489
* <xslt> passes the current file (name + directory) to the
3490
  stylesheet/transformation.  xsl-parameter name is configurable.
3491
  Bugzilla report 21042.
3492
 
3493
* The <zip> API allowed creation of directories in file-only archives; a
3494
  habitual offender was the subclassed <jar>, which included META-INF/ in
3495
  the destination file regardless of whether filesonly was set to true.
3496
 
3497
* <rmic> has a new adapter, xnew, to use the -XNew back end on java1.5+.
3498
  By forking rmic, this works on java1.6+. Bugzilla report 38732.
3499
 
3500
* Copy of UnknownElement in macroinstance was not recursive.
3501
  Bugzilla report 40238.
3502
 
3503
* Mixing of add and addConfigured methods in Mapper/ChainedMapper
3504
  causes incorrect chaining. Bugzilla report 40228.
3505
 
3506
Other changes:
3507
--------------
3508
 
3509
* Warn user when a reference in the form "${refid}" cannot be resolved as this
3510
  is a sign they probably meant "refid" (misuse of property expansion syntax).
3511
 
3512
* Add dtd to javadoc for junit.
3513
  Bugzilla 40754.
3514
 
3515
* Add quiet attribute to loadfile/resource.
3516
  Bugzilla 38249.
3517
 
3518
* Make Locator#fromURI also append the drive letter when running under Windows
3519
  with JDK 1.3 or 1.2.
3520
 
3521
* Do not uppercase the drive letters systematically in FileUtils#normalize.
3522
 
3523
* Java 5 enumerations may now be used as values in XML attributes in place of
3524
  EnumeratedAttribute. Bugzilla 41058.
3525
 
3526
* Create a pom file for ant-testutil and add ant-testutil.jar to the ant
3527
  distribution. Bugzilla 40980.
3528
 
3529
* Roll back automatic proxy enabling on Java 1.5. It broke things like
3530
  Oracle JDBC drivers, and Ant itself on IBM's JVM on AIX, and didn't
3531
  seem to work to well the rest of the time.
3532
  To enable the feature, use the -autoproxy command line option.
3533
 
3534
* Upgraded XML API and parser to Xerces 2.8.1
3535
 
3536
* A code review of some threaded logic has tightened up the synchronization
3537
  of Watchdog, ExecuteWatchdog and ExecuteJava, which could reduce the occurrence
3538
  of race conditions here, especially on Java1.5+.
3539
 
3540
* Allow broken reference build files. The defer reference processing would
3541
  break too many files - so allow them with a warning.
3542
 
3543
* Removed dependency on sun.misc.UUEncoder for UUMailer.
3544
 
3545
* Added regex attribute to the echoproperties task.
3546
  Bugzilla 40019.
3547
 
3548
* <war> task now allows you to omit the web.xml file. as this is optional
3549
  in the servlet 2.5 and Java EE 5 APIs. set needxmlfile="false" to
3550
  avoid a missing web.xml file from halting the build.
3551
 
3552
* Diagnostics catches and logs security exceptions when accessing system properties.
3553
 
3554
* <javadoc> useexternalfile now applies to all command line arguments
3555
  of javadoc. Bugzilla report 40852.
3556
 
3557
* javadoc/tag@description is now set to the name if description is
3558
  not specified. Bugzill report 32927.
3559
 
3560
* Some performance improvements, including Bugzilla report 25778.
3561
 
3562
* Add <matches> condition. Bugzilla report 28883.
3563
 
3564
* Extending JAR-Task for SPI. Bugzilla report 31520.
3565
 
3566
* Added <tokens> resource collection for convenient creation of string
3567
  resources from other resources' content. Inspired by Bugzilla 40504.
3568
 
3569
* Added <compare> resource selector to select resources based on the
3570
  results of their comparison to other resources.
3571
 
3572
* Added outputtoformatters attribute to <junit> to allow suppression
3573
  of noisey tests. Bugzilla report 12817.
3574
 
3575
* Log level of message 'Overriding previous definition of reference to'
3576
  set to Verbose. Bugzilla report 17240.
3577
 
3578
* Added setbeans attribute to <script> to allow <script>'s to be
3579
  run without referencing all references.
3580
  Bugzilla report 37688.
3581
 
3582
* Added classpath attribute and nested element to <script> to allow
3583
  the language jars to be specified in the build script.
3584
  Bugzilla report 29676.
3585
 
3586
* Trim the driver attribute on the <sql> task. Bugzilla report 21228.
3587
 
3588
* Allow (jar) files as well as directories to be given to jdepend.
3589
  Bugzilla report 28865.
3590
 
3591
* Convert SplashTask to use NOT sun internal classes.
3592
  Bugzilla report 35619.
3593
 
3594
* Made PatternSet#hasPatterns public to allow custom filesets access.
3595
  Bugzilla report 36772.
3596
 
3597
* Added searchparents attribute to <available>. Bugzilla report 39549.
3598
 
3599
* Tasks that don't extend Ant's Task class will now get the build file
3600
  location reflected into a method of the signature void setLocation(Location)
3601
  - if such a method exists.
3602
 
3603
* Remove needless synchronization in DirectoryScanner.
3604
  Bugzilla report 40237.
3605
 
3606
* Improved recursion detection for lines with multiple matches of same token
3607
  on a single line.  Bugzilla report 38456.
3608
 
3609
* Task will now log correctly even if no project is set.
3610
  Bugzilla report 38458.
3611
 
3612
* Use alternative names for the command line arguments in javac. Bugzilla
3613
  Report 37546.
3614
 
3615
* The Reference class now has a project field that will get
3616
  used (if set) in preference to the passed in project, when
3617
  dereferencing the reference. Bugzilla Report 25777.
3618
 
3619
* On DOS and Netware, filenames beginning with a drive letter
3620
  and followed by a colon but with no directory separator following
3621
  the colon are no longer (incorrectly) accepted as absolute pathnames
3622
  by FileUtils.normalize() and FileUtils.isAbsolutePath().  Netware
3623
  volumes can still be specified without an intervening separator.
3624
  UNC pathnames on Windows must include a server and share name, i.e.
3625
  "\\a\b" to be considered valid absolute paths.
3626
 
3627
* A bug in SQLExec would prevent the execution of trailing,
3628
  non-semicolon-delimited statements.  Bugzilla Report 37764.
3629
 
3630
* InputHandler implementations may now call InputRequest.getDefaultValue()
3631
  if they wish. The default handler uses this also. Bugzilla report 28621.
3632
 
3633
* Took in bugzilla report 39320, "Simple code cleanups"
3634
 
3635
* Improve compatibility with GNU Classpath and java versions prior to
3636
  1.5. Bugzilla 39027.
3637
 
3638
* ${ant.core.lib} may now be used to refer to the library containing the
3639
  Ant classes, for instance useful when compiling tasks.
3640
 
3641
* Minor performance improvements Bugzilla report 37777
3642
 
3643
* New task <manifestclasspath> converts a path into a property
3644
  suitable as the value for a manifest's Class-Path attribute.
3645
 
3646
* Fixed references to obsoleted CVS web site. Bugzilla Report 36854.
3647
 
3648
* Log fine-grained events at verbose level from JUnit. Bugzilla report 31885.
3649
 
3650
* <WsdlToDotnet> and <style> are now deprecated in favor of <wsdltodotnet> and
3651
  <xslt>, respectively. Bugzilla report 25832.
3652
 
3653
* <echoproperties> now (alphanumerically) sorts the property list
3654
  before echoing. Bugzilla report 18976.
3655
 
3656
* A new base class DispatchTask has been added to facilitate elegant
3657
  creation of tasks with multiple actions.
3658
 
3659
* Major revision of <wsdltodotnet>. Supports mono wsdl and the microsoft
3660
  wsdl run on mono, as well as most of the .NET WSE2.0 options. Extra
3661
  schemas (files or urls) can be named in the <schema> element.
3662
  Compilers can be selected using the compiler attribute, which defaults
3663
  to "microsoft" on windows, and "mono" on everything else.
3664
 
3665
* It is now possible to specify the pattern created/parsed by <checksum>.
3666
  Bugzilla Report 16539.
3667
 
3668
* Added a new "failall" value for the onerror attribute of <typedef>.
3669
  Bugzilla report 31685.
3670
 
3671
* unzip/unwar/unjar/untar now supports a nested mapper, which lets you unzip
3672
  in useful ways.
3673
 
3674
* Junit task -- display suite first.
3675
  Bugzilla report 31962.
3676
 
3677
* Added isSigned condition and signedselector selector
3678
  Bugzilla report 32126.
3679
 
3680
* Added preserveLastModified attribute to signjar task.
3681
  Bugzilla report 30987.
3682
 
3683
* Added <scriptcondition> condition, for inline scripted conditions
3684
 
3685
* Added <xor> condition for exclusive-or combining of nested conditions.
3686
 
3687
* Added <scriptselector> selector for scripted file selection
3688
 
3689
* ant -diagnostics lists contents of ${user.home}/.ant/lib , and
3690
  checks that the java.io.tmpdir directory exists and is writeable.
3691
 
3692
* mail task accepts nested header element.  Bugzilla report 24713.
3693
 
3694
* zip/jar/war/ear supports level attribute for deflate compression level.
3695
  Bugzilla report 25513.
3696
 
3697
* Added loginputstring attribute to the redirector type.
3698
 
3699
* Tighten security by sending storepass and keypass to signjar
3700
  via the input stream of the forked process.
3701
 
3702
* New task <schemavalidate> extends <xmlvalidate> with extra support
3703
  for XML Schema (XSD) files.
3704
 
3705
* <fixcrlf> supports a file attribute for easy fixup of a single file.
3706
 
3707
* New condition <parsersupports> which can look for XML parser feature or
3708
  property support in the parser Ant is using.
3709
 
3710
* fixcrlf can be used in a filterchain.
3711
 
3712
* <sync> has a new nested element <preserveInTarget> that can be used
3713
  to protect extra-content in the target directory.  Bugzilla Report
3714
  21832.
3715
 
3716
* <signjar> now supports:
3717
  -nested filesets at the same time as the jar attribute
3718
  -a destDir attribute with the appropriate dependency logic, which
3719
   can be used with the jar attribute or nested filesets
3720
  -a mapper to permit filename remapping on signing
3721
  -tsaurl and tsacert attributes for timestamped JAR signing
3722
  -nested <sysproperty> elements, which can be used for proxy setup
3723
  and the like
3724
 
3725
* The linecontains and linecontainsregexp filterreaders now support a
3726
  negate attribute to select lines -not- containing specified text.
3727
  Bugzilla Report 34374.
3728
 
3729
* <os> condition adds "winnt" as a family which can be tested. This is
3730
  all windows platforms other than the Win9x line or Windows CE.
3731
 
3732
* <exec> (and hence, <apply> and any other derived classes) have an OsFamily
3733
  attribute, which can restrict execution to a single OS family.
3734
 
3735
* Added "backtrace" attribute to macrodef. Bugzilla report 27219.
3736
 
3737
* Ant main provides some diagnostics if it ever sees a -cp or -lib option,
3738
  as this is indicative of a script mismatch. Bugzilla report 34860
3739
 
3740
* <junitreport> prints a special message if supplied an empty XML File. This
3741
  can be caused by the test JVM exiting during a test, either via a
3742
  System.exit() call or a JVM crash.
3743
 
3744
* Project name is now used for *all* targets so one can write consistent import
3745
  build files. Bugzilla report 28444.
3746
 
3747
* New condition <typefound> that can be used to probe for the declaration
3748
  and implementation of a task, type, preset, macro, scriptdef, whatever.
3749
  As it tests for the implementation, it can be used to check for optional
3750
  tasks being available.
3751
 
3752
* Check for 1.5.* Ant main class. (weblogic.jar in classpath reports)
3753
 
3754
* New condition <isfailure> that tests the return-code of an executable. This
3755
  contains platform-specific logic and is better than comparing the result with
3756
  "0".
3757
 
3758
* Added initial support for Resource Collections, including the
3759
  resourcecount task.
3760
 
3761
* property attribute of pathconvert is now optional. If omitted the
3762
  result will be written to the log.
3763
 
3764
* New mapper, <scriptmapper>, supports scripted mapping of source files/strings
3765
  to destination strings.
3766
 
3767
* Add the echoxml task. This will echo nested XML to a file, with
3768
  the normal <?xml ?> processor instruction. UTF-8 encoding only; no-namespace
3769
  support.
3770
 
3771
* Try to make subprojects of custom Project subclasses instances of the
3772
  same type. Bugzilla report 17901.
3773
 
3774
* <ssh> and <scp> support keyboard-interactive authentication now.
3775
 
3776
* <javadoc> now supports -breakiterator for custom doclets if Ant is
3777
  running on JSE 5.0 or higher.  Bugzilla Report: 34580.
3778
 
3779
* New logger, TimestampedLogger, that prints the wall time that a build
3780
  finished/failed. Use with
3781
  -logger org.apache.tools.ant.listener.TimestampedLogger
3782
 
3783
* <junitreport> now generates pages alltests-errors.html and
3784
  alltests-fails.html, that list only the errors and failures, respectively.
3785
  Bugzilla Report: 36226
3786
 
3787
* New task <makeurl> that can turn a file reference into an absolute file://
3788
  url; and nested filesets/paths into a (space, comma, whatever) separated
3789
  list of URLs. Useful for RMI classpath setup, amongst other things.
3790
 
3791
* <xslt> now accepts nested FileNameMappers e.g. <globmapper>.
3792
  Bugzilla report 37604.
3793
 
3794
* New task <loadresource> that accompanies <loadfile> for non file resources.
3795
 
3796
* <echo> now supports an encoding when saving to a file.
3797
 
3798
* New GreedyInputHandler added.
3799
 
3800
* Add textfile attribute to the <filesmatch> condition. When true, the text
3801
  contents of the two files are compared, ignoring line ending differences.
3802
 
3803
* New <resourcesmatch> condition.
3804
 
3805
* Added the onmissingfiltersfile attribute to filterset. Bugzilla report 19845.
3806
 
3807
* Added the inline handler element to the input task.
3808
 
3809
* <sql> supports property expansion if you set the expandProperties
3810
  attribute. By default it does not expand properties, something we
3811
  dare not change for fear of breaking complex SQL operations in
3812
  existing files.
3813
 
3814
* <javadoc>'s packagenames attribute is now optional and defaults to "*".
3815
 
3816
* <javac>'s source and target attributes as well as <javadoc>'s source
3817
  attribute will read default values from the properties
3818
  ant.build.javac.source and ant.build.javac.target.
3819
 
3820
* Handling of ' ', '#' in CLASSPATH and '#' in -lib (cannot use ' '
3821
  in -lib on UNIX at the moment). Bugzilla Report 39295.
3822
 
3823
* <scp> now optionally supports the sftp protocol.  Bugzilla Report 39373.
3824
 
3825
* Resources can now be used to indicate the location of the stylesheet to use
3826
  in <xslt>. Bugzilla Report 39407.
3827
 
3828
* New <antversion> condition. Bugzilla report 32804.
3829
 
3830
* ReplaceTokens should allow properties files. Bugzilla report 39688.
3831
 
3832
* FTP Account could not be specified in ant FTP task. Bugzilla report 39720.
3833
 
3834
* Minor performance updates. Bugzilla report 39565.
3835
 
3836
* New deleteonexit attribute for the <tempfile> task. Bugzilla report 39842.
3837
  Remember that the exit of the JVM can be a long time coming,
3838
  especially under an IDE. Don't rely on this being called.
3839
 
3840
* <scriptdef>-created scripts have support for nested text. All text
3841
  passed to a scripted task can be accessed via self.text.
3842
 
3843
* <fixcrlf> now supports an outputencoding attribute.  Bugzilla report 39697.
3844
 
3845
* <junitreport> now supports nested XSL parameters. Bugzilla report 39708.
3846
 
3847
* <javacc> has a jdkversion attribute to pass the desired JDK version
3848
  down to javacc.  Bugzilla report 38715.
3849
 
3850
* <cvs> prints passfile info at -verbose level instead of -info. Bugzilla
3851
  report 35268
3852
 
3853
* When <javac> can't find the compiler class, it prints out java.home for
3854
  immediate diagnostics
3855
 
3856
* Ant launcher now supports a -main attribute so that you can specify
3857
  an extension class to the built in org.apache.tools.ant.Main
3858
  class. This class must implement the interface AntMain
3859
 
3860
Changes from Ant 1.6.4 to Ant 1.6.5
3861
===================================
3862
 
3863
Changes that could break older environments:
3864
--------------------------------------------
3865
 
3866
Fixed bugs:
3867
-----------
3868
 
3869
* <move> was unable to replace existing files or write into
3870
  existing directories.  Bugzilla report 34962.
3871
 
3872
* <macrodef> with redefined default values was incorrect. (Fix for
3873
   31215 had a bug). Bugzilla report 35109.
3874
 
3875
* <javadoc> will convert backslashes to forwardslashes when generating file
3876
  list by useexternalfile. Bugzilla report 27814.
3877
 
3878
Changes from Ant 1.6.3 to Ant 1.6.4
3879
===================================
3880
 
3881
Changes that could break older environments:
3882
--------------------------------------------
3883
* <ftp> task has had a number of changes.  Uptodate calculation previously
3884
  did not call a file uptodate if the source timestamp and the destination
3885
  timestamp were equal. Bugzilla report 34941.  Any script that attempted
3886
  to compensate for this by using the timediffmillis attribute might need
3887
  to be tweaked.
3888
 
3889
 
3890
Fixed bugs:
3891
-----------
3892
 
3893
* Sun javah failed with java.lang.NoClassDefFoundError.
3894
  Bugzilla report 34681.
3895
 
3896
* DirectoryScanner.slowScan() was broken. Bugzilla report 34722.
3897
 
3898
* DirectoryScanner.scan() could throw a NullPointerException on
3899
  case-insensitive filesystems (read Windows or MacOS X).
3900
 
3901
* Get w/authentication failed with ArrayOutOfBoundsExceptions.
3902
  Bugzilla report 34734.
3903
 
3904
* Granularity attribute for <sync> task was undocumented.
3905
  Bugzilla report 34871.
3906
 
3907
* <unzip> and <untar> could leave file handles open on invalid
3908
  archives.  Bugzilla report 34893.
3909
 
3910
* propertyset threw NPE with nested, mapped propertysets.
3911
 
3912
Other changes:
3913
--------------
3914
 
3915
* AntXMLContext.setCurrentTargets() is now public. Bugzilla report 34680.
3916
 
3917
Changes from Ant 1.6.2 to Ant 1.6.3
3918
===================================
3919
 
3920
Changes that could break older environments:
3921
--------------------------------------------
3922
 
3923
* The subant task used the canonical version of a file path. This
3924
  has been changed to use the absolute path. Bugzilla 30438.
3925
 
3926
* Tar now writes two EOF blocks rather than one.
3927
  Bugzilla report 28776
3928
 
3929
* The Reference object now has a project field which it uses in preference
3930
  to the project passed in. This allows composite references to be
3931
  handled to nested projects.
3932
  Bugzilla report 25777
3933
 
3934
* <junit> with filtertrace="true" will now also swallow lines for the
3935
  sun.reflect package.  If you need to see them in your stack trace,
3936
  you must set filtertrace to false.
3937
  Bugzilla Report 22758
3938
 
3939
* The jikes compiler adapter now supports -bootclasspath, -extdirs and
3940
  -sourcepath and also uses the same logic for debug flags as javac.
3941
  This means, the jikes compiler adapter now requires Jikes 1.15 or later.
3942
  Bugzilla Reports 25868, 26404 and 32609.
3943
 
3944
* The gcj compiler adapter used to include the Java runtime classes
3945
  even if includeJavaRuntime was set to false, unless the
3946
  bootclasspath has been specified as well.  It will now always adhere
3947
  to includeJavaRuntime, you may need to set it to true explicitly now
3948
  if you relied on the old behavior.
3949
 
3950
Other changes:
3951
--------------
3952
 
3953
* <javadoc> can now take an attribute 'executable'. Bugzilla report 30606.
3954
 
3955
* New attribute ignorecontents for <different> selector
3956
 
3957
* Javadoc fixes for Location, Project, and RuntimeConfigurable
3958
  Bugzilla 30160.
3959
 
3960
* Enable to choose the regexp implementation without system property.
3961
  Bugzilla Report 15390.
3962
 
3963
* Expose objects and methods in IntrospectionHelper. Bugzilla Report 30794.
3964
 
3965
* Allow file attribute of <move> to rename a directory.
3966
  Bugzilla Report 22863.
3967
 
3968
* Add xmlcatalog nested element to XmlProperty. Bugzilla report 27053.
3969
 
3970
* New attribute alwayslog for <redirector> type.
3971
 
3972
* Added <target> nested elements to <ant> and <antcall> to allow
3973
  specification of multiple sub-build targets, which are executed
3974
  with a single dependency analysis.
3975
 
3976
* Refactored Target invocation into org.apache.tools.ant.Executor
3977
  implementations.  Bugzilla Reports 21421, 29248.
3978
 
3979
* <rmic> now also supports Kaffe's rmic version shipping with Kaffe
3980
  1.1.2 and above.
3981
 
3982
* added casesensitive attribute to <globmapper> and <regexpmapper>
3983
  Bugzilla report 16686
3984
 
3985
* added handledirsep attribute to <globmapper> and <regexpmapper>
3986
  Bugzilla report 32487
3987
 
3988
* added a new mapper <filtermapper>
3989
 
3990
* When a BuildListener tried to access System.err or System.out, Ant
3991
  would have thrown an exception - this has been changed.  Ant now
3992
  silently ignores the message.  BuildListeners still should avoid
3993
  accessing either stream.
3994
 
3995
* Added a comment attribute to the zip task.
3996
  Bugzilla report 22793.
3997
 
3998
* Overloaded FileUtils.createNewFile with a boolean mkdirs attribute
3999
  to create nonexistent parent directories.
4000
 
4001
* <apply> has a new "force" attribute that, when true, disables
4002
  checking of target files.
4003
 
4004
* Made the dest attribute of the apply task optional; mapped target
4005
  filenames will be interpreted as absolute pathnames when dest is omitted.
4006
 
4007
* Changed default tempdir for <javac> from user.dir to java.io.tmpdir.
4008
 
4009
* Added searchpath attribute to <exec> for searching path variable(s)
4010
  when resolveexecutable = true.
4011
 
4012
* Added revision and userid attributes to <pvcs> documentation.
4013
 
4014
* Added support to the touch task for a mkdirs attribute to create
4015
  nonexistent parent directories before touching new files.
4016
 
4017
* Added support to the touch task for a pattern attribute to allow
4018
  alternate datetime formats.
4019
 
4020
* Added support to the touch task to map touched files using a nested
4021
  mapper element.
4022
 
4023
* Added support to the touch task for a verbose attribute to suppress
4024
  logging of new file creation.
4025
 
4026
* bad link in docs to the enhancement page in bugzilla.
4027
  Bugzilla report 33252.
4028
 
4029
* Added length task to get strings' and files' lengths.
4030
 
4031
* <native2ascii> and <javah> now also support Kaffe's versions.
4032
 
4033
* Recursive token expansion in a filterset can now be disabled by
4034
  setting its recurse attribute to false.
4035
 
4036
* Pathconvert no longer requires that one of (targetos|pathsep|dirsep)
4037
  be set; platform defaults are used when this is the case.
4038
 
4039
* Added preservelastmodified attribute to fixcrlf task. Bugzilla 25770.
4040
 
4041
* Added isfileselected condition.
4042
 
4043
* Added verbose="true|false" attribute to <subant>. When verbose is enabled,
4044
  the directory name is logged on entry and exit of the sub-build.
4045
  Bugzilla 33787.
4046
 
4047
* Added -nouserlib option to allow running ant without automatically loading
4048
  up ${user.home}/.lib/ant. This is useful when compiling ant, and antlibs.
4049
  Modified the build.sh and build.bat to use the option.
4050
 
4051
* Added -noclasspath option to allow running ant WITHOUT using CLASSPATH env
4052
  variable. Modified ant.bat to do this so that %CLASSPATH% is not looked at.
4053
 
4054
* Add else attribute to the condition task, which specifies an
4055
  optional alternate value to set the property to if the nested
4056
  condition evaluates to false. Bugzilla report 33074.
4057
 
4058
* Ant generated jar files should now be detected as jar files by
4059
  Solaris.  Bugzilla Report 32649.
4060
 
4061
* <rexec> with a single command should now work with unusal login
4062
  dialogs without special read/write pairs.  Bugzilla Report 26632.
4063
 
4064
* <csc>'s extraoptions can now contain multiple arguments.
4065
  Bugzilla Report 23599.
4066
 
4067
* <macrodef> with default values set by properties would be
4068
  seen as new definitions when called twice with different properties.
4069
  This was confusing so the definitions are now treated as similar.
4070
  Bugzilla Report 31215.
4071
 
4072
* <javadoc> has a new attribute "includenosourcepackages" that can be
4073
  used to document packages that don't hold source files but a
4074
  package.html file.  Bugzilla Report 25339.
4075
 
4076
* <rpm> has new attributes failonerror and quiet.
4077
 
4078
* Added two tutorials
4079
  - beginner: introduction into Ant
4080
  - task developers: using path, fileset etc
4081
 
4082
* a number of new attributes that allow the user to handle non-standard
4083
  server listing formats and time zone differences have been added in
4084
  the <ftp> task.
4085
 
4086
 
4087
Fixed bugs:
4088
-----------
4089
 
4090
* Do not pass on ThreadDeath when halting <java fork="false">. Bugzilla
4091
  32941.
4092
 
4093
* Killing a thread running <java fork="true"> (e.g. from an IDE) would
4094
  not stop the forked process. Bugzilla 31928.
4095
 
4096
* Programs run with <java fork="true"> can now accept standard input
4097
  from the Ant console.  (Programs run with <java fork="false"> could
4098
  already do so.)  Bugzilla 24918.
4099
 
4100
* AbstractCvsTask prematurely closed its outputStream and errorStream.
4101
  Bugzilla 30097.
4102
 
4103
* Impossible to use implicit classpath for <taskdef>
4104
  when Ant core loader != Java application loader and
4105
  Path.systemClassPath taken from ${java.class.path} Bugzilla 30161.
4106
 
4107
* MacroInstance did not clean up nested elements correctly in the execute
4108
  method, causing multiple use of the same macro instance with nested
4109
  elements to fail.
4110
 
4111
* checksum fileext property doc wrong. Bugzilla 30787.
4112
 
4113
* FTP task, getTimeDiff method was returning wrong value. Bugzilla 30595.
4114
 
4115
* make sure that Zip and its derivatives call the createEmptyZip method when
4116
 there are no resources to zip/jar/...
4117
 
4118
* Zip task was not zipping when only empty directories were found.
4119
  Bugzilla 30365.
4120
 
4121
* Jar task was not including manifest files when duplicate="preserve" was
4122
  chosen. Bugzilla 32802.
4123
 
4124
* ant.bat was missing runAntNoClasspath label for goto.
4125
  Bugzilla 34510.
4126
 
4127
* Classpath was treated in the same way as -lib options. Bugzilla 28046.
4128
 
4129
* Manual page for cvsversion contained incorrect attributes and did not
4130
  say since 1.6.1. Bugzilla 31408.
4131
 
4132
* Typo in definition of <cvsversion> task causing it not to be defined.
4133
  Bugzilla 31403.
4134
 
4135
* Execution of top level tasks in imported files get delayed by targets.
4136
  Bugzilla report 31487.
4137
 
4138
* ExecTask executes checkConfiguration() even though os does not match.
4139
  Bugzilla report 31805.
4140
 
4141
* Concat task instance could not be run twice.
4142
  Bugzilla report 31814.
4143
 
4144
* NPE using XmlLogger and antlib.
4145
  Bugzilla report 31840.
4146
 
4147
* Properties.propertyNames() should be used instead of .keys().
4148
  Bugzilla report 27261.
4149
 
4150
* Target location is not set for default target.
4151
  Bugzilla report 32267.
4152
 
4153
* Incorrect classloader parent in junittask when using with
4154
  ant-junit.jar and junit.jar not in the project classloader. Bugzilla
4155
  report 28474.
4156
 
4157
* getResources() on the classloader returned by ClasspathUtils would
4158
  see each resource twice - if the resource is in the project
4159
  classpath and if the classloader is requested with a null path.
4160
 
4161
* XMLValidate used URL#getFile rather than the ant method FileUtils#fromURI
4162
  Bugzilla report 32508
4163
 
4164
* fixed Regexp-Mapper docs which gave outdated instructions (optional.jar)
4165
  Bugzilla report 28584
4166
 
4167
* <scp> using <fileset> didn't work with OpenSSH 3.9 and later.
4168
  Bugzilla report 31939
4169
 
4170
* <setproxy> failed to set user/password on some JDKs.
4171
  Bugzilla report 32667
4172
 
4173
* untar would go into infinite loop for some invalid tar files.
4174
  Bugzilla report 29877
4175
 
4176
* forked <javac> won't pass -source to a JDK 1.1 or 1.2 javac anymore.
4177
  Bugzilla report 32948
4178
 
4179
* propertyset references did not handle nested propertyset references.
4180
 
4181
* oata.types.Description.getDescription(Project) would throw a
4182
  NullPointerException when the "ant.targets" reference was unset.
4183
 
4184
* Wrapper scripts did not detect WINNT value of dynamic OS environment
4185
  variable when logged into workstations using Novell authentication.
4186
  Bugzilla Report 30366.
4187
 
4188
* DependScanner.getResource() always returned nonexistent resources,
4189
  even when the resource actually existed.  Bugzilla Report 30558.
4190
 
4191
* <apply> was broken with classfilesets.  Bugzilla Report 30567.
4192
 
4193
* <available> returned false positives when checking a file
4194
  passed in with the current basedir leading twice:
4195
  e.g. ${basedir}${file.separator}${basedir}${file.separator}foo .
4196
 
4197
* The first file open that took place when using input files with the
4198
  <exec>, <apply>, or <java> tasks was always logged to System.out
4199
  instead of to the managing Task.
4200
 
4201
* <telnet> and <rexec> would try to disconnect from servers they never
4202
  connetced to, potentially leading to exceptions in commons-net.
4203
  Bugzilla Report 33618.
4204
 
4205
* <zip> would drop files matched by defaultexcludes during updates.
4206
  Bugzilla Report 33412.
4207
 
4208
* <zip> couldn't store files with size between 2GB and 4GB (the
4209
  upper limit set by the ZIP format itself).  Bugzilla Report 33310.
4210
 
4211
* NPE when when <presetdef> tries to configure a task that
4212
  cannot be instantiated. Bugzilla Report 33689.
4213
 
4214
* <javac debug="false"> created an invalid command line when running
4215
  the Symantec Java compiler.
4216
 
4217
* Get with usetimestamp did not work on Java 1.2.
4218
 
4219
* Get with usetimestamp did not work when local timestamp roughly >= now.
4220
 
4221
* The framed JUnit report now handles multiple reports for the same
4222
  testcase properly.  Bugzilla Report 32745.
4223
 
4224
* <cab> didn't work for files with spaces in their names on Windows.
4225
  Bugzilla Report 17182.
4226
 
4227
* The VAJ tasks could fail if the project name contained characters
4228
  that need to get URL encoded.  Bugzilla Report 23322.
4229
 
4230
* TarInputStream#read() wasn't implemented correctly.  Bugzilla Report
4231
  34097.
4232
 
4233
* <xslt> failed to process file-hierarchies of more than one level if
4234
  scanincludeddirectories was true.  Bugzilla Report 24866.
4235
 
4236
* forkmode="perBatch" or "once" would ignore extension attributes that
4237
  had been specified for <formatter>s.  Bugzilla Report 32973.
4238
 
4239
* The refid attribute of the I/O redirector was not functional.
4240
 
4241
Changes from Ant 1.6.1 to Ant 1.6.2
4242
===================================
4243
 
4244
Changes that could break older environments:
4245
--------------------------------------------
4246
 
4247
* The import task used the canonical version of a file path. This
4248
  has been changed to use the absolute path. Bugzilla 28505.
4249
 
4250
* ant-xalan2.jar has been removed since the only class contained in it
4251
  didn't depend on Xalan-J 2 at all.  Its sole dependency has always
4252
  been TraX and so it has been merged into ant-trax.jar.
4253
 
4254
* All exceptions thrown by tasks are now wrapped in a buildexception
4255
  giving the location in the buildfile of the task.
4256
 
4257
* Nested elements for namespaced tasks and types may belong to the
4258
  Ant default namespace as well as the task's or type's namespace.
4259
 
4260
* <junitreport> will very likely no longer work with Xalan-J 1.
4261
 
4262
  Note that Xalan-J 1 has been deprecated for a very long time and we
4263
  highly recommend that you upgrade.
4264
 
4265
  If you really need to continue using Xalan-J 1, please copy the
4266
  junit-frames-xalan1.xsl from the distribution's etc directory as
4267
  junit-frames.xsl into a new directory and use the task's styledir
4268
  attribute to point to.  This is the last version of the XSLT
4269
  stylesheet that is expected to be compatible with Xalan-J 1.
4270
 
4271
Fixed bugs:
4272
-----------
4273
 
4274
* eliminate memory leak in AntClassLoader. Bugzilla Report 8689.
4275
 
4276
* subant haltonfailure=false did not catch all failures. Bugzilla Report 27007.
4277
 
4278
* macrodef @@ escaping was broken.  Bugzilla Report 27069.
4279
 
4280
* MacroDef did not allow attributes named 'description'. Bugzilla Report 27175.
4281
 
4282
* Throw build exception if name attribute missing from patternset#NameEntry.
4283
  Bugzilla Report 25982.
4284
 
4285
* Throw build exception if target repeated in build file, but allow targets
4286
  to be repeated in imported files.
4287
 
4288
* <apply> didn't compare timestamps of source and targetfiles when
4289
  using a nested <filelist>.  Bugzilla Report 26985.
4290
 
4291
* tagdiff.xml was broken in ant 1.6.1. Bugzilla Report 27057.
4292
 
4293
* if the basedir contained .. or . dirs, and the build file name contained
4294
  .. or ., the basedir was set incorrectly. Bugzilla Report 26765.
4295
 
4296
* regression from ant 1.5, exec task outputted two redundant trailing newlines.
4297
  Bugzilla Report 27546.
4298
 
4299
* NPE when running commons listener. Bugzilla Report 27373.
4300
 
4301
* <java> swallowed the stack trace of exceptions thrown by the
4302
  executed program if run in the same VM.
4303
 
4304
* -projecthelp swallowed (configuration) errors silently.
4305
  Bugzilla report 27732.
4306
 
4307
* filterset used by filtertask doesn't respect loglevel. Bugzilla Report 27568.
4308
 
4309
* wrong compare used in ProjectComponent for logging. Bugzilla Report 28070.
4310
 
4311
* failOnAny attribute for <parallel> was broken. Bugzilla Report 28122.
4312
 
4313
* If <javac> uses gcj and any of the nested <compilerarg>s implies
4314
  compilation to native code (like -o or --main), Ant will not pass
4315
  the -C switch to gcj.  This means you can now compile to native code
4316
  with gcj which has been impossible in Ant < 1.6.2.
4317
 
4318
* <import optional="false"> and <import optional="true">
4319
  behaved identically.
4320
 
4321
* <xslt> now sets the context classloader if you've specified a nested
4322
  <classpath>.  Bugzilla Report 24802.
4323
 
4324
* <zip> and friends would delete the original file when trying to update
4325
  a read-only archive.  Bugzilla Report 28419.
4326
 
4327
* <junit> and <assertions> are working together. Bugzilla report 27218
4328
 
4329
* AntClassLoader#getResource could return invalid URLs.  Bugzilla
4330
  Report 28060.
4331
 
4332
* Ant failed to locate tools.jar if the jre directory name wasn't all
4333
  lowercase.  Bugzilla Report 25798.
4334
 
4335
* Redirector exhibited inconsistent behavior with regard to split
4336
  output.  When sent to file only, files would be created in all
4337
  cases; when split file-property, files were only created if
4338
  writes were performed.
4339
 
4340
* fixed case handling of scriptdef attributes and elements.
4341
 
4342
* UNC pathnames did not work for ANT_HOME or -lib locations on Windows.
4343
  Bugzilla report 27922.
4344
 
4345
* replacestring tokenfilter only replaced the first occurrence.
4346
 
4347
* AntLikeTasksAtTopLevelTest failed on cygwin.
4348
 
4349
* I/O-intensive processes hung when executed via <exec spawn="true">.
4350
  Bugzilla reports 23893/26852.
4351
 
4352
* JDependTask did not close an output file. Bugzilla Report 28557.
4353
 
4354
* Using <macrodef> could break XmlLogger. Bugzilla Report 28993.
4355
 
4356
* <genkey> no longer requires keytool to be in your PATH.  Bugzilla
4357
  Report 29382.
4358
 
4359
* <symlink> could create cyclic links.  Bugzilla Report 25181.
4360
 
4361
* <zip whenempty="skip"> didn't work in a common situation.  Bugzilla
4362
  Report 22865.
4363
 
4364
* <scp> now properly handles remote files and directories with spaces
4365
  in their names.  Bugzilla Report 26097.
4366
 
4367
* <scp> now has (local|remote)tofile attributes to rename files on the
4368
  fly.  Bugzilla Report 26758.
4369
 
4370
* <telnet> and <rexec> didn't close the session.  Bugzilla Report 25935.
4371
 
4372
* <subant> and XmlLogger didn't play nicley together.
4373
 
4374
Other changes:
4375
--------------
4376
* doc fix concerning the dependencies of the ftp task
4377
  Bugzilla Report 29334.
4378
 
4379
* <xmlvalidate> has now a property nested element,
4380
  allowing to set string properties for the parser
4381
  Bugzilla Report 23395.
4382
 
4383
* Docs fixes for xmlvalidate.html, javadoc.html, starteam.
4384
  Bugzilla Reports 27092, 27284, 27554.
4385
 
4386
* <pathconvert> now accepts nested <mapper>s.  Bugzilla Report 26364.
4387
 
4388
* Shipped XML parser is now Xerces-J 2.6.2.
4389
 
4390
* Added nested file element to filelist.
4391
 
4392
* spelling fixes, occurred. Bugzilla Report 27282.
4393
 
4394
* add uid and gid to tarfileset. Bugzilla Report 19120.
4395
 
4396
* <scp> has a verbose attribute to get some feedback during the
4397
  transfer and new [local|remote][File|Todir] alternatives to file and
4398
  todir that explicitly state the direction of the transfer.
4399
 
4400
* The OS/2 wrapper scripts have been adapted to use the new launcher.
4401
  Bugzilla Report 28226.
4402
 
4403
* <sshexec> now also captures stderr output.  Bugzilla Report 28349.
4404
 
4405
* <xslt> now supports a nested <mapper>.  Bugzilla Report 11249.
4406
 
4407
* <touch> has filelist support.
4408
 
4409
* <nice> task lets you set the priority of the current thread; non-forking
4410
  <java> code will inherit this priority in their main thread.
4411
 
4412
* New attribute "negate" on <propertyset> to invert selection criteria.
4413
 
4414
* Target now supports a Location member.  Bugzilla Report 28599.
4415
 
4416
* New "pattern" attribute for <date> selector.
4417
 
4418
* <junit> has a new forkmode attribute that controls the number of
4419
  Java VMs that get created when forking tests.  This allows you to
4420
  run all tests in a single forked JVM reducing the overhead of VM
4421
  creation a lot.  Bugzilla Report 24697.
4422
 
4423
* <jar> can now optionally create an index for jars different than the
4424
  one it currently builds as well.  See the new <indexjars> element
4425
  for details.  Bugzilla Report 14255.
4426
 
4427
* Permit building under JDK 1.5. Bugzilla Report 28996.
4428
 
4429
* minor Javadoc changes. Bugzilla Report 28998.
4430
 
4431
* Misc. corrections in SignJar.java. Bugzilla Report 28999.
4432
 
4433
* Remove redundant <hr> from javah.html. Bugzilla Report 28995.
4434
 
4435
* Ignore built distributions. Bugzilla Report 28997.
4436
 
4437
* A new roundup attribute on <zip> and related task can be used to
4438
  control whether the file modification times inside the archive will
4439
  be rounded up or down (since zips only store modification times with
4440
  a granularity of two seconds).  The default remains to round up.
4441
  Bugzilla Report 17934.
4442
 
4443
* A binary option has been added to <concat>. Bugzilla Report 26312.
4444
 
4445
* Added DynamicConfiguratorNS, an namespace aware version of
4446
  DynamicConfigurator. Bugzilla Report 28436.
4447
 
4448
* Add implicit nested element to <macrodef>. Bugzilla Report 25633.
4449
 
4450
* Add deleteonexit attribute to <delete>.
4451
 
4452
* Added Target.getIf/Unless().  Bugzilla Report 29320.
4453
 
4454
* <fail> has a status attribute that can be used to pass an exit
4455
  status back to the command line.
4456
 
4457
* <fail> accepts a nested <condition>.
4458
 
4459
* <loadproperties> supports loading from a resource.
4460
  Bugzilla Report 28340.
4461
 
4462
* Nested file mappers and a container mapper implementation have been
4463
  introduced.  Additionally, the <mapper> element now accepts "defined"
4464
  nested FileNameMapper implementations directly, allowing a usage
4465
  comparable to those of <condition>, <filter>, and <selector>.
4466
 
4467
* New <redirector> type introduced to provide extreme I/O flexibility.
4468
  Initial support for <exec>, <apply>, and <java> tasks.
4469
 
4470
* <apply> has a new ignoremissing attribute (default true for BC)
4471
  which will allow nonexistent files specified via <filelist>s to
4472
  be passed to the executable.  Bugzilla Report 29585.
4473
 
4474
* <junitreport> now also works with Xalan XSLTC and/or JDK 1.5.
4475
  Bugzilla Report 27541.
4476
 
4477
* <jspc> doesn't work properly with Tomcat 5.x.  We've implemented a
4478
  work-around but don't intend to support future changes in Tomcat
4479
  5.x.  Please use the jspc task that ships with Tomcat instead of
4480
  Ant's.
4481
 
4482
Changes from Ant 1.6.0 to Ant 1.6.1
4483
=============================================
4484
 
4485
Changes that could break older environments:
4486
--------------------------------------------
4487
 
4488
* License is now Apache License 2.0
4489
  see http://www.apache.org/licenses/ for more information
4490
 
4491
Fixed bugs:
4492
-----------
4493
* Remove a recursive template call in the junit xsls that could trigger a stack
4494
  overflow. It now uses Xalan extensions to call a Java class directly.
4495
  Bugzilla Report 19301
4496
 
4497
* Fix spurious infinite loop detection for filters (introduced in ant 1.6.0).
4498
  Bugzilla Report 23154.
4499
 
4500
* Fix handling of default ant namespace for nested elements.
4501
 
4502
* Fix jboss element of ejb task (introduced in ant 1.6.0).
4503
 
4504
* <whichresource> failed to load classes correctly.
4505
 
4506
* Ant could fail to start with a NullPointerException if
4507
  ANT_HOME/lib/ant-launcher.jar was part of the system CLASSPATH.
4508
 
4509
* presetdef'ed types did not work with the ant-type attribute
4510
 
4511
* fixed case handling of macrodef attributes and elements. Bugzilla
4512
  Reports 25687 and 26225.
4513
 
4514
* <java> ignored the append attribute, Bugzilla Report 26137.
4515
 
4516
* The gcj compiler adapter for <javac> failed if the destination
4517
  directory didn't exist.  Bugzilla Report 25856.
4518
 
4519
* Ant now fails with a more useful message if a new process will be
4520
  forked in a directory and that directory doesn't exist.
4521
 
4522
* <splash> used to break the build on non-GUI environments.  Bugzilla
4523
  report 11482.
4524
 
4525
* Ant 1.6.0 cannot run build scripts in directories with non-ASCII names.
4526
  Bugzilla Report 26642.
4527
 
4528
Other changes:
4529
--------------
4530
* Shipped XML parser is now Xerces-J 2.6.1
4531
 
4532
* Translate task logs a debug message specifying the number of files
4533
  that it processed.  Bugzilla Report 13938.
4534
 
4535
* <fixcrlf> has a new attribute - fixlast. Bugzilla Report 23262.
4536
 
4537
* <p4submit> has 2 new attributes, needsresolveproperty and changeproperty.
4538
  Bugzilla Report 25711.
4539
 
4540
* add description attributes to macrodef attributes and elements.
4541
  Bugzilla Report 24711.
4542
 
4543
* Extending ClearCase Tasks :
4544
 - Added an extra option to 'failonerr' to each ClearCase task/command.
4545
 - Extended the functionality of cccheckout. It can check (notco) to see if
4546
  the desired element is already checked out to the current view. Thus it
4547
   won't attempt to check it out again.
4548
 - Added three new ClearCase commands: ccmkattr, ccmkdir, ccmkelem
4549
  Bugzilla Report 26253.
4550
 
4551
* added nested text support to <macrodef>
4552
 
4553
* added initial support for Java 1.5.  Java 1.5 is now correctly
4554
  detected by Ant and treated just like Java 1.4.  You can now specify
4555
  source="1.5" in the <javac> task.
4556
 
4557
* created new task <cvsversion>
4558
 
4559
* added support for branch logging via the tag attribute in <cvschangelog>
4560
  Bugzilla Report 13510.
4561
 
4562
* added support the groovy language in the script and scriptdef tasks
4563
 
4564
Changes from Ant 1.5.4 to Ant 1.6.0
4565
===================================
4566
 
4567
Changes that could break older environments:
4568
--------------------------------------------
4569
 
4570
* This version of Ant can not be built with JDK 1.1 and requires at
4571
  least Java 1.2 at runtime as well.  Compiling for a 1.1 target is
4572
  still supported.
4573
 
4574
* Targets cannot have the empty string as their name any longer.
4575
 
4576
* ant.jar's manifest does no longer include a Class-Path entry, so it
4577
  is no longer possible to run Ant via "java -jar ant.jar" without
4578
  manually altering the CLASSPATH.  Instead of that a file
4579
  ant-bootstrap.jar is included in the etc directory of the binary
4580
  distribution, copy this to the lib directory and use
4581
  "java -jar ant-bootstrap.jar" instead if you want to run Ant without
4582
  the wrapper script (not recommended).
4583
 
4584
* The <script> task now requires Apache BSF instead of the older IBM
4585
  version.  See <http://jakarta.apache.org/bsf/>
4586
 
4587
* <xmlproperty> will no longer fail if the file to be loaded doesn't exist.
4588
 
4589
* XML namespaces are now enabled in the XML parser, meaning XML namespace
4590
  declarations no longer cause errors. However task names containing colons
4591
  will cause errors unless there is a corresponding namespace uri.
4592
 
4593
* The <ftp> and <telnet> tasks now require Jakarta Commons Net instead
4594
  of the older ORO Netcomponents version.  See
4595
  <http://jakarta.apache.org/commons/net/index.html>.
4596
 
4597
* <input> will no longer prompt the user and wait for input if the
4598
  addproperty attribute is set to a property that has already been
4599
  defined in the project.  If you rely on the task waiting for input,
4600
  don't use the addproperty attribute.
4601
 
4602
* The Class-Path attribute in manifests will no longer merge the
4603
  entries of all manifests found, but will be treated like all other
4604
  manifest attributes - the most recent attribute(s) will be used.
4605
 
4606
* New Launch mechanism implemented. This moves some functionality from
4607
  the batch files / shell scripts into Java. This removes environment
4608
  limitations, for command issues, directory depth issues on Windows. Also
4609
  allows a per-user library location to be used if the main Ant install
4610
  is locked down.
4611
 
4612
* The Entry nested element of PropertyFile will not any more have its value
4613
  attribute (actually increment) overwritten with the new value of the entry
4614
  after execution.
4615
 
4616
* Output stored from a <java> or <exec> task is now exactly as generated. No
4617
  conversion to platform end-of-line characters is performed.
4618
 
4619
* <translate> will now preserve line endings.
4620
 
4621
* <ftp> followsymlinks="false" in nested fileset definitions is explicitly
4622
  required in order to exclude remote symbolic links (when doing a get, chmod,
4623
  delete, rmdir).
4624
 
4625
* The values of the Copy#fileCopyMap variable has changed from String to
4626
  String[]. (In java 1.5 terms it was Hashtable<String, String> and
4627
  is now Hashtable<String, String[]>). This will affect third party code
4628
  that extend Copy and override Copy#doFileOperations.
4629
 
4630
* <loadproperties> didn't expand properties while <property file="..."/>
4631
  does, so they were not equivalent.  This has been fixed, which means
4632
  that propetries may get expanded twice if you use an
4633
  <expandproperties> filterreader.  Bugzilla Report 17782.
4634
 
4635
* User defined tasks and typedefs are now handled internally in the
4636
  same way as predefined tasks and typedefs. Also tasks and typedefs
4637
  are resolved at a later stage. This causes some
4638
  differences especially for user defined task containers.
4639
 
4640
* <checksum> log message "Calculating checksum ..." has been degraded
4641
  from INFO to VERBOSE.
4642
 
4643
Fixed bugs:
4644
-----------
4645
* Filter readers were not handling line endings properly.  Bugzilla
4646
  Report 18476.
4647
 
4648
* Filtersets were also not handling line endings properly.
4649
 
4650
* Expand tasks did not behave as expected with PatternSets.
4651
 
4652
* <property environment=... /> now works on OS/400.
4653
 
4654
* <cab> could hang listcab on large <fileset>s.
4655
 
4656
* The starteam stcheckout, stcheckin tasks now correctly compute
4657
  status of files against whatever local tree they are run against
4658
  and, optionally, will not process a file if it is current.
4659
  Previously you had to process everything unless you ran against the
4660
  default folder which wasn't the normal use-case for ant-starteam.
4661
  The stlist task now similarly displays that status correctly making
4662
  it a more generally useful tool.
4663
 
4664
* entity includes would cause exceptions if path names included spaces.
4665
 
4666
* addConfiguredXXX would not work for TaskAdapter wrapped tasks
4667
 
4668
* Fix <ilasm> outputfile testing so that the output file does not need
4669
  to exist beforehand.
4670
 
4671
* Ant will now exit with a return code of 1 if it encounters problems
4672
  with the command line arguments.
4673
 
4674
* ClassLoader creation changes to use a factory method in Project. A new
4675
  class AntClassLoader2 implemented for 1.2+ specific features including
4676
  Package information and addition of classes specified in the Class-Path
4677
  element of a Jar's manifest.
4678
 
4679
* It is now possible in <exec> to resolve the executable to a project
4680
  basedir or execution dir relative executable. The resolveExecutable
4681
  must be used to pick up such executables.
4682
 
4683
* splash screen wouldn't disappear when build was finished.
4684
 
4685
* <exec> output and error streams can now be redirected independently
4686
  to either a property or a file (or both)
4687
 
4688
* TarEntry's File-arg constructor would fail with a
4689
  StringIndexOutOfBoundsException on all OSes where os.name is shorter
4690
  than seven characters.  Bugzilla Report 18105.
4691
 
4692
* <copy> and <move>'s failonerror didn't apply to filesets pointing to
4693
  non-existent directories.  Bugzilla Report 18414.
4694
 
4695
* The <stripjavacomments> filter sometimes removed parts of string
4696
  constants.  Bugzilla Report 17441.
4697
 
4698
* <antlr> will now recompile your grammar if the supergrammar has
4699
  changed.  Bugzilla Report 12691.
4700
 
4701
* <property env> will now work on Unices with /bin/env instead of
4702
  /usr/bin/env.  Bugzilla Report 17642.
4703
 
4704
* <jar index="on"> could include multiple index lists.  Bugzilla 10262.
4705
 
4706
* The index created by <jar> didn't conform to the spec as it didn't
4707
  include the top-level entries.  Bugzilla Report 16972.
4708
 
4709
* <tar> and <zip> didn't honor the defaultexcludes attribute for the
4710
  implicit fileset.  Bugzilla Report 18637.
4711
 
4712
* The <replacetokens> filter would throw an exception if the token's
4713
  value was an empty string.  Bugzilla Report 18625.
4714
 
4715
* Perforce tasks relying on output from the server such as <p4change>
4716
  and <p4label> were hanging. Bugzilla Reports 18129 and 18956.
4717
 
4718
* Improve exception and logging behavior of Perforce tasks.
4719
  Bugzilla report 18154.
4720
 
4721
* build.sh install had a problem on cygwin (with REALANTHOME).
4722
  Bugzilla Report 17257
4723
 
4724
* <replaceregexp> didn't work for multi-byte encodings if byline was false.
4725
  Bugzilla Report 19187.
4726
 
4727
* <replaceregexp> was altering unnecessarily the timestamp of the directories
4728
  containing the files to process
4729
  Bugzilla Report 22541.
4730
 
4731
* file names that include spaces need to be quoted inside the @argfile
4732
  argument using forked <javac> and (all JDKS).  Bugzilla Report 10499.
4733
  NB : a first correction was only introducing quotes for JDK 1.4
4734
  It has been changed to quote for all external compilers when paths
4735
  contain spaces.
4736
  Also the backslashes need to be converted to forward slashes
4737
  Bugzilla Report 17683.
4738
 
4739
* Setting filesonly to true in <zip> and related tasks would cause the
4740
  archives to be always recreated.  Bugzilla Report 19449.
4741
 
4742
* file names that include spaces need to be quoted inside the @argfile
4743
  argument using <javadoc> and JDK 1.4.  Bugzilla Report 16871.
4744
 
4745
* <junit> didn't work with custom formatters that were only available
4746
  on the user specified classpath when a timeout occurred.  Bugzilla
4747
  Report 19953.
4748
 
4749
* <different> selector : make ignoreFileTimes effectively default to true
4750
  and fix a bug in the comparison of timestamps. Bugzilla Report 20205.
4751
 
4752
* <different> selector can now be nested directly under a fileset
4753
  Bugzilla Report 20220.
4754
 
4755
* <cvstagdiff> had a problem with "dd-MM-yy hh:mm:ss" formats
4756
  Bugzilla Report 15995.
4757
 
4758
* <cvstagdiff> cvsroot and package attributes added to the root
4759
  element tagdiff of the xml output
4760
  Bugzilla Report 16081.
4761
 
4762
* <cvstagdiff> had a problem with aliased modules and with requests for
4763
  multiple modules. Bugzilla Reports 21373 and 22877.
4764
 
4765
* <cvstagdiff> could not parse properly the revision number of new files with
4766
  CVS 1.11.9 or higher. Bugzilla Report 24406.
4767
 
4768
* <fixcrlf> make fixcrlf create its temporary files in the default directory
4769
  of FileUtils#createTempFile instead of the destination dir of fixcrlf.
4770
  Bugzilla Report 20870.
4771
 
4772
* <ejbjar> implementation for Borland.
4773
  Prevent the task from being blocked by error messages coming from java2iiop.
4774
  Bugzilla Report 19385.
4775
 
4776
* <unzip>'s and <untar>'s nested patternsets didn't work as documented
4777
  when the pattern ended in a slash or backslash.  Bugzilla Report 20969.
4778
 
4779
* <fixcrlf> will now create the parent directories for the destination
4780
  files if necessary.  Bugzilla Report 20840.
4781
 
4782
* <xmlproperty> now handles CDATA sections. BugZilla Report 17195
4783
 
4784
* <translate> now translate tokens that are placed close together.
4785
  Bugzilla Report 17297
4786
 
4787
* Nested websphere element for ejbjar does not support spaces in file name.
4788
  Bugzilla Report 21298
4789
 
4790
* Don't multiply Class-Path attributes when updating jars.  Bugzilla
4791
  Report 21170.
4792
 
4793
* Do not overwrite the value (increment) attribute of PropertyFile nested
4794
  Entry element. Bugzilla Report 21505.
4795
 
4796
* Prevent sysproperties with no key or no value from being added in <junit>.
4797
  Bugzilla Report 21684.
4798
 
4799
* Allow references to be properly inherited via antcall
4800
  Bugzilla Report 21724.
4801
 
4802
* ftp chmod failed when the remote system was UNIX and local system Windows
4803
  Bugzilla Report 21865.
4804
 
4805
* ftp put with chmod failed when the remote system was UNIX and local system
4806
  Windows. Bugzilla Report 23143.
4807
 
4808
* ftp did not set the ascii mode explicitly, causing problems with ftp servers
4809
  having binary as default
4810
 
4811
* ftp was not able to download files when they were pointed to by symbolic
4812
  links. Bugzilla Report 14063.
4813
 
4814
* ftp is able to download also directories pointed to by symbolic links.
4815
 
4816
* replace would change \r\n into \r\r\n under Windows.
4817
 
4818
* junitreport with frames did not display a link for classes without a package
4819
  or in the top package.
4820
  Bugzilla Report 21915.
4821
 
4822
* Project.toBoolean(String) now handles null as argument and does not throw a
4823
  NullPointerException any more.
4824
 
4825
* The socket condition will now close the socket created to test.
4826
  Bugzilla Report 23040.
4827
 
4828
* <junit includeantruntime="true" fork="true"> replaced the CLASSPATH instead
4829
  of adding to it.  Bugzilla Report 14971.
4830
 
4831
* <splash> could fail on JVMs that use null to indicate the system classloader.
4832
  Bugzilla Report 23320.
4833
 
4834
* <xmlcatalog>s only worked when defined inside of tasks.  Bugzilla
4835
  Report 20965.
4836
 
4837
* <csc> and siblings (<vbc> <jsharpc>) handle large filesets by
4838
automatic use of response files.  Bugzilla report #19630
4839
 
4840
Other changes:
4841
--------------
4842
 
4843
* Shipped XML parser is now Xerces 2.6.0
4844
 
4845
* All tasks can be used outside of <target>s.  Note that some tasks
4846
  will not work at all outside of targets as they would cause infinite
4847
  loops (<antcall> as well as <ant> and <subant> if they invoke the
4848
  current build file).
4849
 
4850
* Six new Clearcase tasks added.
4851
 
4852
* A new filter reader namely tokenfilter has been added.  Bugzilla
4853
  Report 18312.
4854
 
4855
* A new attribute named skip is added to the TailFilter and
4856
  HeadFilter filter readers.
4857
 
4858
* The filesetmanifest attribute of <jar> has been reenabled.
4859
 
4860
* The start and end tokens for <translate> may now be longer than a
4861
  single character.
4862
 
4863
* <setproxy> lets you set the username and password for proxies that
4864
  want authentication
4865
 
4866
* <loadproperties> has a new encoding attribute.
4867
 
4868
* <echoproperties> can now create XML output.
4869
 
4870
* <echoproperties> has a new srcfile attribute that can make it read
4871
  properties files and output them instead of Ant's properties.
4872
 
4873
* <filterset> will now resolve filters recursively.
4874
 
4875
* <input> has a new attribute that allows you to specify a default value.
4876
 
4877
* Added <image> task (requires JAI).
4878
 
4879
* <image> task has now proportions attribute in the <scale/> nested element
4880
  instead of keepproportions (bringing in more functionality)
4881
 
4882
* New condition <isreference>
4883
 
4884
* <ftp> now has a preservelastmodified attribute to preserve the
4885
  timestamp of a downloaded file.
4886
 
4887
* new rmdir action for <ftp> that removes directories from a fileset.
4888
 
4889
* <ftp> has attributes timediffauto and timediffmillis to use together
4890
  with the newer attribute to tell ant to take into account a time difference
4891
  between client and remote side.
4892
  Bugzilla Report 19358.
4893
 
4894
* <ftp> has been optimized to go directly to the include patterns.
4895
  This reduces scanning time under UNIX when followsymlinks="true"
4896
  and casesensitive="true" (the default)
4897
  Bugzilla Report 20103.
4898
 
4899
* The SOS and VSS tasks will no longer unconditionally prepend a $ to
4900
  vsspath or projectpath.
4901
 
4902
* OS/400 now gets detected by the os condition.
4903
 
4904
* <arg> has a new attribute pathref that can be used to reference
4905
  previously defined paths.
4906
 
4907
* <xmlproperty> has been improved, you can now expand ${properties},
4908
  define ids or paths and use Ant's location magic for filename resolutions
4909
  in the XML file.
4910
 
4911
* <xmlcatalog> will now support external catalogs according to the
4912
  OASIS "Open Catalog" standard - if resolver.jar (newer than version
4913
  1.0) from Apache's xml-commons is in your CLASSPATH.
4914
 
4915
* Starteam tasks now have support for revision labels and build labels.
4916
  Checkouts now have the option of using repository timestamps, instead
4917
  of current.
4918
 
4919
* new task <symlink> that creates and maintains symbolic links.
4920
 
4921
* new tasks <chown> and <chgrp> which are wrappers of the Unix commands.
4922
 
4923
* new task <attrib> to change file attributes on Windows systems.
4924
 
4925
* <style> has a new attribute reloadstylesheet to work around a
4926
  bug in widespread Xalan versions.
4927
 
4928
* <tarfileset> has a new dirmode attribute to specify the permissions
4929
  for directories.
4930
 
4931
* <fixcrlf>'s eol attribute now also understands "mac", "unix" and "dos".
4932
 
4933
* <classfileset> now picks up dependencies of the form MyClass.class. This
4934
  works for the code generated by the Sun java compiler. It may not work for
4935
  all compilers.
4936
 
4937
* a new attribute "globalopts" can be added to all Perforce tasks.
4938
  You can put in it all the strings described by p4 help usage. Refer to
4939
  the docs for more information.
4940
 
4941
* new Perforce tasks <p4integrate> , <p4resolve>, and <p4labelsync>
4942
 
4943
* <p4submit> will change the property p4.change if the Perforce server
4944
  renumbers the change list.
4945
  It will set the property p4.needsresolve if the submit fails,
4946
  and the message says that file(s) need to be resolved.
4947
 
4948
* <replaceregexp> now has an optional encoding attribute to support
4949
  replacing in files that are in a different encoding than the
4950
  platform's default.
4951
 
4952
* The <exec> task may now have its input redirected from either a file
4953
  or a string from the build file. The error output can be separated
4954
  to a different file when outut is redirected. standard error may be
4955
  logged to the Ant log when redirecting output to a file
4956
 
4957
* The <java> task also supports the input redirection and separate
4958
  error streams introduced to the <exec> task. In addition, it is now
4959
  possible to save the output into a property for use within the build
4960
  file as was possible with <exec> in Ant 1.5
4961
 
4962
* The <javadoc> task <tag> subelement has been enhanced to allow files
4963
  with tag mappings to be used.
4964
 
4965
* New tasks: <scp> supports file transfers, <sshexec> executes a
4966
  command over SSH.  They require jsch, a BSD licensed SSH library that
4967
  can be found at http://www.jcraft.com/jsch/index.html
4968
 
4969
* New filterreader <escapeunicode/>.
4970
 
4971
* Support for HP's NonStop Kernel (Tandem) OS has been added.
4972
 
4973
* <cab>'s basedir attribute is now optional if you specify nested
4974
  filesets.  Bugzilla Report 18046.
4975
 
4976
* New task <sync> that synchronizes two directory trees.
4977
 
4978
* <apply> has new forwardslash attribute that can force filenames to
4979
  use forward slashes (/) as file separators even on platforms with a
4980
  different separator.  This is useful if you want to run certain
4981
  ported Unix tools.
4982
 
4983
* Copy has a new outputencoding attribute that can be used to change
4984
  the encoding while copying files.  Bugzilla Report 18217.
4985
 
4986
* The xml formatter for JUnit will now honor test case names set with
4987
  setName.  Bugzilla Report 17040.
4988
 
4989
* JUnit now has an attribute reloading, which, when set to false,
4990
  makes the task reuse the same class loader for a series of tests.
4991
 
4992
* <concat> now supports filtering and can check timestamps before
4993
  overriding a file.  Bugzilla Report 18166.
4994
 
4995
* <junit> has a new attribute tempdir that controls the placement of
4996
  temporary files.  Bugzilla Report 15454.
4997
 
4998
* <jdepend> now supports a new nested element <classespath> which is
4999
  the same as <sourcespath> but point to compiled classes (the
5000
  preferred mode of operation for JDepend > 2.5).  Additionally, nested
5001
  <exclude> elements can be used to exclude certain packages from
5002
  being parsed.  Bugzilla Report 17134.
5003
 
5004
* The JProbe tasks now also work with JProbe 4.x.  Bugzilla Report 14849.
5005
 
5006
* <javacc> and <jjtree> will now autodetect JavaCC 3.x and can use it.
5007
 
5008
* <sql> has a new attribute to control escape processing.
5009
 
5010
* <sql> is able to display properly several resultsets if you are
5011
  running a compound sql statement. Bugzilla Report 21594.
5012
 
5013
* A new <containsregexp> selector has been added, that selects files
5014
  if their content matches a certain regular expression.
5015
 
5016
* <antlr>'s debug attribute has been enabled.  Bugzilla Report 19051.
5017
 
5018
* <mail> has a new attribute charset. Bugzilla Report 15434.
5019
 
5020
* <mail> has new attributes user and password for SMTP auth.
5021
  maillogger can also use this.
5022
  The implementation only works with JavaMail (encoding="MIME").
5023
  Implementation with plain mail remains to do.
5024
  Bugzilla Report 5969.
5025
 
5026
* <mail> and mailloger support SMTP over TLS/SSL
5027
  Bugzilla Report 19180.
5028
 
5029
* <mail> the attributes from, replyto ,tolist, cclist, bcclist
5030
  can now contain email addresses of the form name <address@xyz.com>
5031
  or (name) address@xyz.com
5032
  Bugzilla Report 22474.
5033
 
5034
* <mail> (version PlainMail)
5035
  prevent blank headers from being sent,
5036
  make the order of the headers of plain mail messages predictable
5037
  Bugzilla Report 22088.
5038
 
5039
* <zipfileset> can now be defined in the main body of a project
5040
  and referred to with refid="xyz". Bugzilla Report 17007.
5041
 
5042
* A wrapper script for OS/2 has been added.
5043
 
5044
* <unzip> will now detect and successfully extract self-extracting
5045
  archives.  Bugzilla Report 16213.
5046
 
5047
* <stcheckout> has a new attribute "converteol" that can be used to
5048
  control the automatic line-end conversion performed on ASCII files.
5049
  Bugzilla Report 18884.
5050
 
5051
* Users can now modify the list of default excludes using the new
5052
  defaultexcludes task.  Bugzilla Report 12700.
5053
 
5054
* There is a new data type <propertyset> that can be used to collect
5055
  properties.  It is supported by <ant>, <antcall>, <subant>, <java>,
5056
  <echoproperties> and <junit>.
5057
 
5058
* <concat> can now control the encoding of the output as well and optionally
5059
  add new-line characters at the end of files that get concatenated but
5060
  don't end in newlines.  Bugzilla Report 12511.
5061
 
5062
* <rpm> will detect the rpmbuild executable of RedHat 8.0 and newer
5063
  and use that if it is on your PATH.  Bugzilla Report 14650.
5064
 
5065
* A new task <rexec> has been added that requires commons-net to work.
5066
  Bugzilla Report 19541.
5067
 
5068
* <javadoc> now supports a nested <arg> element in addition to the
5069
  additionalparams attribute.
5070
 
5071
* You can now determine the order of standard tags in <javadoc> via
5072
  <tag> elements - you must not use the description attribute for them.
5073
  Bugzilla Report 18912.
5074
 
5075
* <javadoc> now supports the -noqualifier switch.  Bugzilla Report 19288.
5076
 
5077
* <javac>'s executable attribute can now also be used to specify the
5078
  executable for jikes, jvc, sj or gcj.  Bugzilla Report 13814.
5079
 
5080
* <javac> has a new attribute tempdir that can control the placement
5081
  of temporary files.  Bugzilla Report 19765.
5082
 
5083
* A new magic property build.compiler.jvc.extensions has been added
5084
  that can be used to turn of Microsoft extensions while using the jvc
5085
  compiler.  Bugzilla Report 19826.
5086
 
5087
* You can now limit the parallelism of <apply> and <chmod> by using the new
5088
  maxparallel attribute.
5089
 
5090
* With the new addsourcefile attribute, you can make <apply> ommit the
5091
  source file names from the command line.  Bugzilla Report 13654.
5092
 
5093
* <apply> and <chmod> now support nested <filelist>s as well as <dirset>s.
5094
  Bugzilla Reports 15929 and 20687.
5095
 
5096
* <apply> and <chmod> will display a summary if you set the new
5097
  verbose attribute to true.  Bugzilla Report 19883.
5098
 
5099
* <copy>/<move>'s failonerror attribute can now also be used to
5100
  continue the build if an I/O error caused a problem.  Bugzilla
5101
  Report 12999.
5102
 
5103
* new selector <type/> allowing to select only files or only directories.
5104
  Bugzilla Report 20222.
5105
 
5106
* <java> and <junit> now support a nested <bootclasspath> element that
5107
  will be ignored if not forking a new VM.
5108
 
5109
* <junit>'s nested <formatter> elements now support if/unless clauses.
5110
 
5111
* <ejbjar>
5112
  cmpversion attribute added
5113
  jboss element will look for jbosscmp-jdbc.xml descriptor
5114
  if ejbjar has cmpversion="2.0" set
5115
  Bugzilla Reports 14707 and 14709.
5116
 
5117
* <pvcs> config attribute added to set the location of a specific PVCS
5118
  .cfg file
5119
  Bugzilla Report 9752
5120
 
5121
* <mapper> has an "unpackage" mapper
5122
  Bugzilla Report 18908
5123
 
5124
* Added <scriptdef> task allowing tasks to be defined using any BSF-supported
5125
  scripting language.
5126
 
5127
* <touch>'s datetime attribute can now accept time with a granularity
5128
  of seconds as well.  Bugzilla Report 21014.
5129
 
5130
* <checksum> has two new properties: totalproperty and todir.
5131
 
5132
* FileUtils#createTempFile will now create temporary files in the
5133
  directory pointed to by the property java.io.tmpdir
5134
 
5135
* <unzip> and friends now supports an optional encoding attribute to
5136
  enable it to expand archives created with filenames using an encoding
5137
  other than UTF8.  Bugzilla Report 10504.
5138
 
5139
* <patch> has a new attribute destfile that can be used to create a new
5140
  file instead of patching files in place.
5141
 
5142
* OpenVMS is detected as a valid OS family.
5143
 
5144
* DirectoryScanner has been optimized for cases where include patterns do not
5145
  start with wildcards.  Bugzilla Report 20103.
5146
 
5147
* DirectoryScanner begins to be optimized not to scan excluded directories.
5148
  Bugzilla Report 21941.
5149
 
5150
* Added keep-going feature. Bugzilla Report 21144
5151
 
5152
* The archives generated by <zip> and friends will now contain CRC and
5153
  size information in the "local file header", thereby providing this
5154
  information to applications that read the archives using
5155
  java.util.ZipInputStream.  Bugzilla Report 19195.
5156
 
5157
* <copy> and <move> can now handle mappers that return multiple
5158
  mappings per source path. This behaviour is enabled by using
5159
  an enablemultiplemapping attribute. Bugzilla Report 21320.
5160
 
5161
* <exec> will now work on OpenVMS (please read the notes in
5162
  <exec>'s manual page).  Bugzilla Report 21877.
5163
 
5164
* <exec> will now have a new attribute spawn (default false).
5165
  If set to true, the process will be spawned. Bugzilla Report 5907.
5166
 
5167
* <java> will now have a new attribute spawn (default false).
5168
  If set to true, the process will be spawned. Bugzilla Report 5907.
5169
 
5170
* <parallel> now supports a timeout which can be used to recover
5171
  from deadlocks, etc in the parallel threads. <parallel> also
5172
  now supports a <daemons> nested element. This can be used to
5173
  run tasks in daemon threads which the parallel task will not
5174
  wait for before completing. A new attribute failonany will cause
5175
  <parallel> to throw an exception if any thread fails without
5176
  waiting for all other threads to complete.
5177
 
5178
* <zip> and friends will consume far less memory than they used to
5179
  when run with compress="false".  Bugzilla Report 21899.
5180
 
5181
* <if/> and <unless/> attributes added to <param/> element of <style>
5182
   Bugzilla Report 22044
5183
 
5184
* <zip> and friends have a new attribute "keepcompression" that can be
5185
  used to incrementally build an archive mixing compressed and uncompressed
5186
  entries.
5187
 
5188
* <junit>'s XML formatter adds a new classname attribute to the <testcase>
5189
  elements.
5190
 
5191
* new <permissions> type add permission handling to the code
5192
  this type can be nested in the <java> and <junit> tasks.
5193
  Bugzilla Report 22533.
5194
 
5195
* additional shortcuts for ant options (-d --> -debug, -e --> -emacs,
5196
  -h --> -help, -p --> -projecthelp, -s --> -find).
5197
 
5198
* new selector <modified>. "cache" was renamed to "modified".
5199
  Bugzilla Report 20474.
5200
 
5201
* <stcheckout> and <stlist> have a new asofdate attribute that can be
5202
  used to checkout/list files based on a date instead of a label.
5203
  Bugzilla Report 20578.
5204
 
5205
* New filter <concatfilter>. Adds the content of file at the beginning
5206
  or end of a file. Discussion started at
5207
  http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2
5208
 
5209
* New task <import>
5210
 
5211
* New task <macrodef>
5212
 
5213
* New task <presetdef>
5214
 
5215
* Ant libraries that can make use of namespaces to avoid name
5216
  clashes of custom tasks
5217
 
5218
* <java> and <junit> now support <assertions>, which let you enable
5219
  and disable Java1.4 assertions on a package or class basis. These
5220
  only work when fork=true, currently.
5221
 
5222
* .NET tasks expanded with VB support <vbc> and J#, via <jsharp>,
5223
  <importtypelib> and <ilasm>. <csc> supports nested <src> types,
5224
  <defines> for (potentially conditional) definitions, <reference>
5225
  filesets for references. The executable attribute lets you switch to
5226
  mono or other implementations -<csc> has been tested with Mono on
5227
  Linux and OSX.
5228
 
5229
 
5230
Changes from Ant 1.5.3 to Ant 1.5.4
5231
===================================
5232
 
5233
Changes that could break older environments:
5234
--------------------------------------------
5235
 
5236
* If the Visual Age tasks used to work for you, they may stop doing so
5237
  now - and we'd like to know about it.  The current set of tasks is
5238
  supposed to work with any version of VAJ starting with 3.0.
5239
 
5240
Fixed bugs:
5241
-----------
5242
 
5243
* The Visual Age for Java tasks didn't work (at least for versions 3.0
5244
  and higher).  Bugzilla Report 10016.
5245
 
5246
* URL-encoding in <vaj*port> didn't work properly.
5247
 
5248
* VAJRemoteUtil called getAbsolutePath instead of getPath
5249
  causing problems when using a Windows VAJ server from a UNIX server.
5250
  Bugzilla Report 20457.
5251
 
5252
* VAJImport task failed with NullPointerException when using DirectoryScanner.
5253
  Bugzilla Report 22080.
5254
 
5255
Other changes:
5256
--------------
5257
 
5258
* Shipped XML parser is now Xerces 2.5.0
5259
 
5260
* <javah> will invoke oldjavah on JDK 1.4.2.  Bugzilla Report 18667.
5261
 
5262
* The VAJ tasks now support a haltonfailure attribute to conditionally
5263
  keep building even if they fail.
5264
 
5265
* It is now possible to use the latest (versioned or unversioned) edition
5266
  in <vajload> by using special wildcard characters.  Also fixes
5267
  Bugzilla Report 2236.
5268
 
5269
Changes from Ant 1.5.2 to Ant 1.5.3
5270
===================================
5271
 
5272
Changes that could break older environments:
5273
--------------------------------------------
5274
 
5275
* The <zip> task and friends have again changed a method signature
5276
  (sorry, was necessary to fix bug 17780).  The return type of
5277
  getResourcesToAdd has changed.
5278
 
5279
Fixed bugs:
5280
-----------
5281
 
5282
* <zipfileset>'s filemode would get ignored and the dirmode was used
5283
  for the included files as well.  As a side effect, WinZIP was unable
5284
  to extract or display the files, so they seemed to be missing from
5285
  the archive.  Bugzilla Report 17648.
5286
 
5287
* <ftp> could use the wrong path separator when trying to change the
5288
  remote working directory.  Bugzilla Report 17735.
5289
 
5290
* <jar update="true"> would loose all original files if you didn't
5291
  specify any nested <(zip)fileset>s and the manifest had changed.
5292
  Bugzilla Report 17780.
5293
 
5294
* If you used a value starting with \ on Windows for the appxml
5295
  attribute of <ear> or the webxml attribute of <war>, it would be
5296
  ignored.  Bugzilla Report 17871.
5297
 
5298
* Ant will no longer implicitly add Sun's rt.jar in <javac> when you
5299
  use jvc and don't specify a bootclasspath.  Bugzilla Report 18055.
5300
 
5301
* The prefix attribute of <zipfileset> would not generate directory
5302
  entries for the prefix itself.  Bugzilla Report 18403.
5303
 
5304
* starteam checkout can now handle deleted labels.  Bugzilla Report 17646.
5305
 
5306
* The Unix wrapper script failed if you invoked it as a relative
5307
  symlink and ANT_HOME has not been set.  Bugzilla Report 17721.
5308
 
5309
Other Changes:
5310
--------------
5311
* Added ability to specify manifest encoding for the <jar> and
5312
  <manifest> tasks
5313
 
5314
Changes from Ant 1.5.1 to Ant 1.5.2
5315
=============================================
5316
 
5317
Changes that could break older environments:
5318
--------------------------------------------
5319
* ANT_OPTS environment variable is now applied at the start of the
5320
  Java command line, allowing position specific parameters of some
5321
  JVMs, such as -classic to be specified.
5322
 
5323
* ZipScanner#getIncludedFiles will now return the names of the ZipEntries
5324
  that have been matched instead of the name of the archive.
5325
 
5326
* The <zip> task and friends have been heavily modified, almost every
5327
  method signature of the Zip class has changed.  If you have subclassed
5328
  Zip (or one of its subclasses), your class will most likely not
5329
  compile against the current code base.  If it still compiles, it will
5330
  probably not work as in Ant 1.5.1.
5331
 
5332
Fixed bugs:
5333
-----------
5334
* <translate> was not ignoring comment lines.
5335
 
5336
* <manifest> wouldn't update an existing manifest if only an attribute
5337
  of an existing section changed.
5338
 
5339
* ant.bat now supports the ANT_ARGS and JAVACMD environment variables
5340
  again (like Ant 1.5 did).
5341
 
5342
* The "plain" <junit> <formatter> could throw a NullPointerException
5343
  if an error occurred in setUp.
5344
 
5345
* <junit> will now produce output when a test times out as well.
5346
 
5347
* <replace> would count some internal character replacements when
5348
  reporting the number of replaced tokens.
5349
 
5350
* <concat> would cause an exception if a <filelist> pointed to files
5351
  that do not exist.
5352
 
5353
* <javadoc> will now pass -source to custom doclets as well.
5354
 
5355
* <cvstagdiff> would throw a NullPointException if there had been no
5356
  differences.
5357
 
5358
* <cvschangelog> could miss today's changes.
5359
 
5360
* <concat> could append newline characters between concatenated files.
5361
 
5362
* <xmlvalidate> ignored the specified encoding of the files to
5363
  validate.
5364
 
5365
* the errorsbeginat attribute of the <http> condition didn't work.
5366
 
5367
* Ant will try to force loading of certain packages like com.sun.*
5368
  from the system classloader.  The packages are determined by the
5369
  version of the JVM running Ant.
5370
 
5371
* Ant didn't find the runtime libraries on IBM's JDK 1.4 for Linux.
5372
 
5373
* random component of temporary files is now always a positive integer.
5374
 
5375
* Ant could incorrectly try to use the 1.4 regexp implementation even
5376
  if it isn't available if you run the JVM with -Xverify:none.
5377
 
5378
* Ant would die with an exception if you used nested <reference>
5379
  elements in Ant and the refid attribute didn't point to an existing
5380
  project reference.
5381
 
5382
* The <get> task can now be compiled (and Ant thus bootstrapped) using
5383
  Kaffee.
5384
 
5385
* build.sysclasspath will now be honored by more tasks.
5386
 
5387
* The signjar keystore attribute has been reverted to a String allowing
5388
  it to once again accept URLs. This should not affect current File based usage
5389
  unless you are extending the Signjar task.
5390
 
5391
* <jar update="true"> would remove the original manifest.
5392
 
5393
* fix up folder creation in PVCS task
5394
 
5395
* <tar>'s up-to-date check didn't work for nested <(tar)fileset>s.
5396
 
5397
* Corrected a problem in XMLLogger where it would not associated
5398
  messages with a taskdef'd task
5399
 
5400
* <uptodate> now works when using attributes (i.e. not filesets) and pointing
5401
  to the same file
5402
 
5403
* Java task (and output system) now stores output which doos not end
5404
  with a line feed.
5405
 
5406
* splash screen wouldn't disappear when build was finished.
5407
 
5408
* <exec> now supports OS/2.
5409
 
5410
* <zip> and friends would only update/recreate existing archives if
5411
  the files to add/update have been newer than the archive.
5412
 
5413
* <javadoc>'s <link> element could fail for offline="true" on some JDKs.
5414
 
5415
Other changes:
5416
--------------
5417
 
5418
* MailLogger now sets the Date header correctly.
5419
 
5420
* Shipped XML parser is now Xerces 2.3.0
5421
 
5422
* signjar now accepts a maxmemory attribute to allow the memory allocated to the
5423
  jarsigner tool to be specified. The jarsigner from the JDK's JAVA_HOME bin
5424
  dir is now used rather than the first jarsigner on the path.
5425
 
5426
* **/.DS_Store has been added to the list of default pattern excludes.
5427
 
5428
* The Created-By header in the default manifest now contains the JVM
5429
  vendor and version according to the jar specification. A new header,
5430
  Ant-Version provides the Ant version used to create the jar.
5431
 
5432
* <zip> can now store Unix permissions in a way that can be
5433
  reconstructed by Info-Zip's unzip command.
5434
 
5435
Changes from Ant 1.5.1Beta1 to 1.5.1
5436
====================================
5437
 
5438
Fixed bugs:
5439
-----------
5440
 
5441
* <tstamp>'s prefix attribute failed to apply to nested <format> elements.
5442
 
5443
* <junitreport> created an empty junit-noframes.html if no format had
5444
  been specified.
5445
 
5446
* <basename> would remove more than it should if the file name
5447
  contained more than one dot.
5448
 
5449
* <filterset>s nested into <filterset>s didn't work.
5450
 
5451
Other changes:
5452
--------------
5453
 
5454
* Shipped XML parser is now Xerces 2.2.0
5455
 
5456
* Filesets now support a 'file' attribute, allowing a single-file
5457
  fileset to be constructed without having to specify its parent
5458
  directory separately.
5459
 
5460
* <junit> will now return the result of a call to getName instead of
5461
  "unknown" for Test implementations that don't extend TestCase but have
5462
  a public String getName() method.
5463
 
5464
Changes from Ant 1.5 to 1.5.1Beta1
5465
==================================
5466
 
5467
Fixed bugs:
5468
-----------
5469
* Date/time in CvsChangeLog was in local timezone and 12 hour format leading
5470
  to a problem when sorting by time. It is now UTC (GMT) and in 24-hour
5471
  format as per cvs 'specifications'.
5472
 
5473
* CvsTagDiff now supports ampersand modules or modules that have a different
5474
  root directory than their name.
5475
 
5476
* EjbJar threw NPEs for the Websphere element. The property 'websphere.home'
5477
  was not documented.
5478
 
5479
* Mail example in the documentation was not correct.
5480
 
5481
* Checksum was broken in the following scenario:
5482
  (using verifyproperty OR in a condition) AND using filesets
5483
  with multiple files.
5484
 
5485
* The ExpandProperties filter threw NPEs when defined using
5486
  the <filterreader> format.
5487
 
5488
* The sh wrapper script didn't work under Cygwin if ANT_HOME wasn't
5489
  set with a Unix style filename.
5490
 
5491
* The sh wrapper script could fail if you started Ant from a directory
5492
  with whitespace in its name.
5493
 
5494
* ant -diagnostics was not working properly when the task dependency
5495
  was missing and was just printing the missing dependency.
5496
 
5497
* If a task got redefined via <taskdef>, it lost its child elements.
5498
 
5499
* <property>'s classpathref attribute was broken.
5500
 
5501
* <arg line="''" /> would result in no command line argument, will now
5502
  be a single empty argument.  Use <arg value="''"/> if you need the
5503
  quotes literally.
5504
 
5505
* <replaceregexp> could append a newline character at the end of the
5506
  file.
5507
 
5508
Other changes:
5509
--------------
5510
 
5511
* Appendix E of Java Development with Ant (Loughran/Hatcher) was
5512
  contributed to the docs.
5513
 
5514
* <available> will only print deprecration warnings if it is actually
5515
  used to change the value of a property.
5516
 
5517
Changes from Ant 1.5beta3 to Ant 1.5
5518
====================================
5519
 
5520
Changes that could break older environments:
5521
--------------------------------------------
5522
 
5523
* The filesetmanifest attribute added to <jar> after the 1.4.1
5524
  release has been removed for now.  This change may affect only
5525
  the 1.5Beta/1.6Alpha users.  An attempt will be made to add this
5526
  feature back into Ant 1.6.
5527
 
5528
Fixed bugs:
5529
-----------
5530
 
5531
* <zip> and friends would always update existing archive if you set
5532
  the update attribute to true.
5533
 
5534
* To support backward compatibility with older versions, <pathconvert>
5535
  will once again set the property, even if the result is the empty
5536
  string, unless the new 'setonempty' attribute is set to false|no|off
5537
  (default is "true").
5538
 
5539
* The manifest task would crash XmlLogger
5540
 
5541
Other changes:
5542
--------------
5543
 
5544
* added **/.svn and **/.svn/** to the default excludes
5545
 
5546
Changes from Ant 1.5beta2 to Ant 1.5beta3
5547
=========================================
5548
 
5549
Changes that could break older environments:
5550
--------------------------------------------
5551
 
5552
* <pvcs> default filenameformat has been different from Ant 1.4.1.
5553
  Now it is different from 1.5beta1 and 1.5beta2.
5554
 
5555
* <pathconvert> won't set the property if the result is the empty string.
5556
 
5557
Fixed bugs:
5558
-----------
5559
 
5560
* <available> could fail to find files or directories that happen to
5561
  start with the name of the project's basedir but are not children of
5562
  the basedir.
5563
 
5564
* Nested <property>'s inside <ant> can now be overriden by subsequent
5565
  <ant> and <antcall> tasks.
5566
 
5567
* <xslt>'s outputtype attribute wouldn't do anything.
5568
 
5569
* <linecontains> filterreader could swallow lines.
5570
 
5571
* <sequential> used to configure the tasks (set their attributes)
5572
  before the first task has been executed.  This means that properties
5573
  that have been set by nested task seemed to be unset for the other
5574
  tasks in the same <sequential> element.
5575
 
5576
* <javac>'s sourcepath setting has been ignored by some compiler
5577
  implementations.
5578
 
5579
* <javadoc>'s packagelist attribute didn't work.
5580
 
5581
* the plain mailer would always use port 25 in <mail>.
5582
 
5583
* Ant's default logger could swallow empty lines.
5584
 
5585
* ejbjar's iPlanet nested element now can process multiple descriptors.
5586
 
5587
* IPlanetEjbc was looking in the wrong place for four iiop files.
5588
 
5589
* <javac> would pass the -source switch to JDK 1.3's javac, even
5590
  though it doesn't support it.
5591
 
5592
Other changes:
5593
--------------
5594
 
5595
* <checksum> now uses a buffer (of configurable size).
5596
 
5597
* The "Trying to override task definition" warning has been degraded
5598
  to verbose level if the two task definitions only differ in the class
5599
  loader instance that has loaded the definition.
5600
 
5601
* Add a jvmargs to the ejbjar's weblogic element to allow additional
5602
  arguments to be provided to the VM runnign ejbc. Document the
5603
  jvmdebuglevel attribute which can be used to avoid warnings about
5604
  interface classess being found on the classpath. Document the new
5605
  <sysproperty> element which allows JVM properties to be defined.
5606
  Added an outputdir attribute to allow the destination to be a
5607
  directory into which the exploded jar is written.
5608
 
5609
* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5
5610
 
5611
Changes from Ant 1.5beta1 to Ant 1.5beta2
5612
=========================================
5613
 
5614
Changes that could break older environments:
5615
--------------------------------------------
5616
 
5617
* Properties will now be expanded in mail message bodies.  This means
5618
  that one $ sign will be stripped if your mail message contains the text $$.
5619
 
5620
* org.apache.tools.ant.taskdefs.Expand no longer extends MatchingTask.
5621
 
5622
* Available#setFile now again uses a File argument as it did in 1.4,
5623
  this may break environments that have been adapted to the String
5624
  argument version present in 1.5beta1.
5625
 
5626
Fixed bugs:
5627
-----------
5628
* When <move> attempts a rename, it deletes the destination file, if it
5629
  exists, before renaming the source file.  However, <move> was not
5630
  checking if the destination file was actually a directory before
5631
  trying to delete it.
5632
 
5633
* Make CVS Tasks to work under Cygwin.
5634
 
5635
* Fix LineContains to handle huge files elegantly without causing
5636
  Stack Overflows.
5637
 
5638
* if you ask for the "classic" compiler on Java1.4, you get upgraded to
5639
  "modern" because there is no classic compiler any more.
5640
 
5641
* the <http> condition was viewing 404 'not found' exceptions as success. Now
5642
  it defaults to viewing any response >=400 as an error, and has an
5643
  errorsBeginAt attribute you can use if you want a higher or lower value.
5644
 
5645
* <get> throws a build exception on an http authorization error, unless you
5646
  have set ignoreerrors to true.
5647
 
5648
* <wsdltodotnet> was spelt in Wintel case: <WsdlToDotnet>. It is now lower
5649
  case, though the old spelling is retained for anyone who used it.
5650
 
5651
* Merging of Manifests in jar now works as documented.
5652
 
5653
* paths that have been separated by colons would be incorrectly parsed
5654
  on NetWare.
5655
 
5656
* runant.pl now supports NetWare.
5657
 
5658
* <tempfile> and <setproxy> tasks were in beta1, but not defined by
5659
  default; They now are. <tempfile> fills a property with the name of a
5660
  temporary file; <setproxy> lets you set the JVM's http, ftp and socks proxy
5661
  settings.
5662
 
5663
* <available classname="foo" ignoresystemclasses="true"> failed for
5664
  JDK 1.1 and 1.2, even if the class could be found on the
5665
  user-specified classpath.
5666
 
5667
* <property environment=... /> now works on z/OS.
5668
 
5669
* forked <javac> failed for the wrong reason on JDK 1.1 - Ant would
5670
  use a temporary file to hold the names of the files to compile under
5671
  some conditons, but 1.1 doesn't support this feature.  Ant will no
5672
  longer try this, but you may run into problems with the length of the
5673
  command line now.
5674
 
5675
* the refid attribute for <property>s nested into <ant> or <param>s
5676
  nested into <antcall> didn't work.
5677
 
5678
* <replaceregexp> didn't work for nested <fileset>s.
5679
 
5680
* <javadoc> dropped sourcepath entries if no "interesting" .java
5681
  source files  could be found below them.  This has been backwards
5682
  incompatible and caused problems with custom doclets like xdoclet.
5683
 
5684
* Using the doclet, docletpath or docletpathref attributes of
5685
  <javadoc> may have caused NullPointerExceptions.
5686
 
5687
* nested <filesets> of <javadoc> would include too much.
5688
 
5689
* <dependset> will no longer choke on <targetfileset>s that point to
5690
  non-existing directories.
5691
 
5692
* <patch> didn't work at all.
5693
 
5694
* <replace> and <replaceregexp> now fail if the file they are working
5695
  on is locked.
5696
 
5697
* <javadoc> would pick up the wrong executable in the combination JDK
5698
  1.2 and AIX.
5699
 
5700
Other changes:
5701
--------------
5702
 
5703
* z/OS now gets detected by the os condition.
5704
 
5705
* <fileset> and <dirset> now have an optional followsymlink attribute
5706
  that can prevent Ant from following symbolic links on some platforms.
5707
 
5708
* BeanShell is now supported in the <script> task.
5709
 
5710
* <ejbjar> under Weblogic attempts to use the ejbc20 compiler for 2.0 beans
5711
  based on the deployment descriptor's DTD reference. Under weblogic 7.00 Beta
5712
  this ejbc class has been deprecated. To avoid the deprecation warning use
5713
  ejbcclass="weblogic.ejbc".
5714
 
5715
* <ejbjar> will add a manifest to the generated jar based on the naming
5716
  convention in use. This overrides the manifest specified in the
5717
  <ejbjar> attribute
5718
 
5719
 
5720
Changes from Ant 1.4.1 to 1.5beta1
5721
==================================
5722
 
5723
Changes that could break older environments:
5724
--------------------------------------------
5725
 
5726
* Important: Single $ signs are no longer silently stripped!
5727
  Before you panic that we have broken all your build files, we have kept
5728
  the old "$$" -> "$" behaviour. So only build files which accidentally had
5729
  a $ sign in a string that was being silently stripped may break.
5730
  We added this fix to stop newbie confusion; if you want to write a
5731
  build file which works on ant versions 1.4.1 or earlier, stay with
5732
  the double $$ sign rule.
5733
 
5734
* Project.getBuildListeners now returns a clone of the listener
5735
  list. Changes to the returned list will not affect the listeners
5736
  currently attached to the Project. It also means that it is safe to
5737
  iterate over the returned list if listeners are added or removed
5738
  during the traversal.
5739
 
5740
* <pvcs> default filenameformat has been different from Ant 1.4.1.
5741
 
5742
* Some messages that are printed during startup will not be
5743
  written to the logfile specified via -logfile as they might destroy
5744
  the format of the file for special BuildLoggers (like XmlLogger).
5745
 
5746
* The filesetmanifest attribute added to <jar> after the 1.4.1
5747
  release has been removed for now.  This change may affect only
5748
  the 1.5Beta/1.6Alpha users.  An attempt will be made to add this
5749
  feature back into Ant 1.6.
5750
* Shipped XML parser is now Xerces 2.0.1 along with the XML Parser APIs.
5751
  XML Parser APIs is a separate jar that contains the necessary
5752
  JAXP/DOM/SAX classes.
5753
 
5754
* <telnet> was fixed to expand properties inside nested <read> and
5755
  <write> elements; before this only happened when you assigned the text
5756
  to the string attribute. If you had $ signs in the string, they may
5757
  need escaping.
5758
 
5759
* the RegexpMatcher interface has been extended to support case
5760
  insensitive matches and other options - custom implementations of
5761
  this interface won't work any longer.  We recommend to use the new
5762
  Regexp interface that also supports substitution instead of the
5763
  RegexpMatcher interface in the future.
5764
 
5765
* <gzip> will throw an exception if your src attribute points to a directory.
5766
 
5767
* Unjar, Unzip and Unwar will throw an exception if the Src attribute
5768
  represents a directory.  Support for nested filesets is provided
5769
  instead.
5770
 
5771
* It is no longer possible to overwrite a property using tasks like
5772
  <condition>, <exec>, <pathconvert>, or <tstamp>. In some exceptional
5773
  cases it will generate a warning if you attempt to overwrite an
5774
  existing property.
5775
 
5776
* Taskwriters please note: Whenever tasks had any overloaded set* methods,
5777
  Ant's introspection mechanism would select the last overloaded method
5778
  provided to it by the Java Runtime.  A modification has now been made such
5779
  that when the Java Runtime provides a method with a String as its argument,
5780
  a check is made to see if there is another overloaded method that takes in
5781
  some other type of argument.  If there is one such method, then the method
5782
  that takes in String as an argument is not selected by the Introspector.
5783
 
5784
* The pattern definition **/._* has been included into the Default
5785
  Excludes list.
5786
 
5787
* <propertyfile>'s <entry> element was modified to remove "never" as a value
5788
  as its behavior was undocumented and flakey.
5789
 
5790
* The -projecthelp flag now only prints out targets that include the
5791
  'description' attribute, unless the -verbose or -debug flag is included
5792
  on the Ant command line.
5793
 
5794
* Ant's testcases now require JUnit 3.7 or above, as they now use the new
5795
  assertTrue method instead of assert.
5796
 
5797
* If the 'output' attribute of <ant> is set to a simple filename or a
5798
  relative path, the file is created relative to ${basedir}, not ${user.dir}.
5799
 
5800
* The default value for build.compiler is now javac1.x with x
5801
  depending on the JDK that is running Ant instead of classic/modern.
5802
 
5803
Fixed bugs:
5804
-----------
5805
 
5806
* <available> could fail to find files or directories that happen to
5807
  start with the name of the project's basedir but are not children of
5808
  the basedir.
5809
 
5810
* Nested <property>'s inside <ant> can now be overriden by subsequent
5811
  <ant> and <antcall> tasks.
5812
 
5813
* <xslt>'s outputtype attribute wouldn't do anything.
5814
 
5815
* <linecontains> filterreader could swallow lines.
5816
 
5817
* <sequential> used to configure the tasks (set their attributes)
5818
  before the first task has been executed.  This means that properties
5819
  that have been set by nested task seemed to be unset for the other
5820
  tasks in the same <sequential> element.
5821
 
5822
* <javac>'s sourcepath setting has been ignored by some compiler
5823
  implementations.
5824
 
5825
* <javadoc>'s packagelist attribute didn't work.
5826
 
5827
* the plain mailer would always use port 25 in <mail>.
5828
 
5829
* Ant's default logger could swallow empty lines.
5830
 
5831
* ejbjar's iPlanet nested element now can process multiple descriptors.
5832
 
5833
* IPlanetEjbc was looking in the wrong place for four iiop files.
5834
 
5835
* <javac> would pass the -source switch to JDK 1.3's javac, even
5836
  though it doesn't support it.
5837
 
5838
* <zip> and friends would always update existing archive if you set
5839
  the update attribute to true.
5840
 
5841
* To support backward compatibility with older versions, <pathconvert>
5842
  will once again set the property, even if the result is the empty
5843
  string, unless the new 'setonempty' attribute is set to false|no|off
5844
  (default is "true").
5845
 
5846
* The manifest task would crash XmlLogger
5847
 
5848
* A bug existed that prevented generated log files from being deleted as
5849
  part of the build process itself.  This has now been fixed.
5850
 
5851
* Fixed bug where <move> ignored <filterset>s.
5852
 
5853
* Ant works properly with the combination of Java1.4/WindowsXP.
5854
 
5855
* Fixed bug where <java> used to sometimes invoke class constructors twice.
5856
 
5857
* Fixed bug with 4NT shell support.
5858
 
5859
* Fixed bug where ant would not perform ftp without remotedir being
5860
  specified even though this was not mandatory.
5861
 
5862
* Fixed bug where ant would not copy system properties into new Project
5863
  in ant/antcall tasks when inheritall="false" is set.
5864
 
5865
* <propertyfile> would not close the original property file.
5866
 
5867
* <ant> will no longer override a subbuild's basedir with inheritall="true".
5868
 
5869
* Fixed problem with the built-in <junit> formatters which assumed
5870
  that only one test could be running at the same time - this is not
5871
  necessarily true, see junit.extensions.ActiveTestSuite.
5872
 
5873
* <jar>'s whenEmpty attribute is useless as JARs are never empty, they
5874
  contain at least a manifest file, therefore it will now print a
5875
  warning and do nothing.
5876
 
5877
* <typedef> hasn't been all that useful as it couldn't be used outside
5878
  of targets (it can now) and nested "unknown" elements have always
5879
  been considered to be tasks (changed as well).
5880
 
5881
* <fixcrlf> would fail for files that contained lines longer than 8kB.
5882
 
5883
* Some junit formatters incorrectly assumed that all testcases would
5884
  inherit from junit.framework.TestCase.
5885
 
5886
* <fixcrlf> dropped the first characters from Mac files.
5887
 
5888
Other changes:
5889
--------------
5890
 
5891
* <checksum> now uses a buffer (of configurable size).
5892
 
5893
* The "Trying to override task definition" warning has been degraded
5894
  to verbose level if the two task definitions only differ in the class
5895
  loader instance that has loaded the definition.
5896
 
5897
* Add a jvmargs to the ejbjar's weblogic element to allow additional
5898
  arguments to be provided to the VM runnign ejbc. Document the
5899
  jvmdebuglevel attribute which can be used to avoid warnings about
5900
  interface classess being found on the classpath. Document the new
5901
  <sysproperty> element which allows JVM properties to be defined.
5902
  Added an outputdir attribute to allow the destination to be a
5903
  directory into which the exploded jar is written.
5904
 
5905
* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5
5906
 
5907
* added **/.svn and **/.svn/** to the default excludes.
5908
 
5909
* Selector Elements now provide a way to create filesets based on
5910
  sophisticated selection criteria.
5911
 
5912
* Gzip and Bzip2 files can now be constructed in the fly when using
5913
  the tar task without having to create the intermediate tar file on
5914
  disk.  The Untar task can also untar GZip and BZip2 files on the fly
5915
  without creating the intermediate tar file.
5916
 
5917
* New optional type, <classfileset> added.
5918
 
5919
* <ejbjar> now allows control over which additional classes and interfaces
5920
  are added to the generated EJB jars. A new attribute "dependency" can be
5921
  defined which controls what classes are added. The addition of classes now
5922
  uses the Jakarta-BCEL library rather than reflection, meaning bean classes are
5923
  no longer loaded into Ant's JVM. The default dependency analyzer is known as
5924
  the ancestor analyzer. It provides the same behaviour as the 1.4.1 version of
5925
  <ejbjar>. If the BCEL library is not present, a warning will be issued stating
5926
  the ancestor analyzer is not available. In this case <ejbjar> will continue
5927
  to function but will not add super classes to the jar.
5928
 
5929
* <available> has a new attribute named ignoreSystemClasses.
5930
 
5931
* New task <cvschangelog/> generates an XML report of changes that occur
5932
  on CVS repository.
5933
 
5934
* New filter readers: ClassConstants, ExpandProperties, HeadFilter,
5935
  LineContains, LineContainsRegExp, PrefixLines, ReplaceTokens,
5936
  StripJavaComments, StripLineBreaks, StripLineComments, TabsToSpaces,
5937
  TailFilter.
5938
 
5939
* <copy>, <loadfile>, <loadproperties>, <move> support FilterChains
5940
  of FilterReaders.
5941
 
5942
* New task <loadproperties> to load contents of file as Ant properties,
5943
  with nested <filterchain> elements.
5944
 
5945
* New task <loadfile> to load a whole file into a property.
5946
 
5947
* New task <echoproperties> to list your current properties to the screen
5948
  or a file.
5949
 
5950
* New tasks <bzip2> and <bunzip2> to pack and unpack files using the
5951
  BZip2 algorithm.
5952
 
5953
* New tasks <replaceregexp>, <checksum>, <translate>, <waitfor>,
5954
  <manifest>, <vsscp>, <vssadd>, <vsscreate>, <splash>, <basename>, <dirname>,
5955
  <concat>, <sourceoffsite>, <jarlib-available>, <jarlib-display>,
5956
  <jarlib-manifest>, <jarlib-resolve>.
5957
 
5958
* A new combined <mail> task, which replaces the old <mail> and
5959
  <mimemail> tasks, has been added.  The <mimemail> task, and
5960
  old SendEmail and MimeMail classes have been deprecated.
5961
 
5962
* Mail task allows specification of port number.
5963
 
5964
* Users can control what <zip> and <jar> must do when duplicate files
5965
  are found.  A new element <zipgroupfileset> allows for multiple zip
5966
  files to be merged into the archive.  In addition, <jar> also has
5967
  another new attribute: filesetmanifest.  The existing manifest
5968
  attribute of <jar> now also accepts the name of a jar added through
5969
  a fileset.
5970
 
5971
* gzip now checks that the zipfile is older than the source file
5972
  before rebuilding the zipfile.
5973
 
5974
* TarFileset takes in three new attributes - fullpath, prefix
5975
  and preserveLeadingSlashes.
5976
 
5977
* <move> attempts to rename the directory, if everything inside it is
5978
  included, before performing file-by-file moves.  This attempt will
5979
  be done only if filtering is off and if mappers are not used.  This
5980
  is a performance improvement and there is no change otherwise in
5981
  the functionality of this task.
5982
 
5983
* Exec task has extra attribute "resultproperty" to get the return code
5984
  into a property.
5985
 
5986
* Exec task prints a message when a timed-out process is killed.
5987
 
5988
* Added optional attributes - name, arch and version to the <os> task.
5989
 
5990
* Unjar, Untar, Unwar and Unzip now support patternsets to
5991
  select files from an archive for extraction.  Filesets may be
5992
  used to select archived files for unarchival.
5993
 
5994
* Javac task allows debug levels to be specified.  Debug levels
5995
  will have an effect only when the modern compiler or the
5996
  classic compiler (version 1.2 and higher) is used and debugging
5997
  is enabled.
5998
 
5999
* Added support for specifying CVS_RSH in the <cvs/> task
6000
 
6001
* The attributes zipfile, jarfile, warfile and earfile (from the Zip,
6002
  Jar, War and Ear tasks) have been deprecated and superseded by a
6003
  new attribute "destfile".
6004
 
6005
* Added new conditions <isset>, <checksum>, <http>, <socket>, <contains>,
6006
  <filesmatch>.
6007
 
6008
* <taskdef> and <typedef> will now emit a warning if a task/type of
6009
  the given name already exists.
6010
 
6011
* A new revision of VAJ tasks: The most important new feature
6012
  is the ability to execute VAJ tasks from the command line by
6013
  exploiting the Remote Tool Access feature of VAJ.
6014
 
6015
* Improved support for Novell NetWare.
6016
 
6017
* Added an optional encoding attribute to <fixcrlf>.
6018
 
6019
* <apply> has a new attribute relative that allows users to pass the
6020
  filenames as relative instead of absolute paths on the command line.
6021
 
6022
* References can now be copied into the child build by <ant> and
6023
  <antcall> using nested <reference> elements or the new inheritRefs
6024
  attribute.
6025
 
6026
* <fail> now supports builds to fail based on conditions via if and
6027
  unless attributes.
6028
 
6029
* Ant now comes with two new BuildLogger implementations - one that
6030
  can send emails containing a log of the build process (MailLogger),
6031
  and one that colorizes the output based on message levels, using
6032
  ANSI color code escape sequences (AnsiColorLogger).
6033
 
6034
* A "package" mapper type has been added to allow package directory
6035
  names replaced with the dotted form.
6036
 
6037
* You can now specify environment variables in the <java> and <junit> tasks
6038
  if the fork attribute has been set to true.
6039
 
6040
* -propertyfile command-line option has been added to load an entire
6041
  property file just as -D properties are declared (as user properties).
6042
  -D properties take precedence over -propertyfile specified ones.
6043
 
6044
* You can now set an ANT_ARGS environment variable to hold arguments you
6045
  always want passed to the 'ant' command -- for example, if you always
6046
  want to use a different logger or the -find flag.
6047
 
6048
* <tstamp> now supports a new "prefix" attribute to prefix properties set.
6049
 
6050
* You can now specify the -sourcepath for <javac> explicitly.
6051
 
6052
* <javac> now supports a new "listfiles" attribute to list the source
6053
  files it's handing off to the compiler.
6054
 
6055
* The compiler implementation for <javac> can now be chosen on a task by
6056
  task basis.  The new "compiler" attribute of <javac> can be used to override
6057
  the value of the build.compiler property, if set.
6058
 
6059
* <javac> has a new nested element, <compilerarg>, which allows you
6060
  to specify additional args for the specific compiler you're using.
6061
 
6062
* <javac>'s "source" attribute is now enabled for jikes as well.
6063
 
6064
* <propertyfile>'s <entry> now has a 'unit' attribute to specify the
6065
  increment/decrement unit on date operations.
6066
 
6067
* <property> now supports a 'prefix' attribute when loading from a file
6068
  or resource.
6069
 
6070
* In Ant 1.4, a feature has been added to the <junit> task that would
6071
  add ant.jar, optional.jar and junit.jar implicitly to the classpath -
6072
  this feature can now be disabled by setting the new includeantruntime
6073
  attribute to false.
6074
 
6075
* <style> behaves differently from any other directory-based task, as it
6076
  processes all files that it finds in included directories in
6077
  addition to the files matched by your patterns.  There is now a new
6078
  attribute, 'scanincludeddirectories', to suppress this behavior.
6079
 
6080
* <javadoc> now supports a <tag> nested element to provide the -tag option
6081
  to the standard Java 1.4 doclet. The element is ignored when not running
6082
  on Java 1.4.
6083
 
6084
* <ftp> can now chmod files on a remote server that supports
6085
  "site chmod", as well as set the umask before transferring files, if
6086
  the server supports "site umask".
6087
 
6088
* New <serverdeploy> "optional" task.
6089
 
6090
* <patternset> now supports nested patternsets.
6091
 
6092
* Perforce tasks now support a "failonerror" attribute (defaults to "true").
6093
 
6094
* Open Source application server JOnAS support:
6095
    EJB hot deploy and deploy with <serverdeploy> and <ejbjar>
6096
 
6097
* Added new DirSet (<dirset>) datatype.
6098
 
6099
* <path> now supports nested <dirset> and <filelist> elements.
6100
 
6101
* <pathconvert> now supports nested <dirset> and <filelist> elements.
6102
 
6103
* <pathconvert>'s "dirsep" and "pathsep" attributes now accept
6104
  multi-character values.
6105
 
6106
* <copy> task now has a 'failonerror' attribute to allow keep-going
6107
  behaviour when the file to be copied is not found (defaults to "true").
6108
 
6109
* <uptodate> now has a 'srcfile' attribute to allow specifying a
6110
  full-path filename.
6111
 
6112
* <exec>, <sql> and <java> now support append attributes to allow
6113
  appending the output to an existing file.
6114
 
6115
* <java> now supports a timeout attribute analog to <exec> - it is
6116
  highly recommended to only use it together with fork="true".
6117
 
6118
* <javadoc> now supports a source attribute to enable javadoc to
6119
  handle assertions present in JDK 1.4 source code.
6120
 
6121
* <replace> supports a new replacefilterfile attribute that
6122
  automatically turns all properties of a given file into
6123
  replacefilters.
6124
 
6125
* An alias of <xslt> has been added to refer to the <style> task.
6126
 
6127
* The compiler implementation for <rmic> can now be chosen on a task by
6128
  task basis.  The new "compiler" attribute of <rmic> can be used to override
6129
  the value of the build.rmic property, if set.
6130
 
6131
* <rmic> has a new nested element, <compilerarg>, which allows you
6132
  to specify additional args for the specific compiler you're using.
6133
 
6134
* org.apache.tools.ant.XmlLogger now is a BuildLogger, rather than just
6135
  a BuildListener. It can operate in either mode successfully.
6136
 
6137
* <junit> has a new attribute "showoutput".  If set to true, output
6138
  generated by tests will be sent to Ant's logging system as well as
6139
  to the formatters (instead of sending it to the formatters
6140
  exclusively).
6141
 
6142
* Ant has now a pluggable way to prompt users for input, which is used
6143
  by the new <input> task.  IDE integrators can provide an
6144
  implementation of the InputHandler interface to decouple Ant's input
6145
  from the console.  An implementation that gets its input from a file
6146
  for unattended builds is part of Ant's distribution.
6147
 
6148
  For more details see docs/manual/inputhandler.html.
6149
 
6150
* <patch> has a new attribute that selects the directory in which to
6151
  run the command.
6152
 
6153
* <javadoc> now supports two new nested elements, <fileset> and <packageset>.
6154
 
6155
 
6156
Changes from Ant 1.4 to Ant 1.4.1
6157
===========================================
6158
 
6159
Fixed bugs:
6160
-----------
6161
 
6162
* <ant>'s antfile attribute will now also be considered an absolute path on
6163
  Windows systems, if it starts with a \ and no drive specifier.
6164
 
6165
* The fullpath attribute of <zipfileset> has been ignored if you used
6166
  the src attribute at the same time.
6167
 
6168
* The manifest file is now always placed as the second entry (after /META-INF)
6169
  in generated jars. This allows the manifest to be read by JarInputStreams
6170
 
6171
* Fixed bug in depend task which would fail with a NullPointerException if no
6172
  dependency cache was specified.
6173
 
6174
* sql task now handles REM statements correctly so that lines starying with rem
6175
  but which are not comments are actually processed.
6176
 
6177
* XMLLogger now uses the task's name rather than the classname
6178
 
6179
* <mapper>s will now work as expected if the to pattern expands to an
6180
  absolute pathname.
6181
 
6182
* <javac> didn't ignore memory settings in non-fork mode
6183
 
6184
* <cab> didn't split the options attribute into several command line
6185
  arguments correctly.
6186
 
6187
Other changes:
6188
--------------
6189
 
6190
* New source attribute for <javac> to enable assertion in JDK 1.4
6191
 
6192
* XmlLogger and <antstructure> now add an encoding declaration to the
6193
  XML files they generate.
6194
 
6195
* <fileset> has a new attribute "casesensitive" to make it match
6196
  filenames in a case insensitive way (if you set it to false) - by
6197
  default filesets remain case sensitive.
6198
 
6199
Changes from Ant 1.3 to Ant 1.4
6200
===========================================
6201
 
6202
Changes that could break older environments:
6203
--------------------------------------------
6204
* JUnitReport now uses the xalan redirect extension for multi-output.
6205
  With Xalan 1.2.2 it forces the use of bsf.jar in the classpath.
6206
  (Available in the xalan distribution). It is recommended to switch
6207
  to Xalan 2.x that do not need it.
6208
 
6209
* Zip.setWhenempty() has changed its signature.
6210
 
6211
* <rmic> is now implemented using a factory. This makes extending
6212
  rmic to use a new compiler a lot easier but may break custom
6213
  versions of this task that rely on the old implementation.
6214
 
6215
* several Zip methods have changed their signature as we now use a Zip
6216
  package of our own that handles Unix permissions for directories.
6217
  Furthermore <zip> will now use the platform's default character
6218
  encoding for filenames - this is consistent with the command line
6219
  ZIP tools, but causes problems if you try to open them from within
6220
  Java and your filenames contain non US-ASCII characters. Use the new
6221
  encoding attribute of the task and set it to UTF8 to get the old
6222
  behavior.
6223
 
6224
* The <pvcs> task has been moved to a package of its own.
6225
 
6226
* JUnitResultFormater has two additional methods that must be
6227
  implemented by custom formatters.
6228
 
6229
* Ant will no longer use the canonical version of a path internally -
6230
  this may yield different results on filesystems that support
6231
  symbolic links.
6232
 
6233
* The output generated by the xml formatter for <junit> has changed
6234
  again, it doesn't format the numeric value in the time attribute anymore.
6235
 
6236
* Pattern matching rules have changes slightly, the pattern foo*
6237
  doesn't match files contained in a directory named foo - use foo/*
6238
  instead.
6239
 
6240
* <fixcrlf> will not remove trailing whitespace at the end of lines anymore.
6241
 
6242
* The Classloader usage has been changed for the taskdef, property, available
6243
  and sql tasks so that it delegates to the parent classloader. This may cause
6244
  ClassNotFoundExceptions to be thrown if a system class attempts to load a
6245
  class in the taskdef's classpath (typically factory objects).
6246
 
6247
* Ant now allows multithreading of tasks and the containment of tasks within
6248
  other tasks. This can break customer listeners which do not expect messages
6249
  from a task before the previous task has finished.
6250
 
6251
* Ant now installs its own output stream into System.out to route output to the
6252
  task currently executing on the current thread. This also means that all
6253
  output is now routed as Ant message events. Customer listeners and loggers
6254
  should not call System.out at any time. This has always been true but such
6255
  usage now will cause problems due to possible recursion.
6256
 
6257
* Invalid manifest files will now cause build failures in the <jar> task.
6258
 
6259
* Ant Introspection now looks for methods with method names starting with
6260
  addConfigured. When called these methods are passed an argument after it has
6261
  been configured from the build file. Custom tasks supporting nested elements
6262
  starting with the name configured will no longer function.
6263
 
6264
* The environment variable JAVACMD that can be used to specify the
6265
  java executable to Ant's wrapper scripts must not contain additional
6266
  command line parameters any longer - please use the environment
6267
  variable ANT_OPTS for such parameters now.
6268
 
6269
* Ant's wrapper scripts now quote the CLASSPATH environment variable, thus
6270
  supporting classpaths which refer to directories containing spaces. This means
6271
  that the CLASSPATH environment variable cannot have quotes. Any quotes should
6272
  be removed. This will not affect the operation of the CLASSPATH environment
6273
  variable in other contexts.
6274
 
6275
* A delete task like
6276
  <delete includeEmptyFilesets="true">
6277
    <fileset dir="somedir" />
6278
  </delete>
6279
  will now remove "somedir" as well, unless there are still files left
6280
  in it (matched by the default excludes).
6281
 
6282
* The copy task will now fail if the file to be copied is not found.
6283
 
6284
* Ant properties defined in properties files now behave the same way as
6285
  properties defined in the build file. In particular the $ character needs
6286
  to be escaped in property values by doubling it to $$. So, to define a
6287
  property with the value $hello, you need to define it in a properties file
6288
  as
6289
    test.prop=$$hello
6290
  This was not the case in Ant 1.3
6291
 
6292
Other changes:
6293
--------------
6294
 
6295
* New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout,
6296
  typedef, sleep, mimemail, set of tasks for Continuus/Synergy, dependset,
6297
  condition, maudit, mmetrics, jpcoverage, jpcovreport, jpcovmerge
6298
 
6299
* Ant now uses JAXP 1.1
6300
 
6301
* rmic now supports Kaffe's and Weblogic's version of rmic.
6302
 
6303
* new magic property build.rmic to chose the rmic implementation
6304
 
6305
* <tar> will now add empty directories as well
6306
 
6307
* you can now specify a description for <p4change>
6308
 
6309
* <touch> can now work on <fileset>s
6310
 
6311
* <uptodate> now supports a value attribute
6312
 
6313
* <fail> supports nested text
6314
 
6315
* <fixcrlf> won't override files that are already in the correct
6316
   format.
6317
 
6318
* <sql> now supports REM comments as well as // and --
6319
 
6320
* <jar> now has a nested <metainf> element following the same idea as
6321
  <war>'s <webinf>.
6322
 
6323
* <pvcs> can now handle multiple projects.
6324
 
6325
* <available> now has a "type" attribute you can use in conjunction
6326
  with the "file" attribute to specify whether the "file" you're
6327
  looking for is a file or a directory.
6328
 
6329
* New <junit> formatter named "brief"
6330
 
6331
* <ejbjar> changes
6332
  * Add support for Borland Application Server to the <ejbjar> task using
6333
    a <borland> nested element.
6334
  * Add support for iPlanet Application Server to the <ejbjar> task. Also
6335
    includes some iPlanet utility tasks
6336
  * Add support for JBoss Application Server to the <ejbjar> task.
6337
  * Add a naming attribute to control the naming scheme that
6338
    ejbjar uses to name the generated EJB jars.
6339
  * Weblogic element now sets the compiler class for EJB 2.0 beans
6340
  * <dtd> elements can be specified at the <ejbjar> level for building generic
6341
    beans
6342
  * <dtd> elements can now be URLs
6343
  * Allow the manifest to be specified for the generated jars
6344
  * The weblogic element now supprts an attribte noEJBC to skip the processing
6345
    of the jar by ejbc. The ejbc step will then occur at deployment
6346
  * weblogic will tell ejbc to use Jikes compiler if build.compiler is set to
6347
    jikes. It can be restored to the default, javac, operation if desired.
6348
 
6349
* Allow the <sql> Delimiter to be set in the so that Oracle stored procs may be
6350
  entered
6351
 
6352
* <execon> and <apply> can now optionally skip empty filesets.
6353
 
6354
* <javadoc> has a new useexternalfile attribute that makes it use a
6355
  temporary file for sourcefile and package names - helps to defeat
6356
  command line length limitations.
6357
 
6358
* Data types like <path> can now be defined inside of <target>s
6359
 
6360
* you can now specify a classpath for <style> - the XSLZ processor
6361
  will be loaded from this path
6362
 
6363
* added a force attribute to <style> to support dependencies that the
6364
  task cannot determine itself (dependency on parameters, not file
6365
  modification times for example)
6366
 
6367
* added vmlauncher attribute to exec tasks. This defaults to true. If
6368
  it is set to false, the VM's ability to launch commands in bypassed
6369
  and the OS shell, either directly or through the auxiliary antRun
6370
  scripts is used.
6371
 
6372
* regexp mapper now supports the java.util.regex package of JDK 1.4.
6373
 
6374
* New filesonly attribute for <zip> and friends to suppress directory
6375
  entries.
6376
 
6377
* New update attribute for <zip> and friends - update an existing
6378
  archive instead of creating a new one.
6379
 
6380
* <apply> and <execon> have been merged into a single task.
6381
 
6382
* added vssver.scc to the default excludes
6383
 
6384
* <available> has a new filepath attribute/nested element that allows
6385
  you top search for a file in a given path.
6386
 
6387
* <junit> can now optionally set a property on test failure.
6388
 
6389
* <taskdef> can now define several tasks at once, reading the
6390
  name/classname pairs from a property file or resource.
6391
 
6392
* <unzip/unjar/unwar> and <untar> now have an overwrite attribute that
6393
  defaults to true.  If set to false, files that are newer than the
6394
  files in the archive will not be replaced.
6395
 
6396
* <patternset> and <fileset> now support nested <in/excludesfile>
6397
  elements - using these you can have more than one in/excludes file
6398
  per <patternset>.
6399
 
6400
* Three new supported compilers for javac: kjc for kopi, gcj for the
6401
  gcc frontend and sj for Symantec's compiler.
6402
  In addition extJavac or the new fork attribute can be
6403
  used to run the JDK's javac in a JVM separate from Ant.
6404
 
6405
* <fixrlf> can now with CR only line-ends and can use an arbitraty
6406
  between 2 and 80.
6407
 
6408
* The .NET tasks have been adapted to the beta2 release of the framework.
6409
 
6410
* <move> will now try to rename() files before copying them byte by
6411
  byte - only if filtering is of, of course.
6412
 
6413
* <ant> and <antcall> tasks now support a new attribute inheritAll. When set to
6414
  false, only user properties are passed through to the target Ant instance.
6415
  This includes properties set on the command line and properties explicitly
6416
  passed
6417
 
6418
* <javadoc> now skips off line links if the package list cannot be found.
6419
 
6420
* <wlrun> now allows the security policy file to exist outside the weblogic
6421
  directory.
6422
 
6423
* <java> task will set the Thread contextClassLoader under JDKs 1.2+ to the
6424
  classloader for the class being executed.
6425
 
6426
* Introduce the concept of a TaskContainer - a task or element which can contain
6427
  Ant Tasks.
6428
 
6429
* Add new tasks implementing the TaskContainer interface <parallel> and
6430
  <sequential> which allow parallel execution of tasks to be specified.
6431
 
6432
* <depend> task will now take into account dependencies on jar files and class
6433
  files from a given classpath.
6434
 
6435
* <jar> manifest entries may now be specified in the build file either
6436
  completely or to be merged with a manifest file.
6437
 
6438
* <tstamp> task custom formats now support locales.
6439
 
6440
* Added a listner which will forward events to Log4J. The log4j configuration
6441
  file should be in the directory from which Ant is run or passed as a system
6442
  property using a JVM argument.
6443
 
6444
* Introduced the concept of <filtersets> to allow for more control in which
6445
  filters get applied in a <copy> or <move> operation.
6446
 
6447
* Added nowarn attribute to javac and deprecated the Jikes-magic property
6448
  build.compiler.warnings.
6449
 
6450
* The <depend> task cache format has changed and all dependency information is
6451
  now stored in a single file.
6452
 
6453
Fixed bugs:
6454
-----------
6455
 
6456
* Testcases have been made independent of current working directory.
6457
 
6458
* Input ZIP-Files will be closed when using a <zipfileset>.
6459
 
6460
* p4 tasks now don't fail if user, port or client have been omitted
6461
  (and this is acceptable for the context of the command).
6462
 
6463
* <javah>'s outputfile attribute will be resolved as relative to the
6464
  projects basedir.
6465
 
6466
* <antstructure> should create a valid DTD for propertyfile.operation.entry
6467
  and omit tasks it fails to load.
6468
 
6469
* won't try to pass a -bootclasspath flag to javac 1.1 anymore
6470
 
6471
* <style>'s style attribute no handles absolute paths correctly.
6472
 
6473
* <delete includeemptydirs="true"> now deletes more than just the leaf
6474
  directories.
6475
 
6476
* You can now specify a <fileset> for a directory that doesn't exist at
6477
  declaration time but will created before the fileset gets used for the
6478
  first time.
6479
 
6480
* If the quiet attribute has been set, <delete> will handle <fileset>s
6481
  with non-existing directories gracefully.
6482
 
6483
* Output written by testcases will now be captured by the <junit> task
6484
  and passed to the formatters.
6485
 
6486
* Quote the -group parameter to Javadoc as per the specification
6487
 
6488
* Initialise classes when loaded through the AntClassLoader - that is, run
6489
  static initializers
6490
 
6491
* Implement getResource() and getResources() in AntClassLoader
6492
 
6493
* Create the <ejbjar> weblogic command line as a set of arguments rather than
6494
  as a single line. Avoids problems with paths which contain spaces.
6495
 
6496
* <ejbjar> now fails when the weblogic ejbc compiler reports an error.
6497
 
6498
* Make the AntClassLoader load resources in the same order as it currently
6499
  loads classes.
6500
 
6501
* Handle classpaths with spaces
6502
 
6503
* Make sure XSLT processors close their output files in <style>.
6504
 
6505
* perform proper uptodate check in <rmic> when compiling for IIOP.
6506
 
6507
* <jjtree>'s uptodate test works even if outputdirectory is not the
6508
  parent dir of target
6509
 
6510
* <copy> will remove target file (if it exists) before writing to it -
6511
  this avoids problems with links on filesystems that support them.
6512
 
6513
* <ftp> now properly recurses remote directories.
6514
 
6515
* <ftp> closes remote connection when it's done.
6516
 
6517
* <junit> tries to include all necessary classes for the task itself
6518
  to the classpath when running in fork mode - doesn't work for JDK 1.1
6519
 
6520
* <apply> and <execon> do now execute the command only once, if you
6521
  specify the parallel attribute - instead of once per fileset.
6522
 
6523
* directory based tasks and fileset could miss some included files in
6524
  directories that have been excluded
6525
 
6526
* <fixcrlf> failed for large files.
6527
 
6528
* <move> removed files you tried to move to themselves.
6529
 
6530
* <sql> task will not trty to print the result set unless the query succeeded.
6531
 
6532
* Ant classloader will now ignore paths which are invalid relative to the
6533
  project base
6534
 
6535
* <ejbjar> weblogic elements check for jar file changes has been fixed.
6536
  Previously some changes would not be included.
6537
 
6538
* properties loaded from properties files are now resolved internally. This
6539
  removes the spurious warnings about usage of properties which have not been
6540
  set.
6541
 
6542
* <jar> task and friends now process the JAR manifest to ensure it is valid.
6543
 
6544
* The task finished event now includes any exception thrown by the task.
6545
 
6546
* <java> task now supports a jvmVersion attribute so that if another JVM is
6547
  being used, Ant can determine which options to use for features such as the
6548
  VM memory limits
6549
 
6550
 
6551
Changes from Ant 1.2 to Ant 1.3
6552
===========================================
6553
 
6554
Changes that could break older environments:
6555
--------------------------------------------
6556
 
6557
* Ant doesn't search for the buildfile anymore, unless you use the new
6558
  -find argument.
6559
 
6560
* <perforce> has been replaced by a number of new tasks.
6561
 
6562
* <javac> is now implemented using a factory. This makes extending
6563
  javac to use a new compiler a lot easier but may break custom
6564
  versions of this task that rely on the old implementation.
6565
 
6566
* The output generated by the xml formatter for <junit> has changed a
6567
  little, it doesn't append " sec" in the time attribute anymore.
6568
 
6569
Other changes:
6570
--------------
6571
 
6572
* A GUI Frontend: Antidote. This is currently in development. At this
6573
  time, this is not part of the Ant release, although the source is
6574
  included if you are interested.
6575
 
6576
* New tasks: stylebook, propertyfile, depend, antlr, telnet, csc,
6577
  ilasm, apply, javah, several clearcase tasks, junitreport, sound
6578
 
6579
* Added output attribute to <java>.
6580
 
6581
* Added nested zipfileset element to <zip>
6582
 
6583
* Changed <sql> so that printing is at the task level rather than
6584
  the statement level.
6585
 
6586
* javadoc task will pass -d flag to any doclet if the destDir attribute is
6587
  given. If the doclet does not accept the -d flag then omit the destdir
6588
  attribute.
6589
 
6590
* <cab> can work on non-Windows platforms with the help of libcabinet.
6591
  See http://trill.cis.fordham.edu/~barbacha/cabinet_library/.
6592
 
6593
* <ftp> now supports passive mode.
6594
 
6595
* New <mapper> data type that can be used to get influence on the
6596
  target files for some tasks like <copy> or enable new types of tasks
6597
  like <apply>.
6598
 
6599
* <execon> provides more control over the command line now, the names
6600
  of the source files are no longer required to be at the end of the
6601
  command.
6602
 
6603
* Style tasks will now support TraX compliant XSL processors if one is present
6604
  in your classpath.
6605
 
6606
* Added a failonerror to the javac task. If set to false, the build will
6607
  continue even if there are compilation errors.
6608
 
6609
* Added nested format elements to the tstamp task allowing additional time
6610
  formats to be defined for arbitrary properties.
6611
 
6612
* Added classpath attribute and nested classpath element to <property>
6613
  to make the resource attribute more powerful.
6614
 
6615
* ${} property expansion will now be performed on the patterns read
6616
  from files specified as includesfile or excludesfile attributes.
6617
 
6618
* The <tar> and <untar> tasks now support GNU format for handling paths
6619
  which are greater than 100 characters in length. In addition the <tar>
6620
  task now supports nested filesets through which the file permissions
6621
  may be controlled.
6622
 
6623
* wlrun, wlstop and ejbjar now support Weblogic 6.0
6624
 
6625
* The MPasre task has been updated to work with MParse 2.0
6626
 
6627
* The documentation has been significantly updated.
6628
 
6629
 
6630
Fixed bugs:
6631
-----------
6632
 
6633
* <signjar> no longer uses deprecated methods.
6634
 
6635
* javadoc's failonerror attribute works again
6636
 
6637
* javadoc's additionalparam attribute will now be split into separate
6638
  parameters (on spaces) to allow for more than one parameter.
6639
 
6640
* Changed <sql> task so that printing result sets works on Oracle
6641
 
6642
* Changes to ddcreator and ejbc helper to respect the descriptor hierarchy
6643
  keppgenerated in ejbc can now be turned off
6644
 
6645
* ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor.
6646
  CMP files are included by parsing the weblogic deployment descriptor rather
6647
  than relying on the naming convention used in ant 1.2
6648
 
6649
* ejbjar includes super classes and super interfaces into the generated ejb
6650
  jar files. The <support> nested element allows support classes to be
6651
  included in the EJB jar. The toplink element should now correctly locate
6652
  the toplink descriptor.
6653
 
6654
* <vssget> now correctly deals with spaces in arguments
6655
 
6656
* <jar> fails early if a given manifest file doesn't exist
6657
 
6658
* <rmic> doesn't search for the _Skel file anymore when stubversion is
6659
  set to 1.2.
6660
 
6661
* <rmic> uses the the same classpath to verify a class can be rmic'd
6662
  as it passes to the compiler.
6663
 
6664
* org.apache.tools.mail.MailMessage (and therefore <mail>) can now
6665
  handle SMTP servers sending multi line responses.
6666
 
6667
* nested <classpath> elements of <taskdef> now work for <taskdef>s not
6668
  nested into <target> as well.
6669
 
6670
* <property> and <available> will search for the resource "foo" instead
6671
  of "/org/apache/tools/ant/taskdefs/foo" when given a relative resource
6672
  name foo.
6673
 
6674
* Handle build files in directories whose name contained a "#" character
6675
 
6676
* <junit> can now log to files whose name contains a comma as well.
6677
 
6678
* The AntClassLoader now refers to the loader which loaded it, any
6679
  requests it does not handle itself. Previously these went to the
6680
  primordial loader.
6681
 
6682
Changes from Ant 1.1 to Ant 1.2
6683
===============================
6684
 
6685
Changes that could break older environments:
6686
--------------------------------------------
6687
 
6688
* Semantics of <property> has changed again in the hope to be more
6689
  intuitive. ${} expansion now happens at runtime and <property> tags
6690
  living inside of targets only take effect if they are visited at
6691
  runtime.
6692
 
6693
  As a side effect of this change, task's attributes get set at runtime
6694
  not at parser time as well, which might change the results of
6695
  <script>s or other custom tasks that reference other tasks by their id
6696
  attribute.
6697
 
6698
* copying of support files in <javac> has been removed - as well as
6699
  the filtering attribute.
6700
 
6701
* the <expand> and <keysubst> tasks have been removed.
6702
 
6703
* the ignore and items attributes of directory based tasks have been removed.
6704
 
6705
* the command line switches _not_ starting with - have been removed.
6706
 
6707
* Path and EnumeratedAttribute have been moved from
6708
  org.apache.tools.ant to org.apache.tools.ant.types.
6709
 
6710
* the class attributes of <available>, <java>, <rmic> and <taskdef>
6711
  have been removed.
6712
 
6713
* the src attribute of <chmod> has been removed.
6714
 
6715
* <patch> and <javadoc> have lost some of their attributes.
6716
 
6717
* <java> and <cvs> have lost some undocumented attributes.
6718
 
6719
* the Unix antRun script would search for command.sh in the directory
6720
  it changed to and invoke this instead of command if present. This
6721
  behavior has been dropped.
6722
 
6723
* <ejbjar> task syntax has been changed significantly
6724
 
6725
* <exec> is no longer implemented by org.apache.tool.ant.taskdefs.Exec.
6726
  Custom tasks that rely on Project.createTask("exec") to return an
6727
  instance of this class are going to fail.
6728
 
6729
* nested <include> and <exclude> elements expect the value of their
6730
  name attribute to be a single pattern, they don't accept multiple
6731
  patterns anymore. Split them into multiple elements of the same type.
6732
 
6733
* <delete dir="somedir" /> will now delete the directory itself as
6734
  well as all included files. If you just want to clean out the
6735
  directory and keep the empty one, use a nested fileset.
6736
 
6737
Other changes:
6738
--------------
6739
 
6740
* New tasks: antstructure, cab, execon, fail, ftp, genkey, jlink,
6741
  junit, sql, javacc, jjtree, starteam, war, unwar, uptodate,
6742
  native2ascii, copy, move, mparse.
6743
 
6744
* copydir, copyfile, deltree and rename are now deprecated. They
6745
  should be replaced with the new copy, delete and move tasks.
6746
 
6747
* <java> uses a ClassLoader of its own in no-fork mode if a classpath is
6748
  specified.
6749
 
6750
* <style> will create the necessary target directories and reprocess
6751
  all files if the stylesheet changes.
6752
 
6753
* New data types fileset and patternset - expected to get a broader use.
6754
  They, as well as PATH like structures, can now be defined on a global
6755
  level and later be referenced by their id attribute.
6756
 
6757
* You can specify environment variables to <exec>.
6758
 
6759
* <get> can check whether a remote file is actually newer than a local
6760
  copy before it starts a download (HTTP only).
6761
 
6762
* Added a -logger option to allow the class which performs logging to be
6763
  specified on the command line.
6764
 
6765
* Added a -emacs option to tell the logger to leave out taskname adornments
6766
  on log output.
6767
 
6768
* <chmod> works on all files in parallel and supports multiple filesets.
6769
 
6770
* <replace> can now use tokens and/or values that cross line boundaries.
6771
 
6772
* build.compiler supports now jvc as well.
6773
 
6774
* project specific help can now be obtained with the -projecthelp option.
6775
 
6776
* Added a -debug option to make -verbose less verbose (and more useful)
6777
 
6778
* Ant will now search for a file named build.xml in the parent directory
6779
  and above (towards the root of the filesystem) if you didn't specify
6780
  -buildfile and there is no build.xml in the current directory.
6781
 
6782
* <echo> can now write to a file and accepts nested text.
6783
 
6784
Fixed bugs:
6785
-----------
6786
 
6787
* <chmod> didn't work when used as a directory based task.
6788
 
6789
* Path, Available, Property didn't resolve relative filenames with
6790
  respect to the Project's basedir.
6791
 
6792
* Project didn't interpret the basedir attribute correctly in all
6793
  cases.
6794
 
6795
* Nested <src> in <javac> caused NullPointerException.
6796
 
6797
* Corrupt Zip- and Jar-files ar now deleted if the task fails.
6798
 
6799
* many more fixes we've forgotten to document here ...
6800
 
6801
* The packagelistloc attribute of <javadoc>'s <link> child will be
6802
  resolved as a file (i.e. it is either absolute or relative to
6803
  basedir).