forked from apache/ant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
WHATSNEW
6282 lines (4423 loc) · 226 KB
/
WHATSNEW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes from Ant 1.9.6 TO Ant 1.9.7
===================================
Changes that could break older environments:
-------------------------------------------
Fixed bugs:
-----------
* ZipOutputStream could cause an ArrayIndexOutOfBoundsException when
adding entries with comments. This never happens when using Ant as
a build tool but may affect users using Ant's zip package as a
library.
Other changes:
--------------
Changes from Ant 1.9.5 TO Ant 1.9.6
===================================
Changes that could break older environments:
-------------------------------------------
Fixed bugs:
-----------
* ArrayIndexOutOfBoundsException when ZIP extra fields are read and
the entry contains an UnparseableExtraField.
https://issues.apache.org/jira/browse/COMPRESS-317
Other changes:
--------------
* Hidden <javaconstant> resource is published now. It reads the
value of a specified java constant.
Changes from Ant 1.9.4 TO Ant 1.9.5
===================================
Changes that could break older environments:
-------------------------------------------
* The ReplaceTokens filter can now use token-separators longer than
one character. This means it can be used to replace mustache-style
{{patterns}} and similar templates. This is going to break code
that invokes the setters on ReplaceTokens via the Java API as their
parameters have been changed from char to String. It may also
break build files that specified multi character tokens and relied
on Ant silently ignoring all but the first character.
Bugzilla Report 56584
* The changes that added <get>'s support for gzip encoding
automatically uncompressed content that would not have been touched
before - like when downloading .tar.gz files. A new flag has been
added to control the behavior and its default will make <get> work
as it did in 1.9.3. I.e. if you want it to work like 1.9.4
you have to explicitly set tryGzipEncoding to true.
Bugzilla Report 57048
Fixed bugs:
-----------
* TarArchiveInputStream failed to read archives with empty gid/uid
fields.
Bugzilla Report 56641
* TarArchiveInputStream could throw IOException when reading PAX
headers from a "slow" InputStream.
* XMLJunitResultFormatter could throw NullPointerException if Java
cannot determine the local hostname.
Bugzilla Report 56593
* URLResource#getLastModified tried to access the connection to the
URL without making sure it was established, potentially leading to
a NullPointerException when using FTP.
Bugzilla Report 56873
* Long-Name and -link or PAX-header entries in TAR archives
always had the current time as last modfication time, creating
archives that are different at the byte level each time an
archive was built.
* runant.py should now work as well when the path of the Java executable
contains spaces.
github pull request #1
* <junitreport> now supports nested <classpath> and <factory> elements.
Bugzilla Report 47002
* complete-ant-cmd.pl now also knows about the -file option.
Bugzilla Report 57371
* the br-replace template inside the XSLT stylesheets used by
<junitreport> could cause stack overflows or out-of-memory errors
when applied to big outputs.
Bugzilla Report 57341
* removed spurious warning about unclosed ZipFiles when reading the
archive failed.
Port of https://issues.apache.org/jira/browse/COMPRESS-297
* FileUtils.rename which is used by several tasks can throw a
NullPointerException if the "normal" renameTo operation fails and
an exception occurs while rename falls back to copying and deleting
the file.
Bugzilla Report 57533
* complete-ant-cmd.pl would incorrectly suggest words from the build
file description.
Bugzilla Report 51931
* complete-ant-cmd.pl now also completes tasks without a description.
Bugzilla Report 57542
* LocalPropertyStack could run into ConcurrentModificationException
when tasks spawned new child threads that accessed the properties.
Bugzilla Report 55074
* TarEntry's constructor with a File and a String arg didn't
normalize the name.
* Between 1.8.4 and 1.9.0 TarInputStream started to parse file
names using the platform's default encoding rather than as ASCII.
This has been a breaking change that has never been marked as such
(in fact it went unnoticed). In order to allow <untar> and
<tarfileset> to work on platforms who's encoding doesn't match the
encoding of file names inside the archive, both now support
encoding attributes.
The attribute has also been added to <tar> for symmetry.
Bugzilla Report 57822
Other changes:
--------------
* it is now possible to provide proxy configuration to signjar
when using the timestamped authority.
Bugzilla Report 56678
* complete-ant-cmd.pl now also analyzes the ANT_ARGS environment
variable.
Bugzilla Report 57371
* ported some of the write-optimization of Commons Compress 1.10 to
the ZIP package
* adapted unit tests to Java9 and added "javac1.9" as valid option
for javac's compiler attribute.
* performance improvements for <intersect>
Bugzilla Report 57588
* MailLogger can now add CC and BCC addresses.
Bugzilla Report 57789.
* <scp>'s buffer size has been increased from 1k to 100k to match
<ftp> and <get>.
github pull requests #8 and #9
* The tar package can now deal with group and user ids bigger than
0x80000000.
https://issues.apache.org/jira/browse/COMPRESS-314
https://issues.apache.org/jira/browse/COMPRESS-315
* <scp> has new attributes fileMode and dirMode that control the
permissions on the remote side when sending data via SSH.
Bugzilla Report 43271.
* New <allbutlast> and <allbutfirst> resource collections can be used
to select all but a given subset of a resource collection.
Bugzilla Report 57834.
Changes from Ant 1.9.3 TO Ant 1.9.4
===================================
Changes that could break older environments:
-------------------------------------------
* the prefixValues attribute of <property> didn't work as expected
when set to false (the default).
It is quite likely existing build files relied on the wrong
behavior and expect Ant to resolve the value side against the
properties defined in the property file itself - these build files
must now explicitly set the prefixValues attribute to true.
Bugzilla Report 54769
* when matching an entry of a zip/tarfileset against a pattern a
leading slash will be stripped from the entry name. Most archives
don't contain paths with leading slashes anyway.
This may cause include/exclude patterns that start with a / to stop
matching anything. Such patterns only used to work by accident and
only on platforms with multiple file system roots.
Bugzilla Report 53949
* DirectoryScanner and thus fileset/dirset will now silently drop all
filesystem objects that are neither files nor directories according
to java.io.File. This prevents Ant from reading named pipes which
might lead to blocking or other undefined behavior.
Bugzilla Report 56149
* BuildFileTest and BaseSelectorTest have both been deprecated in
favour of BuildFileRule and BaseSelectorRule respectively, and the
tests that previously extended these base tests have been converted to
JUnit 4 tests using the new "rule"s. Any external test that sub-classed
a test in the Ant workspace, rather than BuildFileTest, will need
changed to either use JUnit4's annotations, or be modified to
extend BuildFileTest directly. This will not affect any tests that are
being executed by Ant's junit or batchtest tasks that are not specifically
testing Ant's code.
Fixed bugs:
-----------
* <import>/<include> failed when the importing file was loaded from an
URI or a jar and it imported a file from the local file system via
an absolute path.
Bugzilla Report 50953
* <import> could import the same resource twice when imported via
different resource types.
Bugzilla Report 55097
* several calls to File#mkdirs could fall victim to a race condition
where another thread already created the same directory.
Bugzilla Report 55290
* <manifestclasspath> created '/' rather than './' for the parent
directory of the given jarfile.
Bugzilla Report 55049
* <concat>'s fixlastline="true" didn't work when using certain filter
readers.
Bugzilla Report 54672
* several places where resources are read from jars will now
explicitly disable caching to avoid problems with reloading jars.
Bugzilla Report 54473
* AntClassloader will now ignore files that are part of the classpath
but not zip files when scanning for resources. It used to throw an
exception.
Bugzilla Report 53964
* <javadoc> caused a NullPointerException when no destdir was set.
Bugzilla Report 55949
* <jar filesetmanifest="mergewithoutmain"> would still include the
Main section of the fileset manifests if there was no nested
manifest or manifest attribute.
Bugzilla Report 54171
* reading of compiler args has become more defensive
Bugzilla Report 53754
* <copy> without force="true" would not only fail to overwrite a
read-only file as expected but also remove the existing file.
Bugzilla Report 53095
* <delete removeNotFollowedSymlinks="true"> would remove symbolic
links to not-included files. It will still delete symlinks to
directories that would have been followed even if they are not
explicitly included. exclude-Patterns can still be used to
preserve symbolic links.
Bugzilla Report 53959
* Sometimes copy-operations using NIO FileChannels fail. Ant will
now try to use a Stream based copy operation as fallback when the
Channel based copy fails.
Bugzilla Reports 53102 and 54397
* Javadoc.postProcessGeneratedJavadocs() fails for Classes that
extend Javadoc
Bugzilla Report 56047
* TarInputStream will now read archives created by tar
implementations that encode big numbers by not adding a trailing
NUL.
* the isExists() method of URLResource returned false positives for
HTTP and FTP URLs.
Other changes:
--------------
* initial support for Java 1.9
* <sshexec> can optionally pass System.in to the remote process
Bugzilla Report 55393
* <sshexec> now supports capturing error output of the executed
process and setting a property from the return code.
Bugzilla Report 48478
* <javadoc> now has an option to fail if javadoc issues warnings.
Bugzilla Report 55015
* <sql> has a new outputencoding attribute.
Bugzilla Report 39541
* changes to JUnitTestRunner and PlainJUnitResultFormatter to make
OutOfMemoryErrors less likely.
Bugzilla Report 45536
* changes to DOMElementWriter to make OutOfMemoryErrors less likely.
Bugzilla Report 54147
* <redirector> has a new attribute binaryOutput that prevents Ant
from splitting the output into lines. This prevents binary output
from being corrupted but may lead to error and normal output being
mixed up.
Bugzilla Report 55667
Bugzilla Report 56156
* the nested <message> elements of <mail> now have an optional
inputEncoding attribute that can be used to specify the encoding of
files read that don't use the platform's default encoding.
Bugzilla Report 56258
* The <get> task now explicitly accepts and supports the gzip content encoding.
Bugzilla Report 49453
* A new resourcecollection type <multirootfileset> acts like a union
of <fileset>s and <dirset>s that share the same configuration but
have different base directories.
Bugzilla Report 48621
* <get> has a quiet attribute that makes the task log errors only
when enabled.
GitHub Pull Request #1
* <junit> has now a threads attribute allowing to run the tests in several threads.
Bugzilla Report 55925
* addition of a new ProcessUtil class providing the process id of the current process
* changes to allow to run the JUnit testcases of Ant in parallel,
by making them use unique temporary directories
Changes from Ant 1.9.2 TO Ant 1.9.3
===================================
Fixed bugs:
-----------
* <parallel> swallowed the status code of nested <fail> tasks.
Bugzilla Report 55539.
* a race condition could make <fixcrlf> tasks of parallel builds to
interfere with each other.
Bugzilla Report 54393.
* <mail>'s mailport still didn't work properly when using smtps.
Bugzilla Report 49267.
* using attributes belonging to the if and unless namespaces
made macrodef fail.
Bugzilla Report 55885.
* Ant 1.8 exec task changes have slowed exec to a crawl
Bugzilla Report 54128.
* Apt is not available under JDK 1.8
Bugzilla Report 55922.
Other changes:
--------------
* Documentation fix for if/unless attributes. PR 55359.
* tar entries with long link names are now handled the same way as
entries with long names.
* Addition of 'skipNonTests' attribute to <junit> and <batchtest>
tasks to allow the tasks to skip classes that don't contain tests.
* <filterset> now supports a nested <propertyset> to specify filters.
Bugzilla Report 55794.
* <xslt>'s params can now be typed.
Bugzilla Report 21525.
* build of Mac OS X pkg installer
Bugzilla Report 55899.
Changes from Ant 1.9.1 TO Ant 1.9.2
===================================
Fixed bugs:
-----------
* Parsing of zip64 extra fields has become more lenient in order to
be able to read archives created by DotNetZip and maybe other
archivers as well.
* TarInputStream should now properly read GNU longlink entries' names.
Bugzilla Report 55040.
* <java> and <exec> used to be too restrictive when evaluating
whether a given set of options is compatible with spawning the new
process.
Bugzilla Report 55112.
Other changes:
--------------
* <javadoc> will now post-process the generated in order to mitigate
the frame injection attack possible in javadocs generated by Oracle
JDKs prior to Java7 Update 25. The vulnerability is known as
CVE-2013-1571.
There is an option to turn off the post-processing but it is only
recommended you do so if all your builds use a JDK that's not
vulnerable.
Bugzilla Report 55132.
Changes from Ant 1.9.0 TO Ant 1.9.1
===================================
Changes that could break older environments:
-------------------------------------------
* Users who have their own ProjectHelper implementation will need to change it because the import and include tasks
will now default the targetPrefix to ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX.
Users using the default ProjectHelper2 with ant need not worry about this change done to fix Bugzilla Report 54940.
Fixed bugs:
-----------
* Corrected XSLTC error in <junitreport>.
Bugzilla Report 54641.
* Provide more control over Zip64 extensions created by <zip> and
related tasks. In particular no Zip64 extensions will be used at
all by the <jar> task family by default - this is required for jars
to be readably by Java5.
Bugzilla Report 54762.
* Fixed loading of external dependencies in JUnit task.
Bugzilla Report 54835.
* Target rewriting for nested "include" only works when "as" is specified.
See also "Changes that could break older environments"
Bugzilla Report 54940.
Other changes:
--------------
* strict attribute added to <signjar>.
Bugzilla Report 54889.
* simplifying Execute.getEnvironmentVariables since we are only running on Java 1.5 or higher now
* Added conditional attributes.
Bugzilla Report 43362
* Recommending to upgrade jsch to 0.1.50, particularly if you are using Java 1.7.
jsch is the library behind the sshexec and scp Ant tasks.
Versions of jsch older than 0.1.50 fail randomly under Java 1.7 with an error message "verify: false"
Changes from Ant 1.8.4 TO Ant 1.9.0
===================================
Changes that could break older environments:
-------------------------------------------
* Ant now requires at least Java 1.5 to compile and to run
* FixCRLF used to treat the EOL value ASIS to convert to the system property
line.separator. Specified was that ASIS would leave the EOL characters alone,
the task now really leaves the EOL characters alone. This also implies that
EOL ASIS will not insert a newline even if fixlast is set to true.
Bugzilla report 53036
* The CommandLauncher hierarchy that used to be a set of inner
classes of Execute has been extracted to the
org.apache.tools.ant.taskdefs.launcher package.
* Any FileResource whose represented File has a parent also has a basedir.
* Removing the Perforce Ant tasks replaced by tasks supplied by Perforce Inc.
* Setting the default encoding of StringResource to UTF-8 instead of null
* Upgrade JUnit 4 to JUnit 4.11
Fixed bugs:
-----------
* Made VectorSet faster.
Bugzilla Report 53622.
* Incorrect URLs in Ant child POMs.
Bugzilla Report 53617.
* Subclasses of JUnitTask did not correctly find junit.jar.
Bugzilla Report 53571.
* External XML catalog resolver failed to use project basedir when given an
unmentioned relative path like the internal resolver does.
Bugzilla Report 52754.
* Fixed some potential stream leaks.
Bugzilla Reports 52738, 52740, 52742, 52743.
* Updated documentation to fix spelling errors / broken links.
Bugzilla Reports 53215, 53291, 53202
* Unable to override system properties. It was not possible not to override
system properties from the command line (or from a property file).
Bugzilla Report 51792
* <javac> by default fails when run on JDK 8.
Bugzilla Report 53347.
* ExtensionPoint doesn't work with nested import/include
Bugzilla Report 53405.
* <packagemapper> failed to strip the non-matched parts with
handledirsep="true".
Bugzilla Report 53399.
* <expandproperties> filter caused a NullPointerException when input
was empty.
Bugzilla Report 53626.
* <get> now supports HTTP redirects using status code 307.
Bugzilla Report 54374.
* ssh tasks prompt for kerberos username/password under Java 7
Bugzilla Report 53437.
* Zip task on <mappedresources> that excludes certain files by way of the mapper resulted in a NullPointerException
Bugzilla Report 54026
* The ant launcher script should properly detect JAVA_HOME on
MacOS X 10.7
Bugzilla Report 52632
* Depend task does not handle invokeDynamic constant pool entries - java.lang.ClassFormatError: Invalid Constant Pool entry Type 18
Bugzilla Report 54090
* Base64Converter not properly handling bytes with MSB set (not masking byte to int conversion)
Bugzilla Report 54460
* The size resource comparator would return wrong results if file
sizes differed by more than 2 GB.
Bugzilla Report 54623
* Unable to encode properly into UTF-8 when the system property file.encoding is
set to ANSI_X3.4-1968.
Bugzilla Report 54606
* JUnit4 tests marked @Ignore do not appear in XML output
Bugzilla Report 43969
Other changes:
--------------
* merged the ZIP package from Commons Compress, it can now read
archives using Zip64 extensions (files and archives bigger that 4GB
and with more that 64k entries).
* a new task <commandlauncher> can be used to configure the
CommandLauncher used by Ant when forking external programs or new
Java VMs.
Bugzilla Report 52706.
* merged the TAR package from Commons Compress, it can now read
archives using POSIX extension headers and STAR extensions.
* merged the BZIP2 package from Commons Compress, it can now
optionally read files that contain multiple streams properly.
* <bunzip2> will now properly expand files created by pbzip2 and
similar tools that create files with multiple bzip2 streams.
* <tar> now supports a new "posix" option for longfile-mode which
will make it create PAX extension headers for long file names. PAX
extension headers are supported by all modern implementations of
tar including GNU tar.
This option should now be used in preference to "warn" or "gnu" as
it is more portable. For backwards compatibility reasons "warn"
will still create "gnu" extensions rather than "posix" extensions.
* The ProjectHelper class now exposes a method to be used by third party
implementations to properly resolve the binding between target extensions
and extension points.
Bugzilla Report 53549.
* Make extension point bindable to imported prefixed targets
Bugzilla Report 53550.
* Add the possibility to register a custom command line argument processor.
See org.apache.tools.ant.ArgumentProcessor and manual/argumentprocessor.html
* add the possibility to suppress stdout in the sshexec task.
Bugzilla Report 50270.
* add an encoding attribute to the contains selector.
This will be useful to use the contains selector if the encoding of the VM is different from the encoding
of the files being selected.
* support for GNU Classpath.
Bugzilla report 54760.
Changes from Ant 1.8.3 TO Ant 1.8.4
===================================
Fixed bugs:
-----------
* Ported libbzip2's fallback sort algorithm to CBZip2OutputStream to
speed up compression in certain edge cases. Merge from Commons
Compress.
Using specially crafted inputs this can be used as a denial of
service attack.
See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2098
Changes from Ant 1.8.2 TO Ant 1.8.3
===================================
Changes that could break older environments:
-------------------------------------------
* The Enumeration returned by AntClassLoader#getResources used to
return null in nextElement after hasNextElement would return false.
It has been changed to throw a NoSuchElementException instead so
that it now adheres to the contract of java.util.Enumeration.
Bugzilla Report 51579.
Fixed bugs:
-----------
* Removed buggy duplicate JAR list in RPM mode.
Bugzilla Report 52556.
* Launcher fixed to pass the right class loader parent.
Bugzilla Report 48633.
* <junitreport> mishandled ${line.separator}.
Bugzilla Report 51049.
* <junitreport> did not work in embedded environments on JDK 7.
Nor did <xslt> when using Xalan redirects.
Bugzilla Report 51668, 52382.
* Encoding of unicode escape sequences by the property file task
Bugzilla Report 50515.
* The code that implicitly sets the -source switch if only -target
has been specified in <javac> was broken for Java 5 and 6.
Bugzilla Report 50578.
* MailLogger ignore the Maillogger.starttls.enable property.
Bugzilla Report 50668.
* Delete task example does not work
Bugzilla Report 50816.
* <splash>'s proxy handling has been delegated to <setproxy>
internally so the two tasks are consistent. <splash>'s way of not
setting a proxy caused problems with other Java libraries.
Bugzilla Report 50888.
* Include task breaks dependencies or extension-points for multiple
files.
Bugzilla Report 50866.
* Read on System.in hangs for forked java task.
Bugzilla Report 50960.
* FileResource specified using basedir/name attributes was non-functional.
* Resource collection implementation of mapped PropertySet returned
unusable resources.
* The hasmethod condition failed with a NullPointerException when
ignoresystemclasses is true and Ant tried to load a "restricted
class" - i.e. a class that the Java VM will only accept when loaded
via the bootclassloader (a java.* class).
It will now fail with a more useful error message.
Bugzilla Report 51035.
* Exec task may mix the stderr and stdout output while logging it
Bugzilla Report 50507.
* Missing space between "finished" and timestamp in task/target
finish message from ProfileLogger.
Bugzilla Report 51109.
* Redirecting the output of a java, exec or apply task could print in the
error output stream some "Pipe broken" errors.
Bugzilla Report 48789.
* ZipFile failed to clean up some resources which could lead to
OutOfMemoryException while unzipping large archives.
A similar problem in ZipArchiveOutputStream has been fixed as well.
Bugzilla Report 42696.
* quiet attribute added to the copy and move tasks, to be used together
with failonerror=false, so warnings won't get logged
Bugzilla Report 48789.
* System.in was closed and not readable anymore by the DefaultInputHandler
when Ant is used via its Java API.
Bugzilla Report 51161
* <sync> only supported a single non-fileset resource collection even
though the manual said it could be multiple.
* <sync> didn't work properly when working on resource collections.
Bugzilla Report 51462.
* <augment> cause a NullPointerException if it was used in a target
that was invoked by multiple targets from the command line.
Bugzilla Report 50894.
* The ZipFile class could read past the start of the file if the
given file is not a ZIP archive and it is smaller than the size of
a ZIP "end of central directory record".
* <javac> would create the empty package-info.class file in the wrong
directory if no destdir was specified. Note it may still pick the
wrong directory if you specify more than one source directory but
no destDir. It is highly recommended that you always explicitly
specify the destDir attribute.
Bugzilla Report 51947.
* packagemapper now honors the handleDirSep attribute.
Bugzilla Report 51086.
* the attributes of macrodef tasks had their values run through
property expansion twice. Still true by default, but can be disabled.
Bugzilla Report 42046.
* jvc doesn't like it if source file names in argument files are
quoted.
Bugzilla Report 31667.
* ZipFile didn't work properly for archives using unicode extra
fields rather than UTF-8 filenames and the EFS-Flag.
* Access to DirectoryScanner's default excludes wasn't synchronized.
Bugzilla Report 52188.
* When a Project instance was created by a custom tasks its
createTask method didn't work.
Bugzilla Report 50788.
Other changes:
--------------
* -f/-file/-buildfile accepts a directory containing build.xml.
* The <javacc>, <jjtree> and <jjdoc> now support a new maxmemory
attribute.
Bugzilla Report 50513.
* the documented inputstring attribute of sshexec has been
implemented and the actually existing attribute inputproperty
documented.
Bugzilla Report 50576.
* The concat task now permits the name of its exposed resource
by means of its 'resourcename' attribute.
* The expandproperties filter now accepts a nested propertyset
which, if specified, provides the properties for expansion.
Bugzilla Report 51044.
* <junit filtertrace="true"/> will no longer filter out the very
first line of the stacktrace containing the original exception
message even if it matches one of the filter expressions.
* Upgraded to Apache AntUnit 1.2
* Provide read access to Mkdir.dir. Bugzilla Report 51684.
* <delete> and <move> have a new attribute performGCOnFailedDelete
that may - when set to true - help resolve some problems with
deleting empty directories on NFS shares.
Bugzilla Report 45786.
* <loadfile> and <loadresource> used to log at level INFO to signal a
property hasn't been set when the resource was empty even if the
quiet attribute was set to true. They will now use VERBOSE
instead.
Bugzilla Report 52107.
* <javac> has a new attribute createMissingPackageInfoClass that can
be set to false to prevent Ant from creating empty dummy classes
used for up-to-date-ness checks.
Bugzilla Report 52096.
* URLResources#isExists has become less noisy.
Bugzilla Report 51829.
* The <retry> task has a new optional attribute retryDelay that can
be used to make the task sleep between retry attempts.
Bugzilla Report 52076.
* <signjar> has new attributes that control the signature and digest
algorithms.
Bugzilla Report 52344.
* Initial support for Java 8.
* <sshexec> can optionally create a pseudo terminal (like ssh -t)
Bugzilla Report 52554.
Changes from Ant 1.8.1 TO Ant 1.8.2
===================================
Changes that could break older environments:
-------------------------------------------
* Prior to Ant 1.8.0 the <copy> task and several other tasks would
overwrite read-only destination files. Starting with 1.8.0 they
would only do so under special circumstances. Ant 1.8.2 now
consistently won't replace a read-only file by default. The same is
true for a number of other tasks.
The <copy>, <move> and <echo> tasks now have a new force attribute
and <concat> has a new forceReadonly attribute that can be used to
make the task overwrite read-only destinations.
Bugzilla Report 49261.
* Removed ant-nodeps.jar; it is now merged into ant.jar.
* DOMElementWriter#encode used to employ special code before encoding
ampersands so that { remained { rather than being turned
into &#123;. This is no longer the case, ampersands will now
be encoded unconditionally.
Also DOMElementWriter#encodeData will treat CDATA sections containing a
literal "]]>" sequence different now - it will split the CDATA
section between the second "]" and ">" and create two sections.
This affects <echoxml> task as well as the XML logger or JUnit
formatter where ampersands will now always get encoded.
In addition DOMElementWriter will now replace the characters \t, \r
and \n in attribute values by entity references.
Bugzilla Report 49404.
* The list elements returned by ProjectHelper#getExtensionStack are
now String arrays of length 3 rather than 2 in order to support the
onMissingExtensionPoint attribute.
Bugzilla Report 49473.
* When using <property file="..." prefix="..."/> properties defined
inside the same file will only get used in expansions if the ${}
reference uses the same prefix. This is different from Ant 1.8.1
but is the same behavior Ant 1.8.0 and earlier exhibited.
A new attribute prefixValues can be used to re-enable the behavior
of Ant 1.8.1.
Bugzilla Report 49373.
* The files and directories used by Git, Mercurial and Bazaar to
store their information are now excluded by the defaultexcludes.
Bugzilla Report 49624.
* The <junit> task no longer generates TestListener events - which
have been introduced in ant 1.7.0 - by default. The task has a new
attribute enableTestListenerEvents and a new "magic" property
ant.junit.enabletestlistenerevents has been added that can be used
to reinstate the old behavior.
Fixed bugs:
-----------
* hostinfo now prefers addresses with a hostname over addresses without
a hostname, provided the addresses have the same scope.
For local lookup, no IP address will be put in NAME / DOMAIN anymore.
For remote lookup, if a host name was provided and only an IP address is
found, the IP address will no longer overwrite the host name provided to the
task.
Bugzilla Report 49513
* mmap-based file copy problems under JDK 1.4 on Linux.
Bugzilla Report 49430.
* The Sun JVM tries to mmap the entire file during a copy.
For large files this is not feasible.
We now explicitly request to copy at most 16 MiB per request.
Bugzilla Report 49326.
* DemuxInputStream.read() should return unsigned values
Bugzilla Report 49279.
* The MIME mailer ignored the port parameter when using SSL.
Bugzilla Report 49267.
* <xslt> ignored the classpath when using the default TraX processor.
Bugzilla Report 49271.
* <checksum>'s totalproperty only worked reliably if the same file
name didn't occur inside more than one directory.
Bugzilla Report 36748.
* <ftp> could fail to download files from remote subdirectories under
certain circumstances.
Bugzilla Report 49296.
* <junit> will now produce better diagnostics when it fails to delete
a temporary file.
Bugzilla Report 49419.
* Ant would often scan directories even though there were known to
only hold excluded files when evaluating filesets. This never
resulted in wrong results but degraded performance of the scan
itself.
Bugzilla Report 49420.
* <javac> failed for long command lines on OS/2.
Bugzilla Report 49425.
* <junitreport> did not handle encodings well for stdout/stderr.
Bugzilla Report 49418.
* <junit> could issue a warning about multiple versions of Ant on the
CLASSPATH if two CLASSPATH entries differed in case on a
case-insensitive file system.
Bugzilla Report 49041.
* The <restrict> resource collection was checking every resource even if
we actually just want the first one, like in the example of use of
resourcelist in the documentation (getting the first available resource
from a mirror list).
* A race condition could lead to build failures if multiple <mkdir>
tasks were trying to create the same directory.
Bugzilla Report 49572.
* the toString() method of the Resources class - and thus any
${toString:} expansion of a reference to a <resources> element -
didn't iterate over its nested elements if it hadn't done so prior
to the toString invocation already.
Bugzilla Report 49588.
* <apply> in parallel mode didn't work together with a nested
<redirector> if maxparallel was <= 0 (the default) or no source
files matched.
Bugzilla Report 49594.
* <jar filesetmanifest="merge"> didn't work for manifests added via
<zipfileset>s that used the prefix or fullpath attributes.
Bugzilla Report 49605.
* <tempfile createfile="true"> would cause an error unless the prefix
attribute has been specified.
Bugzilla Report 49755.
* If forked, after finished <java> was still reading the input stream
for a bunch of characters, then stealing them from a following <input>.
Bugzilla Report 49119.
* Ant could be leaking threads for each forked process (started by
<exec>, <apply>, <java> or similar tasks) that didn't receive input
from a resource or string explicitly.
Bugzilla Report 49587.
* Project#setDefault threw an exception when null was passed in as
argument, even though the Javadoc says null is a valid value.
Bugzilla Report 49803.
* runant.py would swallow the first argument if CLASSPATH wasn't set.
Bugzilla Report 49963.
* <taskdef> failed to load resources from jar files contained in a
directory that has a "!" in its name.
Bugzilla Report 50007.
* ant.bat exit strategy improvements and issues
make the exit codes work in environments where 4NT or MKS are installed
Bugzilla Report 41039.
* <signjar> would fail if used via its Java API and the File passed
into the setJar method was not "normalized" (i.e. contained ".."
segments).
Bugzilla Report 50081.
* <delete> ignored <fileset>'s errorOnMissingDir attribute
Bugzilla Report 50124.
* <symlink> failed to close files when reading a list of symbolic
links from a properties file.
Bugzilla Report 50136.
* <parallel> could allow tasks to start executing even if a task
scheduled to run before them timed out.
Bugzilla Report 49527.
* If a <junit> batch with multiple tests times out Ant logs a message
about a test named Batch-With-Multiple-Tests since 1.8.0 but the
logic that determined the Java package of this pseudo-test has been
wrong.
Bugzilla Report 45227.