Project

General

Profile

Download (187 KB) Statistics
| Branch: | Revision:

git_sitools_idoc / flarecast / cots / ant / apache-ant-1.8.1 / WHATSNEW @ master

1
Changes from Ant 1.8.1 TO current SVN version
2
=============================================
3

    
4
Changes that could break older environments:
5
-------------------------------------------
6

    
7
Fixed bugs:
8
-----------
9

    
10
Other changes:
11
--------------
12

    
13
Changes from Ant 1.8.0 TO Ant 1.8.1 
14
===================================
15

    
16
Changes that could break older environments:
17
-------------------------------------------
18

    
19
 * ant-trax.jar is no longer produced since TrAX is included in JDK 1.4+.
20

    
21
 * Ant no longer ships with Apache Xerces-J or the XML APIs but relies
22
   on the Java runtime to provide a parser and matching API versions.
23
   
24
 * The stylebook ant task and the ant-stylebook.jar are removed.  
25

    
26
Fixed bugs:
27
-----------
28

    
29
 * Tasks that iterate over task or type definitions, references or
30
   targets now iterate over copies instead of the live maps to avoid
31
   ConcurrentModificationExceptions if another thread changes the
32
   maps.
33
   Bugzilla Report 48310.
34

    
35
 * The filesmatch condition threw a NullPointerException when
36
   comparing text files and the second file contained fewer lines than
37
   the first one.
38
   Bugzilla Report 48715.
39

    
40
 * Regression: The <ear> task would allow multiple
41
   META-INF/application.xml files to be added.
42
   Bugzilla Report 6836.
43

    
44
 * VectorSet#remove(Object) would fail if the size of the vector
45
   equaled its capacity.
46
   
47
 * Regression : ant -diagnostics was returning with exit code 1
48
   Bugzilla Report 48782
49
   
50
 * Fix for exec task sometimes inserts extraneous newlines
51
   Bugzilla Report 48746
52
   
53
 * SymlinkTest#testSymbolicLinkUtilsMethods failing on MacOS
54
   Bugzilla Report 48785.
55

    
56
 * If <concat>'s first resourcecollection child is a <resources>,
57
   any subsequently added child resourcecollection joins the first.
58
   Bugzilla Report 48816.        
59
   
60
 * <get> with an invalid URL could trigger an NPE in some JVMs.
61
   Bugzilla Report 48833
62
   
63
 * Broken Pipe issue under Ubuntu Linux
64
   Bugzilla Report 48789
65
   
66
 * Properties wrongly read from file or not update during read
67
   Bugzilla Report 48768       
68

    
69
 * AntClassLoader in Ant 1.8.0 has been considerably slower than in
70
   1.7.1
71
   Bugzilla Report 48853
72
   
73
 * ANT_CMD_LINE_ARGS are rippling through lower level Ant usage 
74
   Bugzilla Report 48876
75
   
76
 * email : IO error sending mail with plain mimetype
77
   Bugzilla Report 48932    
78

    
79
 * the complete-ant-cmd.pl script failed to create a proper cache of
80
   target if "ant -p" failed.
81
   Bugzilla Report 48980
82

    
83
 * <rmic>'s sourcebase attribute was broken.
84
   Bugzilla Report 48970
85

    
86
 * <copy>'s failonerror didn't work as expected when copying a single
87
   element resource collection to a file.
88
   Bugzilla Report 49070
89

    
90
 * <get> no longer followed redirects if the redirect URL was relative
91
   and not an absolute URL.
92
   Bugzilla Report 48972
93

    
94
 * fixed a performance degradation in the code that expands property
95
   references.
96
   Bugzilla Reports 48961 and 49079
97

    
98
 * <jar filesetmanifest="merge"> was broken on Windows.
99
   Bugzilla Report 49090
100

    
101
 * <symlink> delete failed if the link attribute was a relative path
102
   to a link inside the current directory without a leading ".".
103
   Bugzilla Report 49137
104

    
105
 * <telnet> and <rexec> failed to find the expected strings when
106
   waiting for responses and thus always failed.
107
   Bugzilla Report 49173
108

    
109
Other changes:
110
--------------
111

    
112
 * Project provides new get methods that return copies instead of the
113
   live maps of task and type definitions, references and targets.
114

    
115
 * Ant is now more lenient with ZIP extra fields and will be able to
116
   read archives that it failed to read in earlier versions.
117
   Bugzilla Report 48781.
118

    
119
 * The <zip> family of tasks has been sped up for bigger archives.
120
   Bugzilla Report 48755.
121
   
122
 * Add removeKeepExtension option to NetRexxC task.
123
   Bugzilla Report 48788.
124

    
125
 * Add prefix attribute to loadproperties task.
126

    
127
 * Add resource attribute to length task.
128

    
129
 * PropertyResource will effectively proxy another Resource if ${name}
130
   evaluates to a Resource object.
131

    
132
 * Added forcestring attribute to equals condition to force evaluation
133
   of Object args as strings; previously only API-level usage of the
134
   equals condition allowed Object args, but Ant 1.8.x+ property
135
   evaluation may yield values of any type.
136
   
137
 * BuildFileTest.assertPropertyUnset() fails with a slightly more 
138
   meaningful error message
139
   Bugzilla Report 48834
140
   
141
 * <junit> will now throw an exception if a test name is empty.  This
142
   used to manifest itself in unrelated errors like
143
   Bugzilla Report 43586.
144

    
145
 * A change that made <exec> more reliable on Windows (Bugzilla Report
146
   5003) strongly impacts the performance for commands that execute
147
   quickly, like attrib.  Basically no single execution of a command
148
   could take less than a second on Windows.
149
   A few timeouts have been tweaked to allow these commands to finish
150
   more quickly but still they will take longer than they did with Ant
151
   1.7.1.
152
   Bugzilla Report 48734.
153

    
154
 * Added SimpleBigProjectLogger, intermediate between NoBannerLogger and
155
   BigProjectLogger.
156

    
157
 * <mappedresources> supports new attributes enablemultiplemappings
158
   and cache.
159

    
160
 * Added the augment task to manipulate existing references via Ant's basic
161
   introspection mechanisms.
162

    
163
Changes from Ant 1.8.0RC1 TO Ant 1.8.0
164
======================================
165

    
166
Changes that could break older environments:
167
-------------------------------------------
168

    
169
 * the appendtolines filter has been renamed to suffixlines.
170

    
171
Fixed bugs:
172
-----------
173

    
174
 * stack traces were not reported at all by <junit/>
175
   when filtertrace="on", which is the default.
176

    
177
 * ant.bat can now also process the -noclasspath switch when it is 
178
   the first switch on a command line.
179
   Bugzilla Report 48186.
180

    
181
 * <fixcrlf> now tries to delete the created temporary files earlier.
182
   Bugzilla Report 48506.
183

    
184
 * the implementation of <zip> had been changed in a way that broke
185
   the jarjar links task and protentially other third-party subclasses
186
   as well.
187
   Bugzilla Report 48541.
188
   
189
 * <scp> task didn't report build file location when a remote operation failed
190
   Bugzilla Report 48578.  
191

    
192
 * <propertyfile> would add the same comment and a date line each time
193
   it updated an existing property file.
194
   Bugzilla Report 48558.
195

    
196
 * <sound> didn't work properly in recent Java VMs.
197
   Bugzilla Report 48637.
198

    
199
Other changes:
200
--------------
201

    
202
Changes from Ant 1.7.1 TO Ant 1.8.0RC1
203
======================================
204

    
205
Changes that could break older environments:
206
-------------------------------------------
207

    
208
 * if and unless attributes (on <target> as well as various tasks and other
209
   elements) have long permitted ${property} interpolation. Now, if the result
210
   evaluates to "true" or "false" (or "yes", "no", "on", "off"), that boolean
211
   value will be used; otherwise the traditional behavior of treating the value
212
   as a property name (defined ~ true, undefined ~ false) is used. Existing
213
   scripts could be broken if they perversely defined a property named "false"
214
   and expected if="false" to be true, or used if="true" expecting this to be
215
   triggered only if a property named "true" were defined.
216

    
217
 * Ant now requires Java 1.4 or later.
218

    
219
 * Improved handling of InterruptException (lets suppose someone/thing
220
   is trying to kill the thread when we receive an
221
   InterruptException), when an InterruptException is received, we do
222
   not wait anymore in a while loop till the end time has been
223
   reached.
224
   Bugzilla Report 42924.
225

    
226
 * Refactor PropertyHelper and introspection APIs to make extension
227
   more granular and support setting task/type attribute values to
228
   objects decoded by custom PropertyEvaluator delegates. Also add
229
   <propertyhelper> task for registering delegates and/or replacing
230
   the registered PropertyHelper instance.
231
   Bugzilla Report 42736.
232

    
233
 * Added a restricted form of typedef called <componentdef>. This
234
   allows definition of elements that can only be within tasks or
235
   types. This method is now used to define conditions, selectors,
236
   comparators and filterreaders. This means that tasks may now have
237
   nested conditions just by implementing the Condition interface,
238
   rather than extending ConditionBase. It also means that the use of
239
   namespaces for some of the selectors introduced in Ant 1.7.0 is no
240
   longer necessary.  Implementing this means that the DynamicElement
241
   work-around introduced in Ant 1.7.0 has been removed.
242
   Bugzilla Report 40511.
243

    
244
 * In the <touch> task when a <mapper> is used, the millis and
245
   datetime attributes now override the time of the source resource if
246
   provisioned.
247
   Bugzilla Report 43235.
248

    
249
 * Remove fall-back mechanism for references that are not resolved
250
   during normal runtime execution.
251

    
252
 * FileUtils.createTempFile now actually creates the file.
253
   The TempFile task still does not create the file by default, can be
254
   instructed to do so however using a new parameter.
255
   Bugzilla Report 33969.
256
  
257
 * A lock in Project ensured that a BuildListener's messageLogged
258
   method was only ever executed by a single thread at a time, while
259
   all other methods could be invoked by multiple threads
260
   simultaniously (while within <parallel>, for example).  This lock
261
   is no longer in place, messageLogged should be made thread-safe
262
   now.
263

    
264
 * <sql>'s onError="stop" no longer fails the build if an error
265
   occurs,  this is the main difference between stop and error and
266
   matches what the documentation implied.
267
   Bugzilla Report 24668.
268

    
269
 * Ant's configuration introspection mechanisms have been modified to prefer
270
   Resource and FileProvider attributes to plain java.io.File attributes;
271
   however the configuration-from-String behavior remains equivalent, rendering
272
   a FileResource.
273

    
274
 * CBZip2InputStream will now throw an IOException if
275
   passed in a null or empty InputStream to read from.
276
   Bugzilla Reports 32200.
277

    
278
 * <unzip> will now fail when trying to extract certain broken
279
   archives that would have been silently ignored in earlier version.
280
   Bugzilla Report 35000.
281

    
282
 * Ant's <zip> family of tasks tries to preserve the existing Unix
283
   permissions when updating archives or copying entries from one
284
   archive to another.
285
   Since not all archiving tools support storing Unix permissions in
286
   the same way that is used by Ant, sometimes the permissions read by
287
   Ant seem to be 0, which means nobody is allowed to do anything to
288
   the file or directory.
289
   If Ant now encounters a permission set of 0 it will assume that
290
   this is not the intended value and instead apply its own default
291
   values.  Ant used to create entries with 0 permissions itself.
292
   The <zip> family of tasks has a new attribute preserve0permissions
293
   that can be set to restore the old behavior.
294
   Bugzilla Report 42122.
295

    
296
 * If a batch containing multiple JUnit tests running inside a forked
297
   Java VM caused the VM to crash (or caused a timeout), the
298
   formatters would receive an error message for the last test in the
299
   batch.
300
   Ant will now pass in a test with the name "Batch-With-Multiple-Tests"
301
   instead - this is supposed to show more clearly that the last test
302
   may not have started at all.
303
   Bugzilla Report 45227.
304

    
305
 * If the number of minutes a build takes is bigger then 1000 Ant will
306
   no longer print a thousands separator in the "elapsed time"
307
   message.  It used to be the thousands separator of the current
308
   locale.
309
   Bugzilla Report 44659.
310

    
311
 * <symlink action="delete"> used to fail if the link was broken (i.e.
312
   pointing to a file or directory that no longer existed).  It will now
313
   silently try to remove the link.
314
   Bugzilla Report 41285.
315

    
316
 * <delete file="..."> used to log a warning and not delete broken
317
   symbolic links.  <delete dir="..."/> didn't even log a warning.
318
   The task will now try to delete them in both cases.
319
   Bugzilla Report 41285.
320

    
321
 * if the dir attribute of a <fileset> points to a symbolic link and
322
   followsymlinks is set to false, the fileset will no longer be
323
   scanned and always seem empty.
324
   Bugzilla Report 45741.
325

    
326
 * the .NET tasks that have been deprecated since Ant 1.7.0 have been
327
   removed, please use the stand-alone Antlib you can find at
328
   http://ant.apache.org/antlibs/dotnet/index.html
329
   instead.
330

    
331
 * the logic of closing streams connected to forked processes (read
332
   the input and output of <exec> and friends) has been changed to
333
   deal with cases where child processes of the forked processes live
334
   longer than their parents and keep Ant from exiting.
335
   It is unlikely but possible that the changed logic breaks stream
336
   handling on certain Java VMs.
337
   Bugzilla issue 5003.
338

    
339
 * <checksum>'s totalproperty was platform dependent because it relied
340
   on java.io.File#compareTo.  It has now been made platform
341
   independent, which means that totalPropery values obtained on
342
   Windows (and other systems where the sort order of File is not case
343
   sensitive) can be different from the values obtained with earlier
344
   versions of Ant.
345
   Bugzilla Report 36748.
346

    
347
 * globmapper didn't work properly if the "to" or "from" patterns
348
   didn't contain a "*".  In particular it implicitly added a * to the
349
   end of the pattern(s).  This is no longer the case.  If you relied
350
   on this behavior you will now need to explicitly specify the
351
   trailing "*".
352
   Bugzilla Report 46506.
353

    
354
 * <copy> silently ignored missing resources even with
355
   failOnError="true".  If your build tries to copy non-existant
356
   resources and you relied on this behavior you must now explicitly
357
   set failOnError to false.
358
   Bugzilla Report 47362.
359

    
360
 * Ant now prefers the java.runtime.version system property over
361
   java.vm.version for the Created-By Manifest attribute.
362
   Bugzilla Report 47632.
363

    
364
 * The <image> task now supports a nested mapper.  In order to
365
   implement this, the Java API of the task had to change so any
366
   custom subclass overriding the processFile method will need to
367
   adapt (by overriding the new two-arg processFile method).
368
   Bugzilla Report 23243.
369

    
370
 * A new property syntax can be used to set attributes from
371
   references: ${ant.ref:some-reference}
372

    
373
   In most cases this will yield the exact same result as 
374
   ${toString:some-reference} - only when an attribute setter method
375
   accepts an object type other than string and the project's
376
   reference is an Object of matching type the new syntax will pass in
377
   that object.
378

    
379
   If your build file already contains properties whose name starts
380
   with "ant.ref:" there is a potential for collision.  If your
381
   property has been set, normal property expansion will take
382
   precedence over the new syntax.  If the property has not been set
383
   and a reference with the postfix of your property name exists
384
   (i.e. in a very unlikely event) then the new syntax would yield a
385
   different result (an expanded property) than Ant 1.7.1 did.
386

    
387
 * A ProjectHelper implementation can now provide the default build file
388
   name it is expecting, and can specify if they can support a specific build
389
   file. So Ant is now capable of supporting several ProjectHelper
390
   implementations, deciding on which to use depending of the input build file.
391

    
392
 * Mapper-aware selectors (depends, different, present) now accept typedef'd
393
   FileNameMappers.
394

    
395
Fixed bugs:
396
-----------
397

    
398
 * The default logger was failing to print complete stack traces for
399
   exceptions other than BuildException when inside <ant> or
400
   <antcall>, thus omitting often important diagnostic
401
   information.
402
   Bugzilla 43398 (continued).
403

    
404
 * Better handling of package-info.class.
405
   Bugzilla Report 43114.
406

    
407
 * RPM task needed an inserted space between the define and the value.
408
   Bugzilla Report 46659.
409

    
410
 * Got rid of deadlock between in, out and err in the Redirector. 
411
   Bugzilla Report 44544.
412

    
413
 * Caused by AssertionError no longer filtered.
414
   Bugzilla Report 45631.
415
 
416
 * <zip> would sometimes recreate JARs unnecessarily.
417
   Bugzilla Report 45902.
418

    
419
 * <symlink> task couldn't overwrite existing symlinks that pointed to
420
   nonexistent files
421
   Bugzilla Report 38199.
422

    
423
 * <symlink> task couldn't overwrite files that were in the way of the symlink.
424
   Bugzilla Report 43426.
425
   
426
 * <symlink> task failonerror="false" does not stop build from failing
427
   when 'ln' command returns non-zero.
428
   Bugzilla Report 43624  
429

    
430
 * <touch> task couldn't differentiate between "no resources
431
   specified" and "no resources matched."
432
   Bugzilla Report 43799.
433

    
434
 * ManifestClassPath failed when a relative path would traverse the
435
   file system root.
436
   Bugzilla Report 44499.
437

    
438
 * <globmapper> had an indexoutofbounds when the prefix and postfix
439
   overlapped.
440
   Bugzilla Report 44731.
441
   
442
 * <typedef> and <taskdef> failed to accept file names with #
443
   characters in them.
444
   Bugzilla Report 45190
445

    
446
 * A deadlock could occur if a BuildListener tried to access an Ant property
447
   within messageLogged while a different thread also accessed one.
448
   Bugzilla Report 45194
449

    
450
 * Handle null result of system getProperty() in CommandlineJava.
451
   Similar to Bugzilla Report 42334.
452

    
453
 * Length task did not process nonexistent Resources even though these might
454
   conceivably still carry file length information.
455
   Bugzilla Report 45271.
456

    
457
 * <javac>'s includeJavaRuntime="false" should work for gcj now.  Note
458
   that you may need to set includeAntRuntime to false in order to
459
   have full control.
460
   Bugzilla Report 34638.
461

    
462
 * <sql> would fail if the executed statment didn't return a result
463
   set with some JDBC driver that dissalow Statement.getResultSet to
464
   be called in such a situation.
465
   Bugzilla Report 36265 
466

    
467
 * if the executed statement in <sql> returned a result set and an
468
   update count, the count would be lost.
469

    
470
 * if an executed statement in <sql> mixes update count and result set
471
   parts, some result sets wouldn't get printed.
472
   Bugzilla Report 32168.
473

    
474
 * XmlLogger could lose messages if <parallel> is used.
475
   Bugzilla Report 25734.
476

    
477
 * <scp> creates remoteToDir if it doesn't exist.
478
   Bugzilla Report 42781
479

    
480
 * CBZip2OutputStream threw an exception if it was closed prior to
481
   writing anything.
482
   Bugzilla Reports 32200, 45836
483

    
484
 * The IPlanetDeploymentTool didn't use the configured DTD locations.
485
   Bugzilla Report 31876.
486

    
487
 * The ant shell script printed a warning under Cygwin if JAVA_HOME
488
   was not set.
489
   Bugzilla Report 45245.
490

    
491
 * <filterset> sometimes incorrectly flagged infinite recursions of
492
   filter tokens
493
   Bugzilla Report 44226.
494
   
495
 * failures were treated as errors in forked JUnit tests when JUnit 4
496
   was used.
497
   Bugzilla Report 43892.
498

    
499
 * <jar> and <manifest> disallowed manifest attributes whose name
500
   contained the character '8'.
501
   Bugzilla Report 45675.
502

    
503
 * BigProjectLogger would set the project's basedir to the current
504
   working directory.
505
   Bugzilla Report 45607.
506

    
507
 * only <formatter>s that logged to a file were notified if forked VM
508
   crashed or a timeout occured in <junit>.
509
   Bugzilla Report 37312.
510

    
511
 * ant -v -version would print the version information twice.
512
   Bugzilla Report 45695.
513

    
514
 * when nested into builds that have been invoked by <ant> tasks
515
   <subant> might set the wrong basedir on the called projects.
516
   Bugzilla Report 30569.
517

    
518
 * If the message of the failed assertion of a forked JUnit test
519
   contained line feeds some excess output ended up in Ant's log.
520
   Bugzilla Report 45411.
521

    
522
 * <symlink action="delete"> failed to delete a link that pointed to
523
   a parent directory.
524
   Bugzilla Report 45743.
525

    
526
 * <symlink action="delete"> failed if ant lacked permission to rename
527
   the link's target.
528
   Bugzilla Report 41525.
529

    
530
 * when checking whether a jar is signed, <signjar> ignored the
531
   sigfile attribute.
532
   Bugzilla Report 44805.
533

    
534
 * When using JavaMail all <mail> tasks used the same mail host
535
   regardless of their configuration.
536
   Bugzilla Report 37970.
537

    
538
 * <signjar> and <issigned> didn't handle aliases with characters other
539
   than numbers, letters, hyphen or underscore properly.
540
   Bugzilla Report 45820.
541

    
542
 * <filterset> could miss multi-character begin tokens in some cases.
543
   Bugzilla Report 45094.
544

    
545
 * <depend> didn't close JARs that were part of the classpath.
546
   Bugzilla Report 45955.
547

    
548
 * in some cases <depend> would delete class files even if it didn't
549
   find the corresponding source files.
550
   Bugzilla Report 45916.
551

    
552
 * <javadoc> failed if the nested <bottom> or <head> contained line
553
   breaks.
554
   Bugzilla Report 43342.
555

    
556
 * encoding="auto" has been broken in <mail> since Ant 1.7.0 and only
557
   worked if JavaMail was available.
558
   Bugzilla Report 42389.
559

    
560
 * MailLogger could cause a NullPointerException.
561
   Bugzilla Report 44009.
562

    
563
 * <junit> didn't recognize failed assertions as failures if they
564
   caused subclasses of AssertionError to be thrown (like
565
   org.junit.ComparisonFailure that is thrown when assertEquals
566
   fails).
567
   Bugzilla Report 45028.
568

    
569
 * the Unix "ant" wrapper script failed to protect wildcards in
570
   command line arguments in some cases.
571
   Bugzilla Report 31601.
572

    
573
 * <cvstagdiff> crippled file names and could miss some entries if
574
   multiple modules have been specified.
575
   Bugzilla Report 35301.
576

    
577
 * Tasks with a "public void add(SomeType)" method failed to work as
578
   TaskContainers at the same time.
579
   Bugzilla Report 41647.
580

    
581
 * Tasks that implementes DynamicElemen or DynamicElementNS failed to
582
   work as TaskContainers at the same time.
583
   Bugzilla Report 41647.
584

    
585
 * combining SSL and authentication in <mail> and MailLogger failed in
586
   some setups.
587
   Bugzilla Report 46063.
588

    
589
 * if an error occurs while logging the buildFinished event, the
590
   original error is now logged to System.err.
591
   Bugzilla Report 25086.
592

    
593
 * <copy> failed with a NullPointerException when copying a resource
594
   without a name.  It will now fail with a meaningful error message.
595
   Bugzilla Report 39960.
596

    
597
 * <xslt> now uses the configured classpath to load the factory (when
598
   using TraX) before falling back to Ant's own classpath.
599
   Bugzilla Report 46172.
600

    
601
 * <dependset> complained about files being modified in the future if
602
   they had been just very recently (within Ant's assumed granularity
603
   of the file system).
604
   Bugzilla Report 43665.
605

    
606
 * <sshexec> didn't store the ouput in outputproperty if the remote
607
   command failed.
608
   Bugzilla Report 46340.
609

    
610
 * DirectoryScanner's slow-scanning algorithm that is used when you
611
   ask for excluded or not-included files and/or directories could
612
   miss some files and directories in the presence of recursive
613
   exclude patterns.
614

    
615
 * <sort> resource collection kept only one of entries deemed equal by
616
   the chosen Comparator.
617
   Bugzilla Report 46527.
618

    
619
 * the ZipFile class used by <unzip> and others could leave the
620
   archive open (making it undeletable on Windows as long as the java
621
   VM was running) for files with an unexpected internal structure.
622
   Bugzilla Report 46559.
623

    
624
 * The zip package now supports the extra fields invented by InfoZIP
625
   in order to store Unicode file names and comments.
626

    
627
 * The zip package detects the encoding bit set by more modern
628
   archivers when they write UTF-8 filenames and optionally sets it
629
   when writing zips or jars.
630
   Bugzilla Report 45548
631

    
632
 * <sync> could run into a NullPointerException when faced with broken
633
   symbolic links.
634
   Bugzilla Report 46747.
635

    
636
 * The ant shell script should now support MSYS/MinGW as well.
637
   Bugzilla Report 46936.
638

    
639
 * <signjar> has a new force attribute that allows re-signing of jars
640
   that are already signed.
641
   Bugzilla Report 46891.
642

    
643
 * <sshexec> now again honors failonerror in the face of connection
644
   errors.
645
   Bugzilla Report 46829.
646

    
647
 * The <replacetokens> filter threw an exception if the stream to
648
   filter ended with a begin token.
649
   Bugzilla Report 47306.
650

    
651
 * <scriptmapper>, <scriptfilter> and <scriptcondition> didn't support
652
   the setbeans attribute.
653
   Bugzilla Report 47336.
654

    
655
 * <loadproperties>' encoding attribute didn't work.
656
   Bugzilla Report 47382.
657

    
658
 * Ant created tar archives could contain random bytes at the end
659
   which confused some untar implementations.
660
   Bugzilla Report 47421.
661

    
662
 * various places where unchecked PrintWriters could hide exceptions
663
   have been revisited to now check the error status or not use a
664
   PrintWriter at all.
665
   Bugzilla Report 43537.
666

    
667
 * filesetmanifest="mergewithoutmain" in <jar> didn't treat inline
668
   manifests as expected.
669
   Bugzilla Report 29731.
670

    
671
 * <record> didn't work properly with nested builds.
672
   Bugzilla Report 41368. 
673

    
674
 * <jar> with filesetmanifest different from skip didn't work if the
675
   update attribute has been set to true.
676
   Bugzilla Report 30751.
677

    
678
 * The default stylesheets for <junitreport> failed to properly escape
679
   XML content in exception stack traces.
680
   Bugzilla Report 39492.
681

    
682
 * AntClassLoader didn't set the proper CodeSource for loaded classes.
683
   Bugzilla Report 20174.
684

    
685
 * AntClassLoader.getResourceAsStream would return streams to
686
   resources it didn't return with getResource and to classes it
687
   failed to load.
688
   Bugzilla Report 44103.
689

    
690
 * Logging exceptions without a message would cause a
691
   NullPointerException.
692
   Bugzilla Report 47623.
