source: local/greenstone3/darwin-64bit/apache-ant-1.9.6/WHATSNEW@ 32185

Last change on this file since 32185 was 30383, checked in by davidb, 8 years ago

Newer version of ant needed to compile GS3

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