693

    
694
 * WeblogicDeploymentTool could fail on platforms with a file
695
   separator other than "/".
696
   Bugzilla Report 35649.
697

    
698
 * The update attribute of the modified selector was ignored.
699
   Bugzilla Report 32597.
700

    
701
 * <manifest> and <jar> can now merge Class-Path attributes from
702
   multiple sources and optionally flatten them into a single
703
   attribute.
704
   The default behaviour still is to keep multiple Class-Path
705
   attributes if they have been specified and to only include the
706
   attributes of the last merged manifest.
707
   Bugzilla Report 39655.
708

    
709
 * <delete> didn't work correctly with a <modified> selector because
710
   it was scanning the same filesets more than once.
711
   Bugzilla Report 43574.
712

    
713
 * when using custom filterreaders with the <filterreader classname="">
714
   syntax Ant could leak memory.
715
   The problem didn't occur when using <typedef> or <componentdef> to
716
   define the filterreader which is the recommended approach.
717
   Bugzilla Report 45439.
718

    
719
 * Ant didn't set the proper "magic" value for tar entries containing
720
   long file names in GNU longfile mode.
721
   Bugzilla Report 47653.
722

    
723
 * The tar task failed to recognize that the archive had to be
724
   (re-)created in some cases where the sources are filesystem based
725
   resources but not filesets.
726
   Bugzilla Report 48035. 
727

    
728
 * <sshexec>'s outputproperty was prefixed by the executed command
729
   when the command attribute has been used, breaking backwards
730
   compatibility to Ant 1.7.0.
731
   Bugzilla Report 48040.
732

    
733
 * different task instances of the same <scriptdef>ed tasks could
734
   overwrite each others attributes/nested elements.
735
   Bugzilla Report 41602.
736

    
737
 * The Hashvalue algortihm implementation of the modified task could
738
   fail to read the file(s) completely.
739
   Bugzilla Report 48313.
740

    
741
Other changes:
742
--------------
743

    
744
 * The get task now also follows redirects from http to https
745
   Bugzilla Report 47433
746

    
747
 * A HostInfo task was added performing information on hosts, including info on 
748
   the host ant is running on. 
749
   Bugzilla Reports 45861 and 31164.
750

    
751
 * There is now a FileProvider interface for resources that act as a source
752
   of filenames. This should be used by tasks that require resources
753
   to provide filenames, rather than require that all resources
754
   are instances or subclasses of FileResource.
755
   Bugzilla Report 43348
756
   
757
 * There is now a URLProvider interface for resources that act as a
758
   source of URLs. This should be used by tasks that require resources
759
   to provide URLs, rather than require that all resources are
760
   instances or subclasses of URLResource.
761
   
762
 * Fixcrlf now gives better error messages on bad directory attributes.
763
   Bugzilla Report 43936
764
   
765
 * a new property ant.project.default-target holds the value of the
766
   current <project>'s default attribute.
767

    
768
 * a new property ant.project.invoked-targets holds a comma separated
769
   list of the targets that have been specified on the command line
770
   (the IDE, an <ant> task ...) when invoking the current project.
771

    
772
 * The <type> resource selector has had an "any" type added for better
773
   configurability.
774

    
775
 * Ant should detect the OS as both a Mac and a Unix system when
776
   running on OpenJDK.
777
   Bugzilla Report 44889.
778

    
779
 * new protected getConnection and getStatement methods allow
780
   subclasses of SQLExec more control - or access to the cached
781
   instances when overriding other methods like runStatements.
782
   Bugzilla Report 27178.
783

    
784
 * <sql> has a new failOnConnectionError attribute that can be used to
785
   keep a build going even if the task failed to connect to the
786
   database.
787
   Bugzilla Report 36712.
788

    
789
 * A new attribute strictDelimiterMatching can be used to ignore case
790
   or whitespace differences when <sql> searches for delimiters.
791
   This is useful if you execute a SQL script that has contains "GO"
792
   and "go" as delimiters.
793
   Bugzilla Report 26459.
794

    
795
 * A new showWarnings attribute of <sql> allows warnings to be logged.
796
   Bugzilla Report 41836.
797

    
798
 * A new treatWarningsAsErrors attribute of <sql> can be used to fail
799
   a build if a warning occurs.
800
   Bugzilla Report 41836.
801

    
802
 * Ant now supports scoped properties (see Local task).
803
   Bugzilla Report 23942.
804

    
805
 * <sql>'s CSV output can be controlled via the new attributes
806
   csvColumnSeparator and csvQuoteCharacter.
807
   Bugzilla Report 35627.
808

    
809
 * <ftp>'s logging has been improved.
810
   Bugzilla Reports 30932, 31743.
811

    
812
 * It is now possible to disable <ftp>'s remote verification.
813
   Bugzilla Report 35471.
814

    
815
 * <sshexec> now supports input in a way similar to <exec>
816
   Bugzilla Report 39197.
817

    
818
 * <scp> can now preserve the file modification time when downloading
819
   files.
820
   Bugzilla Report 33939.
821

    
822
 * the new task sshsession can run multiple tasks in the presence of
823
   an SSH session providing (local and remote) tunnels.
824
   Bugzilla Report 43083.
825

    
826
 * ZipOutputStream has been sped up for certain usage scenarios that
827
   are not used by Ant's family of zip tasks.
828
   Bugzilla Report 45396.
829

    
830
 * <echo> supports an "output" Resource attribute as an alternative to "file".
831

    
832
 * <sql> "output" attribute now supports any Resource in addition to a file.
833

    
834
 * <scp> no longer requires a passphrase when using key based
835
   authentication.
836
   Bugzilla Report 33718.
837

    
838
 * a new failOnEmptyArchive attribute on <unzip> and <untar> can now
839
   make the task fail the build if it tries to extract an empty
840
   archive.
841

    
842
 * <unzip> and <untar> have a new attribute stripAbsolutePathSpec.
843
   When set to true, Ant will remove any leading path separator from
844
   the archived entry's name before extracting it (making the name a
845
   relative file name).
846
   Bugzilla Report 28911.
847

    
848
 * <unzip> will now detect that it was asked to extract a file that is
849
   not an archive earlier if the file is big.
850
   Bugzilla Report 45463.
851

    
852
 * New file and resource selectors <readable/> and <writable/> have
853
   been added that select file which the current process can read or
854
   write.
855
   Bugzilla Report 45081.
856

    
857
 * The filename file selector has a new attribute regex that allows
858
   files to be selected by matching their names against a regular
859
   expression.
860
   Bugzilla Report 45284
861

    
862
 * The name resource selector has a new attribute regex that allows
863
   resources to be selected by matching their names against a regular
864
   expression.
865
   Bugzilla Report 45284
866

    
867
 * Enhanced performance of Project.fireMessageLoggedEvent and DirectoryScanner 
868
   Bugzilla Reports 45651 and 45665
869

    
870
 * The package list location for offline links can now be specified as
871
   an URL.
872
   Bugzilla Report 28881
873

    
874
 * <echoxml> now supports XML namespaces.
875
   Bugzilla Report 36804.
876

    
877
 * A new listener for <junit> has been added that tries to invoke the
878
   tearDown method of a TestCase if that TestCase was run in a forked
879
   VM and the VM crashed or a timeout occured.  See the <junit> task's
880
   manual page for details.
881
   Bugzilla Report 37241.
882

    
883
 * The Jar task now supports the addition of a jar index file in update mode.
884
   Previously the absence of the index was not enough to trigger the rebuild;
885
   some other update was necessary.
886
   Bugzilla report 45098.
887

    
888
 * <ant> has a new attribute "useNativeBasedir" that makes the child
889
   build use the same basedir it would have used if invoked from the
890
   command line.  No matter what other attributes/properties have been
891
   set.
892
   Bugzilla Report 45711.
893

    
894
 * <patch> has a new optional failOnError attribute.
895
   Bugzilla Report 44772.
896

    
897
 * Antlib descriptors will now be parsed by the configured
898
   ProjectHelper if the implementation overrides the new
899
   canParseAntlibDescriptor and parseAntlibDescriptor methods.  If the
900
   configured helper doesn't override the methods, a new instance of
901
   ProjectHelper2 will be used just like in Ant 1.7.1.
902
   Bugzilla Report 42208.
903

    
904
 * It is now possible to explicitly set the executable used by
905
   <signjar>.
906
   Bugzilla Report 39189.
907

    
908
 * <compositemapper>'s order of results is now predictable.
909
   Bugzilla Report 44873
910

    
911
 * a new <firstmatchmapper> has been added, which works similar to
912
   <compositemapper> but only returns the results of the first nested
913
   mapper that matches.
914
   Bugzilla Report 44873
915

    
916
 * <get> has a new maxtime attribute that terminates downloads that
917
   are taking too long.
918
   Bugzilla Report 45181.
919

    
920
 * <ftp> now supports selectors for remote directories as well.
921
   Bugzilla Report 44726.
922

    
923
 * In some cases Ant fails to rename files if the source or target
924
   file has just recently been closed on Windows.  It will now try to
925
   delete the offending file once again after giving the Java VM time
926
   to really close the file.
927
   Bugzilla Report 45960.
928

    
929
 * two new properties can be used to set the MIME-Type and charset
930
   used by MailLogger.
931
   Bugzilla Report 27211.
932

    
933
 * a new attribute of <mail> allows the task to succeed if it can
934
   reach at least one given recipient.
935
   Bugzilla Report 36446.
936

    
937
 * two new properties allow MailLogger to send a fixed text instead of
938
   the log file.
939
   Bugzilla Report 38029.
940

    
941
 * <cvsversion> is supposed to support CVSNT now.
942
   Bugzilla Report 31409.
943

    
944
 * <cvs>' port attribute should now work for all clients that use the
945
   environment variable CVS_PSERVER_PORT instead of the "official"
946
   CVS_CLIENT_PORT.
947
   Bugzilla Report 30124.
948

    
949
 * <cvsversion> now works for local repositories as well.
950

    
951
 * <cvstagdiff> has an option to ignore removed files now.
952
   Bugzilla Report 26257.
953

    
954
 * <cvs> and friends now support modules with spaces in their names
955
   via nested <module> elements.
956

    
957
 * A new attribute "ignoreEmpty" controls how <concat> deals when
958
   there are no resources to concatenate.  If it is set to false, the
959
   destination file will be created regardless, which reinstates the
960
   behavior of Ant 1.7.0.
961
   Bugzilla Report 46010.
962

    
963
 * If the new remote attribute is set to true, <cvschangelog> can now
964
   work against a remote repository without any working copy.
965
   Bugzilla Report 27419.
966

    
967
 * start and end tags can now be used instead of dates in
968
   <cvschangelog>.
969
   Bugzilla Report 27419.
970

    
971
 * MailLogger and <mail> can now optionally enable support for
972
   STARTTLS.
973
   Bugzilla Report 46063.
974

    
975
 * <import> has new attributes "as" and "prefixSeparator" that can be
976
   used to control the prefix prepended to the imported targets'
977
   names.
978

    
979
 * a new task <include> provides an alternative to <import> that
980
   should be preferred when you don't want to override any targets.
981

    
982
 * delete has a new attribute removeNotFollowedSymlink.  If set to
983
   true, symbolic links not followed (because followSymlinks was false
984
   or the number of symlinks was too big) will be removed.
985
   Bugzilla Report 36658.
986

    
987
 * the os and osfamily attributes of <chown>, <chgrp>, <chmod> and
988
   <attrib> can now be used to run the commands on operating systems
989
   other than their "native" environment, i.e. non-Unix or non-Windows
990
   operating systems respectively.
991
   Bugzilla Report 7624.
992

    
993
 * a new resource collection <mappedresources> generalizes the prefix
994
   and fullpath attributes of <zipfileset> to arbitrary mappers that
995
   can be applied to arbitrary resource collections.
996
   Bugzilla Report 4240.
997

    
998
 * <tarfileset> and <zipfileset> have a new attribute
999
   errorOnMissingArchive that allows "optional" filesets that don't
1000
   break the build if the archive doesn't exist.
1001
   Bugzilla Report 46091.
1002

    
1003
 * <javadoc> has new attributes that correspond to the
1004
   -docfilessubdirs and -excludedocfilessubdir command line arguments.
1005
   Bugzilla Report 34455.
1006

    
1007
 * <xslt> now fails early if a specified stylesheet doesn't exist.
1008
   Bugzilla Report 34525.
1009

    
1010
 * <xslt> now has an option to supress transformer warnings.  This
1011
   option only has an effect for processors that support this feature;
1012
   the "trax" processor included with Ant does support it.
1013
   Bugzilla Report 18897.
1014

    
1015
 * <xslt> has two new attributes failOnError and
1016
   failOnTransformationError that can be used to not make the build
1017
   process proceed if an error occurs.
1018
   Bugzilla Report 36260.
1019

    
1020
 * <xslt> has a new attribute failOnNoResources that can be used to 
1021
   make the build fail/continue if the collection of resources to
1022
   transform is empty.
1023
   Bugzilla Report 46274.
1024

    
1025
 * It is now possible to define system properties that should be set
1026
   during xslt's transformation.  This can be used to enable XInclude
1027
   processing in Xerces, for example.
1028
   Bugzilla Report 36653.
1029

    
1030
 * a new resource collection <archives> can be used to specify
1031
   collections of ZIP and TAR archives as sources.  It extracts them on
1032
   the fly.  This is a generalization of the <zipgroupfileset> found
1033
   as nested element of <zip> and friends.
1034
   Bugzilla Report 46257.
1035

    
1036
 * <dependset> has a new verbose attribute that makes the task list
1037
   all deleted targets and give a hint as to why it deleted them.
1038
   Bugzilla Report 13681.
1039

    
1040
 * <replaceregexp> now supports arbitrary filesystem based resource
1041
   collections.
1042
   Bugzilla Report 46341.
1043

    
1044
 * <replace> now supports arbitrary filesystem based resource
1045
   collections.
1046
   Bugzilla Report 24062.
1047

    
1048
 * token and value of <replace>'s nested <replacefilter> can now also
1049
   be specified as nested elements to allow multiline content more
1050
   easily.
1051
   Bugzilla Report 39568.
1052

    
1053
 * <replace> and <replaceregexp> can now optionally preserve the file
1054
   timestamp even if the file is modified.
1055
   Bugzilla Report 39002.
1056

    
1057
 * The <replace> child-elements <replacetoken> and <replacevalue> have
1058
   a new attribute that controls whether properties in nested text get
1059
   expanded.
1060
   Bugzilla Report 11585.
1061

    
1062
 * <replace> has a new attribute failOnNoReplacements that makes the
1063
   build fail if the task didn't do anything.
1064
   Bugzilla Report 21064.
1065

    
1066
 * <sync>'s <preserveInTarget> has a new attribute that controls
1067
   whether empty directories should be kept.
1068
   Bugzilla Report 43159.
1069

    
1070
 * ant -diagnostics now checks that it can read as much from the
1071
   temporary directory as it has written.  This may help detecting a
1072
   full filesystem.
1073
   Bugzilla Report 32676.
1074

    
1075
 * <pathconvert> has a new preserveduplicates attribute--historically
1076
   these were eliminated in the interest of behaving in the manner
1077
   of a "path."
1078

    
1079
 * <javac>'s source and target attributes are no longer ignored when
1080
   using gcj.
1081
   Bugzilla Issue 46617.
1082

    
1083
 * ant -diagnostics now outputs information about the default XSLT
1084
   processor.
1085
   Bugzilla Issue 46612.
1086

    
1087
 * the ZIP library will now ignore ZIP extra fields that don't specify
1088
   a size.
1089
   Bugzilla Report 42940.
1090

    
1091
 * CBZip2OutputStream now has a finish method separate from close.
1092
   Bugzilla Report 42713.
1093

    
1094
 * the <zip> and <unzip> family of tasks has new options to deal with
1095
   file name and comment encoding.  Please see the zip tasks'
1096
   documentation for details.
1097

    
1098
 * <input ...><handler type="secure" /></input> now uses previously
1099
   undocumented SecureInputHandler shipped with Ant 1.7.1.
1100

    
1101
 * Command line arguments for <exec> and similar tasks can now have
1102
   optional prefix and suffix attributes.
1103
   Bugzilla Report 47365
1104

    
1105
 * <apply>'s srcfile and targetfile child elements can now have
1106
   optional prefix and suffix attributes.
1107
   Bugzilla Report 45625
1108

    
1109
 * <jar> has a new attribute to enable indexing of META-INF
1110
   directories which is disabled for backwards compatibility reasons.
1111
   Bugzilla Report 47457
1112

    
1113
 * <apt>'s executable attribute can be used to specify a different
1114
   executable.
1115
   Bugzilla Report 46230.
1116

    
1117
 * <rmic>'s new executable attribute can be used to specify a
1118
   different executable.
1119
   Bugzilla Report 42132.
1120

    
1121
 * <javac>, <rmic>, <javah> and <native2ascii> now provide a nested
1122
   element to specify a classpath that will be used when loading the
1123
   task's (compiler) adapter class.
1124
   Bugzilla Report 11143.
1125

    
1126
 * <javac>, <rmic>, <javah> and <native2ascii> now provide a nested
1127
   element to specify the task's (compiler) adapter as an instance of
1128
   a class that has been defined via typedef/componentdef.  This
1129
   allows more control over the classpath and allows adapters to be
1130
   defined in Antlibs easily.
1131

    
1132
 * A new subclass org.apache.tools.ant.loader.AntClassLoader5 of
1133
   AntClassLoader has been added which overrides getResources
1134
   which became non-final in ClassLoader with Java5+ so
1135
   this method now behaves as expected.
1136
   The new subclass will be used by Ant internally if it is available
1137
   and Ant is running on Java5 or more recent.
1138
   Bugzilla Report 46752.
1139

    
1140
 * a new attributes can chose a different request method than GET for
1141
   the http condition.
1142
   Bugzilla Report 30244
1143

    
1144
 * <splash> now supports a configurable display text and a regular
1145
   expression based way to determine progress based on logged messages.
1146
   Bugzilla Report 39957.
1147

    
1148
 * the number of retries on error in <get> is now configurable.  <get>
1149
   can be told to not download files that already exist locally.
1150
   Bugzilla Report 40058.
1151

    
1152
 * Ant now builds against commons-net 2.0 as well.
1153
   Bugzilla Report 47669.
1154

    
1155
 * A new nested element connectionProperty of <sql> allows setting of
1156
   arbitrary JDBC connection properties.
1157
   Bugzilla Report 33452.
1158

    
1159
 * A new islastmodified condition can check the last modified date of
1160
   resources.
1161

    
1162
 * <rmic> has a new destDir attribute that allows generated files to
1163
   be written to a different location than the original classes.
1164
   Bugzilla Report 20699.
1165

    
1166
 * <rmic> has a new listfiles attribute similar to the existing one of
1167
   <javac>.
1168
   Bugzilla Report 24359.
1169

    
1170
 * It is now possible to suppress the "FAILED" lines sent to Ant's
1171
   logging system via <junit>'s new logFailedTests attribute.
1172
   Bugzilla Report 35073.
1173
   
1174
 * <propertyfile> now can delete entries.
1175

    
1176
 * The <resources> resource collection can now optionally cache its
1177
   contents.
1178

    
1179
 * A new <resourceexists> condition can check whether resources exists.
1180

    
1181
 * <sql> has two new attributes errorproperty and warningproperty that
1182
   can be set if an error/warning occurs.
1183
   Bugzilla Report 38807.
1184

    
1185
 * <sql> has a new attribute rowcountproperty that can be used to set
1186
   a property to the number of rows affected by a task execution.
1187
   Bugzilla Report 40923.
1188

    
1189
 * when Ant copies files without filtering, it will now use NIO
1190
   channels.
1191
   Bugzilla Report 30094.
1192

    
1193
 * <get> has a new attribute that can be used to disable caching on
1194
   HTTP connections at the HttpUrlConnection level.
1195
   Bugzilla Report 41891.
1196

    
1197
 * <tar> and <zip> (and tasks derived from <zip>) will now create the
1198
   parent directory of the destination archive if it doesn't exist.
1199
   Bugzilla Report 45377.
1200

    
1201
 * A new filterreader <sortfilter> that sorts input lines has been
1202
   added.
1203
   Bugzilla Report 40504.
1204

    
1205
 * A new token filter <uniqfilter> that suppresses tokens that match
1206
   their ancestor token has been added.
1207

    
1208
 * <rootfileset>s nested into <classfileset>s can now use a dir
1209
   attribute different from the <classfileset>.
1210
   Bugzilla Report 37763.
1211

    
1212
 * <path> can now optionally cache its contents.
1213

    
1214
 * <property> can now specify values as nested text.
1215
   Bugzilla Report 32917.
1216

    
1217
 * a new parentFirst attribute on <javaresource> allows resources to
1218
   be loaded from the specified classpath rather than the system
1219
   classloader.
1220
   Bugzilla Report 41369.
1221
   
1222
 * <property location="from" basedir="to" relative="true"/> can now
1223
   calculate relative paths.
1224

    
1225
 * The <name> selector supports a new handleDirSep attribute that
1226
   makes it ignore differences between / and \ separators.
1227
   Bugzilla Report 47858.
1228

    
1229
 * <get> now supports resource collections (as long as the resources
1230
   contained provide URLs) and can get multiple resources in a single
1231
   task.
1232

    
1233
 * <import> can now import non-File resources if they provide an URL
1234
   - as the <url> and <javaresource> resources do.
1235
   Bugzilla Report 29251
1236
   
1237
 * <import> can now import multiple resources specified as resource
1238
   collections.
1239
   Bugzilla Report 22269.
1240

    
1241
 * a new <resourcelist> type is similar to <filelist> but can read the
1242
   list of resources from non-file resources and may return resources
1243
   that are not files.
1244

    
1245
 * a new filterreader appendtolines complements prefixlines.
1246

    
1247
 * a new top level element extension-point allows build files to be
1248
   extended with custom targets more easily.
1249

    
1250
Changes from Ant 1.7.0 TO Ant 1.7.1
1251
=============================================
1252

    
1253
Changes that could break older environments:
1254
-------------------------------------------
1255

    
1256
* String resources only have properties single expanded. If you relied on
1257
  <string> resources being expanded more than once, it no longer happens.
1258
  Bugzilla report 42277.
1259

    
1260
* A String resource's encoding attribute was only taken into account when
1261
  set from the resource's OutputStream; the InputStream provided the String's
1262
  binary content according to the platform's default encoding. Behavior has
1263
  been modified to encode outgoing (InputStream) content as well as encoding
1264
  incoming (OutputStream) content.
1265

    
1266
* <java> with fork now returns gives -1 instead of 0 as result when failonerror
1267
  is false and some exception (including timeout) occurs. Br 42377. 
1268

    
1269
* ant-type attribute has been marked as deprecated and a warning has been
1270
  issued if it is encountered in the build file.
1271

    
1272
Fixed bugs:
1273
-----------
1274

    
1275
* The default logger was failing to print complete stack traces for exceptions
1276
  other than BuildException, thus omitting often important diagnostic
1277
  information. Bugzilla 43398.
1278

    
1279
* Error in FTP task
1280
  Bugzilla report 41724
1281

    
1282
* Regression: Locator fails with URI encoding problem when spaces in path
1283
  Bugzilla report 42222
1284

    
1285
* Regression in Locator: running Ant off a network share does not work:
1286
  message "URI has authority component" appears
1287
  Bugzilla report 42275
1288

    
1289
* Improvements in AntClassLoader Speed.
1290
  Bugzilla report 42259
1291

    
1292
* Error in handling of some permissions, most notably the AllPermission on
1293
  jdk 1.5
1294
  Bugzilla report 41776
1295

    
1296
* Replace task summary output incorrect.
1297
  Bugzilla report 41544
1298

    
1299
* Dependset crashes ant when timestamp on files change during Dependset
1300
  execution.
1301
  Bugzilla report 41284
1302

    
1303
* Bug in org.apache.tools.ant.types.resources.comparators.Date
1304
  Bugzilla report 41411
1305

    
1306
* <junit> in Ant 1.7.0 could throw NPE if no <classpath> was defined.
1307
  Bugzilla report 41422.
1308

    
1309
* In Ant 1.7.0, <fileset> in <javadoc> does not by default include only
1310
  **/*.java as the documentation claims and earlier revisions did.
1311
  Bugzilla report 41264.
1312

    
1313
* SPI support in jar was broken.
1314
  Bugzilla report 41201.
1315
  
1316
* jsch-0.1.30 causes SCP task to hang
1317
  Bugzilla report 41090.
1318

    
1319
* Target from imported file listed twice in projecthelp.
1320
  Bugzilla report 41226.
1321

    
1322
* <sql> task double-expands properties if expandproperties is true,
1323
  and expands properties if expandproperties is false.
1324
  Bugzilla report 41204.
1325

    
1326
* Rolling back Bugzilla 32927 (set a default description for a javadoc tag
1327
  if not set) as it caused a BC problem.
1328
  Bugzilla report 41268.
1329

    
1330
* <apt> forks properly and so memory settings are picked up.
1331
  Bug report 41280.
1332

    
1333
* Regression: NPE was thrown when using <pathconvert> against a
1334
  (third-party instantiated) fileset with null Project reference.
1335

    
1336
* Strip out all -J arguments to non forking rmic adapters, specifically
1337
  the Sun and Weblogic compilers.
1338
  Bug report 41349
1339

    
1340
* Synchonization issues in PropertyHelper.  Bugzilla 41353.
1341

    
1342
* <concat binary="true" append="true"> did not append.  Bugzilla 41399.
1343
 
1344
* -autoproxy turns Java1.5+ automatic proxy support on. Bugzilla 41904
1345

    
1346
* Handle null result of system getProperty(). Bugzilla 42334.
1347

    
1348
* Regression: concat fixlastline="true" should not have applied to
1349
  nested text, but did in Ant 1.7.0. Bugzilla 42369.
1350

    
1351
* Regression: ant.version was not passed down in <ant>, <subant>.
1352
  This worked in Ant 1.6.5, but not in 1.7.0.
1353
  ant.core.lib (added in 1.7.0) was also not being propagated.
1354
  Bugzilla bug 42263
1355

    
1356
* Regression: bzip2 task created corrupted output files for some inputs.
1357
  Bugzilla bug 41596.
1358

    
1359
* Regression: <available> with <filepath> did not work.
1360
  Bugzilla 42735.
1361

    
1362
* ant script, cd may output to stdout.
1363
  Bugzilla 42739.
1364

    
1365
* Modified selector doesn't update the cache if only one file has changed.
1366
  Bugzilla 42802.
1367

    
1368
* Regression: Path subclasses that overrode list() stopped working in
1369
  resourceCollection contexts in Ant 1.7.0. Bugzilla 42967.
1370

    
1371
* <property> supports loading from xml based property definition.
1372
  Bugzilla 42946
1373

    
1374
* <junit> supports collecting and rerunning failed test cases
1375
  (textXXX methods). Bugzilla 42984.  
1376

    
1377
* War task failed with "No WEB-INF/web.xml file was added" when called
1378
  a second time. Bugzilla 43121.
1379

    
1380
* FilterMapper could throw an NPE.
1381
  Bugzilla 43292.
1382

    
1383
* Regession nested macrodefs with elements could cause StackOverFlow.
1384
  Bugzilla 43324.
1385

    
1386
* Some changes to <junit> broke third party tasks that extend it (like
1387
  Apache Cactus' Ant task).  The changes have been modified so that
1388
  subclases should now work again - without any changes to the
1389
  subclass.
1390

    
1391
Other changes:
1392
--------------
1393

    
1394
* Various small optimizations speed up common tasks such as <javac> on large
1395
  filesets, reducing both I/O and CPU usage.
1396

    
1397
* Profiling logger has been added with basic profiling capabilities.
1398

    
1399
* <script> now has basic support for JavaFX scripts
1400

    
1401
* SSH task can now take a command parameter containing the commands to execute.
1402
  This allows you to connect to a server and execute a number of commands
1403
  without constantly reconnecting for each command.
1404

    
1405
* Upgraded XML API to XML commons version 1.3.04.
1406

    
1407
* Upgraded to Xerces 2.9.0
1408

    
1409
* <script> can now work with bsf.jar and js.jar in its <classpath>.
1410

    
1411
* add errorProperty and updatedProperty to <javac>
1412
  Bugzilla 35637 and 28941.
1413

    
1414
* add classpathref attribute to <whichresource>
1415
  Bugzilla 41158.
1416

    
1417
* reduce logging noise of <apply skipemptyfilesets="true">
1418
  Bugzilla 29154
1419

    
1420
* Show Previous Revision in the tagdiff.xsl stylesheet
1421
  Bugzilla 29143
1422

    
1423
* Allow <mapper refid> to refer directly to a FileNameMapper instance.
1424

    
1425
* If you try and use a type in a namespace (or an antlib), and the type is not
1426
  recognized but there are other definitions in that namespace, Ant lists what
1427
  the known definitions are. This helps you find spelling errors.
1428

    
1429
* Add a <last> resource collection, corresponding to <first>.
1430

    
1431
* Add new <truncate> task.
1432

    
1433
* <junitreport> xsl stylesheets allow setting the title used in <title> and <h1> tags by
1434
  using <report><param> element.  Bugzilla 41742.
1435

    
1436
* Add IgnoreDependenciesExecutor for weird cases when the user wants to run
1437
  only the targets explicitly specified.
1438

    
1439
* Patternset allows nested inverted patternsets using <invert>.
1440

    
1441
* <manifest> checks for validity of attribute names.
1442

    
1443
* JUnitVersionHelper.getTestCaseClassName is now public. Bugzilla 42231
1444

    
1445
* <string> resource supports nested text. Bugzilla bug 42276
1446

    
1447
* <scriptdef> now sources scripts from nested resources/resource collections. This lets you
1448
  define scripts in JARs, remote URLs, or any other supported resource. Bugzilla report 41597.
1449

    
1450
* <concat> is now usable as a single-element ResourceCollection.
1451

    
1452
* It is now possible to provide the value of a <striplinecomments> filter's
1453
  <comment> nested element as nested text instead of using the 'value'
1454
  attribute.
1455

    
1456
* A new logger, BigProjectLogger, lists the project name with every target   
1457

    
1458
* Default text added to macrodef. Bugzilla report 42301.
1459

    
1460
* "rawblobs" attribute added to SQL task.
1461

    
1462
* Add new retry task container.
1463

    
1464
* <jar> has a new strict attribute that checks if the jar complies with
1465
  the jar packaging version specification.
1466

    
1467
* <javac> has a new attribute - includeDestClasses.
1468
  Bugzilla 40776.
1469

    
1470
* <fileset> has a new attribute - errorOnMissingDir.
1471
  Bugzilla 11270.
1472

    
1473
* <javac> handles package-info.java files, there were repeatedly compiled.
1474
  Bugzilla 43114.
1475

    
1476
* SecureInputHandler added to use Java 6 System.console().readPassword()
1477
  when available.
1478

    
1479
Changes from Ant 1.6.5 to Ant 1.7.0
1480
===================================
1481

    
1482
Changes that could break older environments:
1483
-------------------------------------------
1484

    
1485
* Initial support for JDK 6 (JSR 223) scripting.
1486
  <*script*> tasks will now use javax.scripting if BSF is
1487
  not available, or if explicitly requested by using
1488
  a "manager" attribute.
1489

    
1490
* Removed launcher classes from nodeps jar.
1491

    
1492
* <classconstants> filter reader uses ISO-8859-1 encoding to read
1493
  the java class file. Bugzilla report 33604.
1494

    
1495
* Defer reference process. Bugzilla 36955, 34458, 37688.
1496
  This may break build files in which a reference was set in a target which was
1497
  never executed. Historically, Ant would set the reference early on, during parse
1498
  time, so the datatype would be defined. Now it requires the reference to have
1499
  been in a bit of the build file which was actually executed. If you get
1500
  an error about an undefined reference, locate the reference and move it somewhere
1501
  where it is used, or fix the depends attribute of the target in question to
1502
  depend on the target which defines the reference/datatype.
1503
  As a result of testing on real live build scripts, a fall-back mechanism
1504
  was put it place to allow references that are out-of-band to be resolved. If
1505
  this happens a big warning message is logged. This fall-back mechanism will
1506
  be removed in Ant 1.8.0.
1507

    
1508
* <script> and <scriptdef> now set the current thread context.
1509

    
1510
* Unrestrict the dbvendor names in the websphere element of the ejbjar task.
1511
  Bugzilla Report 40475.
1512

    
1513
* <env> nested element in <java>, <exec> and others is now case-insensitive
1514
  for windows OS. Bugzilla Report 28874.
1515

    
1516
* Removed support for xalan1 completely. Users of Xalan1 for Ant builds will
1517
  have to stay at ant 1.6.5 or upgrade to xalan2.
1518

    
1519
* Use org.apache.log4j.Logger instead of org.apache.log4j.Category.
1520
  Category has been deprecated for ~2 years and has been removed from
1521
  the log4j code.  Logger was introduced in log4j 1.2 so users of
1522
  log4j 1.1 and log4j 1.0 need to upgrade to a newer version of log4j.
1523
  Bugzilla Report 31951.
1524

    
1525
* build.sysclasspath now also affects the bootclasspath handling of
1526
  spawned Java VMs.  If you set build.sysclasspath to anything other
1527
  than "ignore" (or leave it unset, since "ignore" is the default when
1528
  it comes to bootclasspath handling), then the bootclasspath of the
1529
  VM running Ant will be added to the bootclasspath you've specified.
1530

    
1531
* The <java fork="false"> now as per default installs a security manager
1532
  using the default permissions. This is now independent of the
1533
  failonerror attribute.  Bugzilla report 33361.
1534

    
1535
* <signjar> now notices when the jar and signedjar are equal, and switches
1536
  to the same dependency logic as when signedjar is omitted. This may break
1537
  something that depended upon signing in this situation. However, since
1538
  invoking the JDK jarsigner program with -signedjar set to the source jar
1539
  actually crashes the JVM on our (Java1.5) systems, we don't think any
1540
  build files which actually worked will be affected by the change.
1541

    
1542
* <signjar> used to ignore a nested fileset when a jar was also provided as an
1543
  attribute, printing a warning message; now it signs files in the fileset.
1544

    
1545
* An improved method of handling timestamp granularity differences between
1546
  client and server was added to the <ftp> task.  FTP servers typically
1547
  have HH:mm timestamps whereas local filesystems have HH:mm:ss timestamps.
1548
  Previously, this required tweaking with the timediffmillis attribute
1549
  which also was used to handle timezone differences.  Now, there is a new
1550
  timestampgranularity attribute.  The default value for get operations is 0
1551
  since the user has the more powerful preservelastmodified attribute to work
1552
  with.  Since this is not available on put operations the default value
1553
  adds a minute to the server timestamp in order to account for this,
1554
  Scripts which previously used timediffmillis to do this compensation may
1555
  need to be rewritten.  timediffmillis has now been deprecated.
1556

    
1557
* Support for the XSL:P XML parser has been removed.
1558
  Bugzilla Report 23455.
1559

    
1560
* Visual Age for Java optional tasks removed as the required library is no
1561
  longer available.
1562

    
1563
* Testlet (test) optional task removed as the required library is no
1564
  longer available.
1565

    
1566
* IContract optional task removed as the required library is no
1567
  longer available.
1568

    
1569
* Metamata (maudit, mmetrics, and mparse tasks) removed as the required 
1570
  library is no longer available.
1571

    
1572
* Sitraka (jpcoverage, jpcovmerge, jpcovreport) tasks suppressed as the 
1573
  required library is no longer available.
1574

    
1575
* <fixcrlf> used \r (Mac) line endings on OS X, whose proper line separator
1576
  is \n (Unix).  Bugzilla report 39585.
1577

    
1578
* <scp> now optionally supports the sftp protocol, you may need a
1579
  newer jsch.jar.  Bugzilla Report 39373.
1580

    
1581
* Ant launcher program prints errors to stderr, and exits with a 2 exit code
1582
  value if, for any reason, it cannot actually start Ant proper. This will only
1583
  affect programs/scripts that called the launcher and which did not want to
1584
  receive an error if Ant itself would not start
1585

    
1586
* All .NET tasks are now deprecated in favor of the new .NET Antlib:
1587
  http://ant.apache.org/antlibs/dotnet/index.html
1588

    
1589
Fixed bugs:
1590
-----------
1591
* Directory deletion did not work properly.
1592
  Bugzilla 40972.
1593

    
1594
* docletpath attribute of javadoc was ignored.
1595
  Bugzilla 40900.
1596

    
1597
* Fixed incorrect recursion in DOMUtil.listChildNodes().
1598
  Bugzilla 40918.
1599

    
1600
* CompressedResource.compareTo() did not
1601
  take comparison with another CompressedResource into account.
1602
  Bugzilla 40949.
1603

    
1604
* Avoid possible NPE in Jar.java.
1605
  Bugzilla 40847.
1606

    
1607
* regression in attribute prefix (+ others) for refid in zipfileset and tarfileset.
1608
  Bugzilla 41004, 30498.
1609

    
1610
* dependset failed if the basedir of a target fileset did not exist.
1611
  Bugzilla 40916.
1612

    
1613
* Recursive filtering encountered NullPointerExceptions under certain
1614
  circumstances.  Bugzilla 41086.
1615

    
1616
* XmlProperty overrides previously set property value when handling duplicate
1617
  elements. Bugzilla 41080.
1618

    
1619
* Having many tasks causes OOM.  Bugzilla 41049.
1620

    
1621
* Regression: <path> was evaluating nested content only once, so that it could
1622
  not e.g. pick up files that didn't exist the first time through.
1623
  Bugzilla 41151.
1624

    
1625
* OOM caused by IH holding on to classes and thus their classloaders.
1626
  Bugzilla 28283 and 33061.
1627

    
1628
* <delete> doesnt delete when defaultexcludes="false" and no includes is set
1629
  fixed. Bugzilla 40313.
1630

    
1631
* Behavior change of DirectoryScanner/AbstractFileset when conditional include
1632
  patterns are used. Bugzilla 40722.
1633

    
1634
* <javac> fails with NPE when compiling with eclipse ecj 3.1.x.
1635
  Bugzilla 40839.
1636

    
1637
* JUnitTestRunner had a NPE when unable to create parser, the exception
1638
  containing the error did not get reported. Bugzilla 36733.
1639

    
1640
* <checksum> with file and todir option failed. Bugzilla report 37386.
1641

    
1642
* <path location="loc"> was broken (Regression from beta1).
1643
  Bugzilla report 40547.
1644

    
1645
* Nested fileset in <cab> did not work. Bugzilla report 39439.
1646

    
1647
* The ant wrapper script should now correctly locate the java
1648
  executable in more recent IBM JDKs for AIX as well.
1649

    
1650
* URLResource did not close jar files, and also did not disconnect HTTPConnection (s).
1651

    
1652
* Error calling junitreport. Bugzilla 40595.
1653

    
1654
* <junittask/> created junitvmwatcher*.properties files but did not close and delete them.
1655

    
1656
* <xmlproperty> did not create properties for empty leaf elements.
1657
  Bugzilla report 26286.
1658

    
1659
* UnknownElement.maybeConfigure always configured.
1660
  Bugzilla report 40641.
1661

    
1662
* No check for refid when prefix attribute is set in zipfileset.
1663
  Bugzilla report 30498.
1664

    
1665
* Fix for junit4 issue introduced since beta2.
1666
  Bugzilla report 40682.
1667

    
1668
* Error in duplicate project name with <import> and <antcall>.
1669
  Bugzilla report 39920.
1670

    
1671
* junit4 did not work with fork=no and junit4 in $ANT_HOME/lib.
1672
  Bugzilla report 40697.
1673

    
1674
* PathConvert on Windows should process forward and back slashes equivalently.
1675
  Bugzilla report 32884.
1676

    
1677
* ant.bat now looks in %USERPROFILE% and %HOMEDRIVE%%HOMEPATH% in addition to
1678
  %HOME% for pre/post batch files. Bugzilla report 39298.
1679

    
1680
* The inheritance hierarchy of the legacy <path> type was changed; code built
1681
  against Ant 1.7 would therefore no longer execute on older versions of Ant.
1682
  Since <path> is historically heavily used this was undesirable, and since it
1683
  is also avoidable, the change to <path>'s taxonomy was reverted.
1684

    
1685
* <zip filesonly="true"> included empty directories.  Bugzilla report 40258.
1686

    
1687
* Invalid hash code of Target causes XmlLogger to fail.
1688
  Bugzilla report 40207.
1689

    
1690
* Macro element did not include top level Text. Bugzilla report 36803.
1691

    
1692
* AntClassLoader did not isolate resources when isolate was set. Bugzilla report 38747.
1693

    
1694
* Diagnostics broken when using java 1.4. Bugzilla report 40395.
1695

    
1696
* Exception reporting in <copy> was broken. Bugzilla report 40300.
1697

    
1698
* Handling of corrupt tar files, TarInputStream.read() never returns EOF.
1699
  Bugzilla report 39924.
1700

    
1701
* Some bugs in ReaderInputStream. Bugzilla report 39635.
1702

    
1703
* <antlr> did not recognise whether the target is up-to-date for html option.
1704
  Bugzilla report 38451.
1705

    
1706
* Documented minimal version of jsch now 0.1.29.
1707
  Bugzilla report 40333.
1708

    
1709
* <available> searched parent directories for files.
1710
  Bugzilla report 37148.
1711

    
1712
* The build could be halted if a file path contained more ".." components than
1713
  the actual depth of the preceding path. Now such paths are left
1714
  alone (meaning they will likely be treated as nonexistent
1715
  files). Bugzilla Report 40281.
1716

    
1717
* Converting a <dirset> to a string was broken. Bugzilla Report 39683.
1718

    
1719
* Manifests have improved line length handling, taking care of encoding.
1720
  Bug reports 37548 / 34425.
1721

    
1722
* <manifest> now closes the inputstream explicitly. Bug report 39628.
1723

    
1724
* <rpm> now also correctly searches the first element of the path.
1725
  Bug report 39345.
1726

    
1727
* ant.bat now handles classpath set to "". Bug report 38914.
1728

    
1729
* <junit> now supports JUnit 4. Bugzilla Report 38811.
1730

    
1731
* <junit> can now work with junit.jar in its <classpath>. Bugzilla
1732
  Report 38799.
1733

    
1734
* Some potential NullPointerExceptions, Bugzilla Reports 37765 and 38056.
1735

    
1736
* Problem when adding multiple filter files, Bugzilla Report 37341.
1737

    
1738
* Problem referencing jars specified by Class-Path attribute in manifest
1739
  of a ant task jar file, when this ant task jar file is located in
1740
  a directory with space, Bugzilla Report 37085.
1741

    
1742
* Backward incompatible change in ZipFileSet, Bugzilla Report 35824.
1743

    
1744
* Wrong replacement of file separator chars prevens junitbatchtest
1745
  from running correctly on files from a zipfileset. Bugzilla Report 35499.
1746

    
1747
* Calling close twice on ReaderInputStream gave a nullpointer exception.
1748
  Bugzilla Report 35544.
1749

    
1750
* Memory leak from IntrospectionHelper.getHelper(Class) in embedded
1751
  environments. Bugzilla Report 30162.
1752

    
1753
* Translate task does not remove tokens when a key is not found.
1754
  It logs a verbose message.  Bugzilla Report 13936.
1755

    
1756
* Incorrect task name with invalid "javac" task after a "presetdef".
1757
  Bugzilla reports 31389 and 29499.
1758

    
1759
* <manifest> was not printing warnings about invalid manifest elements.
1760
  Bugzilla report 32190.
1761

    
1762
* <replace> got out of memory on large files (part of report 32566).
1763
  <replace> can now handle files as long as there is enough disk space
1764
  available.
1765

    
1766
* Commandline.describeCommand() methods would attempt to describe
1767
  arguments even when none, other than the executable name, were present.
1768

    
1769
* Create signjar's helper ExecTask instance directly rather than by
1770
  typedef discovery mechanisms. Bugzilla report 33433.
1771

    
1772
* FileUtils.resolveFile() promised to return absolute files but
1773
  did not always do so.
1774

    
1775
* <ftp> failed to retrieve a file when the path towards the file contained
1776
  an element starting with . Bugzilla report 33770.
1777

    
1778
* "<rmic> always compiles on Java1.5" bugzilla report=33862. Fixed default
1779
  stub version to always be "compat", even on Java1.5+.
1780

    
1781
* The .NET compilation tasks failed if filenames given as references
1782
  contained spaces.  Bugzilla Report 27170.
1783

    
1784
* SQL task would try access result sets of statements that didn't
1785
  return any, causing problems with Informix IDS 9.2 and IBM DB2 8.1
1786
  FixPak 6 (or later). Bugzilla Reports 27162 and 29954.
1787

    
1788
* Task.init() was called twice for most tasks.  Bugzilla Report 34411.
1789

    
1790
* JavaTest testcases sometimes fail on windows. Bugzilla Report 34502.
1791

    
1792
* Targets with identical name work in imported project. Bugzilla Report 34566.
1793

    
1794
* DemuxOutputStream now uses a WeakHashMap to store the thread-stream mapping,
1795
  to avoid holding on to thread references after they terminate.
1796

    
1797
* <xmlvalidate> and <schemavalidate> create a new parser for every file in a
1798
  fileset, and so validate multiple files properly. Bugzilla Report 32791.
1799

    
1800
* <tar> / <untar> now accepts files upto 8GB, <tar> gives an error if larger
1801
  files are to be included. This is the POSIX size limit.
1802

    
1803
* <junitreport> removed line-breaks from stack-traces.  Bugzilla
1804
  Report 34963.
1805

    
1806
* Off-by-one error in environment setup for execution under OpenVMS fixed.
1807

    
1808
* Bugzilla report 36171: -noclasspath crashes ant if no system
1809
  classpath is set.
1810

    
1811
* <pvcs> used wrong switch for retrieving revisions by label.
1812
  Bugzilla Report 36359.
1813

    
1814
* <sshexec> closed System.out, disabling output on second and subsequent
1815
  invocations.  Bugzilla report 36302.
1816

    
1817
* <cvschangelog> was crashing with CVS versions >= 1.12.x due to change in
1818
  the date format. Bugzilla report 30962.
1819

    
1820
* The same IntrospectionHelper instance was continuously added as a listener
1821
  to project. Bugzilla report 37184.
1822

    
1823
* FileUtils.toURI() was not encoding non-ASCII characters to ASCII,
1824
  causing impossibility to process XML entities referenced by XML
1825
  documents in non ASCII paths. Bugzilla report 37348.
1826

    
1827
* > 1 ssh invocations to a given host would fail. Bugzilla report 36207.
1828

    
1829
* EmailTask was eating SMTP error messages. Bugzilla report 37547.
1830

    
1831
* PropertySet API setMapper(...) didn't properly set up the Mapper.
1832
  Bugzilla report 37760.
1833

    
1834
* Proper return code for ant.bat. Bugzilla report 13655.
1835

    
1836
* Project not set on ChainReaderHelpers used by the Redirector.
1837
  Bugzilla report 37958.
1838

    
1839
* Copy task would fail on locked (or otherwise uncopyable) files even if
1840
  failonerror set to false. Bugzilla report 38175.
1841

    
1842
* <junit> task did not print all the Test names when using forkmode='once'.
1843
  Bugzilla report 37426.
1844

    
1845
* <available> could leak resources, Bugzilla Report 38260.
1846

    
1847
* Redirector called Thread.sleep in a synchronized block. Bugzilla
1848
  report 37767.
1849

    
1850
* CCUnlock's objselect attribute could exhibit unpredictable behavior;
1851
  standardized improperly included objselect and objsel property accessors to
1852
  delegate to the inherited objSelect property accessor. Bugzilla report 37766.
1853

    
1854
* <unzip> and <untar> now correctly merge multiple nested patternsets.
1855
  Bugzilla Report 38973.
1856

    
1857
* On case-insensitive filesystems, a <move> to change filename case
1858
  erroneously deleted the "destination" file before attempting to rename
1859
  the source file.  Bugzilla 37701.
1860

    
1861
* <scp> can now handle uris with @s other than the final one denoting the
1862
  domain.  Bugzilla 38082.
1863

    
1864
* If the class invoked by the <java> task threw a ClassNotFoundException,
1865
  this was misinterpreted as the specified class itself not being found.
1866

    
1867
* <echoproperties> setPrefix javadoc claimed null or empty prefix would be
1868
  ignored; instead an error was thrown.  Bugzilla report 39954.
1869

    
1870
* <get> would fetch files that were up to date, because it used > in a
1871
  remote/local timestamp comparison, not >=. Bugzilla 35607.
1872

    
1873
* <xslt> passes the current file (name + directory) to the
1874
  stylesheet/transformation.  xsl-parameter name is configurable.
1875
  Bugzilla report 21042.
1876

    
1877
* The <zip> API allowed creation of directories in file-only archives; a
1878
  habitual offender was the subclassed <jar>, which included META-INF/ in
1879
  the destination file regardless of whether filesonly was set to true.
1880

    
1881
* <rmic> has a new adapter, xnew, to use the -XNew back end on java1.5+.
1882
  By forking rmic, this works on java1.6+. Bugzilla report 38732.
1883

    
1884
* Copy of UnknownElement in macroinstance was not recursive.
1885
  Bugzilla report 40238.
1886

    
1887
* Mixing of add and addConfigured methods in Mapper/ChainedMapper
1888
  causes incorrect chaining. Bugzilla report 40228.
1889

    
1890
Other changes:
1891
--------------
1892

    
1893
* Warn user when a reference in the form "${refid}" cannot be resolved as this
1894
  is a sign they probably meant "refid" (misuse of property expansion syntax).
1895

    
1896
* Add dtd to javadoc for junit.
1897
  Bugzilla 40754.
1898

    
1899
* Add quiet attribute to loadfile/resource.
1900
  Bugzilla 38249.
1901

    
1902
* Make Locator#fromURI also append the drive letter when running under Windows
1903
  with JDK 1.3 or 1.2.
1904

    
1905
* Do not uppercase the drive letters systematically in FileUtils#normalize.
1906

    
1907
* Java 5 enumerations may now be used as values in XML attributes in place of
1908
  EnumeratedAttribute. Bugzilla 41058.
1909

    
1910
* Create a pom file for ant-testutil and add ant-testutil.jar to the ant
1911
  distribution. Bugzilla 40980.
1912

    
1913
* Roll back automatic proxy enabling on Java 1.5. It broke things like
1914
  Oracle JDBC drivers, and Ant itself on IBM's JVM on AIX, and didnt
1915
  seem to work to well the rest of the time.
1916
  To enable the feature, use the -autoproxy command line option.
1917

    
1918
* Upgraded XML API and parser to Xerces 2.8.1
1919

    
1920
* A code review of some threaded logic has tightened up the synchronization
1921
  of Watchdog, ExecuteWatchdog and ExecuteJava, which could reduce the occurence
1922
  of race conditions here, especially on Java1.5+.
1923

    
1924
* Allow broken reference build files. The defer reference processing would
1925
  break too many files - so allow them with a warning.
1926

    
1927
* Removed dependency on sun.misc.UUEncoder for UUMailer.
1928

    
1929
* Added regex attribute to the echoproperties task.
1930
  Bugzilla 40019.
1931

    
1932
* <war> task now allows you to omit the web.xml file. as this is optional
1933
  in the servlet 2.5 and Java EE 5 APIs. set needxmlfile="false" to
1934
  avoid a missing web.xml file from halting the build.
1935

    
1936
* Diagnostics catches and logs security exceptions when accessing system properties.
1937

    
1938
* <javadoc> useexternalfile now applies to all command line arguments
1939
  of javadoc. Bugzilla report 40852.
1940

    
1941
* javadoc/tag@description is now set to the name if description is
1942
  not specified. Bugzill report 32927.
1943

    
1944
* Some performance improvements, including Bugzilla report 25778.
1945

    
1946
* Add <matches> condition. Bugzilla report 28883.
1947

    
1948
* Extending JAR-Task for SPI. Bugzilla report 31520.
1949

    
1950
* Added <tokens> resource collection for convenient creation of string
1951
  resources from other resources' content. Inspired by Bugzilla 40504.
1952

    
1953
* Added <compare> resource selector to select resources based on the
1954
  results of their comparison to other resources.
1955

    
1956
* Added outputtoformatters attribute to <junit> to allow suppression
1957
  of noisey tests. Bugzilla report 12817.
1958

    
1959
* Log level of message 'Overriding previous definition of reference to'
1960
  set to Verbose. Bugzilla report 17240.
1961

    
1962
* Added setbeans attribute to <script> to allow <script>'s to be
1963
  run without referencing all references.
1964
  Bugzilla report 37688.
1965

    
1966
* Added classpath attribute and nested element to <script> to allow
1967
  the language jars to be specified in the build script.
1968
  Bugzilla report 29676.
1969

    
1970
* Trim the driver attribute on the <sql> task. Bugzilla report 21228.
1971

    
1972
* Allow (jar) files as well as directories to be given to jdepend.
1973
  Bugzilla report 28865.
1974

    
1975
* Convert SplashTask to use NOT sun internal classes.
1976
  Bugzilla report 35619.
1977

    
1978
* Made PatternSet#hasPatterns public to allow custom filesets access.
1979
  Bugzilla report 36772.
1980

    
1981
* Added searchparents attribute to <available>. Bugzilla report 39549.
1982

    
1983
* Tasks that don't extend Ant's Task class will now get the build file
1984
  location reflected into a method of the signature void setLocation(Location)
1985
  - if such a method exists.
1986

    
1987
* Remove needless synchronization in DirectoryScanner.
1988
  Bugzilla report 40237.
1989

    
1990
* Improved recursion detection for lines with multiple matches of same token
1991
  on a single line.  Bugzilla report 38456.
1992

    
1993
* Task will now log correctly even if no project is set.
1994
  Bugzilla report 38458.
1995

    
1996
* Use alternative names for the command line arguments in javac. Bugzilla
1997
  Report 37546.
1998

    
1999
* The Reference class now has a project field that will get
2000
  used (if set) in preference to the passed in project, when
2001
  dereferencing the reference. Bugzilla Report 25777.
2002

    
2003
* On DOS and Netware, filenames beginning with a drive letter
2004
  and followed by a colon but with no directory separator following
2005
  the colon are no longer (incorrectly) accepted as absolute pathnames
2006
  by FileUtils.normalize() and FileUtils.isAbsolutePath().  Netware
2007
  volumes can still be specified without an intervening separator.
2008
  UNC pathnames on Windows must include a server and share name, i.e.
2009
  "\\a\b" to be considered valid absolute paths.
2010

    
2011
* A bug in SQLExec would prevent the execution of trailing,
2012
  non-semicolon-delimited statements.  Bugzilla Report 37764.
2013

    
2014
* InputHandler implementations may now call InputRequest.getDefaultValue()
2015
  if they wish. The default handler uses this also. Bugzilla report 28621.
2016

    
2017
* Took in bugzilla report 39320, "Simple code cleanups"
2018

    
2019
* Improve compatibility with GNU Classpath and java versions prior to
2020
  1.5. Bugzilla 39027.
2021

    
2022
* ${ant.core.lib} may now be used to refer to the library containing the
2023
  Ant classes, for instance useful when compiling tasks.
2024

    
2025
* Minor performance improvements Bugzilla report 37777
2026

    
2027
* New task <manifestclasspath> converts a path into a property
2028
  suitable as the value for a manifest's Class-Path attribute.
2029

    
2030
* Fixed references to obsoleted CVS web site. Bugzilla Report 36854.
2031

    
2032
* Log fine-grained events at verbose level from JUnit. Bugzilla report 31885.
2033

    
2034
* <WsdlToDotnet> and <style> are now deprecated in favor of <wsdltodotnet> and
2035
  <xslt>, respectively. Bugzilla report 25832.
2036

    
2037
* <echoproperties> now (alphanumerically) sorts the property list
2038
  before echoing. Bugzilla report 18976.
2039

    
2040
* A new base class DispatchTask has been added to facilitate elegant
2041
  creation of tasks with multiple actions.
2042

    
2043
* Major revision of <wsdltodotnet>. Supports mono wsdl and the microsoft
2044
  wsdl run on mono, as well as most of the .NET WSE2.0 options. Extra
2045
  schemas (files or urls) can be named in the <schema> element.
2046
  Compilers can be selected using the compiler attribute, which defaults
2047
  to "microsoft" on windows, and "mono" on everything else.
2048

    
2049
* It is now possible to specify the pattern created/parsed by <checksum>.
2050
  Bugzilla Report 16539.
2051

    
2052
* Added a new "failall" value for the onerror attribute of <typedef>.
2053
  Bugzilla report 31685.
2054

    
2055
* unzip/unwar/unjar/untar now supports a nested mapper, which lets you unzip
2056
  in useful ways.
2057

    
2058
* Junit task -- display suite first.
2059
  Bugzilla report 31962.
2060

    
2061
* Added isSigned condition and signedselector selector
2062
  Bugzilla report 32126.
2063

    
2064
* Added preserveLastModified attribute to signjar task.
2065
  Bugzilla report 30987.
2066

    
2067
* Added <scriptcondition> condition, for inline scripted conditions
2068

    
2069
* Added <xor> condition for exclusive-or combining of nested conditions.
2070

    
2071
* Added <scriptselector> selector for scripted file selection
2072

    
2073
* ant -diagnostics lists contents of ${user.home}/.ant/lib , and
2074
  checks that the java.io.tmpdir directory exists and is writeable.
2075

    
2076
* mail task accepts nested header element.  Bugzilla report 24713.
2077

    
2078
* zip/jar/war/ear supports level attribute for deflate compression level.
2079
  Bugzilla report 25513.
2080

    
2081
* Added loginputstring attribute to the redirector type.
2082

    
2083
* Tighten security by sending storepass and keypass to signjar
2084
  via the input stream of the forked process.
2085

    
2086
* New task <schemavalidate> extends <xmlvalidate> with extra support
2087
  for XML Schema (XSD) files.
2088

    
2089
* <fixcrlf> supports a file attribute for easy fixup of a single file.
2090

    
2091
* New condition <parsersupports> which can look for XML parser feature or
2092
  property support in the parser Ant is using.
2093

    
2094
* fixcrlf can be used in a filterchain.
2095

    
2096
* <sync> has a new nested element <preserveInTarget> that can be used
2097
  to protect extra-content in the target directory.  Bugzilla Report
2098
  21832.
2099

    
2100
* <signjar> now supports:
2101
  -nested filesets at the same time as the jar attribute
2102
  -a destDir attribute with the appropriate dependency logic, which
2103
   can be used with the jar attribute or nested filesets
2104
  -a mapper to permit filename remapping on signing
2105
  -tsaurl and tsacert attributes for timestamped JAR signing
2106
  -nested <sysproperty> elements, which can be used for proxy setup
2107
  and the like
2108

    
2109
* The linecontains and linecontainsregexp filterreaders now support a
2110
  negate attribute to select lines -not- containing specified text.
2111
  Bugzilla Report 34374.
2112

    
2113
* <os> condition adds "winnt" as a family which can be tested. This is
2114
  all windows platforms other than the Win9x line or Windows CE.
2115

    
2116
* <exec> (and hence, <apply> and any other derived classes) have an OsFamily
2117
  attribute, which can restrict execution to a single OS family.
2118

    
2119
* Added "backtrace" attribute to macrodef. Bugzilla report 27219.
2120

    
2121
* Ant main provides some diagnostics if it ever sees a -cp or -lib option,
2122
  as this is indicative of a script mismatch. Bugzilla report 34860
2123

    
2124
* <junitreport> prints a special message if supplied an empty XML File. This
2125
  can be caused by the test JVM exiting during a test, either via a
2126
  System.exit() call or a JVM crash.
2127

    
2128
* Project name is now used for *all* targets so one can write consistent import
2129
  build files. Bugzilla report 28444.
2130

    
2131
* New condition <typefound> that can be used to probe for the declaration
2132
  and implementation of a task, type, preset, macro, scriptdef, whatever.
2133
  As it tests for the implementation, it can be used to check for optional
2134
  tasks being available.
2135

    
2136
* Check for 1.5.* Ant main class. (weblogic.jar in classpath reports)
2137

    
2138
* New condition <isfailure> that tests the return-code of an executable. This
2139
  contains platform-specific logic and is better than comparing the result with
2140
  "0".
2141

    
2142
* Added initial support for Resource Collections, including the
2143
  resourcecount task.
2144

    
2145
* property attribute of pathconvert is now optional. If omitted the
2146
  result will be written to the log.
2147

    
2148
* New mapper, <scriptmapper>, supports scripted mapping of source files/strings
2149
  to destination strings.
2150

    
2151
* Add the echoxml task. This will echo nested XML to a file, with
2152
  the normal <?xml ?> processor instruction. UTF-8 encoding only; no-namespace
2153
  support.
2154

    
2155
* Try to make subprojects of custom Project subclasses instances of the
2156
  same type. Bugzilla report 17901.
2157

    
2158
* <ssh> and <scp> support keyboard-interactive authentication now.
2159

    
2160
* <javadoc> now supports -breakiterator for custom doclets if Ant is
2161
  running on JSE 5.0 or higher.  Bugzilla Report: 34580.
2162

    
2163
* New logger, TimestampedLogger, that prints the wall time that a build
2164
  finished/failed. Use with
2165
  -logger org.apache.tools.ant.listener.TimestampedLogger
2166

    
2167
* <junitreport> now generates pages alltests-errors.html and
2168
  alltests-fails.html, that list only the errors and failures, respectively.
2169
  Bugzilla Report: 36226
2170

    
2171
* New task <makeurl> that can turn a file reference into an absolute file://
2172
  url; and nested filesets/paths into a (space, comma, whatever) separated
2173
  list of URLs. Useful for RMI classpath setup, amongst other things.
2174

    
2175
* <xslt> now accepts nested FileNameMappers e.g. <globmapper>.
2176
  Bugzilla report 37604.
2177

    
2178
* New task <loadresource> that accompanies <loadfile> for non file resources.
2179

    
2180
* <echo> now supports an encoding when saving to a file.
2181

    
2182
* New GreedyInputHandler added.
2183

    
2184
* Add textfile attribute to the <filesmatch> condition. When true, the text
2185
  contents of the two files are compared, ignoring line ending differences.
2186

    
2187
* New <resourcesmatch> condition.
2188

    
2189
* Added the onmissingfiltersfile attribute to filterset. Bugzilla report 19845.
2190

    
2191
* Added the inline handler element to the input task.
2192

    
2193
* <sql> supports property expansion if you set the expandProperties
2194
  attribute. By default it does not expand properties, something we
2195
  dare not change for fear of breaking complex SQL operations in
2196
  existing files.
2197

    
2198
* <javadoc>'s packagenames attribute is now optional and defaults to "*".
2199

    
2200
* <javac>'s source and target attributes as well as <javadoc>'s source
2201
  attribute will read default values from the properties
2202
  ant.build.javac.source and ant.build.javac.target.
2203

    
2204
* Handling of ' ', '#' in CLASSPATH and '#' in -lib (cannot use ' '
2205
  in -lib on UNIX at the moment). Bugzilla Report 39295.
2206

    
2207
* <scp> now optionally supports the sftp protocol.  Bugzilla Report 39373.
2208

    
2209
* Resources can now be used to indicate the location of the stylesheet to use
2210
  in <xslt>. Bugzilla Report 39407.
2211

    
2212
* New <antversion> condition. Bugzilla report 32804.
2213

    
2214
* ReplaceTokens should allow properties files. Bugzilla report 39688.
2215

    
2216
* FTP Account could not be specified in ant FTP task. Bugzilla report 39720.
2217

    
2218
* Minor performance updates. Bugzilla report 39565.
2219

    
2220
* New deleteonexit attribute for the <tempfile> task. Bugzilla report 39842.
2221
  Remember that the exit of the JVM can be a long time coming,
2222
  especially under an IDE. Don't rely on this being called.
2223

    
2224
* <scriptdef>-created scripts have support for nested text. All text
2225
  passed to a scripted task can be accessed via self.text.
2226

    
2227
* <fixcrlf> now supports an outputencoding attribute.  Bugzilla report 39697.
2228

    
2229
* <junitreport> now supports nested XSL parameters. Bugzilla report 39708.
2230

    
2231
* <javacc> has a jdkversion attribute to pass the desired JDK version
2232
  down to javacc.  Bugzilla report 38715.
2233

    
2234
* <cvs> prints passfile info at -verbose level instead of -info. Bugzilla
2235
  report 35268
2236

    
2237
* When <javac> can't find the compiler class, it prints out java.home for
2238
  immediate diagnostics
2239

    
2240
* Ant launcher now supports a -main attribute so that you can specify
2241
  an extension class to the built in org.apache.tools.ant.Main
2242
  class. This class must implement the interface AntMain
2243

    
2244
Changes from Ant 1.6.4 to Ant 1.6.5
2245
===================================
2246

    
2247
Changes that could break older environments:
2248
--------------------------------------------
2249

    
2250
Fixed bugs:
2251
-----------
2252

    
2253
* <move> was unable to replace existing files or write into
2254
  existing directories.  Bugzilla report 34962.
2255

    
2256
* <macrodef> with redefined default values was incorrect. (Fix for
2257
   31215 had a bug). Bugzilla report 35109.
2258

    
2259
* <javadoc> will convert backslashes to forwardslashes when generating file
2260
  list by useexternalfile. Bugzilla report 27814.
2261

    
2262
Changes from Ant 1.6.3 to Ant 1.6.4
2263
===================================
2264

    
2265
Changes that could break older environments:
2266
--------------------------------------------
2267
* <ftp> task has had a number of changes.  Uptodate calculation previously
2268
  did not call a file uptodate if the source timestamp and the destination
2269
  timestamp were equal. Bugzilla report 34941.  Any script that attempted
2270
  to compensate for this by using the timediffmillis attribute might need
2271
  to be tweaked.
2272

    
2273

    
2274
Fixed bugs:
2275
-----------
2276

    
2277
* Sun javah failed with java.lang.NoClassDefFoundError.
2278
  Bugzilla report 34681.
2279

    
2280
* DirectoryScanner.slowScan() was broken. Bugzilla report 34722.
2281

    
2282
* DirectoryScanner.scan() could throw a NullPointerException on
2283
  case-insensitive filesystems (read Windows or MacOS X).
2284

    
2285
* Get w/authentication failed with ArrayOutOfBoundsExceptions.
2286
  Bugzilla report 34734.
2287

    
2288
* Granularity attribute for <sync> task was undocumented.
2289
  Bugzilla report 34871.
2290

    
2291
* <unzip> and <untar> could leave file handles open on invalid
2292
  archives.  Bugzilla report 34893.
2293

    
2294
* propertyset threw NPE with nested, mapped propertysets.
2295

    
2296
Other changes:
2297
--------------
2298

    
2299
* AntXMLContext.setCurrentTargets() is now public. Bugzilla report 34680.
2300

    
2301
Changes from Ant 1.6.2 to Ant 1.6.3
2302
===================================
2303

    
2304
Changes that could break older environments:
2305
--------------------------------------------
2306

    
2307
* The subant task used the canonical version of a file path. This
2308
  has been changed to use the absolute path. Bugzilla 30438.
2309

    
2310
* Tar now writes two EOF blocks rather than one.
2311
  Bugzilla report 28776
2312

    
2313
* The Reference object now has a project field which it uses in preference
2314
  to the project passed in. This allows composite references to be
2315
  handled to nested projects.
2316
  Bugzilla report 25777
2317

    
2318
* <junit> with filtertrace="true" will now also swallow lines for the
2319
  sun.reflect package.  If you need to see them in your stack trace,
2320
  you must set filtertrace to false.
2321
  Bugzilla Report 22758
2322

    
2323
* The jikes compiler adapter now supports -bootclasspath, -extdirs and
2324
  -sourcepath and also uses the same logic for debug flags as javac.
2325
  This means, the jikes compiler adapter now requires Jikes 1.15 or later.
2326
  Bugzilla Reports 25868, 26404 and 32609.
2327

    
2328
* The gcj compiler adapter used to include the Java runtime classes
2329
  even if includeJavaRuntime was set to false, unless the
2330
  bootclasspath has been specified as well.  It will now always adhere
2331
  to includeJavaRuntime, you may need to set it to true explicitly now
2332
  if you relied on the old behavior.
2333

    
2334
Other changes:
2335
--------------
2336

    
2337
* <javadoc> can now take an attribute 'executable'. Bugzilla report 30606.
2338

    
2339
* New attribute ignorecontents for <different> selector
2340

    
2341
* Javadoc fixes for Location, Project, and RuntimeConfigurable
2342
  Bugzilla 30160.
2343

    
2344
* Enable to choose the regexp implementation without system property.
2345
  Bugzilla Report 15390.
2346

    
2347
* Expose objects and methods in IntrospectionHelper. Bugzilla Report 30794.
2348

    
2349
* Allow file attribute of <move> to rename a directory.
2350
  Bugzilla Report 22863.
2351

    
2352
* Add xmlcatalog nested element to XmlProperty. Bugzilla report 27053.
2353

    
2354
* New attribute alwayslog for <redirector> type.
2355

    
2356
* Added <target> nested elements to <ant> and <antcall> to allow
2357
  specification of multiple sub-build targets, which are executed
2358
  with a single dependency analysis.
2359

    
2360
* Refactored Target invocation into org.apache.tools.ant.Executor
2361
  implementations.  Bugzilla Reports 21421, 29248.
2362

    
2363
* <rmic> now also supports Kaffe's rmic version shipping with Kaffe
2364
  1.1.2 and above.
2365

    
2366
* added casesensitive attribute to <globmapper> and <regexpmapper>
2367
  Bugzilla report 16686
2368

    
2369
* added handledirsep attribute to <globmapper> and <regexpmapper>
2370
  Bugzilla report 32487
2371

    
2372
* added a new mapper <filtermapper>
2373

    
2374
* When a BuildListener tried to access System.err or System.out, Ant
2375
  would have thrown an exception - this has been changed.  Ant now
2376
  silently ignores the message.  BuildListeners still should avoid
2377
  accessing either stream.
2378

    
2379
* Added a comment attribute to the zip task.
2380
  Bugzilla report 22793.
2381

    
2382
* Overloaded FileUtils.createNewFile with a boolean mkdirs attribute
2383
  to create nonexistent parent directories.
2384

    
2385
* <apply> has a new "force" attribute that, when true, disables
2386
  checking of target files.
2387

    
2388
* Made the dest attribute of the apply task optional; mapped target
2389
  filenames will be interpreted as absolute pathnames when dest is omitted.
2390

    
2391
* Changed default tempdir for <javac> from user.dir to java.io.tmpdir.
2392

    
2393
* Added searchpath attribute to <exec> for searching path variable(s)
2394
  when resolveexecutable = true.
2395

    
2396
* Added revision and userid attributes to <pvcs> documentation.
2397

    
2398
* Added support to the touch task for a mkdirs attribute to create
2399
  nonexistent parent directories before touching new files.
2400

    
2401
* Added support to the touch task for a pattern attribute to allow
2402
  alternate datetime formats.
2403

    
2404
* Added support to the touch task to map touched files using a nested
2405
  mapper element.
2406

    
2407
* Added support to the touch task for a verbose attribute to suppress
2408
  logging of new file creation.
2409

    
2410
* bad link in docs to the enhancement page in bugzilla.
2411
  Bugzilla report 33252.
2412

    
2413
* Added length task to get strings' and files' lengths.
2414

    
2415
* <native2ascii> and <javah> now also support Kaffe's versions.
2416

    
2417
* Recursive token expansion in a filterset can now be disabled by
2418
  setting its recurse attribute to false.
2419

    
2420
* Pathconvert no longer requires that one of (targetos|pathsep|dirsep)
2421
  be set; platform defaults are used when this is the case.
2422

    
2423
* Added preservelastmodified attribute to fixcrlf task. Bugzilla 25770.
2424

    
2425
* Added isfileselected condition.
2426

    
2427
* Added verbose="true|false" attribute to <subant>. When verbose is enabled,
2428
  the directory name is logged on entry and exit of the sub-build.
2429
  Bugzilla 33787.
2430

    
2431
* Added -nouserlib option to allow running ant without automatically loading
2432
  up ${user.home}/.lib/ant. This is useful when compiling ant, and antlibs.
2433
  Modified the build.sh and build.bat to use the option.
2434

    
2435
* Added -noclasspath option to allow running ant WITHOUT using CLASSPATH env
2436
  variable. Modified ant.bat to do this so that %CLASSPATH% is not looked at.
2437

    
2438
* Add else attribute to the condition task, which specifies an
2439
  optional alternate value to set the property to if the nested
2440
  condition evaluates to false. Bugzilla report 33074.
2441

    
2442
* Ant generated jar files should now be detected as jar files by
2443
  Solaris.  Bugzilla Report 32649.
2444

    
2445
* <rexec> with a single command should now work with unusal login
2446
  dialogs without special read/write pairs.  Bugzilla Report 26632.
2447

    
2448
* <csc>'s extraoptions can now contain multiple arguments.
2449
  Bugzilla Report 23599.
2450

    
2451
* <macrodef> with default values set by properties would be
2452
  seen as new definitions when called twice with different properties.
2453
  This was confusing so the definitions are now treated as similar.
2454
  Bugzilla Report 31215.
2455

    
2456
* <javadoc> has a new attribute "includenosourcepackages" that can be
2457
  used to document packages that don't hold source files but a
2458
  package.html file.  Bugzilla Report 25339.
2459

    
2460
* <rpm> has new attributes failonerror and quiet.
2461

    
2462
* Added two tutorials
2463
  - beginner: introduction into Ant
2464
  - task developers: using path, fileset etc
2465

    
2466
* a number of new attributes that allow the user to handle non-standard
2467
  server listing formats and time zone differences have been added in
2468
  the <ftp> task.
2469

    
2470

    
2471
Fixed bugs:
2472
-----------
2473

    
2474
* Do not pass on ThreadDeath when halting <java fork="false">. Bugzilla
2475
  32941.
2476

    
2477
* Killing a thread running <java fork="true"> (e.g. from an IDE) would
2478
  not stop the forked process. Bugzilla 31928.
2479

    
2480
* Programs run with <java fork="true"> can now accept standard input
2481
  from the Ant console.  (Programs run with <java fork="false"> could
2482
  already do so.)  Bugzilla 24918.
2483

    
2484
* AbstractCvsTask prematurely closed its outputStream and errorStream.
2485
  Bugzilla 30097.
2486

    
2487
* Impossible to use implicit classpath for <taskdef>
2488
  when Ant core loader != Java application loader and
2489
  Path.systemClassPath taken from ${java.class.path} Bugzilla 30161.
2490

    
2491
* MacroInstance did not clean up nested elements correctly in the execute
2492
  method, causing multiple use of the same macro instance with nested
2493
  elements to fail.
2494

    
2495
* checksum fileext property doc wrong. Bugzilla 30787.
2496

    
2497
* FTP task, getTimeDiff method was returning wrong value. Bugzilla 30595.
2498

    
2499
* make sure that Zip and its derivates call the createEmptyZip method when
2500
 there are no resources to zip/jar/...
2501

    
2502
* Zip task was not zipping when only empty directories were found.
2503
  Bugzilla 30365.
2504

    
2505
* Jar task was not including manifest files when duplicate="preserve" was
2506
  chosen. Bugzilla 32802.
2507

    
2508
* ant.bat was missing runAntNoClasspath label for goto.
2509
  Bugzilla 34510.
2510

    
2511
* Classpath was treated in the same way as -lib options. Bugzilla 28046.
2512

    
2513
* Manual page for cvsversion contained incorrect attributes and did not
2514
  say since 1.6.1. Bugzilla 31408.
2515

    
2516
* Typo in definition of <cvsversion> task causing it not to be defined.
2517
  Bugzilla 31403.
2518

    
2519
* Execution of top level tasks in imported files get delayed by targets.
2520
  Bugzilla report 31487.
2521

    
2522
* ExecTask executes checkConfiguration() even though os does not match.
2523
  Bugzilla report 31805.
2524

    
2525
* Concat task instance could not be run twice.
2526
  Bugzilla report 31814.
2527

    
2528
* NPE using XmlLogger and antlib.
2529
  Bugzilla report 31840.
2530

    
2531
* Properties.propertyNames() should be used instead of .keys().
2532
  Bugzilla report 27261.
2533

    
2534
* Target location is not set for default target.
2535
  Bugzilla report 32267.
2536

    
2537
* Incorrect classloader parent in junittask when using with
2538
  ant-junit.jar and junit.jar not in the project classloader. Bugzilla
2539
  report 28474.
2540

    
2541
* getResources() on the classloader returned by ClasspathUtils would
2542
  see each resource twice - if the resource is in the project
2543
  classpath and if the classloader is requested with a null path.
2544

    
2545
* XMLValidate used URL#getFile rather than the ant method FileUtils#fromURI
2546
  Bugzilla report 32508
2547

    
2548
* fixed Regexp-Mapper docs which gave outdated instructions (optional.jar)
2549
  Bugzilla report 28584
2550

    
2551
* <scp> using <fileset> didn't work with OpenSSH 3.9 and later.
2552
  Bugzilla report 31939
2553

    
2554
* <setproxy> failed to set user/password on some JDKs.
2555
  Bugzilla report 32667
2556

    
2557
* untar would go into infinite loop for some invalid tar files.
2558
  Bugzilla report 29877
2559

    
2560
* forked <javac> won't pass -source to a JDK 1.1 or 1.2 javac anymore.
2561
  Bugzilla report 32948
2562

    
2563
* propertyset references did not handle nested propertyset references.
2564

    
2565
* oata.types.Description.getDescription(Project) would throw a
2566
  NullPointerException when the "ant.targets" reference was unset.
2567

    
2568
* Wrapper scripts did not detect WINNT value of dynamic OS environment
2569
  variable when logged into workstations using Novell authentication.
2570
  Bugzilla Report 30366.
2571

    
2572
* DependScanner.getResource() always returned nonexistent resources,
2573
  even when the resource actually existed.  Bugzilla Report 30558.
2574

    
2575
* <apply> was broken with classfilesets.  Bugzilla Report 30567.
2576

    
2577
* <available> returned false positives when checking a file
2578
  passed in with the current basedir leading twice:
2579
  e.g. ${basedir}${file.separator}${basedir}${file.separator}foo .
2580

    
2581
* The first file open that took place when using input files with the
2582
  <exec>, <apply>, or <java> tasks was always logged to System.out
2583
  instead of to the managing Task.
2584

    
2585
* <telnet> and <rexec> would try to disconnect from servers they never
2586
  connetced to, potentially leading to exceptions in commons-net.
2587
  Bugzilla Report 33618.
2588

    
2589
* <zip> would drop files matched by defaultexcludes during updates.
2590
  Bugzilla Report 33412.
2591

    
2592
* <zip> couldn't store files with size between 2GB and 4GB (the
2593
  upper limit set by the ZIP format itself).  Bugzilla Report 33310.
2594

    
2595
* NPE when when <presetdef> tries to configure a task that
2596
  cannot be instantiated. Bugzilla Report 33689.
2597

    
2598
* <javac debug="false"> created an invalid command line when running
2599
  the Symantec Java compiler.
2600

    
2601
* Get with usetimestamp did not work on Java 1.2.
2602

    
2603
* Get with usetimestamp did not work when local timestamp roughly >= now.
2604

    
2605
* The framed JUnit report now handles multiple reports for the same
2606
  testcase properly.  Bugzilla Report 32745.
2607

    
2608
* <cab> didn't work for files with spaces in their names on Windows.
2609
  Bugzilla Report 17182.
2610

    
2611
* The VAJ tasks could fail if the project name contained characters
2612
  that need to get URL encoded.  Bugzilla Report 23322.
2613

    
2614
* TarInputStream#read() wasn't implemented correctly.  Bugzilla Report
2615
  34097.
2616

    
2617
* <xslt> failed to process file-hierarchies of more than one level if
2618
  scanincludeddirectories was true.  Bugzilla Report 24866.
2619

    
2620
* forkmode="perBatch" or "once" would ignore extension attributes that
2621
  had been specified for <formatter>s.  Bugzilla Report 32973.
2622

    
2623
* The refid attribute of the I/O redirector was not functional.
2624

    
2625
Changes from Ant 1.6.1 to Ant 1.6.2
2626
===================================
2627

    
2628
Changes that could break older environments:
2629
--------------------------------------------
2630

    
2631
* The import task used the canonical version of a file path. This
2632
  has been changed to use the absolute path. Bugzilla 28505.
2633

    
2634
* ant-xalan2.jar has been removed since the only class contained in it
2635
  didn't depend on Xalan-J 2 at all.  Its sole dependency has always
2636
  been TraX and so it has been merged into ant-trax.jar.
2637

    
2638
* All exceptions thrown by tasks are now wrapped in a buildexception
2639
  giving the location in the buildfile of the task.
2640

    
2641
* Nested elements for namespaced tasks and types may belong to the
2642
  Ant default namespace as well as the task's or type's namespace.
2643

    
2644
* <junitreport> will very likely no longer work with Xalan-J 1.
2645

    
2646
  Note that Xalan-J 1 has been deprecated for a very long time and we
2647
  highly recommend that you upgrade.
2648

    
2649
  If you really need to continue using Xalan-J 1, please copy the
2650
  junit-frames-xalan1.xsl from the distribution's etc directory as
2651
  junit-frames.xsl into a new directory and use the task's styledir
2652
  attribute to point to.  This is the last version of the XSLT
2653
  stylesheet that is expected to be compatible with Xalan-J 1.
2654

    
2655
Fixed bugs:
2656
-----------
2657

    
2658
* eliminate memory leak in AntClassLoader. Bugzilla Report 8689.
2659

    
2660
* subant haltonfailure=false did not catch all failures. Bugzilla Report 27007.
2661

    
2662
* macrodef @@ escaping was broken.  Bugzilla Report 27069.
2663

    
2664
* MacroDef did not allow attributes named 'description'. Bugzilla Report 27175.
2665

    
2666
* Throw build exception if name attribute missing from patternset#NameEntry.
2667
  Bugzilla Report 25982.
2668

    
2669
* Throw build exception if target repeated in build file, but allow targets
2670
  to be repeated in imported files.
2671

    
2672
* <apply> didn't compare timestamps of source and targetfiles when
2673
  using a nested <filelist>.  Bugzilla Report 26985.
2674

    
2675
* tagdiff.xml was broken in ant 1.6.1. Bugzilla Report 27057.
2676

    
2677
* if the basedir contained .. or . dirs, and the build file name contained
2678
  .. or ., the basedir was set incorrectly. Bugzilla Report 26765.
2679

    
2680
* regression from ant 1.5, exec task outputted two redundant trailing newlines.
2681
  Bugzilla Report 27546.
2682

    
2683
* NPE when running commons listener. Bugzilla Report 27373.
2684

    
2685
* <java> swallowed the stack trace of exceptions thrown by the
2686
  executed program if run in the same VM.
2687

    
2688
* -projecthelp swallowed (configuration) errors silently.
2689
  Bugzilla report 27732.
2690

    
2691
* filterset used by filtertask doesn't respect loglevel. Bugzilla Report 27568.
2692

    
2693
* wrong compare used in ProjectComponent for logging. Bugzilla Report 28070.
2694

    
2695
* failOnAny attribute for <parallel> was broken. Bugzilla Report 28122.
2696

    
2697
* If <javac> uses gcj and any of the nested <compilerarg>s implies
2698
  compilation to native code (like -o or --main), Ant will not pass
2699
  the -C switch to gcj.  This means you can now compile to native code
2700
  with gcj which has been impossible in Ant < 1.6.2.
2701

    
2702
* <import optional="false"> and <import optional="true">
2703
  behaved identically.
2704

    
2705
* <xslt> now sets the context classloader if you've specified a nested
2706
  <classpath>.  Bugzilla Report 24802.
2707

    
2708
* <zip> and friends would delete the original file when trying to update
2709
  a read-only archive.  Bugzilla Report 28419.
2710

    
2711
* <junit> and <assertions> are working together. Bugzilla report 27218
2712

    
2713
* AntClassLoader#getResource could return invalid URLs.  Bugzilla
2714
  Report 28060.
2715

    
2716
* Ant failed to locate tools.jar if the jre directory name wasn't all
2717
  lowercase.  Bugzilla Report 25798.
2718

    
2719
* Redirector exhibited inconsistent behavior with regard to split
2720
  output.  When sent to file only, files would be created in all
2721
  cases; when split file-property, files were only created if
2722
  writes were performed.
2723

    
2724
* fixed case handling of scriptdef attributes and elements.
2725

    
2726
* UNC pathnames did not work for ANT_HOME or -lib locations on Windows.
2727
  Bugzilla report 27922.
2728

    
2729
* replacestring tokenfilter only replaced the first occurrence.
2730

    
2731
* AntLikeTasksAtTopLevelTest failed on cygwin.
2732

    
2733
* I/O-intensive processes hung when executed via <exec spawn="true">.
2734
  Bugzilla reports 23893/26852.
2735

    
2736
* JDependTask did not close an output file. Bugzilla Report 28557.
2737

    
2738
* Using <macrodef> could break XmlLogger. Bugzilla Report 28993.
2739

    
2740
* <genkey> no longer requires keytool to be in your PATH.  Bugzilla
2741
  Report 29382.
2742

    
2743
* <symlink> could create cyclic links.  Bugzilla Report 25181.
2744

    
2745
* <zip whenempty="skip"> didn't work in a common situation.  Bugzilla
2746
  Report 22865.
2747

    
2748
* <scp> now properly handles remote files and directories with spaces
2749
  in their names.  Bugzilla Report 26097.
2750

    
2751
* <scp> now has (local|remote)tofile attributes to rename files on the
2752
  fly.  Bugzilla Report 26758.
2753

    
2754
* <telnet> and <rexec> didn't close the session.  Bugzilla Report 25935.
2755

    
2756
* <subant> and XmlLogger didn't play nicley together.
2757

    
2758
Other changes:
2759
--------------
2760
* doc fix concerning the dependencies of the ftp task
2761
  Bugzilla Report 29334.
2762

    
2763
* <xmlvalidate> has now a property nested element,
2764
  allowing to set string properties for the parser
2765
  Bugzilla Report 23395.
2766

    
2767
* Docs fixes for xmlvalidate.html, javadoc.html, starteam.
2768
  Bugzilla Reports 27092, 27284, 27554.
2769

    
2770
* <pathconvert> now accepts nested <mapper>s.  Bugzilla Report 26364.
2771

    
2772
* Shipped XML parser is now Xerces-J 2.6.2.
2773

    
2774
* Added nested file element to filelist.
2775

    
2776
* spelling fixes, occurred. Bugzilla Report 27282.
2777

    
2778
* add uid and gid to tarfileset. Bugzilla Report 19120.
2779

    
2780
* <scp> has a verbose attribute to get some feedback during the
2781
  transfer and new [local|remote][File|Todir] alternatives to file and
2782
  todir that explicitly state the direction of the transfer.
2783

    
2784
* The OS/2 wrapper scripts have been adapted to use the new launcher.
2785
  Bugzilla Report 28226.
2786

    
2787
* <sshexec> now also captures stderr output.  Bugzilla Report 28349.
2788

    
2789
* <xslt> now supports a nested <mapper>.  Bugzilla Report 11249.
2790

    
2791
* <touch> has filelist support.
2792

    
2793
* <nice> task lets you set the priority of the current thread; non-forking
2794
  <java> code will inherit this priority in their main thread.
2795

    
2796
* New attribute "negate" on <propertyset> to invert selection criteria.
2797

    
2798
* Target now supports a Location member.  Bugzilla Report 28599.
2799

    
2800
* New "pattern" attribute for <date> selector.
2801

    
2802
* <junit> has a new forkmode attribute that controls the number of
2803
  Java VMs that get created when forking tests.  This allows you to
2804
  run all tests in a single forked JVM reducing the overhead of VM
2805
  creation a lot.  Bugzilla Report 24697.
2806

    
2807
* <jar> can now optionally create an index for jars different than the
2808
  one it currently builds as well.  See the new <indexjars> element
2809
  for details.  Bugzilla Report 14255.
2810

    
2811
* Permit building under JDK 1.5. Bugzilla Report 28996.
2812

    
2813
* minor Javadoc changes. Bugzilla Report 28998.
2814

    
2815
* Misc. corrections in SignJar.java. Bugzilla Report 28999.
2816

    
2817
* Remove redundant <hr> from javah.html. Bugzilla Report 28995.
2818

    
2819
* Ignore built distributions. Bugzilla Report 28997.
2820

    
2821
* A new roundup attribute on <zip> and related task can be used to
2822
  control whether the file modification times inside the archive will
2823
  be rounded up or down (since zips only store modification times with
2824
  a granularity of two seconds).  The default remains to round up.
2825
  Bugzilla Report 17934.
2826

    
2827
* A binary option has been added to <concat>. Bugzilla Report 26312.
2828

    
2829
* Added DynamicConfiguratorNS, an namespace aware version of
2830
  DynamicConfigurator. Bugzilla Report 28436.
2831

    
2832
* Add implicit nested element to <macrodef>. Bugzilla Report 25633.
2833

    
2834
* Add deleteonexit attribute to <delete>.
2835

    
2836
* Added Target.getIf/Unless().  Bugzilla Report 29320.
2837

    
2838
* <fail> has a status attribute that can be used to pass an exit
2839
  status back to the command line.
2840

    
2841
* <fail> accepts a nested <condition>.
2842

    
2843
* <loadproperties> supports loading from a resource.
2844
  Bugzilla Report 28340.
2845

    
2846
* Nested file mappers and a container mapper implementation have been
2847
  introduced.  Additionally, the <mapper> element now accepts "defined"
2848
  nested FileNameMapper implementations directly, allowing a usage
2849
  comparable to those of <condition>, <filter>, and <selector>.
2850

    
2851
* New <redirector> type introduced to provide extreme I/O flexibility.
2852
  Initial support for <exec>, <apply>, and <java> tasks.
2853

    
2854
* <apply> has a new ignoremissing attribute (default true for BC)
2855
  which will allow nonexistent files specified via <filelist>s to
2856
  be passed to the executable.  Bugzilla Report 29585.
2857

    
2858
* <junitreport> now also works with Xalan XSLTC and/or JDK 1.5.
2859
  Bugzilla Report 27541.
2860

    
2861
* <jspc> doesn't work properly with Tomcat 5.x.  We've implemented a
2862
  work-around but don't intend to support future changes in Tomcat
2863
  5.x.  Please use the jspc task that ships with Tomcat instead of
2864
  Ant's.
2865

    
2866
Changes from Ant 1.6.0 to Ant 1.6.1
2867
=============================================
2868

    
2869
Changes that could break older environments:
2870
--------------------------------------------
2871

    
2872
* License is now Apache License 2.0
2873
  see http://www.apache.org/licenses/ for more information
2874

    
2875
Fixed bugs:
2876
-----------
2877
* Remove a recursive template call in the junit xsls that could trigger a stack
2878
  overflow. It now uses Xalan extensions to call a Java class directly.
2879
  Bugzilla Report 19301
2880

    
2881
* Fix spurious infinite loop detection for filters (introduced in ant 1.6.0).
2882
  Bugzilla Report 23154.
2883

    
2884
* Fix handling of default ant namespace for nested elements.
2885

    
2886
* Fix jboss element of ejb task (introduced in ant 1.6.0).
2887

    
2888
* <whichresource> failed to load classes correctly.
2889

    
2890
* Ant could fail to start with a NullPointerException if
2891
  ANT_HOME/lib/ant-launcher.jar was part of the system CLASSPATH.
2892

    
2893
* presetdef'ed types did not work with the ant-type attribute
2894

    
2895
* fixed case handling of macrodef attributes and elements. Bugzilla
2896
  Reports 25687 and 26225.
2897

    
2898
* <java> ignored the append attribute, Bugzilla Report 26137.
2899

    
2900
* The gcj compiler adapter for <javac> failed if the destination
2901
  directory didn't exist.  Bugzilla Report 25856.
2902

    
2903
* Ant now fails with a more useful message if a new process will be
2904
  forked in a directory and that directory doesn't exist.
2905

    
2906
* <splash> used to break the build on non-GUI environments.  Bugzilla
2907
  report 11482.
2908

    
2909
* Ant 1.6.0 cannot run build scripts in directories with non-ASCII names.
2910
  Bugzilla Report 26642.
2911

    
2912
Other changes:
2913
--------------
2914
* Shipped XML parser is now Xerces-J 2.6.1
2915

    
2916
* Translate task logs a debug message specifying the number of files
2917
  that it processed.  Bugzilla Report 13938.
2918

    
2919
* <fixcrlf> has a new attribute - fixlast. Bugzilla Report 23262.
2920

    
2921
* <p4submit> has 2 new attributes, needsresolveproperty and changeproperty.
2922
  Bugzilla Report 25711.
2923

    
2924
* add description attributes to macrodef attributes and elements.
2925
  Bugzilla Report 24711.
2926

    
2927
* Extending ClearCase Tasks :
2928
 - Added an extra option to 'failonerr' to each ClearCase task/command.
2929
 - Extended the functionality of cccheckout. It can check (notco) to see if
2930
  the desired element is already checked out to the current view. Thus it
2931
   won't attempt to check it out again.
2932
 - Added three new ClearCase commands: ccmkattr, ccmkdir, ccmkelem
2933
  Bugzilla Report 26253.
2934

    
2935
* added nested text support to <macrodef>
2936

    
2937
* added initial support for Java 1.5.  Java 1.5 is now correctly
2938
  detected by Ant and treated just like Java 1.4.  You can now specify
2939
  source="1.5" in the <javac> task.
2940

    
2941
* created new task <cvsversion>
2942

    
2943
* added support for branch logging via the tag attribute in <cvschangelog>
2944
  Bugzilla Report 13510.
2945

    
2946
* added support the groovy language in the script and scriptdef tasks
2947

    
2948
Changes from Ant 1.5.4 to Ant 1.6.0
2949
===================================
2950

    
2951
Changes that could break older environments:
2952
--------------------------------------------
2953

    
2954
* This version of Ant can not be built with JDK 1.1 and requires at
2955
  least Java 1.2 at runtime as well.  Compiling for a 1.1 target is
2956
  still supported.
2957

    
2958
* Targets cannot have the empty string as their name any longer.
2959

    
2960
* ant.jar's manifest does no longer include a Class-Path entry, so it
2961
  is no longer possible to run Ant via "java -jar ant.jar" without
2962
  manually altering the CLASSPATH.  Instead of that a file
2963
  ant-bootstrap.jar is included in the etc directory of the binary
2964
  distribution, copy this to the lib directory and use
2965
  "java -jar ant-bootstrap.jar" instead if you want to run Ant without
2966
  the wrapper script (not recommended).
2967

    
2968
* The <script> task now requires Apache BSF instead of the older IBM
2969
  version.  See <http://jakarta.apache.org/bsf/>
2970

    
2971
* <xmlproperty> will no longer fail if the file to be loaded doesn't exist.
2972

    
2973
* XML namespaces are now enabled in the XML parser, meaning XML namespace
2974
  declarations no longer cause errors. However task names containing colons
2975
  will cause errors unless there is a corresponding namespace uri.
2976

    
2977
* The <ftp> and <telnet> tasks now require Jakarta Commons Net instead
2978
  of the older ORO Netcomponents version.  See
2979
  <http://jakarta.apache.org/commons/net/index.html>.
2980

    
2981
* <input> will no longer prompt the user and wait for input if the
2982
  addproperty attribute is set to a property that has already been
2983
  defined in the project.  If you rely on the task waiting for input,
2984
  don't use the addproperty attribute.
2985

    
2986
* The Class-Path attribute in manifests will no longer merge the
2987
  entries of all manifests found, but will be treated like all other
2988
  manifest attributes - the most recent attribute(s) will be used.
2989

    
2990
* New Launch mechanism implemented. This moves some functionality from
2991
  the batch files / shell scripts into Java. This removes environment
2992
  limitations, for command issues, directory depth issues on Windows. Also
2993
  allows a per-user library location to be used if the main Ant install
2994
  is locked down.
2995

    
2996
* The Entry nested element of PropertyFile will not any more have its value
2997
  attribute (actually increment) overwritten with the new value of the entry
2998
  after execution.
2999

    
3000
* Output stored from a <java> or <exec> task is now exactly as generated. No
3001
  conversion to platform end-of-line characters is performed.
3002

    
3003
* <translate> will now preserve line endings.
3004

    
3005
* <ftp> followsymlinks="false" in nested fileset definitions is explicitly
3006
  required in order to exclude remote symbolic links (when doing a get, chmod,
3007
  delete, rmdir).
3008

    
3009
* The values of the Copy#fileCopyMap variable has changed from String to
3010
  String[]. (In java 1.5 terms it was Hashtable<String, String> and
3011
  is now Hashtable<String, String[]>). This will affect third party code
3012
  that extend Copy and override Copy#doFileOperations.
3013

    
3014
* <loadproperties> didn't expand properties while <property file="..."/>
3015
  does, so they were not equivalent.  This has been fixed, which means
3016
  that propetries may get expanded twice if you use an
3017
  <expandproperties> filterreader.  Bugzilla Report 17782.
3018

    
3019
* User defined tasks and typedefs are now handled internally in the
3020
  same way as predefined tasks and typedefs. Also tasks and typedefs
3021
  are resolved at a later stage. This causes some
3022
  differences especially for user defined task containers.
3023

    
3024
* <checksum> log message "Calculating checksum ..." has been degraded
3025
  from INFO to VERBOSE.
3026

    
3027
Fixed bugs:
3028
-----------
3029
* Filter readers were not handling line endings properly.  Bugzilla
3030
  Report 18476.
3031

    
3032
* Filtersets were also not handling line endings properly.
3033

    
3034
* Expand tasks did not behave as expected with PatternSets.
3035

    
3036
* <property environment=... /> now works on OS/400.
3037

    
3038
* <cab> could hang listcab on large <fileset>s.
3039

    
3040
* The starteam stcheckout, stcheckin tasks now correctly compute
3041
  status of files against whatever local tree they are run against
3042
  and, optionally, will not process a file if it is current.
3043
  Previously you had to process everything unless you ran against the
3044
  default folder which wasn't the normal use-case for ant-starteam.
3045
  The stlist task now similarly displays that status correctly making
3046
  it a more generally useful tool.
3047

    
3048
* entity includes would cause exceptions if path names included spaces.
3049

    
3050
* addConfiguredXXX would not work for TaskAdapter wrapped tasks
3051

    
3052
* Fix <ilasm> outputfile testing so that the output file does not need
3053
  to exist beforehand.
3054

    
3055
* Ant will now exit with a return code of 1 if it encounters problems
3056
  with the command line arguments.
3057

    
3058
* ClassLoader creation changes to use a factory method in Project. A new
3059
  class AntClassLoader2 implemented for 1.2+ specific features including
3060
  Package information and addition of classes specified in the Class-Path
3061
  element of a Jar's manifest.
3062

    
3063
* It is now possible in <exec> to resolve the executable to a project
3064
  basedir or execution dir relative executable. The resolveExecutable
3065
  must be used to pick up such executables.
3066

    
3067
* splash screen wouldn't disappear when build was finished.
3068

    
3069
* <exec> output and error streams can now be redirected independently
3070
  to either a property or a file (or both)
3071

    
3072
* TarEntry's File-arg constructor would fail with a
3073
  StringIndexOutOfBoundsException on all OSes where os.name is shorter
3074
  than seven characters.  Bugzilla Report 18105.
3075

    
3076
* <copy> and <move>'s failonerror didn't apply to filesets pointing to
3077
  non-existant directories.  Bugzilla Report 18414.
3078

    
3079
* The <stripjavacomments> filter sometimes removed parts of string
3080
  constants.  Bugzilla Report 17441.
3081

    
3082
* <antlr> will now recompile your grammar if the supergrammar has
3083
  changed.  Bugzilla Report 12691.
3084

    
3085
* <property env> will now work on Unices with /bin/env instead of
3086
  /usr/bin/env.  Bugzilla Report 17642.
3087

    
3088
* <jar index="on"> could include multiple index lists.  Bugzilla 10262.
3089

    
3090
* The index created by <jar> didn't conform to the spec as it didn't
3091
  include the top-level entries.  Bugzilla Report 16972.
3092

    
3093
* <tar> and <zip> didn't honor the defaultexcludes attribute for the
3094
  implicit fileset.  Bugzilla Report 18637.
3095

    
3096
* The <replacetokens> filter would throw an exception if the token's
3097
  value was an empty string.  Bugzilla Report 18625.
3098

    
3099
* Perforce tasks relying on output from the server such as <p4change>
3100
  and <p4label> were hanging. Bugzilla Reports 18129 and 18956.
3101

    
3102
* Improve exception and logging behavior of Perforce tasks.
3103
  Bugzilla report 18154.
3104

    
3105
* build.sh install had a problem on cygwin (with REALANTHOME).
3106
  Bugzilla Report 17257
3107

    
3108
* <replaceregexp> didn't work for multi-byte encodings if byline was false.
3109
  Bugzilla Report 19187.
3110

    
3111
* <replaceregexp> was altering unnecessarily the timestamp of the directories
3112
  containing the files to process
3113
  Bugzilla Report 22541.
3114

    
3115
* file names that include spaces need to be quoted inside the @argfile
3116
  argument using forked <javac> and (all JDKS).  Bugzilla Report 10499.
3117
  NB : a first correction was only introducing quotes for JDK 1.4
3118
  It has been changed to quote for all external compilers when paths
3119
  contain spaces.
3120
  Also the backslashes need to be converted to forward slashes
3121
  Bugzilla Report 17683.
3122

    
3123
* Setting filesonly to true in <zip> and related tasks would cause the
3124
  archives to be always recreated.  Bugzilla Report 19449.
3125

    
3126
* file names that include spaces need to be quoted inside the @argfile
3127
  argument using <javadoc> and JDK 1.4.  Bugzilla Report 16871.
3128

    
3129
* <junit> didn't work with custom formatters that were only available
3130
  on the user specified classpath when a timeout occurred.  Bugzilla
3131
  Report 19953.
3132

    
3133
* <different> selector : make ignoreFileTimes effectively default to true
3134
  and fix a bug in the comparison of timestamps. Bugzilla Report 20205.
3135

    
3136
* <different> selector can now be nested directly under a fileset
3137
  Bugzilla Report 20220.
3138

    
3139
* <cvstagdiff> had a problem with "dd-MM-yy hh:mm:ss" formats
3140
  Bugzilla Report 15995.
3141

    
3142
* <cvstagdiff> cvsroot and package attributes added to the root
3143
  element tagdiff of the xml output
3144
  Bugzilla Report 16081.
3145

    
3146
* <cvstagdiff> had a problem with aliased modules and with requests for
3147
  multiple modules. Bugzilla Reports 21373 and 22877.
3148

    
3149
* <cvstagdiff> could not parse properly the revision number of new files with
3150
  CVS 1.11.9 or higher. Bugzilla Report 24406.
3151

    
3152
* <fixcrlf> make fixcrlf create its temporary files in the default directory
3153
  of FileUtils#createTempFile instead of the destination dir of fixcrlf.
3154
  Bugzilla Report 20870.
3155

    
3156
* <ejbjar> implementation for Borland.
3157
  Prevent the task from being blocked by error messages coming from java2iiop.
3158
  Bugzilla Report 19385.
3159

    
3160
* <unzip>'s and <untar>'s nested patternsets didn't work as documented
3161
  when the pattern ended in a slash or backslash.  Bugzilla Report 20969.
3162

    
3163
* <fixcrlf> will now create the parent directories for the destination
3164
  files if necessary.  Bugzilla Report 20840.
3165

    
3166
* <xmlproperty> now handles CDATA sections. BugZilla Report 17195
3167

    
3168
* <translate> now translate tokens that are placed close together.
3169
  Bugzilla Report 17297
3170

    
3171
* Nested websphere element for ejbjar does not support spaces in file name.
3172
  Bugzilla Report 21298
3173

    
3174
* Don't multiply Class-Path attributes when updating jars.  Bugzilla
3175
  Report 21170.
3176

    
3177
* Do not overwrite the value (increment) attribute of PropertyFile nested
3178
  Entry element. Bugzilla Report 21505.
3179

    
3180
* Prevent sysproperties with no key or no value from being added in <junit>.
3181
  Bugzilla Report 21684.
3182

    
3183
* Allow references to be properly inherited via antcall
3184
  Bugzilla Report 21724.
3185

    
3186
* ftp chmod failed when the remote system was UNIX and local system Windows
3187
  Bugzilla Report 21865.
3188

    
3189
* ftp put with chmod failed when the remote system was UNIX and local system
3190
  Windows. Bugzilla Report 23143.
3191

    
3192
* ftp did not set the ascii mode explicity, causing problems with ftp servers
3193
  having binary as default
3194

    
3195
* ftp was not able to download files when they were pointed to by symbolic
3196
  links. Bugzilla Report 14063.
3197

    
3198
* ftp is able to download also directories pointed to by symbolic links.
3199

    
3200
* replace would change \r\n into \r\r\n under Windows.
3201

    
3202
* junitreport with frames did not display a link for classes without a package
3203
  or in the top package.
3204
  Bugzilla Report 21915.
3205

    
3206
* Project.toBoolean(String) now handles null as argument and does not throw a
3207
  NullPointerException any more.
3208

    
3209
* The socket condition will now close the socket created to test.
3210
  Bugzilla Report 23040.
3211

    
3212
* <junit includeantruntime="true" fork="true"> replaced the CLASSPATH instead
3213
  of adding to it.  Bugzilla Report 14971.
3214

    
3215
* <splash> could fail on JVMs that use null to indicate the system classloader.
3216
  Bugzilla Report 23320.
3217

    
3218
* <xmlcatalog>s only worked when defined inside of tasks.  Bugzilla
3219
  Report 20965.
3220

    
3221
* <csc> and siblings (<vbc> <jsharpc>) handle large filesets by
3222
automatic use of response files.  Bugzilla report #19630
3223

    
3224
Other changes:
3225
--------------
3226

    
3227
* Shipped XML parser is now Xerces 2.6.0
3228

    
3229
* All tasks can be used outside of <target>s.  Note that some tasks
3230
  will not work at all outside of targets as they would cause infinite
3231
  loops (<antcall> as well as <ant> and <subant> if they invoke the
3232
  current build file).
3233

    
3234
* Six new Clearcase tasks added.
3235

    
3236
* A new filter reader namely tokenfilter has been added.  Bugzilla
3237
  Report 18312.
3238

    
3239
* A new attribute named skip is added to the TailFilter and
3240
  HeadFilter filter readers.
3241

    
3242
* The filesetmanifest attribute of <jar> has been reenabled.
3243

    
3244
* The start and end tokens for <translate> may now be longer than a
3245
  single character.
3246

    
3247
* <setproxy> lets you set the username and password for proxies that
3248
  want authentication
3249

    
3250
* <loadproperties> has a new encoding attribute.
3251

    
3252
* <echoproperties> can now create XML output.
3253

    
3254
* <echoproperties> has a new srcfile attribute that can make it read
3255
  properties files and output them instead of Ant's properties.
3256

    
3257
* <filterset> will now resolve filters recursively.
3258

    
3259
* <input> has a new attribute that allows you to specify a default value.
3260

    
3261
* Added <image> task (requires JAI).
3262

    
3263
* <image> task has now proportions attribute in the <scale/> nested element
3264
  instead of keepproportions (bringing in more functionality)
3265

    
3266
* New condition <isreference>
3267

    
3268
* <ftp> now has a preservelastmodified attribute to preserve the
3269
  timestamp of a downloaded file.
3270

    
3271
* new rmdir action for <ftp> that removes directories from a fileset.
3272

    
3273
* <ftp> has attributes timediffauto and timediffmillis to use together
3274
  with the newer attribute to tell ant to take into account a time difference
3275
  between client and remote side.
3276
  Bugzilla Report 19358.
3277

    
3278
* <ftp> has been optimized to go directly to the include patterns.
3279
  This reduces scanning time under UNIX when followsymlinks="true"
3280
  and casesensitive="true" (the default)
3281
  Bugzilla Report 20103.
3282

    
3283
* The SOS and VSS tasks will no longer unconditionally prepend a $ to
3284
  vsspath or projectpath.
3285

    
3286
* OS/400 now gets detected by the os condition.
3287

    
3288
* <arg> has a new attribute pathref that can be used to reference
3289
  previously defined paths.
3290

    
3291
* <xmlproperty> has been improved, you can now expand ${properties},
3292
  define ids or paths and use Ant's location magic for filename resolutions
3293
  in the XML file.
3294

    
3295
* <xmlcatalog> will now support external catalogs according to the
3296
  OASIS "Open Catalog" standard - if resolver.jar (newer than version
3297
  1.0) from Apache's xml-commons is in your CLASSPATH.
3298

    
3299
* Starteam tasks now have support for revision labels and build labels.
3300
  Checkouts now have the option of using repository timestamps, instead
3301
  of current.
3302

    
3303
* new task <symlink> that creates and maintains symbolic links.
3304

    
3305
* new tasks <chown> and <chgrp> which are wrappers of the Unix commands.
3306

    
3307
* new task <attrib> to change file attributes on Windows systems.
3308

    
3309
* <style> has a new attribute reloadstylesheet to work around a
3310
  bug in widespread Xalan versions.
3311

    
3312
* <tarfileset> has a new dirmode attribute to specify the permissions
3313
  for directories.
3314

    
3315
* <fixcrlf>'s eol attribute now also understands "mac", "unix" and "dos".
3316

    
3317
* <classfileset> now picks up dependencies of the form MyClass.class. This
3318
  works for the code generated by the Sun java compiler. It may not work for
3319
  all compilers.
3320

    
3321
* a new attribute "globalopts" can be added to all Perforce tasks.
3322
  You can put in it all the strings described by p4 help usage. Refer to
3323
  the docs for more information.
3324

    
3325
* new Perforce tasks <p4integrate> , <p4resolve>, and <p4labelsync>
3326

    
3327
* <p4submit> will change the property p4.change if the Perforce server
3328
  renumbers the change list.
3329
  It will set the property p4.needsresolve if the submit fails,
3330
  and the message says that file(s) need to be resolved.
3331

    
3332
* <replaceregexp> now has an optional encoding attribute to support
3333
  replacing in files that are in a different encoding than the
3334
  platform's default.
3335

    
3336
* The <exec> task may now have its input redirected from either a file
3337
  or a string from the build file. The error output can be separated
3338
  to a different file when outut is redirected. standard error may be
3339
  logged to the Ant log when redirecting output to a file
3340

    
3341
* The <java> task also supports the input redirection and separate
3342
  error streams introduced to the <exec> task. In addition, it is now
3343
  possible to save the output into a property for use within the build
3344
  file as was possible with <exec> in Ant 1.5
3345

    
3346
* The <javadoc> task <tag> subelement has been enhanced to allow files
3347
  with tag mappings to be used.
3348

    
3349
* New tasks: <scp> supports file transfers, <sshexec> executes a
3350
  command over SSH.  They require jsch, a BSD licensed SSH library that
3351
  can be found at http://www.jcraft.com/jsch/index.html
3352

    
3353
* New filterreader <escapeunicode/>.
3354

    
3355
* Support for HP's NonStop Kernel (Tandem) OS has been added.
3356

    
3357
* <cab>'s basedir attribute is now optional if you specify nested
3358
  filesets.  Bugzilla Report 18046.
3359

    
3360
* New task <sync> that synchronizes two directory trees.
3361

    
3362
* <apply> has new forwardslash attribute that can force filenames to
3363
  use forward slashes (/) as file separators even on platforms with a
3364
  different separator.  This is useful if you want to run certain
3365
  ported Unix tools.
3366

    
3367
* Copy has a new outputencoding attribute that can be used to change
3368
  the encoding while copying files.  Bugzilla Report 18217.
3369

    
3370
* The xml formatter for JUnit will now honor test case names set with
3371
  setName.  Bugzilla Report 17040.
3372

    
3373
* JUnit now has an attribute reloading, which, when set to false,
3374
  makes the task reuse the same class loader for a series of tests.
3375

    
3376
* <concat> now supports filtering and can check timestamps before
3377
  overriding a file.  Bugzilla Report 18166.
3378

    
3379
* <junit> has a new attribute tempdir that controls the placement of
3380
  temporary files.  Bugzilla Report 15454.
3381

    
3382
* <jdepend> now supports a new nested element <classespath> which is
3383
  the same as <sourcespath> but point to compiled classes (the
3384
  prefered mode of operation for JDepend > 2.5).  Additionally, nested
3385
  <exclude> elements can be used to exclude certain packages from
3386
  being parsed.  Bugzilla Report 17134.
3387

    
3388
* The JProbe tasks now also work with JProbe 4.x.  Bugzilla Report 14849.
3389

    
3390
* <javacc> and <jjtree> will now autodetect JavaCC 3.x and can use it.
3391

    
3392
* <sql> has a new attribute to control escape processing.
3393

    
3394
* <sql> is able to display properly several resultsets if you are
3395
  running a compound sql statement. Bugzilla Report 21594.
3396

    
3397
* A new <containsregexp> selector has been added, that selects files
3398
  if their content matches a certain regular expression.
3399

    
3400
* <antlr>'s debug attribute has been enabled.  Bugzilla Report 19051.
3401

    
3402
* <mail> has a new attribute charset. Bugzilla Report 15434.
3403

    
3404
* <mail> has new attributes user and password for SMTP auth.
3405
  maillogger can also use this.
3406
  The implementation only works with JavaMail (encoding="MIME").
3407
  Implementation with plain mail remains to do.
3408
  Bugzilla Report 5969.
3409

    
3410
* <mail> and mailloger support SMTP over TLS/SSL
3411
  Bugzilla Report 19180.
3412

    
3413
* <mail> the attributes from, replyto ,tolist, cclist, bcclist
3414
  can now contain email addresses of the form name <address@xyz.com>
3415
  or (name) address@xyz.com
3416
  Bugzilla Report 22474.
3417

    
3418
* <mail> (version PlainMail)
3419
  prevent blank headers from being sent,
3420
  make the order of the headers of plain mail messages predictable
3421
  Bugzilla Report 22088.
3422

    
3423
* <zipfileset> can now be defined in the main body of a project
3424
  and referred to with refid="xyz". Bugzilla Report 17007.
3425

    
3426
* A wrapper script for OS/2 has been added.
3427

    
3428
* <unzip> will now detect and successfully extract self-extracting
3429
  archives.  Bugzilla Report 16213.
3430

    
3431
* <stcheckout> has a new attribute "converteol" that can be used to
3432
  control the automatic line-end conversion performed on ASCII files.
3433
  Bugzilla Report 18884.
3434

    
3435
* Users can now modify the list of default excludes using the new
3436
  defaultexcludes task.  Bugzilla Report 12700.
3437

    
3438
* There is a new data type <propertyset> that can be used to collect
3439
  properties.  It is supported by <ant>, <antcall>, <subant>, <java>,
3440
  <echoproperties> and <junit>.
3441

    
3442
* <concat> can now control the encoding of the output as well and optionally
3443
  add new-line characters at the end of files that get concatenated but
3444
  don't end in newlines.  Bugzilla Report 12511.
3445

    
3446
* <rpm> will detect the rpmbuild executable of RedHat 8.0 and newer
3447
  and use that if it is on your PATH.  Bugzilla Report 14650.
3448

    
3449
* A new task <rexec> has been added that requires commons-net to work.
3450
  Bugzilla Report 19541.
3451

    
3452
* <javadoc> now supports a nested <arg> element in addition to the
3453
  additionalparams attribute.
3454

    
3455
* You can now determine the order of standard tags in <javadoc> via
3456
  <tag> elements - you must not use the description attribute for them.
3457
  Bugzilla Report 18912.
3458

    
3459
* <javadoc> now supports the -noqualifier switch.  Bugzilla Report 19288.
3460

    
3461
* <javac>'s executable attribute can now also be used to specify the
3462
  executable for jikes, jvc, sj or gcj.  Bugzilla Report 13814.
3463

    
3464
* <javac> has a new attribute tempdir that can control the placement
3465
  of temporary files.  Bugzilla Report 19765.
3466

    
3467
* A new magic property build.compiler.jvc.extensions has been added
3468
  that can be used to turn of Microsoft extensions while using the jvc
3469
  compiler.  Bugzilla Report 19826.
3470

    
3471
* You can now limit the parallelism of <apply> and <chmod> by using the new
3472
  maxparallel attribute.
3473

    
3474
* With the new addsourcefile attribute, you can make <apply> ommit the
3475
  source file names from the command line.  Bugzilla Report 13654.
3476

    
3477
* <apply> and <chmod> now support nested <filelist>s as well as <dirset>s.
3478
  Bugzilla Reports 15929 and 20687.
3479

    
3480
* <apply> and <chmod> will display a summary if you set the new
3481
  verbose attribute to true.  Bugzilla Report 19883.
3482

    
3483
* <copy>/<move>'s failonerror attribute can now also be used to
3484
  continue the build if an I/O error caused a problem.  Bugzilla
3485
  Report 12999.
3486

    
3487
* new selector <type/> allowing to select only files or only directories.
3488
  Bugzilla Report 20222.
3489

    
3490
* <java> and <junit> now support a nested <bootclasspath> element that
3491
  will be ignored if not forking a new VM.
3492

    
3493
* <junit>'s nested <formatter> elements now support if/unless clauses.
3494

    
3495
* <ejbjar>
3496
  cmpversion attribute added
3497
  jboss element will look for jbosscmp-jdbc.xml descriptor
3498
  if ejbjar has cmpversion="2.0" set
3499
  Bugzilla Reports 14707 and 14709.
3500

    
3501
* <pvcs> config attribute added to set the location of a specific PVCS
3502
  .cfg file
3503
  Bugzilla Report 9752
3504

    
3505
* <mapper> has an "unpackage" mapper
3506
  Bugzilla Report 18908
3507

    
3508
* Added <scriptdef> task allowing tasks to be defined using any BSF-supported
3509
  scripting language.
3510

    
3511
* <touch>'s datetime attribute can now accept time with a granularity
3512
  of seconds as well.  Bugzilla Report 21014.
3513

    
3514
* <checksum> has two new properties: totalproperty and todir.
3515

    
3516
* FileUtils#createTempFile will now create temporary files in the
3517
  directory pointed to by the property java.io.tmpdir
3518

    
3519
* <unzip> and friends now supports an optional encoding attribute to
3520
  enable it to expand archives created with filenames using an encoding
3521
  other than UTF8.  Bugzilla Report 10504.
3522

    
3523
* <patch> has a new attribute destfile that can be used to create a new
3524
  file instead of patching files in place.
3525

    
3526
* OpenVMS is detected as a valid OS family.
3527

    
3528
* DirectoryScanner has been optimized for cases where include patterns do not
3529
  start with wildcards.  Bugzilla Report 20103.
3530

    
3531
* DirectoryScanner begins to be optimized not to scan excluded directories.
3532
  Bugzilla Report 21941.
3533

    
3534
* Added keep-going feature. Bugzilla Report 21144
3535

    
3536
* The archives generated by <zip> and friends will now contain CRC and
3537
  size information in the "local file header", thereby providing this
3538
  information to applications that read the archives using
3539
  java.util.ZipInputStream.  Bugzilla Report 19195.
3540

    
3541
* <copy> and <move> can now handle mappers that return multiple
3542
  mappings per source path. This behaviour is enabled by using
3543
  an enablemultiplemapping attribute. Bugzilla Report 21320.
3544

    
3545
* <exec> will now work on OpenVMS (please read the notes in
3546
  <exec>'s manual page).  Bugzilla Report 21877.
3547

    
3548
* <exec> will now have a new attribute spawn (default false).
3549
  If set to true, the process will be spawned. Bugzilla Report 5907.
3550

    
3551
* <java> will now have a new attribute spawn (default false).
3552
  If set to true, the process will be spawned. Bugzilla Report 5907.
3553

    
3554
* <parallel> now supports a timeout which can be used to recover
3555
  from deadlocks, etc in the parallel threads. <parallel> also
3556
  now supports a <daemons> nested element. This can be used to
3557
  run tasks in daemon threads which the parallel task will not
3558
  wait for before completing. A new attribute failonany will cause
3559
  <parallel> to throw an exception if any thread fails without
3560
  waiting for all other threads to complete.
3561

    
3562
* <zip> and friends will consume far less memory than they used to
3563
  when run with compress="false".  Bugzilla Report 21899.
3564

    
3565
* <if/> and <unless/> attributes added to <param/> element of <style>
3566
   Bugzilla Report 22044
3567

    
3568
* <zip> and friends have a new attribute "keepcompression" that can be
3569
  used to incrementally build an archive mixing compressed and uncompressed
3570
  entries.
3571

    
3572
* <junit>'s XML formatter adds a new classname attribute to the <testcase>
3573
  elements.
3574

    
3575
* new <permissions> type add permission handling to the code
3576
  this type can be nested in the <java> and <junit> tasks.
3577
  Bugzilla Report 22533.
3578

    
3579
* additional shortcuts for ant options (-d --> -debug, -e --> -emacs,
3580
  -h --> -help, -p --> -projecthelp, -s --> -find).
3581

    
3582
* new selector <modified>. "cache" was renamed to "modified".
3583
  Bugzilla Report 20474.
3584

    
3585
* <stcheckout> and <stlist> have a new asofdate attribute that can be
3586
  used to checkout/list files based on a date instead of a label.
3587
  Bugzilla Report 20578.
3588

    
3589
* New filter <concatfilter>. Adds the content of file at the beginning
3590
  or end of a file. Discussion started at
3591
  http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2
3592

    
3593
* New task <import>
3594

    
3595
* New task <macrodef>
3596

    
3597
* New task <presetdef>
3598

    
3599
* Ant libraries that can make use of namespaces to avoid name
3600
  clashes of custom tasks
3601

    
3602
* <java> and <junit> now support <assertions>, which let you enable
3603
  and disable Java1.4 assertions on a package or class basis. These
3604
  only work when fork=true, currently.
3605

    
3606
* .NET tasks expanded with VB support <vbc> and J#, via <jsharp>,
3607
  <importtypelib> and <ilasm>. <csc> supports nested <src> types,
3608
  <defines> for (potentially conditional) definitions, <reference>
3609
  filesets for references. The executable attribute lets you switch to
3610
  mono or other implementations -<csc> has been tested with Mono on
3611
  Linux and OSX.
3612

    
3613

    
3614
Changes from Ant 1.5.3 to Ant 1.5.4
3615
===================================
3616

    
3617
Changes that could break older environments:
3618
--------------------------------------------
3619

    
3620
* If the Visual Age tasks used to work for you, they may stop doing so
3621
  now - and we'd like to know about it.  The current set of tasks is
3622
  supposed to work with any version of VAJ starting with 3.0.
3623

    
3624
Fixed bugs:
3625
-----------
3626

    
3627
* The Visual Age for Java tasks didn't work (at least for versions 3.0
3628
  and higher).  Bugzilla Report 10016.
3629

    
3630
* URL-encoding in <vaj*port> didn't work properly.
3631

    
3632
* VAJRemoteUtil called getAbsolutePath instead of getPath
3633
  causing problems when using a Windows VAJ server from a UNIX server.
3634
  Bugzilla Report 20457.
3635

    
3636
* VAJImport task failed with NullPointerException when using DirectoryScanner.
3637
  Bugzilla Report 22080.
3638

    
3639
Other changes:
3640
--------------
3641

    
3642
* Shipped XML parser is now Xerces 2.5.0
3643

    
3644
* <javah> will invoke oldjavah on JDK 1.4.2.  Bugzilla Report 18667.
3645

    
3646
* The VAJ tasks now support a haltonfailure attribute to conditionally
3647
  keep building even if they fail.
3648

    
3649
* It is now possible to use the latest (versioned or unversioned) edition
3650
  in <vajload> by using special wildcard characters.  Also fixes
3651
  Bugzilla Report 2236.
3652

    
3653
Changes from Ant 1.5.2 to Ant 1.5.3
3654
===================================
3655

    
3656
Changes that could break older environments:
3657
--------------------------------------------
3658

    
3659
* The <zip> task and friends have again changed a method signature
3660
  (sorry, was necessary to fix bug 17780).  The return type of
3661
  getResourcesToAdd has changed.
3662

    
3663
Fixed bugs:
3664
-----------
3665

    
3666
* <zipfileset>'s filemode would get ignored and the dirmode was used
3667
  for the included files as well.  As a side effect, WinZIP was unable
3668
  to extract or display the files, so they seemed to be missing from
3669
  the archive.  Bugzilla Report 17648.
3670

    
3671
* <ftp> could use the wrong path separator when trying to change the
3672
  remote working directory.  Bugzilla Report 17735.
3673

    
3674
* <jar update="true"> would loose all original files if you didn't
3675
  specify any nested <(zip)fileset>s and the manifest had changed.
3676
  Bugzilla Report 17780.
3677

    
3678
* If you used a value starting with \ on Windows for the appxml
3679
  attribute of <ear> or the webxml attribute of <war>, it would be
3680
  ignored.  Bugzilla Report 17871.
3681

    
3682
* Ant will no longer implicitly add Sun's rt.jar in <javac> when you
3683
  use jvc and don't specify a bootclasspath.  Bugzilla Report 18055.
3684

    
3685
* The prefix attribute of <zipfileset> would not generate directory
3686
  entries for the prefix itself.  Bugzilla Report 18403.
3687

    
3688
* starteam checkout can now handle deleted labels.  Bugzilla Report 17646.
3689

    
3690
* The Unix wrapper script failed if you invoked it as a relative
3691
  symlink and ANT_HOME has not been set.  Bugzilla Report 17721.
3692

    
3693
Other Changes:
3694
--------------
3695
* Added ability to specify manifest encoding for the <jar> and
3696
  <manifest> tasks
3697

    
3698
Changes from Ant 1.5.1 to Ant 1.5.2
3699
=============================================
3700

    
3701
Changes that could break older environments:
3702
--------------------------------------------
3703
* ANT_OPTS environment variable is now applied at the start of the
3704
  Java command line, allowing position specific parameters of some
3705
  JVMs, such as -classic to be specified.
3706

    
3707
* ZipScanner#getIncludedFiles will now return the names of the ZipEntries
3708
  that have been matched instead of the name of the archive.
3709

    
3710
* The <zip> task and friends have been heavily modified, almost every
3711
  method signature of the Zip class has changed.  If you have subclassed
3712
  Zip (or one of its subclasses), your class will most likely not
3713
  compile against the current code base.  If it still compiles, it will
3714
  probably not work as in Ant 1.5.1.
3715

    
3716
Fixed bugs:
3717
-----------
3718
* <translate> was not ignoring comment lines.
3719

    
3720
* <manifest> wouldn't update an existing manifest if only an attribute
3721
  of an existing section changed.
3722

    
3723
* ant.bat now supports the ANT_ARGS and JAVACMD environment variables
3724
  again (like Ant 1.5 did).
3725

    
3726
* The "plain" <junit> <formatter> could throw a NullPointerException
3727
  if an error occurred in setUp.
3728

    
3729
* <junit> will now produce output when a test times out as well.
3730

    
3731
* <replace> would count some internal character replacements when
3732
  reporting the number of replaced tokens.
3733

    
3734
* <concat> would cause an exception if a <filelist> pointed to files
3735
  that do not exist.
3736

    
3737
* <javadoc> will now pass -source to custom doclets as well.
3738

    
3739
* <cvstagdiff> would throw a NullPointException if there had been no
3740
  differences.
3741

    
3742
* <cvschangelog> could miss today's changes.
3743

    
3744
* <concat> could append newline characters between concatenated files.
3745

    
3746
* <xmlvalidate> ignored the specified encoding of the files to
3747
  validate.
3748

    
3749
* the errorsbeginat attribute of the <http> condition didn't work.
3750

    
3751
* Ant will try to force loading of certain packages like com.sun.*
3752
  from the system classloader.  The packages are determined by the
3753
  version of the JVM running Ant.
3754

    
3755
* Ant didn't find the runtime libraries on IBM's JDK 1.4 for Linux.
3756

    
3757
* random component of temporary files is now always a positive integer.
3758

    
3759
* Ant could incorrectly try to use the 1.4 regexp implementation even
3760
  if it isn't available if you run the JVM with -Xverify:none.
3761

    
3762
* Ant would die with an exception if you used nested <reference>
3763
  elements in Ant and the refid attribute didn't point to an existing
3764
  project reference.
3765

    
3766
* The <get> task can now be compiled (and Ant thus bootstrapped) using
3767
  Kaffee.
3768

    
3769
* build.sysclasspath will now be honored by more tasks.
3770

    
3771
* The signjar keystore attribute has been reverted to a String allowing
3772
  it to once again accept URLs. This should not affect current File based usage
3773
  unless you are extending the Signjar task.
3774

    
3775
* <jar update="true"> would remove the original manifest.
3776

    
3777
* fix up folder creation in PVCS task
3778

    
3779
* <tar>'s up-to-date check didn't work for nested <(tar)fileset>s.
3780

    
3781
* Corrected a problem in XMLLogger where it would not associated
3782
  messages with a taskdef'd task
3783

    
3784
* <uptodate> now works when using attributes (i.e. not filesets) and pointing
3785
  to the same file
3786

    
3787
* Java task (and output system) now stores output which doos not end
3788
  with a line feed.
3789

    
3790
* splash screen wouldn't disappear when build was finished.
3791

    
3792
* <exec> now supports OS/2.
3793

    
3794
* <zip> and friends would only update/recreate existing archives if
3795
  the files to add/update have been newer than the archive.
3796

    
3797
* <javadoc>'s <link> element could fail for offline="true" on some JDKs.
3798

    
3799
Other changes:
3800
--------------
3801

    
3802
* MailLogger now sets the Date header correctly.
3803

    
3804
* Shipped XML parser is now Xerces 2.3.0
3805

    
3806
* signjar now accepts a maxmemory attribute to allow the memory allocated to the
3807
  jarsigner tool to be specified. The jarsigner from the JDK's JAVA_HOME bin
3808
  dir is now used rather than the first jarsigner on the path.
3809

    
3810
* **/.DS_Store has been added to the list of default pattern excludes.
3811

    
3812
* The Created-By header in the default manifest now contains the JVM
3813
  vendor and version according to the jar specification. A new header,
3814
  Ant-Version provides the Ant version used to create the jar.
3815

    
3816
* <zip> can now store Unix permissions in a way that can be
3817
  reconstructed by Info-Zip's unzip command.
3818

    
3819
Changes from Ant 1.5.1Beta1 to 1.5.1
3820
====================================
3821

    
3822
Fixed bugs:
3823
-----------
3824

    
3825
* <tstamp>'s prefix attribute failed to apply to nested <format> elements.
3826

    
3827
* <junitreport> created an empty junit-noframes.html if no format had
3828
  been specified.
3829

    
3830
* <basename> would remove more than it should if the file name
3831
  contained more than one dot.
3832

    
3833
* <filterset>s nested into <filterset>s didn't work.
3834

    
3835
Other changes:
3836
--------------
3837

    
3838
* Shipped XML parser is now Xerces 2.2.0
3839

    
3840
* Filesets now support a 'file' attribute, allowing a single-file
3841
  fileset to be constructed without having to specify its parent
3842
  directory separately.
3843

    
3844
* <junit> will now return the result of a call to getName instead of
3845
  "unknown" for Test implementations that don't extend TestCase but have
3846
  a public String getName() method.
3847

    
3848
Changes from Ant 1.5 to 1.5.1Beta1
3849
==================================
3850

    
3851
Fixed bugs:
3852
-----------
3853
* Date/time in CvsChangeLog was in local timezone and 12 hour format leading
3854
  to a problem when sorting by time. It is now UTC (GMT) and in 24-hour
3855
  format as per cvs 'specifications'.
3856

    
3857
* CvsTagDiff now supports ampersand modules or modules that have a different
3858
  root directory than their name.
3859

    
3860
* EjbJar threw NPEs for the Websphere element. The property 'websphere.home'
3861
  was not documented.
3862

    
3863
* Mail example in the documentation was not correct.
3864

    
3865
* Checksum was broken in the following scenario:
3866
  (using verifyproperty OR in a condition) AND using filesets
3867
  with multiple files.
3868

    
3869
* The ExpandProperties filter threw NPEs when defined using
3870
  the <filterreader> format.
3871

    
3872
* The sh wrapper script didn't work under Cygwin if ANT_HOME wasn't
3873
  set with a Unix style filename.
3874

    
3875
* The sh wrapper script could fail if you started Ant from a directory
3876
  with whitespace in its name.
3877

    
3878
* ant -diagnostics was not working properly when the task dependency
3879
  was missing and was just printing the missing dependency.
3880

    
3881
* If a task got redefined via <taskdef>, it lost its child elements.
3882

    
3883
* <property>'s classpathref attribute was broken.
3884

    
3885
* <arg line="''" /> would result in no command line argument, will now
3886
  be a single empty argument.  Use <arg value="''"/> if you need the
3887
  quotes literally.
3888

    
3889
* <replaceregexp> could append a newline character at the end of the
3890
  file.
3891

    
3892
Other changes:
3893
--------------
3894

    
3895
* Appendix E of Java Development with Ant (Loughran/Hatcher) was
3896
  contributed to the docs.
3897

    
3898
* <available> will only print deprecration warnings if it is actually
3899
  used to change the value of a property.
3900

    
3901
Changes from Ant 1.5beta3 to Ant 1.5
3902
====================================
3903

    
3904
Changes that could break older environments:
3905
--------------------------------------------
3906

    
3907
* The filesetmanifest attribute added to <jar> after the 1.4.1
3908
  release has been removed for now.  This change may affect only
3909
  the 1.5Beta/1.6Alpha users.  An attempt will be made to add this
3910
  feature back into Ant 1.6.
3911

    
3912
Fixed bugs:
3913
-----------
3914

    
3915
* <zip> and friends would always update existing archive if you set
3916
  the update attribute to true.
3917

    
3918
* To support backward compatibility with older versions, <pathconvert>
3919
  will once again set the property, even if the result is the empty
3920
  string, unless the new 'setonempty' attribute is set to false|no|off
3921
  (default is "true").
3922

    
3923
* The manifest task would crash XmlLogger
3924

    
3925
Other changes:
3926
--------------
3927

    
3928
* added **/.svn and **/.svn/** to the default excludes
3929

    
3930
Changes from Ant 1.5beta2 to Ant 1.5beta3
3931
=========================================
3932

    
3933
Changes that could break older environments:
3934
--------------------------------------------
3935

    
3936
* <pvcs> default filenameformat has been different from Ant 1.4.1.
3937
  Now it is different from 1.5beta1 and 1.5beta2.
3938

    
3939
* <pathconvert> won't set the property if the result is the empty string.
3940

    
3941
Fixed bugs:
3942
-----------
3943

    
3944
* <available> could fail to find files or directories that happen to
3945
  start with the name of the project's basedir but are not children of
3946
  the basedir.
3947

    
3948
* Nested <property>'s inside <ant> can now be overriden by subsequent
3949
  <ant> and <antcall> tasks.
3950

    
3951
* <xslt>'s outputtype attribute wouldn't do anything.
3952

    
3953
* <linecontains> filterreader could swallow lines.
3954

    
3955
* <sequential> used to configure the tasks (set their attributes)
3956
  before the first task has been executed.  This means that properties
3957
  that have been set by nested task seemed to be unset for the other
3958
  tasks in the same <sequential> element.
3959

    
3960
* <javac>'s sourcepath setting has been ignored by some compiler
3961
  implementations.
3962

    
3963
* <javadoc>'s packagelist attribute didn't work.
3964

    
3965
* the plain mailer would always use port 25 in <mail>.
3966

    
3967
* Ant's default logger could swallow empty lines.
3968

    
3969
* ejbjar's iPlanet nested element now can process multiple descriptors.
3970

    
3971
* IPlanetEjbc was looking in the wrong place for four iiop files.
3972

    
3973
* <javac> would pass the -source switch to JDK 1.3's javac, even
3974
  though it doesn't support it.
3975

    
3976
Other changes:
3977
--------------
3978

    
3979
* <checksum> now uses a buffer (of configurable size).
3980

    
3981
* The "Trying to override task definition" warning has been degraded
3982
  to verbose level if the two task definitions only differ in the class
3983
  loader instance that has loaded the definition.
3984

    
3985
* Add a jvmargs to the ejbjar's weblogic element to allow additional
3986
  arguments to be provided to the VM runnign ejbc. Document the
3987
  jvmdebuglevel attribute which can be used to avoid warnings about
3988
  interface classess being found on the classpath. Document the new
3989
  <sysproperty> element which allows JVM properties to be defined.
3990
  Added an outputdir attribute to allow the destination to be a
3991
  directory into which the exploded jar is written.
3992

    
3993
* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5
3994

    
3995
Changes from Ant 1.5beta1 to Ant 1.5beta2
3996
=========================================
3997

    
3998
Changes that could break older environments:
3999
--------------------------------------------
4000

    
4001
* Properties will now be expanded in mail message bodies.  This means
4002
  that one $ sign will be stripped if your mail message contains the text $$.
4003

    
4004
* org.apache.tools.ant.taskdefs.Expand no longer extends MatchingTask.
4005

    
4006
* Available#setFile now again uses a File argument as it did in 1.4,
4007
  this may break environments that have been adapted to the String
4008
  argument version present in 1.5beta1.
4009

    
4010
Fixed bugs:
4011
-----------
4012
* When <move> attempts a rename, it deletes the destination file, if it
4013
  exists, before renaming the source file.  However, <move> was not
4014
  checking if the destination file was actually a directory before
4015
  trying to delete it.
4016

    
4017
* Make CVS Tasks to work under Cygwin.
4018

    
4019
* Fix LineContains to handle huge files elegantly without causing
4020
  Stack Overflows.
4021

    
4022
* if you ask for the "classic" compiler on Java1.4, you get upgraded to
4023
  "modern" because there is no classic compiler any more.
4024

    
4025
* the <http> condition was viewing 404 'not found' exceptions as success. Now
4026
  it defaults to viewing any response >=400 as an error, and has an
4027
  errorsBeginAt attribute you can use if you want a higher or lower value.
4028

    
4029
* <get> throws a build exception on an http authorization error, unless you
4030
  have set ignoreerrors to true.
4031

    
4032
* <wsdltodotnet> was spelt in Wintel case: <WsdlToDotnet>. It is now lower
4033
  case, though the old spelling is retained for anyone who used it.
4034

    
4035
* Merging of Manifests in jar now works as documented.
4036

    
4037
* paths that have been separated by colons would be incorrectly parsed
4038
  on NetWare.
4039

    
4040
* runant.pl now supports NetWare.
4041

    
4042
* <tempfile> and <setproxy> tasks were in beta1, but not defined by
4043
  default; They now are. <tempfile> fills a property with the name of a
4044
  temporary file; <setproxy> lets you set the JVM's http, ftp and socks proxy
4045
  settings.
4046

    
4047
* <available classname="foo" ignoresystemclasses="true"> failed for
4048
  JDK 1.1 and 1.2, even if the class could be found on the
4049
  user-specified classpath.
4050

    
4051
* <property environment=... /> now works on z/OS.
4052

    
4053
* forked <javac> failed for the wrong reason on JDK 1.1 - Ant would
4054
  use a temporary file to hold the names of the files to compile under
4055
  some conditons, but 1.1 doesn't support this feature.  Ant will no
4056
  longer try this, but you may run into problems with the length of the
4057
  command line now.
4058

    
4059
* the refid attribute for <property>s nested into <ant> or <param>s
4060
  nested into <antcall> didn't work.
4061

    
4062
* <replaceregexp> didn't work for nested <fileset>s.
4063

    
4064
* <javadoc> dropped sourcepath entries if no "interesting" .java
4065
  source files  could be found below them.  This has been backwards
4066
  incompatible and caused problems with custom doclets like xdoclet.
4067

    
4068
* Using the doclet, docletpath or docletpathref attributes of
4069
  <javadoc> may have caused NullPointerExceptions.
4070

    
4071
* nested <filesets> of <javadoc> would include too much.
4072

    
4073
* <dependset> will no longer choke on <targetfileset>s that point to
4074
  non-existing directories.
4075

    
4076
* <patch> didn't work at all.
4077

    
4078
* <replace> and <replaceregexp> now fail if the file they are working
4079
  on is locked.
4080

    
4081
* <javadoc> would pick up the wrong executable in the combination JDK
4082
  1.2 and AIX.
4083

    
4084
Other changes:
4085
--------------
4086

    
4087
* z/OS now gets detected by the os condition.
4088

    
4089
* <fileset> and <dirset> now have an optional followsymlink attribute
4090
  that can prevent Ant from following symbolic links on some platforms.
4091

    
4092
* BeanShell is now supported in the <script> task.
4093

    
4094
* <ejbjar> under Weblogic attempts to use the ejbc20 compiler for 2.0 beans
4095
  based on the deployment descriptor's DTD reference. Under weblogic 7.00 Beta
4096
  this ejbc class has been deprecated. To avoid the deprecation warning use
4097
  ejbcclass="weblogic.ejbc".
4098

    
4099
* <ejbjar> will add a manifest to the generated jar based on the naming
4100
  convention in use. This overrides the manifest specified in the
4101
  <ejbjar> attribute
4102

    
4103

    
4104
Changes from Ant 1.4.1 to 1.5beta1
4105
==================================
4106

    
4107
Changes that could break older environments:
4108
--------------------------------------------
4109

    
4110
* Important: Single $ signs are no longer silently stripped!
4111
  Before you panic that we have broken all your build files, we have kept
4112
  the old "$$" -> "$" behaviour. So only build files which accidentally had
4113
  a $ sign in a string that was being silently stripped may break.
4114
  We added this fix to stop newbie confusion; if you want to write a
4115
  build file which works on ant versions 1.4.1 or earlier, stay with
4116
  the double $$ sign rule.
4117

    
4118
* Project.getBuildListeners now returns a clone of the listener
4119
  list. Changes to the returned list will not affect the listeners
4120
  currently attached to the Project. It also means that it is safe to
4121
  iterate over the returned list if listeners are added or removed
4122
  during the traversal.
4123

    
4124
* <pvcs> default filenameformat has been different from Ant 1.4.1.
4125

    
4126
* Some messages that are printed during startup will not be
4127
  written to the logfile specified via -logfile as they might destroy
4128
  the format of the file for special BuildLoggers (like XmlLogger).
4129

    
4130
* The filesetmanifest attribute added to <jar> after the 1.4.1
4131
  release has been removed for now.  This change may affect only
4132
  the 1.5Beta/1.6Alpha users.  An attempt will be made to add this
4133
  feature back into Ant 1.6.
4134
* Shipped XML parser is now Xerces 2.0.1 along with the XML Parser APIs.
4135
  XML Parser APIs is a separate jar that contains the necessary
4136
  JAXP/DOM/SAX classes.
4137

    
4138
* <telnet> was fixed to expand properties inside nested <read> and
4139
  <write> elements; before this only happened when you assigned the text
4140
  to the string attribute. If you had $ signs in the string, they may
4141
  need escaping.
4142

    
4143
* the RegexpMatcher interface has been extended to support case
4144
  insensitive matches and other options - custom implementations of
4145
  this interface won't work any longer.  We recommend to use the new
4146
  Regexp interface that also supports substitution instead of the
4147
  RegexpMatcher interface in the future.
4148

    
4149
* <gzip> will throw an exception if your src attribute points to a directory.
4150

    
4151
* Unjar, Unzip and Unwar will throw an exception if the Src attribute
4152
  represents a directory.  Support for nested filesets is provided
4153
  instead.
4154

    
4155
* It is no longer possible to overwrite a property using tasks like
4156
  <condition>, <exec>, <pathconvert>, or <tstamp>. In some exceptional
4157
  cases it will generate a warning if you attempt to overwrite an
4158
  existing property.
4159

    
4160
* Taskwriters please note: Whenever tasks had any overloaded set* methods,
4161
  Ant's introspection mechanism would select the last overloaded method
4162
  provided to it by the Java Runtime.  A modification has now been made such
4163
  that when the Java Runtime provides a method with a String as its argument,
4164
  a check is made to see if there is another overloaded method that takes in
4165
  some other type of argument.  If there is one such method, then the method
4166
  that takes in String as an argument is not selected by the Introspector.
4167

    
4168
* The pattern definition **/._* has been included into the Default
4169
  Excludes list.
4170

    
4171
* <propertyfile>'s <entry> element was modified to remove "never" as a value
4172
  as its behavior was undocumented and flakey.
4173

    
4174
* The -projecthelp flag now only prints out targets that include the
4175
  'description' attribute, unless the -verbose or -debug flag is included
4176
  on the Ant command line.
4177

    
4178
* Ant's testcases now require JUnit 3.7 or above, as they now use the new
4179
  assertTrue method instead of assert.
4180

    
4181
* If the 'output' attribute of <ant> is set to a simple filename or a
4182
  relative path, the file is created relative to ${basedir}, not ${user.dir}.
4183

    
4184
* The default value for build.compiler is now javac1.x with x
4185
  depending on the JDK that is running Ant instead of classic/modern.
4186

    
4187
Fixed bugs:
4188
-----------
4189

    
4190
* <available> could fail to find files or directories that happen to
4191
  start with the name of the project's basedir but are not children of
4192
  the basedir.
4193

    
4194
* Nested <property>'s inside <ant> can now be overriden by subsequent
4195
  <ant> and <antcall> tasks.
4196

    
4197
* <xslt>'s outputtype attribute wouldn't do anything.
4198

    
4199
* <linecontains> filterreader could swallow lines.
4200

    
4201
* <sequential> used to configure the tasks (set their attributes)
4202
  before the first task has been executed.  This means that properties
4203
  that have been set by nested task seemed to be unset for the other
4204
  tasks in the same <sequential> element.
4205

    
4206
* <javac>'s sourcepath setting has been ignored by some compiler
4207
  implementations.
4208

    
4209
* <javadoc>'s packagelist attribute didn't work.
4210

    
4211
* the plain mailer would always use port 25 in <mail>.
4212

    
4213
* Ant's default logger could swallow empty lines.
4214

    
4215
* ejbjar's iPlanet nested element now can process multiple descriptors.
4216

    
4217
* IPlanetEjbc was looking in the wrong place for four iiop files.
4218

    
4219
* <javac> would pass the -source switch to JDK 1.3's javac, even
4220
  though it doesn't support it.
4221

    
4222
* <zip> and friends would always update existing archive if you set
4223
  the update attribute to true.
4224

    
4225
* To support backward compatibility with older versions, <pathconvert>
4226
  will once again set the property, even if the result is the empty
4227
  string, unless the new 'setonempty' attribute is set to false|no|off
4228
  (default is "true").
4229

    
4230
* The manifest task would crash XmlLogger
4231

    
4232
* A bug existed that prevented generated log files from being deleted as
4233
  part of the build process itself.  This has now been fixed.
4234

    
4235
* Fixed bug where <move> ignored <filterset>s.
4236

    
4237
* Ant works properly with the combination of Java1.4/WindowsXP.
4238

    
4239
* Fixed bug where <java> used to sometimes invoke class constructors twice.
4240

    
4241
* Fixed bug with 4NT shell support.
4242

    
4243
* Fixed bug where ant would not perform ftp without remotedir being
4244
  specified even though this was not mandatory.
4245

    
4246
* Fixed bug where ant would not copy system properties into new Project
4247
  in ant/antcall tasks when inheritall="false" is set.
4248

    
4249
* <propertyfile> would not close the original property file.
4250

    
4251
* <ant> will no longer override a subbuild's basedir with inheritall="true".
4252

    
4253
* Fixed problem with the built-in <junit> formatters which assumed
4254
  that only one test could be running at the same time - this is not
4255
  necessarily true, see junit.extensions.ActiveTestSuite.
4256

    
4257
* <jar>'s whenEmpty attribute is useless as JARs are never empty, they
4258
  contain at least a manifest file, therefore it will now print a
4259
  warning and do nothing.
4260

    
4261
* <typedef> hasn't been all that useful as it couldn't be used outside
4262
  of targets (it can now) and nested "unknown" elements have always
4263
  been considered to be tasks (changed as well).
4264

    
4265
* <fixcrlf> would fail for files that contained lines longer than 8kB.
4266

    
4267
* Some junit formatters incorrectly assumed that all testcases would
4268
  inherit from junit.framework.TestCase.
4269

    
4270
* <fixcrlf> dropped the first characters from Mac files.
4271

    
4272
Other changes:
4273
--------------
4274

    
4275
* <checksum> now uses a buffer (of configurable size).
4276

    
4277
* The "Trying to override task definition" warning has been degraded
4278
  to verbose level if the two task definitions only differ in the class
4279
  loader instance that has loaded the definition.
4280

    
4281
* Add a jvmargs to the ejbjar's weblogic element to allow additional
4282
  arguments to be provided to the VM runnign ejbc. Document the
4283
  jvmdebuglevel attribute which can be used to avoid warnings about
4284
  interface classess being found on the classpath. Document the new
4285
  <sysproperty> element which allows JVM properties to be defined.
4286
  Added an outputdir attribute to allow the destination to be a
4287
  directory into which the exploded jar is written.
4288

    
4289
* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5
4290

    
4291
* added **/.svn and **/.svn/** to the default excludes.
4292

    
4293
* Selector Elements now provide a way to create filesets based on
4294
  sophisticated selection criteria.
4295

    
4296
* Gzip and Bzip2 files can now be constructed in the fly when using
4297
  the tar task without having to create the intermediate tar file on
4298
  disk.  The Untar task can also untar GZip and BZip2 files on the fly
4299
  without creating the intermediate tar file.
4300

    
4301
* New optional type, <classfileset> added.
4302

    
4303
* <ejbjar> now allows control over which additional classes and interfaces
4304
  are added to the generated EJB jars. A new attribute "dependency" can be
4305
  defined which controls what classes are added. The addition of classes now
4306
  uses the Jakarta-BCEL library rather than reflection, meaning bean classes are
4307
  no longer loaded into Ant's JVM. The default dependency analyzer is known as
4308
  the ancestor analyzer. It provides the same behaviour as the 1.4.1 version of
4309
  <ejbjar>. If the BCEL library is not present, a warning will be issued stating
4310
  the ancestor analyzer is not available. In this case <ejbjar> will continue
4311
  to function but will not add super classes to the jar.
4312

    
4313
* <available> has a new attribute named ignoreSystemClasses.
4314

    
4315
* New task <cvschangelog/> generates an XML report of changes that occur
4316
  on CVS repository.
4317

    
4318
* New filter readers: ClassConstants, ExpandProperties, HeadFilter,
4319
  LineContains, LineContainsRegExp, PrefixLines, ReplaceTokens,
4320
  StripJavaComments, StripLineBreaks, StripLineComments, TabsToSpaces,
4321
  TailFilter.
4322

    
4323
* <copy>, <loadfile>, <loadproperties>, <move> support FilterChains
4324
  of FilterReaders.
4325

    
4326
* New task <loadproperties> to load contents of file as Ant properties,
4327
  with nested <filterchain> elements.
4328

    
4329
* New task <loadfile> to load a whole file into a property.
4330

    
4331
* New task <echoproperties> to list your current properties to the screen
4332
  or a file.
4333

    
4334
* New tasks <bzip2> and <bunzip2> to pack and unpack files using the
4335
  BZip2 alogrithm.
4336

    
4337
* New tasks <replaceregexp>, <checksum>, <translate>, <waitfor>,
4338
  <manifest>, <vsscp>, <vssadd>, <vsscreate>, <splash>, <basename>, <dirname>,
4339
  <concat>, <sourceoffsite>, <jarlib-available>, <jarlib-display>,
4340
  <jarlib-manifest>, <jarlib-resolve>.
4341

    
4342
* A new combined <mail> task, which replaces the old <mail> and
4343
  <mimemail> tasks, has been added.  The <mimemail> task, and
4344
  old SendEmail and MimeMail classes have been deprecated.
4345

    
4346
* Mail task allows specification of port number.
4347

    
4348
* Users can control what <zip> and <jar> must do when duplicate files
4349
  are found.  A new element <zipgroupfileset> allows for multiple zip
4350
  files to be merged into the archive.  In addition, <jar> also has
4351
  another new attribute: filesetmanifest.  The existing manifest
4352
  attribute of <jar> now also accepts the name of a jar added through
4353
  a fileset.
4354

    
4355
* gzip now checks that the zipfile is older than the source file
4356
  before rebuilding the zipfile.
4357

    
4358
* TarFileset takes in three new attributes - fullpath, prefix
4359
  and preserveLeadingSlashes.
4360

    
4361
* <move> attempts to rename the directory, if everything inside it is
4362
  included, before performing file-by-file moves.  This attempt will
4363
  be done only if filtering is off and if mappers are not used.  This
4364
  is a performance improvement and there is no change otherwise in
4365
  the functionality of this task.
4366

    
4367
* Exec task has extra attribute "resultproperty" to get the return code
4368
  into a property.
4369

    
4370
* Exec task prints a message when a timed-out process is killed.
4371

    
4372
* Added optional attributes - name, arch and version to the <os> task.
4373

    
4374
* Unjar, Untar, Unwar and Unzip now support patternsets to
4375
  select files from an archive for extraction.  Filesets may be
4376
  used to select archived files for unarchival.
4377

    
4378
* Javac task allows debug levels to be specified.  Debug levels
4379
  will have an effect only when the modern compiler or the
4380
  classic compiler (version 1.2 and higher) is used and debugging
4381
  is enabled.
4382

    
4383
* Added support for specifying CVS_RSH in the <cvs/> task
4384

    
4385
* The attributes zipfile, jarfile, warfile and earfile (from the Zip,
4386
  Jar, War and Ear tasks) have been deprecated and superseded by a
4387
  new attribute "destfile".
4388

    
4389
* Added new conditions <isset>, <checksum>, <http>, <socket>, <contains>,
4390
  <filesmatch>.
4391

    
4392
* <taskdef> and <typedef> will now emit a warning if a task/type of
4393
  the given name already exists.
4394

    
4395
* A new revision of VAJ tasks: The most important new feature
4396
  is the ability to execute VAJ tasks from the command line by
4397
  exploiting the Remote Tool Access feature of VAJ.
4398

    
4399
* Improved support for Novell NetWare.
4400

    
4401
* Added an optional encoding attribute to <fixcrlf>.
4402

    
4403
* <apply> has a new attribute relative that allows users to pass the
4404
  filenames as relative instead of absolute paths on the command line.
4405

    
4406
* References can now be copied into the child build by <ant> and
4407
  <antcall> using nested <reference> elements or the new inheritRefs
4408
  attribute.
4409

    
4410
* <fail> now supports builds to fail based on conditions via if and
4411
  unless attributes.
4412

    
4413
* Ant now comes with two new BuildLogger implementations - one that
4414
  can send emails containing a log of the build process (MailLogger),
4415
  and one that colorizes the output based on message levels, using
4416
  ANSI color code escape sequences (AnsiColorLogger).
4417

    
4418
* A "package" mapper type has been added to allow package directory
4419
  names replaced with the dotted form.
4420

    
4421
* You can now specify environment variables in the <java> and <junit> tasks
4422
  if the fork attribute has been set to true.
4423

    
4424
* -propertyfile command-line option has been added to load an entire
4425
  property file just as -D properties are declared (as user properties).
4426
  -D properties take precedence over -propertyfile specified ones.
4427

    
4428
* You can now set an ANT_ARGS environment variable to hold arguments you
4429
  always want passed to the 'ant' command -- for example, if you always
4430
  want to use a different logger or the -find flag.
4431

    
4432
* <tstamp> now supports a new "prefix" attribute to prefix properties set.
4433

    
4434
* You can now specify the -sourcepath for <javac> explicitly.
4435

    
4436
* <javac> now supports a new "listfiles" attribute to list the source
4437
  files it's handing off to the compiler.
4438

    
4439
* The compiler implementation for <javac> can now be chosen on a task by
4440
  task basis.  The new "compiler" attribute of <javac> can be used to override
4441
  the value of the build.compiler property, if set.
4442

    
4443
* <javac> has a new nested element, <compilerarg>, which allows you
4444
  to specify additional args for the specific compiler you're using.
4445

    
4446
* <javac>'s "source" attribute is now enabled for jikes as well.
4447

    
4448
* <propertyfile>'s <entry> now has a 'unit' attribute to specify the
4449
  increment/decrement unit on date operations.
4450

    
4451
* <property> now supports a 'prefix' attribute when loading from a file
4452
  or resource.
4453

    
4454
* In Ant 1.4, a feature has been added to the <junit> task that would
4455
  add ant.jar, optional.jar and junit.jar implicitly to the classpath -
4456
  this feature can now be disabled by setting the new includeantruntime
4457
  attribute to false.
4458

    
4459
* <style> behaves differently from any other directory-based task, as it
4460
  processes all files that it finds in included directories in
4461
  addition to the files matched by your patterns.  There is now a new
4462
  attribute, 'scanincludeddirectories', to suppress this behavior.
4463

    
4464
* <javadoc> now supports a <tag> nested element to provide the -tag option
4465
  to the standard Java 1.4 doclet. The element is ignored when not running
4466
  on Java 1.4.
4467

    
4468
* <ftp> can now chmod files on a remote server that supports
4469
  "site chmod", as well as set the umask before transferring files, if
4470
  the server supports "site umask".
4471

    
4472
* New <serverdeploy> "optional" task.
4473

    
4474
* <patternset> now supports nested patternsets.
4475

    
4476
* Perforce tasks now support a "failonerror" attribute (defaults to "true").
4477

    
4478
* Open Source application server JOnAS support:
4479
    EJB hot deploy and deploy with <serverdeploy> and <ejbjar>
4480

    
4481
* Added new DirSet (<dirset>) datatype.
4482

    
4483
* <path> now supports nested <dirset> and <filelist> elements.
4484

    
4485
* <pathconvert> now supports nested <dirset> and <filelist> elements.
4486

    
4487
* <pathconvert>'s "dirsep" and "pathsep" attributes now accept
4488
  multi-character values.
4489

    
4490
* <copy> task now has a 'failonerror' attribute to allow keep-going
4491
  behaviour when the file to be copied is not found (defaults to "true").
4492

    
4493
* <uptodate> now has a 'srcfile' attribute to allow specifying a
4494
  full-path filename.
4495

    
4496
* <exec>, <sql> and <java> now support append attributes to allow
4497
  appending the output to an existing file.
4498

    
4499
* <java> now supports a timeout attribute analog to <exec> - it is
4500
  highly recommended to only use it together with fork="true".
4501

    
4502
* <javadoc> now supports a source attribute to enable javadoc to
4503
  handle assertions present in JDK 1.4 source code.
4504

    
4505
* <replace> supports a new replacefilterfile attribute that
4506
  automatically turns all properties of a given file into
4507
  replacefilters.
4508

    
4509
* An alias of <xslt> has been added to refer to the <style> task.
4510

    
4511
* The compiler implementation for <rmic> can now be chosen on a task by
4512
  task basis.  The new "compiler" attribute of <rmic> can be used to override
4513
  the value of the build.rmic property, if set.
4514

    
4515
* <rmic> has a new nested element, <compilerarg>, which allows you
4516
  to specify additional args for the specific compiler you're using.
4517

    
4518
* org.apache.tools.ant.XmlLogger now is a BuildLogger, rather than just
4519
  a BuildListener. It can operate in either mode successfully.
4520

    
4521
* <junit> has a new attribute "showoutput".  If set to true, output
4522
  generated by tests will be sent to Ant's logging system as well as
4523
  to the formatters (instead of sending it to the formatters
4524
  exclusively).
4525

    
4526
* Ant has now a pluggable way to prompt users for input, which is used
4527
  by the new <input> task.  IDE integrators can provide an
4528
  implementation of the InputHandler interface to decouple Ant's input
4529
  from the console.  An implementation that gets its input from a file
4530
  for unattended builds is part of Ant's distribution.
4531

    
4532
  For more details see docs/manual/inputhandler.html.
4533

    
4534
* <patch> has a new attribute that selects the directory in which to
4535
  run the command.
4536

    
4537
* <javadoc> now supports two new nested elements, <fileset> and <packageset>.
4538

    
4539

    
4540
Changes from Ant 1.4 to Ant 1.4.1
4541
===========================================
4542

    
4543
Fixed bugs:
4544
-----------
4545

    
4546
* <ant>'s antfile attribute will now also be considered an absolute path on
4547
  Windows systems, if it starts with a \ and no drive specifier.
4548

    
4549
* The fullpath attribute of <zipfileset> has been ignored if you used
4550
  the src attribute at the same time.
4551

    
4552
* The manifest file is now always placed as the second entry (after /META-INF)
4553
  in generated jars. This allows the manifest to be read by JarInputStreams
4554

    
4555
* Fixed bug in depend task which would fail with a NullPointerException if no
4556
  dependency cache was specified.
4557

    
4558
* sql task now handles REM statements correctly so that lines starying with rem
4559
  but which are not comments are actually processed.
4560

    
4561
* XMLLogger now uses the task's name rather than the classname
4562

    
4563
* <mapper>s will now work as expected if the to pattern expands to an
4564
  absolute pathname.
4565

    
4566
* <javac> didn't ignore memory settings in non-fork mode
4567

    
4568
* <cab> didn't split the options attribute into several command line
4569
  arguments correctly.
4570

    
4571
Other changes:
4572
--------------
4573

    
4574
* New source attribute for <javac> to enable assertion in JDK 1.4
4575

    
4576
* XmlLogger and <antstructure> now add an encoding declaration to the
4577
  XML files they generate.
4578

    
4579
* <fileset> has a new attribute "casesensitive" to make it match
4580
  filenames in a case insensitive way (if you set it to false) - by
4581
  default filesets remain case sensitive.
4582

    
4583
Changes from Ant 1.3 to Ant 1.4
4584
===========================================
4585

    
4586
Changes that could break older environments:
4587
--------------------------------------------
4588
* JUnitReport now uses the xalan redirect extension for multi-output.
4589
  With Xalan 1.2.2 it forces the use of bsf.jar in the classpath.
4590
  (Available in the xalan distribution). It is recommended to switch
4591
  to Xalan 2.x that do not need it.
4592

    
4593
* Zip.setWhenempty() has changed its signature.
4594

    
4595
* <rmic> is now implemented using a factory. This makes extending
4596
  rmic to use a new compiler a lot easier but may break custom
4597
  versions of this task that rely on the old implementation.
4598

    
4599
* several Zip methods have changed their signature as we now use a Zip
4600
  package of our own that handles Unix permissions for directories.
4601
  Furthermore <zip> will now use the platform's default character
4602
  encoding for filenames - this is consistent with the command line
4603
  ZIP tools, but causes problems if you try to open them from within
4604
  Java and your filenames contain non US-ASCII characters. Use the new
4605
  encoding attribute of the task and set it to UTF8 to get the old
4606
  behavior.
4607

    
4608
* The <pvcs> task has been moved to a package of its own.
4609

    
4610
* JUnitResultFormater has two additional methods that must be
4611
  implemented by custom formatters.
4612

    
4613
* Ant will no longer use the canonical version of a path internally -
4614
  this may yield different results on filesystems that support
4615
  symbolic links.
4616

    
4617
* The output generated by the xml formatter for <junit> has changed
4618
  again, it doesn't format the numeric value in the time attribute anymore.
4619

    
4620
* Pattern matching rules have changes slightly, the pattern foo*
4621
  doesn't match files contained in a directory named foo - use foo/*
4622
  instead.
4623

    
4624
* <fixcrlf> will not remove trailing whitespace at the end of lines anymore.
4625

    
4626
* The Classloader usage has been changed for the taskdef, property, available
4627
  and sql tasks so that it delegates to the parent classloader. This may cause
4628
  ClassNotFoundExceptions to be thrown if a system class attempts to load a
4629
  class in the taskdef's classpath (typically factory objects).
4630

    
4631
* Ant now allows multithreading of tasks and the containment of tasks within
4632
  other tasks. This can break customer listeners which do not expect messages
4633
  from a task before the previous task has finished.
4634

    
4635
* Ant now installs its own ouput stream into System.out to route output to the
4636
  task currently executing on the current thread. This also means that all
4637
  output is now routed as Ant message events. Customer listeners and loggers
4638
  should not call System.out at any time. This has always been true but such
4639
  usage now will cause problems due to possible recursion.
4640

    
4641
* Invalid manifest files will now cause build failures in the <jar> task.
4642

    
4643
* Ant Introspection now looks for methods with method names starting with
4644
  addConfigured. When called these methods are passed an argument after it has
4645
  been configured from the build file. Custom tasks supporting nested elements
4646
  starting with the name configured will no longer function.
4647

    
4648
* The environment variable JAVACMD that can be used to specify the
4649
  java executable to Ant's wrapper scripts must not contain additional
4650
  command line parameters any longer - please use the environment
4651
  variable ANT_OPTS for such parameters now.
4652

    
4653
* Ant's wrapper scripts now quote the CLASSPATH environment variable, thus
4654
  supporting classpaths which refer to directories containing spaces. This means
4655
  that the CLASSPATH environment variable cannot have quotes. Any quotes should
4656
  be removed. This will not affect the operation of the CLASSPATH environment
4657
  variable in other contexts.
4658

    
4659
* A delete task like
4660
  <delete includeEmptyFilesets="true">
4661
    <fileset dir="somedir" />
4662
  </delete>
4663
  will now remove "somedir" as well, unless there are still files left
4664
  in it (matched by the default excludes).
4665

    
4666
* The copy task will now fail if the file to be copied is not found.
4667

    
4668
* Ant properties defined in properties files now behave the same way as
4669
  properties defined in the build file. In particular the $ character needs
4670
  to be escaped in property values by doubling it to $$. So, to define a
4671
  property with the value $hello, you need to define it in a properties file
4672
  as
4673
    test.prop=$$hello
4674
  This was not the case in Ant 1.3
4675

    
4676
Other changes:
4677
--------------
4678

    
4679
* New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout,
4680
  typedef, sleep, mimemail, set of tasks for Continuus/Synergy, dependset,
4681
  condition, maudit, mmetrics, jpcoverage, jpcovreport, jpcovmerge
4682

    
4683
* Ant now uses JAXP 1.1
4684

    
4685
* rmic now supports Kaffe's and Weblogic's version of rmic.
4686

    
4687
* new magic property build.rmic to chose the rmic implementation
4688

    
4689
* <tar> will now add empty directories as well
4690

    
4691
* you can now specify a description for <p4change>
4692

    
4693
* <touch> can now work on <fileset>s
4694

    
4695
* <uptodate> now supports a value attribute
4696

    
4697
* <fail> supports nested text
4698

    
4699
* <fixcrlf> won't override files that are already in the correct
4700
   format.
4701

    
4702
* <sql> now supports REM comments as well as // and --
4703

    
4704
* <jar> now has a nested <metainf> element following the same idea as
4705
  <war>'s <webinf>.
4706

    
4707
* <pvcs> can now handle multiple projects.
4708

    
4709
* <available> now has a "type" attribute you can use in conjunction
4710
  with the "file" attribute to specify whether the "file" you're
4711
  looking for is a file or a directory.
4712

    
4713
* New <junit> formatter named "brief"
4714

    
4715
* <ejbjar> changes
4716
  * Add support for Borland Application Server to the <ejbjar> task using
4717
    a <borland> nested element.
4718
  * Add support for iPlanet Application Server to the <ejbjar> task. Also
4719
    includes some iPlanet utility tasks
4720
  * Add support for JBoss Application Server to the <ejbjar> task.
4721
  * Add a naming attribute to control the naming scheme that
4722
    ejbjar uses to name the generated EJB jars.
4723
  * Weblogic element now sets the compiler class for EJB 2.0 beans
4724
  * <dtd> elements can be specified at the <ejbjar> level for building generic
4725
    beans
4726
  * <dtd> elements can now be URLs
4727
  * Allow the manifest to be specified for the generated jars
4728
  * The weblogic element now supprts an attribte noEJBC to skip the processing
4729
    of the jar by ejbc. The ejbc step will then occur at deployment
4730
  * weblogic will tell ejbc to use Jikes compiler if build.compiler is set to
4731
    jikes. It can be restored to the default, javac, operation if desired.
4732

    
4733
* Allow the <sql> Delimiter to be set in the so that Oracle stored procs may be
4734
  entered
4735

    
4736
* <execon> and <apply> can now optionally skip empty filesets.
4737

    
4738
* <javadoc> has a new useexternalfile attribute that makes it use a
4739
  temporary file for sourcefile and package names - helps to defeat
4740
  command line length limitations.
4741

    
4742
* Data types like <path> can now be defined inside of <target>s
4743

    
4744
* you can now specify a classpath for <style> - the XSLZ processor
4745
  will be loaded from this path
4746

    
4747
* added a force attribute to <style> to support dependencies that the
4748
  task cannot determine itself (dependency on parameters, not file
4749
  modification times for example)
4750

    
4751
* added vmlauncher attribute to exec tasks. This defaults to true. If
4752
  it is set to false, the VM's ability to launch commands in bypassed
4753
  and the OS shell, either directly or through the auxillary antRun
4754
  scripts is used.
4755

    
4756
* regexp mapper now supports the java.util.regex package of JDK 1.4.
4757

    
4758
* New filesonly attribute for <zip> and friends to suppress directory
4759
  entries.
4760

    
4761
* New update attribute for <zip> and friends - update an existing
4762
  archive instead of creating a new one.
4763

    
4764
* <apply> and <execon> have been merged into a single task.
4765

    
4766
* added vssver.scc to the default excludes
4767

    
4768
* <available> has a new filepath attribute/nested element that allows
4769
  you top search for a file in a given path.
4770

    
4771
* <junit> can now optionally set a property on test failure.
4772

    
4773
* <taskdef> can now define several tasks at once, reading the
4774
  name/classname pairs from a property file or resource.
4775

    
4776
* <unzip/unjar/unwar> and <untar> now have an overwrite attribute that
4777
  defaults to true.  If set to false, files that are newer than the
4778
  files in the archive will not be replaced.
4779

    
4780
* <patternset> and <fileset> now support nested <in/excludesfile>
4781
  elements - using these you can have more than one in/excludes file
4782
  per <patternset>.
4783

    
4784
* Three new supported compilers for javac: kjc for kopi, gcj for the
4785
  gcc frontend and sj for Symantec's compiler.
4786
  In addition extJavac or the new fork attribute can be
4787
  used to run the JDK's javac in a JVM separate from Ant.
4788

    
4789
* <fixrlf> can now with CR only line-ends and can use an arbitraty
4790
  between 2 and 80.
4791

    
4792
* The .NET tasks have been adapted to the beta2 release of the framework.
4793

    
4794
* <move> will now try to rename() files before copying them byte by
4795
  byte - only if filtering is of, of course.
4796

    
4797
* <ant> and <antcall> tasks now support a new attribute inheritAll. When set to
4798
  false, only user properties are passed through to the target Ant instance.
4799
  This includes properties set on the command line and properties explicitly
4800
  passed
4801

    
4802
* <javadoc> now skips off line links if the package list cannot be found.
4803

    
4804
* <wlrun> now allows the security policy file to exist outside the weblogic
4805
  directory.
4806

    
4807
* <java> task will set the Thread contextClassLoader under JDKs 1.2+ to the
4808
  classloader for the class being executed.
4809

    
4810
* Introduce the concept of a TaskContainer - a task or element which can contain
4811
  Ant Tasks.
4812

    
4813
* Add new tasks implementing the TaskContainer interface <parallel> and
4814
  <sequential> which allow parallel execution of tasks to be specified.
4815

    
4816
* <depend> task will now take into account dependencies on jar files and class
4817
  files from a given classpath.
4818

    
4819
* <jar> manifest entries may now be specified in the build file either
4820
  completely or to be merged with a manifest file.
4821

    
4822
* <tstamp> task custom formats now support locales.
4823

    
4824
* Added a listner which will forward events to Log4J. The log4j configuration
4825
  file should be in the directory from which Ant is run or passed as a system
4826
  property using a JVM argument.
4827

    
4828
* Introduced the concept of <filtersets> to allow for more control in which
4829
  filters get applied in a <copy> or <move> operation.
4830

    
4831
* Added nowarn attribute to javac and deprecated the Jikes-magic property
4832
  build.compiler.warnings.
4833

    
4834
* The <depend> task cache format has changed and all dependency information is
4835
  now stored in a single file.
4836

    
4837
Fixed bugs:
4838
-----------
4839

    
4840
* Testcases have been made independent of current working directory.
4841

    
4842
* Input ZIP-Files will be closed when using a <zipfileset>.
4843

    
4844
* p4 tasks now don't fail if user, port or client have been omitted
4845
  (and this is acceptable for the context of the command).
4846

    
4847
* <javah>'s outputfile attribute will be resolved as relative to the
4848
  projects basedir.
4849

    
4850
* <antstructure> should create a valid DTD for propertyfile.operation.entry
4851
  and omit tasks it fails to load.
4852

    
4853
* won't try to pass a -bootclasspath flag to javac 1.1 anymore
4854

    
4855
* <style>'s style attribute no handles absolute paths correctly.
4856

    
4857
* <delete includeemptydirs="true"> now deletes more than just the leaf
4858
  directories.
4859

    
4860
* You can now specify a <fileset> for a directory that doesn't exist at
4861
  declaration time but will created before the fileset gets used for the
4862
  first time.
4863

    
4864
* If the quiet attribute has been set, <delete> will handle <fileset>s
4865
  with non-existing directories gracefully.
4866

    
4867
* Output written by testcases will now be captured by the <junit> task
4868
  and passed to the formatters.
4869

    
4870
* Quote the -group parameter to Javadoc as per the specification
4871

    
4872
* Initialise classes when loaded through the AntClassLoader - that is, run
4873
  static initializers
4874

    
4875
* Implement getResource() and getResources() in AntClassLoader
4876

    
4877
* Create the <ejbjar> weblogic command line as a set of arguments rather than
4878
  as a single line. Avoids problems with paths which contain spaces.
4879

    
4880
* <ejbjar> now fails when the weblogic ejbc compiler reports an error.
4881

    
4882
* Make the AntClassLoader load resources in the same order as it currently
4883
  loads classes.
4884

    
4885
* Handle classpaths with spaces
4886

    
4887
* Make sure XSLT processors close their output files in <style>.
4888

    
4889
* perform proper uptodate check in <rmic> when compiling for IIOP.
4890

    
4891
* <jjtree>'s uptodate test works even if outputdirectory is not the
4892
  parent dir of target
4893

    
4894
* <copy> will remove target file (if it exists) before writing to it -
4895
  this avoids problems with links on filesystems that support them.
4896

    
4897
* <ftp> now properly recurses remote directories.
4898

    
4899
* <ftp> closes remote connection when it's done.
4900

    
4901
* <junit> tries to include all necessary classes for the task itself
4902
  to the classpath when running in fork mode - doesn't work for JDK 1.1
4903

    
4904
* <apply> and <execon> do now execute the command only once, if you
4905
  specify the parallel attribute - instead of once per fileset.
4906

    
4907
* directory based tasks and fileset could miss some included files in
4908
  directories that have been excluded
4909

    
4910
* <fixcrlf> failed for large files.
4911

    
4912
* <move> removed files you tried to move to themselves.
4913

    
4914
* <sql> task will not trty to print the result set unless the query succeeded.
4915

    
4916
* Ant classloader will now ignore paths which are invalid relative to the
4917
  project base
4918

    
4919
* <ejbjar> weblogic elements check for jar file changes has been fixed.
4920
  Previously some changes would not be included.
4921

    
4922
* properties loaded from properties files are now resolved internally. This
4923
  removes the spurious warnings about usage of properties which have not been
4924
  set.
4925

    
4926
* <jar> task and friends now process the JAR manifest to ensure it is valid.
4927

    
4928
* The task finished event now includes any exception thrown by the task.
4929

    
4930
* <java> task now supports a jvmVersion attribute so that if another JVM is
4931
  being used, Ant can determine which options to use for features such as the
4932
  VM memory limits
4933

    
4934

    
4935
Changes from Ant 1.2 to Ant 1.3
4936
===========================================
4937

    
4938
Changes that could break older environments:
4939
--------------------------------------------
4940

    
4941
* Ant doesn't search for the buildfile anymore, unless you use the new
4942
  -find argument.
4943

    
4944
* <perforce> has been replaced by a number of new tasks.
4945

    
4946
* <javac> is now implemented using a factory. This makes extending
4947
  javac to use a new compiler a lot easier but may break custom
4948
  versions of this task that rely on the old implementation.
4949

    
4950
* The output generated by the xml formatter for <junit> has changed a
4951
  little, it doesn't append " sec" in the time attribute anymore.
4952

    
4953
Other changes:
4954
--------------
4955

    
4956
* A GUI Frontend: Antidote. This is currently in development. At this
4957
  time, this is not part of the Ant release, although the source is
4958
  included if you are interested.
4959

    
4960
* New tasks: stylebook, propertyfile, depend, antlr, telnet, csc,
4961
  ilasm, apply, javah, several clearcase tasks, junitreport, sound
4962

    
4963
* Added output attribute to <java>.
4964

    
4965
* Added nested zipfileset element to <zip>
4966

    
4967
* Changed <sql> so that printing is at the task level rather than
4968
  the statement level.
4969

    
4970
* javadoc task will pass -d flag to any doclet if the destDir attribute is
4971
  given. If the doclet does not accept the -d flag then omit the destdir
4972
  attribute.
4973

    
4974
* <cab> can work on non-Windows platforms with the help of libcabinet.
4975
  See http://trill.cis.fordham.edu/~barbacha/cabinet_library/.
4976

    
4977
* <ftp> now supports passive mode.
4978

    
4979
* New <mapper> data type that can be used to get influence on the
4980
  target files for some tasks like <copy> or enable new types of tasks
4981
  like <apply>.
4982

    
4983
* <execon> provides more control over the command line now, the names
4984
  of the source files are no longer required to be at the end of the
4985
  command.
4986

    
4987
* Style tasks will now support TraX compliant XSL processors if one is present
4988
  in your classpath.
4989

    
4990
* Added a failonerror to the javac task. If set to false, the build will
4991
  continue even if there are compilation errors.
4992

    
4993
* Added nested format elements to the tstamp task allowing additional time
4994
  formats to be defined for arbitrary properties.
4995

    
4996
* Added classpath attribute and nested classpath element to <property>
4997
  to make the resource attribute more powerful.
4998

    
4999
* ${} property expansion will now be performed on the patterns read
5000
  from files specified as includesfile or excludesfile attributes.
5001

    
5002
* The <tar> and <untar> tasks now support GNU format for handling paths
5003
  which are greater than 100 characters in length. In addition the <tar>
5004
  task now supports nested filesets through which the file permissions
5005
  may be controlled.
5006

    
5007
* wlrun, wlstop and ejbjar now support Weblogic 6.0
5008

    
5009
* The MPasre task has been updated to work with MParse 2.0
5010

    
5011
* The documentation has been significantly updated.
5012

    
5013

    
5014
Fixed bugs:
5015
-----------
5016

    
5017
* <signjar> no longer uses deprecated methods.
5018

    
5019
* javadoc's failonerror attribute works again
5020

    
5021
* javadoc's additionalparam attribute will now be split into separate
5022
  parameters (on spaces) to allow for more than one parameter.
5023

    
5024
* Changed <sql> task so that printing result sets works on Oracle
5025

    
5026
* Changes to ddcreator and ejbc helper to respect the descriptor hierarchy
5027
  keppgenerated in ejbc can now be turned off
5028

    
5029
* ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor.
5030
  CMP files are included by parsing the weblogic deployment descriptor rather
5031
  than relying on the naming convention used in ant 1.2
5032

    
5033
* ejbjar includes super classes and super interfaces into the generated ejb
5034
  jar files. The <support> nested element allows support classes to be
5035
  included in the EJB jar. The toplink element should now correctly locate
5036
  the toplink descriptor.
5037

    
5038
* <vssget> now correctly deals with spaces in arguments
5039

    
5040
* <jar> fails early if a given manifest file doesn't exist
5041

    
5042
* <rmic> doesn't search for the _Skel file anymore when stubversion is
5043
  set to 1.2.
5044

    
5045
* <rmic> uses the the same classpath to verify a class can be rmic'd
5046
  as it passes to the compiler.
5047

    
5048
* org.apache.tools.mail.MailMessage (and therefore <mail>) can now
5049
  handle SMTP servers sending multi line responses.
5050

    
5051
* nested <classpath> elements of <taskdef> now work for <taskdef>s not
5052
  nested into <target> as well.
5053

    
5054
* <property> and <available> will search for the resource "foo" instead
5055
  of "/org/apache/tools/ant/taskdefs/foo" when given a relative resource
5056
  name foo.
5057

    
5058
* Handle build files in directories whose name contained a "#" character
5059

    
5060
* <junit> can now log to files whose name contains a comma as well.
5061

    
5062
* The AntClassLoader now refers to the loader which loaded it, any
5063
  requests it does not handle itself. Previously these went to the
5064
  primordial loader.
5065

    
5066
Changes from Ant 1.1 to Ant 1.2
5067
===============================
5068

    
5069
Changes that could break older environments:
5070
--------------------------------------------
5071

    
5072
* Semantics of <property> has changed again in the hope to be more
5073
  intuitive. ${} expansion now happens at runtime and <property> tags
5074
  living inside of targets only take effect if they are visited at
5075
  runtime.
5076

    
5077
  As a side effect of this change, task's attributes get set at runtime
5078
  not at parser time as well, which might change the results of
5079
  <script>s or other custom tasks that reference other tasks by their id
5080
  attribute.
5081

    
5082
* copying of support files in <javac> has been removed - as well as
5083
  the filtering attribute.
5084

    
5085
* the <expand> and <keysubst> tasks have been removed.
5086

    
5087
* the ignore and items attributes of directory based tasks have been removed.
5088

    
5089
* the command line switches _not_ starting with - have been removed.
5090

    
5091
* Path and EnumeratedAttribute have been moved from
5092
  org.apache.tools.ant to org.apache.tools.ant.types.
5093

    
5094
* the class attributes of <available>, <java>, <rmic> and <taskdef>
5095
  have been removed.
5096

    
5097
* the src attribute of <chmod> has been removed.
5098

    
5099
* <patch> and <javadoc> have lost some of their attributes.
5100

    
5101
* <java> and <cvs> have lost some undocumented attributes.
5102

    
5103
* the Unix antRun script would search for command.sh in the directory
5104
  it changed to and invoke this instead of command if present. This
5105
  behavior has been dropped.
5106

    
5107
* <ejbjar> task syntax has been changed significantly
5108

    
5109
* <exec> is no longer implemented by org.apache.tool.ant.taskdefs.Exec.
5110
  Custom tasks that rely on Project.createTask("exec") to return an
5111
  instance of this class are going to fail.
5112

    
5113
* nested <include> and <exclude> elements expect the value of their
5114
  name attribute to be a single pattern, they don't accept multiple
5115
  patterns anymore. Split them into multiple elements of the same type.
5116

    
5117
* <delete dir="somedir" /> will now delete the directory itself as
5118
  well as all included files. If you just want to clean out the
5119
  directory and keep the empty one, use a nested fileset.
5120

    
5121
Other changes:
5122
--------------
5123

    
5124
* New tasks: antstructure, cab, execon, fail, ftp, genkey, jlink,
5125
  junit, sql, javacc, jjtree, starteam, war, unwar, uptodate,
5126
  native2ascii, copy, move, mparse.
5127

    
5128
* copydir, copyfile, deltree and rename are now deprecated. They
5129
  should be replaced with the new copy, delete and move tasks.
5130

    
5131
* <java> uses a ClassLoader of its own in no-fork mode if a classpath is
5132
  specified.
5133

    
5134
* <style> will create the necessary target directories and reprocess
5135
  all files if the stylesheet changes.
5136

    
5137
* New data types fileset and patternset - expected to get a broader use.
5138
  They, as well as PATH like structures, can now be defined on a global
5139
  level and later be referenced by their id attribute.
5140

    
5141
* You can specify environment variables to <exec>.
5142

    
5143
* <get> can check whether a remote file is actually newer than a local
5144
  copy before it starts a download (HTTP only).
5145

    
5146
* Added a -logger option to allow the class which performs logging to be
5147
  specified on the command line.
5148

    
5149
* Added a -emacs option to tell the logger to leave out taskname adornments
5150
  on log output.
5151

    
5152
* <chmod> works on all files in parallel and supports multiple filesets.
5153

    
5154
* <replace> can now use tokens and/or values that cross line boundaries.
5155

    
5156
* build.compiler supports now jvc as well.
5157

    
5158
* project specific help can now be obtained with the -projecthelp option.
5159

    
5160
* Added a -debug option to make -verbose less verbose (and more useful)
5161

    
5162
* Ant will now search for a file named build.xml in the parent directory
5163
  and above (towards the root of the filesystem) if you didn't specify
5164
  -buildfile and there is no build.xml in the current directory.
5165

    
5166
* <echo> can now write to a file and accepts nested text.
5167

    
5168
Fixed bugs:
5169
-----------
5170

    
5171
* <chmod> didn't work when used as a directory based task.
5172

    
5173
* Path, Available, Property didn't resolve relative filenames with
5174
  respect to the Project's basedir.
5175

    
5176
* Project didn't interpret the basedir attribute correctly in all
5177
  cases.
5178

    
5179
* Nested <src> in <javac> caused NullPointerException.
5180

    
5181
* Corrupt Zip- and Jar-files ar now deleted if the task fails.
5182

    
5183
* many more fixes we've forgotten to document here ...
5184

    
5185
* The packagelistloc attribute of <javadoc>'s <link> child will be
5186
  resolved as a file (i.e. it is either absolute or relative to
5187
  basedir).