aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/abstractcvstask.xml47
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.topleveltest.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.xml261
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/ant.xml33
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/references.xml33
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.current-test.xml29
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.xml72
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antstructure.xml41
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/available.xml269
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bar.properties15
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/basename.xml57
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bunzip2.xml47
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bzip2.xml44
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/calltarget.xml120
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum.xml266
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/Bar1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/zap/Eenie1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/classloader.xml40
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/A1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/B1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat.xml214
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/condition.xml521
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/antversion.xml66
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/http.xml57
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfailure.xml65
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfileselected.xml70
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreachable.xml105
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreference.xml60
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/issigned.xml78
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/apassword.jarbin0 -> 1708 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/nosign.jarbin0 -> 451 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/pass.jarbin0 -> 1690 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/parsersupports.xml95
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/typefound.xml75
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/xor.xml112
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.filterset1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.xml268
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/expected/utf-81
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/input/iso8859-11
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copydir.xml56
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copyfile.xml56
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/cvspass.xml85
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/defaultexcludes.xml37
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/delete.xml194
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/deltree.xml29
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dirname.xml41
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dynamictask.xml37
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/echoxml.xml46
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/email/mail.xml40
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.sh24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.xml19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/exec.xml69
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/parrot.sh19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/spawn.sh29
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.bz2bin0 -> 58089 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.gzbin0 -> 30905 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.bz2bin0 -> 7435 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.gzbin0 -> 6996 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md51
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5sum1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.pattern1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.svf1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tarbin0 -> 10240 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.bz2bin0 -> 7543 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.gzbin0 -> 7116 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.zipbin0 -> 7121 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/copy.filterset.filtered1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fail.xml130
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter.xml72
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter1.txt1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter2.txt1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter3.txt1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filterdefs.properties15
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/build.xml331
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/expected.zipbin0 -> 5642 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/input.zipbin0 -> 4815 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/foo.properties15
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/get.xml107
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gunzip.xml58
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gzip.xml56
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/a.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/b.xml21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/bad.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/c.xml21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import.xml34
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_bad_import.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_same_target.xml21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/imported.xml26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/importtargetfirst.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/recursive-selfimport.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/same_target.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential-inner.xml25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget-inner.xml23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget.xml24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/serial.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml18
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d3a/p3.xml18
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/targetfirst.xml21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed1.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed2.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamedImport.xml25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/initializeclass.xml41
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.properties25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.stdin2
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.xml119
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/jar.xml285
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/java.xml404
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/java/ClassToJavadoc.java39
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/javadoc.xml155
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/loadfile.xml163
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/macrodef.xml290
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/makeurl.xml79
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifest.xml267
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath.xml238
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Alpha.java21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Beta.java25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test1.mf1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test2.mf2
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test3.mf3
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test4.mf4
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test5.mf3
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test6.mf5
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test7.mf4
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/mkdir.xml39
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/move.xml263
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/multimap.xml192
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nice.xml66
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nopermissions.zipbin0 -> 138 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.g76
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.xml128
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/extended.calc.g23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.g1162
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.tree.g312
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/depend.xml196
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/A.java20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/B.java19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/C.java19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/D.java19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/E.java22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/A.java21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/B.java19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/A.java23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/B.java19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/ContainsOnlyInner.java24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/MethodParam.java24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/Outer.java23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/A.java22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/B.java19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.properties15
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.xml133
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/expected/de/template.txt1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/resources_ger_DE.properties24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/template.txt1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/translate.xml44
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/image.xml73
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/badimage.jpgbin0 -> 875960 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/largeimage.jpgbin0 -> 336783 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/build.xml56
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/input/org/example/Foo.java26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jdepend/jdepend.xml70
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/1nvalid-classname.jsp25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/WEB-INF/web.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/default.jsp25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/missing_tld.jsp32
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/simple.jsp25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/uriroot.jsp25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/xml.jsp32
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jspc.xml133
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit.xml361
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/cdataoutput.xml28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/matches.xml25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/teardownlistener.xml50
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl879
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport.xml189
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/INCOMPLETE-sampleproject.incomplete.xml31
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/NAMESPACE-sampleproject.namespace.xml116
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.coins.CoinTest.xml115
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.util.UniqueStringTest.xml93
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/WRONGELEMENT-sampleproject.wrongelement.xml18
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/ZEROBYTES-sampleproject.package.xml0
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/junit-frames.xsl879
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/build.xml38
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/expected/iso8859-1.test1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/input/iso8859-1.test1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/net/ftp.xml331
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/propertyfile.xml123
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/pvcs.xml50
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.properties16
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.xml83
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.properties15
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties15
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/schemavalidate.xml100
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script.xml46
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script/scriptdef.xml145
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script_reference.xml27
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/sos/sos.xml124
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/splash-test.xml45
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/unix/symlink.xml354
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/vss/vss.xml68
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xalan-redirect-in.xsl37
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/about.xml26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/apache.xsl35
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/books.xml28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/catalog2
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc-in-ns.xsd38
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.dtd24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsd37
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsl26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/docwithentity.xml29
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema-invalid.xml30
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema.xml28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-ns-no-location.xml23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece.xml23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece2.xml26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/entity.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/iso-2022-jp.xml23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_include.xsl28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_with_include.xsl28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xml25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xsl25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/utf-8.xml23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/validate.xml28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xmlvalidate.xml208
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xslt.xml102
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xsl27
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xml23
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xsl20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xml19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xsl20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/parallel.xml163
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/pathconvert.xml42
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/presetdef.xml147
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property.xml92
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property1.properties17
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property2.properties17
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property3.properties18
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property4.properties16
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property5.properties17
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder.xml73
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest1.result1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest2.result2
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest3.result2
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest4.result1
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest5.result5
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest6.result3
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder2.xml29
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rename.xml50
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace.xml94
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/result.txt7
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/source.txt4
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/value.txt3
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/rmic.xml499
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java45
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestamp.java26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestampImpl.java28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/signjar.xml97
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/skinconfig.dtd19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sleep.xml47
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/build.xml197
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/data.xml18
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printFilename.xsl38
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printParams.xsl36
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/testNewerStylesheet.xsl28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant.xml65
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/genericsubant.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test1/mysubant.xml31
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test2/mysubant.xml28
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sync.xml141
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/tar.xml200
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/taskdef.xml89
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/template.xml17
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test.antlib.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test2.antlib.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelant.xml24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelantcall.xml24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelsubant.xml26
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/touch.xml216
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typeadapter.xml79
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typedef.xml84
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/untar.xml103
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/unzip.xml184
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/uptodate.xml57
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/war.xml39
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/whichresource.xml37
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlns.xml67
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty.xml44
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-input1.properties21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-original.properties20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-override.properties17
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-input1.properties8
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-original.properties20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-include.properties21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-input1.properties21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-override.properties17
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-input1.properties21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-original.properties19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-input1.properties7
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-multi.properties16
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-original.properties19
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-include-input1.properties21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-input1.properties21
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-locations.properties16
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-paths.properties16
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-references.properties20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/input1.xml27
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/locations.xml20
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/multi.xml25
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/original.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/override.xml27
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/paths.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/references.xml24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.dtd30
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_needscat.xml22
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_withdtd.xml24
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip.xml287
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset1.zipbin0 -> 2211 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset2.zipbin0 -> 1825 bytes
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset3.zipbin0 -> 313 bytes
323 files changed, 20769 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/abstractcvstask.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/abstractcvstask.xml
new file mode 100644
index 00000000..5de8b5e7
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/abstractcvstask.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="abstractcvstask-test" basedir="../../../../"
+ default="tearDown">
+
+ <import file="../buildfiletest-base.xml" optional="false"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <target name="package-attribute">
+ <cvs cvsroot="anoncvs@anoncvs.ca.openbsd.org:/cvs"
+ package="src/Makefile"
+ dest="${output}"
+ quiet="true" />
+ </target>
+
+ <target name="tag-attribute">
+ <cvs cvsroot="anoncvs@anoncvs.ca.openbsd.org:/cvs"
+ package="src/Makefile"
+ dest="${output}"
+ quiet="true"
+ tag="OPENBSD_5_3" />
+ <cvs cvsroot="anoncvs@anoncvs.ca.openbsd.org:/cvs"
+ package="src/Makefile"
+ dest="${output}"
+ command="status"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.topleveltest.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.topleveltest.xml
new file mode 100644
index 00000000..65bc7291
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.topleveltest.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <echo>Hello world</echo>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.xml
new file mode 100644
index 00000000..33ef1dab
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant.xml
@@ -0,0 +1,261 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="ant-test" basedir="." default="test1">
+
+ <path id="inheritable">
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <target name="cleanup">
+ <delete file="test1.log" />
+ <delete file="test2.log" />
+ <delete file="ant/test3.log" />
+ <delete file="ant/test4.log" />
+ </target>
+
+ <target name="all" depends="test1,test2,test3,test4"/>
+
+ <target name="test1">
+ <ant antfile="ant.xml" dir="." target="test1"/>
+ </target>
+
+ <target name="test2">
+ <antcall/>
+ </target>
+
+ <target name="test3">
+ <antcall target="test3"/>
+ </target>
+
+ <target name="test4">
+ <antcall target=""/>
+ </target>
+
+ <target name="test4b">
+ <antcall target="does-not-exist"/>
+ </target>
+
+ <target name="test5">
+ <antcall target="dummy"/>
+ </target>
+
+ <target name="test6">
+ <ant antfile="ant.xml" dir="." target="dummy"/>
+ </target>
+
+ <target name="dummy">
+ </target>
+
+ <target name="inheritBasedir">
+ <ant antfile="ant/ant.xml" target="dummy" inheritAll="true" />
+ </target>
+
+ <target name="doNotInheritBasedir">
+ <ant antfile="ant/ant.xml" target="dummy" inheritAll="false" />
+ </target>
+
+ <target name="explicitBasedir1">
+ <ant antfile="taskdefs/ant/ant.xml" target="dummy" inheritAll="true"
+ dir=".." />
+ </target>
+
+ <target name="explicitBasedir2">
+ <ant antfile="taskdefs/ant/ant.xml" target="dummy" inheritAll="false"
+ dir=".." />
+ </target>
+
+ <target name="tripleCall">
+ <ant antfile="ant/ant.xml" target="callback" inheritAll="false" />
+ </target>
+
+ <target name="testInherit">
+ <ant antfile="ant/references.xml" inheritRefs="true" target="dummy" />
+ </target>
+
+ <target name="testNoInherit">
+ <ant antfile="ant/references.xml" inheritRefs="false" target="dummy" />
+ </target>
+
+ <target name="testRename">
+ <ant antfile="ant/references.xml" inheritRefs="false" target="dummy">
+ <reference refid="path" torefid="newpath" />
+ </ant>
+ </target>
+
+ <target name="testInheritPath" description="try to pass a reference to a path, which refers itself to a second path">
+ <property name="rootdir" location="."/>
+ <path id="project.classpath">
+ <pathelement location="../classes"/>
+ </path>
+ <path id="test.classpath">
+ <pathelement location="${rootdir}/test/testframework.jar"/>
+ <path refid="project.classpath"/>
+ </path>
+ <ant antfile="ant/references.xml" target="testInheritPath">
+ <reference refid="test.classpath"/>
+ </ant>
+ </target>
+
+ <target name="testLogfilePlacement">
+ <ant antfile="ant.xml" target="dummy" output="test1.log"
+ inheritall="false" />
+ <ant antfile="ant.xml" target="dummy" output="test2.log" />
+ <ant antfile="ant.xml" target="dummy" output="test3.log"
+ inheritall="false" dir="ant" />
+ <ant antfile="ant.xml" target="dummy" output="test4.log"
+ dir="ant" />
+ </target>
+
+ <target name="testRefid">
+ <ant antfile="ant/references.xml" inheritRefs="false" target="dummy">
+ <property name="testprop" refid="inheritable" />
+ </ant>
+ </target>
+
+ <target name="test-property-override-inheritall-start">
+ <property name="test" value="1" />
+ <ant antfile="ant.xml"
+ target="test-property-override-inheritall-level-2"
+ inheritall="true">
+ <property name="test" value="2" />
+ </ant>
+ </target>
+
+ <target name="test-property-override-inheritall-level-2">
+ <property name="test" value="3" />
+ <ant antfile="ant.xml"
+ target="test-property-override-inheritall-level-3"
+ inheritall="true">
+ <property name="test" value="4" />
+ </ant>
+ </target>
+
+ <target name="test-property-override-inheritall-level-3">
+ <property name="test" value="5" />
+ <echo message="The value of test is ${test}" />
+ </target>
+
+ <target name="test-property-override-no-inheritall-start">
+ <property name="test" value="1" />
+ <ant antfile="ant.xml"
+ target="test-property-override-no-inheritall-level-2"
+ inheritall="false">
+ <property name="test" value="2" />
+ </ant>
+ </target>
+
+ <target name="test-property-override-no-inheritall-level-2">
+ <property name="test" value="3" />
+ <ant antfile="ant.xml"
+ target="test-property-override-no-inheritall-level-3"
+ inheritall="false">
+ <property name="test" value="4" />
+ </ant>
+ </target>
+
+ <target name="test-property-override-no-inheritall-level-3">
+ <property name="test" value="5" />
+ <echo message="The value of test is ${test}" />
+ </target>
+
+ <target name="test-propertyset">
+ <property name="test1" value="1"/>
+ <property name="test2" value="2"/>
+ <propertyset id="set">
+ <propertyref name="test1"/>
+ <mapper type="glob" from="*" to="*.x"/>
+ </propertyset>
+ <ant antfile="ant.xml" target="echo-for-propertyset-test"
+ inheritall="false">
+ <propertyset refid="set"/>
+ </ant>
+ </target>
+
+ <target name="echo-for-propertyset-test">
+ <echo>test1 is ${test1}</echo>
+ <echo>test2 is ${test2}</echo>
+ <echo>test1.x is ${test1.x}</echo>
+ </target>
+
+ <target name="infinite-loop-via-depends">
+ <antcall target="dependent"/>
+ </target>
+
+ <target name="middleman" depends="infinite-loop-via-depends"/>
+ <target name="dependent" depends="middleman"/>
+
+ <target name="multi-same-property">
+ <ant antfile="ant.xml" target="echo-for-multi-same">
+ <property name="prop" value="one"/>
+ <property name="prop" value="two"/>
+ </ant>
+ </target>
+
+ <target name="echo-for-multi-same">
+ <echo>prop is ${prop}</echo>
+ </target>
+
+ <target name="topleveltarget">
+ <ant antfile="ant.topleveltest.xml"/>
+ </target>
+
+ <target name="multiple-property-file-children">
+ <ant target="dummy" antfile="ant.xml">
+ <property file="foo.properties"/>
+ <property file="bar.properties"/>
+ </ant>
+ </target>
+
+ <target name="blank-target">
+ <ant antfile="ant.topleveltest.xml">
+ <target name="" />
+ </ant>
+ </target>
+
+ <target name="multiple-targets">
+ <ant antfile="ant.xml">
+ <target name="ta" />
+ <target name="tb" />
+ <target name="tc" />
+ </ant>
+ </target>
+
+ <target name="multiple-targets-2">
+ <ant antfile="ant.xml">
+ <target name="tb" />
+ <target name="da" />
+ </ant>
+ </target>
+
+ <target name="ta"><echo>ta</echo></target>
+ <target name="tb" depends="da,dc"><echo>tb</echo></target>
+ <target name="tc" depends="db,dc"><echo>tc</echo></target>
+
+ <target name="da"><echo>da</echo></target>
+ <target name="db"><echo>db</echo></target>
+ <target name="dc"><echo>dc</echo></target>
+
+ <target name="show-ant.core.lib">
+ <echo>${ant.core.lib}</echo>
+ </target>
+ <target name="sub-show-ant.core.lib">
+ <ant antfile="${ant.file}" target="show-ant.core.lib" inheritall="false" inheritrefs="false"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/ant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/ant.xml
new file mode 100644
index 00000000..52c9a70d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/ant.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" default="def" basedir=".">
+
+ <target name="def">
+ <fail>This build file should only be run from within the testcase</fail>
+ </target>
+
+ <target name="dummy">
+ <echo message="${basedir}" />
+ </target>
+
+ <target name="callback">
+ <ant antfile="../ant.xml" target="dummy" inheritAll="false" />
+ </target>
+
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/references.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/references.xml
new file mode 100644
index 00000000..0f3a6930
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/ant/references.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" default="def" basedir=".">
+
+ <path id="no-override" />
+
+ <target name="def">
+ <fail>This build file should only be run from within the testcase</fail>
+ </target>
+
+ <target name="dummy" />
+
+ <target name="testInheritPath">
+ <pathconvert refid="test.classpath" pathsep="${line.separator}" property="myprop"/>
+ <echo>${myprop}</echo>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.current-test.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.current-test.xml
new file mode 100644
index 00000000..0ad44dbd
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.current-test.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<antlib xmlns:c="ant:current">
+ <typedef name="echo2" classname="org.apache.tools.ant.taskdefs.Echo"/>
+ <presetdef name="preset.echo">
+ <typedef classname="org.apache.tools.ant.taskdefs.Echo"/>
+ </presetdef>
+ <c:preset.echo name="p"/>
+ <macrodef name="useecho2">
+ <sequential>
+ <c:echo2>Echo2 inside a macro</c:echo2>
+ </sequential>
+ </macrodef>
+</antlib>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.xml
new file mode 100644
index 00000000..d1c4061e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antlib.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test">
+
+ <property name="testcases.dir" location="../../../../build/testcases"/>
+
+ <path id="testclasses">
+ <pathelement location="${testcases.dir}" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <target name="antlib.file">
+ <typedef file="test.antlib.xml"
+ classpathref="testclasses"/>
+ <mytask/>
+ </target>
+
+ <target name="antlib.resource">
+ <typedef resource="taskdefs/test.antlib.xml">
+ <classpath>
+ <!-- To load the task classes: -->
+ <path refid="testclasses"/>
+ <!-- For test.antlib.xml: -->
+ <pathelement location=".."/>
+ <!-- For test2.antlib.xml: -->
+ <pathelement location="${testcases.dir}/org/apache/tools/ant/taskdefs/test2-antlib.jar"/>
+ </classpath>
+ </typedef>
+ <mytask/>
+ <echo>-and-then-</echo>
+ <mytask2/>
+ </target>
+
+ <target name="ns.current">
+ <typedef file="antlib.current-test.xml" uri="abc"/>
+ <x:useecho2 xmlns:x="abc"/>
+ <x:preset.echo xmlns:x="abc" name="p"/>
+ <x:p xmlns:x="abc">Hello from x:p</x:p>
+ </target>
+
+ <target name="antlib_uri" >
+ <typedef uri="antlib:org.example.tasks" onerror="failall"/>
+ </target>
+
+ <target name="antlib_uri_auto" xmlns:ex="antlib:org.example.tasks">
+ <ex:simple>
+ <echo message="inside simple" />
+ </ex:simple>
+ </target>
+
+ <target name="antlib_uri_auto2" xmlns:ex="antlib://org/example/tasks/antlib2.xml">
+ <ex:simple>
+ <echo message="inside simple"/>
+ </ex:simple>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antstructure.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antstructure.xml
new file mode 100644
index 00000000..516a9735
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/antstructure.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="antstructure-test" basedir="." default="test1">
+
+ <target name="test1">
+ <antstructure/>
+ </target>
+
+ <target name="testCustomPrinter">
+ <typedef name="myprinter"
+ classname="org.apache.tools.ant.taskdefs.AntStructureTest$MyPrinter">
+ <classpath>
+ <pathelement path="${tests-classpath.value}"/>
+ </classpath>
+ </typedef>
+ <antstructure output="foo.dtd">
+ <myprinter/>
+ </antstructure>
+ </target>
+
+ <target name="tearDown">
+ <delete file="foo.dtd" quiet="true"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/available.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/available.xml
new file mode 100644
index 00000000..324c054d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/available.xml
@@ -0,0 +1,269 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="available-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="test1">
+ <available/>
+ </target>
+
+ <target name="test2">
+ <available property="test"/>
+ </target>
+
+ <target name="test3">
+ <available file="test"/>
+ </target>
+
+ <target name="test4">
+ <available property="test"
+ file="src/etc/testcases/taskdefs/this_file_does_not_exist"/>
+ </target>
+
+ <target name="test5">
+ <available property="test"
+ file="available.xml"/>
+ </target>
+
+ <target name="test6">
+ <available property="test"
+ resource="org/apache/tools/ant/taskdefs/this_resource_does_not_exist"/>
+ </target>
+
+ <target name="test7">
+ <available property="test"
+ resource="org/apache/tools/ant/taskdefs/defaults.properties"/>
+ </target>
+
+ <target name="test8">
+ <available property="test"
+ classname="org.apache.tools.ant.taskdefs.this_class_does_not_exist"/>
+ </target>
+
+ <target name="test9">
+ <available property="test"
+ classname="org.apache.tools.ant.taskdefs.Ant"/>
+ </target>
+
+ <target name="test10">
+ <available property="test"
+ file="available.xml"
+ resource="org/apache/tools/ant/taskdefs/defaults.properties"
+ classname="org.apache.tools.ant.taskdefs.Ant"/>
+ </target>
+
+ <target name="test11">
+ <available property="test"
+ file="src/etc/testcases/taskdefs/available.xml"
+ resource="org/apache/tools/ant/taskdefs/defaults.properties"
+ classname="org.apache.tools.ant.taskdefs.this_class_does_not_exist"/>
+ </target>
+
+ <target name="test12">
+ <available property=""
+ file="available.xml"/>
+ </target>
+
+ <target name="test13">
+ <available property="test"
+ file="" type="file" />
+ </target>
+
+ <target name="test13b">
+ <available property="test"
+ file=""/>
+ </target>
+
+ <target name="test14">
+ <available property="test"
+ resource=""/>
+ </target>
+
+ <target name="test15">
+ <available property="test"
+ classname="org.apache.tools.ant.taskdefs.this_class_does_not_exist"/>
+ </target>
+
+ <target name="test16">
+ <available property="test"
+ file="" type="dir"/>
+ </target>
+
+ <target name="test17">
+ <available property="test"
+ file="../taskdefs" type="dir"/>
+ </target>
+
+ <target name="test18">
+ <available property="test"
+ file="../this_dir_should_never_exist" type="dir"/>
+ </target>
+
+ <target name="test19">
+ <available property="test"
+ file="available.xml" type="Foo"/>
+ </target>
+
+ <target name="test20">
+ <available property="test" ignoresystemclasses="true"
+ classname="java.awt.Graphics"/>
+ </target>
+
+ <target name="test21">
+ <available property="test" ignoresystemclasses="true"
+ classname="org.apache.tools.ant.launch.AntMain">
+ <classpath>
+ <pathelement location="${ant.home}/lib/ant-launcher.jar" />
+ </classpath>
+ </available>
+ </target>
+
+ <target name="test22">
+ <available property="test" ignoresystemclasses="false"
+ classname="java.awt.Graphics"/>
+ </target>
+
+ <target name="test23">
+ <available property="test"
+ classname="java.awt.Graphics"/>
+ </target>
+
+ <target name="test24">
+ <!-- create a dummy file and look for it -->
+ <mkdir dir="${output}/test"/>
+ <echo message="package test;public class test {}" file="${output}/test/test.java"/>
+ <javac srcdir="${output}" includes="test/test.java"/>
+ <jar destfile="${output}/test.jar" basedir="${output}" includes="test/test.class"/>
+ <available property="test"
+ classname="test.test" classpath="${output}/test.jar"/>
+ </target>
+
+ <target name="searchInPathNotThere">
+ <available file="not_there" filepath="..:optional"
+ property="test" />
+ </target>
+
+ <target name="searchInPathIsThere">
+ <available file="pvcs.xml" filepath="..:optional"
+ property="test" />
+ </target>
+
+ <target name="testDoubleBasedir">
+ <echo>testing ${basedir}${file.separator}${ant.file}</echo>
+ <fail>
+ <condition>
+ <available file="${basedir}${file.separator}${ant.file}" />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="prep.parents">
+ <mkdir dir="${output}/greatgrandparent/grandparent/parent/dir"/>
+ <touch file="${output}/greatgrandparent/a.txt"/>
+ <touch file="${output}/greatgrandparent/grandparent/b.txt"/>
+ <touch file="${output}/greatgrandparent/grandparent/parent/c.txt"/>
+ <touch file="${output}/greatgrandparent/grandparent/parent/dir/d.txt"/>
+ <property name="available.test.dir"
+ value="${output}/greatgrandparent/grandparent/parent/dir"/>
+ </target>
+ <target name="search-parents" depends="prep.parents">
+ <echo>testing greatgrandparent - should see</echo>
+
+ <fail>
+ <condition>
+ <not>
+ <available file="a.txt" searchparents="yes">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </not>
+ </condition>
+ </fail>
+
+ <echo>testing grandparent - should see</echo>
+ <fail>
+ <condition>
+ <not>
+ <available file="b.txt" searchparents="yes">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </not>
+ </condition>
+ </fail>
+
+ <echo>testing parent - should see</echo>
+ <fail>
+ <condition>
+ <not>
+ <available file="c.txt" searchparents="yes">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </not>
+ </condition>
+ </fail>
+
+ <echo>testing dir - should see</echo>
+ <fail>
+ <condition>
+ <not>
+ <available file="d.txt" searchparents="yes">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </not>
+ </condition>
+ </fail>
+
+ </target>
+
+ <target name="search-parents-not" depends="prep.parents">
+ <echo>testing grandparent - should not see</echo>
+ <fail>
+ <condition>
+ <available file="b.txt">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </condition>
+ </fail>
+
+ <echo>testing parent - should not see</echo>
+ <fail>
+ <condition>
+ <available file="c.txt">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </condition>
+ </fail>
+
+ <echo>testing dir - should see</echo>
+ <fail>
+ <condition>
+ <not>
+ <available file="d.txt">
+ <filepath path="${available.test.dir}"/>
+ </available>
+ </not>
+ </condition>
+ </fail>
+
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bar.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bar.properties
new file mode 100644
index 00000000..c64b91ea
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bar.properties
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+bar=Bar
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/basename.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/basename.xml
new file mode 100644
index 00000000..c5fd2abc
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/basename.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <target name="test1">
+ <basename/>
+ </target>
+
+ <target name="test2">
+ <basename property="propname"/>
+ </target>
+
+ <target name="test3">
+ <basename file="filename"/>
+ </target>
+
+ <target name="test4">
+ <basename property="file.w.suf" file="${user.dir}/foo.txt"/>
+ </target>
+
+ <target name="test5">
+ <basename property="file.wo.suf" file="foo.txt" suffix="txt"/>
+ </target>
+
+ <target name="testMultipleDots">
+ <basename property="file.wo.suf" file="foo.bar.txt" suffix="txt"/>
+ </target>
+
+ <target name="testNoDots">
+ <basename property="file.wo.suf" file="foo.bartxt" suffix="txt"/>
+ </target>
+
+ <target name="testValueEqualsSuffixWithDot">
+ <basename property="file.wo.suf" file=".txt" suffix=".txt"/>
+ </target>
+
+ <target name="testValueEqualsSuffixWithoutDot">
+ <basename property="file.wo.suf" file=".txt" suffix="txt"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bunzip2.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bunzip2.xml
new file mode 100644
index 00000000..8ae17580
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bunzip2.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project basedir="." default="tearDown">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="prepare">
+ <mkdir dir="${output}"/>
+ <gunzip src="expected/asf-logo-huge.tar.gz"
+ dest="${output}/asf-logo-huge-from-gzip.tar"/>
+ </target>
+
+ <target name="realTest">
+ <bunzip2 src="expected/asf-logo-huge.tar.bz2" dest="${output}/asf-logo-huge.tar" />
+ </target>
+
+ <target name="realTestWithResource">
+ <bunzip2 dest="${output}/asf-logo-huge.tar">
+ <file file="expected/asf-logo-huge.tar.bz2"/>
+ </bunzip2>
+ </target>
+
+ <target name="testDocumentationClaimsOnCopy">
+ <copy todir="${output}">
+ <bzip2resource>
+ <file file="expected/asf-logo-huge.tar.bz2"/>
+ </bzip2resource>
+ <mapper type="glob" from="*.bz2" to="*"/>
+ </copy>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bzip2.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bzip2.xml
new file mode 100644
index 00000000..e133dae0
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/bzip2.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project basedir="." default="cleanup">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="realTest">
+ <bzip2 src="${output}/asf-logo-huge-from-gzip.tar"
+ zipfile="${output}/asf-logo-huge.tar.bz2" />
+ </target>
+
+ <target name="realTestWithResource">
+ <bzip2 zipfile="${output}/asf-logo-huge.tar.bz2">
+ <file file="${output}/asf-logo-huge-from-gzip.tar"/>
+ </bzip2>
+ </target>
+
+ <target name="testDateCheck">
+ <touch file="${output}/asf-logo.gif.bz2"/>
+ <bzip2 src="../asf-logo.gif" zipfile="${output}/asf-logo.gif.bz2" />
+ </target>
+
+ <target name="prepare">
+ <mkdir dir="${output}"/>
+ <gunzip src="expected/asf-logo-huge.tar.gz"
+ dest="${output}/asf-logo-huge-from-gzip.tar"/>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/calltarget.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/calltarget.xml
new file mode 100644
index 00000000..4c3af92e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/calltarget.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="calltarget-test" default="testinheritreffileset" basedir=".">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <target name="mytarget">
+ <pathconvert property="myproperty" targetos="unix" refid="myfileset"/>
+ <echo message="myproperty=${myproperty}"/>
+ </target>
+
+ <target name="testinheritreffileset">
+ <!-- this testcase should show that the fileset defined here
+ can be read in the called target -->
+ <fileset dir="." id="myfileset">
+ <include name="calltarget.xml"/>
+ </fileset>
+ <antcall target="mytarget" inheritrefs="true"/>
+ </target>
+
+ <target name="copytest2">
+ <copy file="${output}/copytest.in" toFile="${output}/copytest1.out" overwrite="true">
+ <filterset refid="foo"/>
+ </copy>
+ </target>
+
+ <target name="testinheritreffilterset" depends="setUp">
+ <echo file="${output}/copytest.in">@@foo@@</echo>
+ <filterset id="foo" begintoken="@@" endtoken="@@">
+ <filter token="foo" value="bar"/>
+ </filterset>
+ <antcall target="copytest2" inheritrefs="true"/>
+ <copy file="${output}/copytest.in" toFile="${output}/copytest2.out" overwrite="true">
+ <filterset refid="foo"/>
+ </copy>
+ <loadfile srcFile="${output}/copytest2.out" property="copytest2"/>
+ <loadfile srcFile="${output}/copytest1.out" property="copytest1"/>
+ <condition property="success">
+ <equals arg1="${copytest1}" arg2="${copytest2}"/>
+ </condition>
+ <fail message="filterset not properly passed across by antcall" unless="success"/>
+ </target>
+
+ <property name="multi" value="DEFAULT"/>
+
+ <target name="multi">
+ <echo>multi is ${multi}</echo>
+ </target>
+
+ <target name="call-multi">
+ <antcall target="multi">
+ <param name="multi" value="SET"/>
+ </antcall>
+ </target>
+
+ <target name="blank-target">
+ <antcall>
+ <target name=""/>
+ </antcall>
+ </target>
+
+ <target name="multiple-targets">
+ <antcall>
+ <target name="ta"/>
+ <target name="tb"/>
+ <target name="tc"/>
+ </antcall>
+ </target>
+
+ <target name="multiple-targets-2">
+ <ant antfile="ant.xml">
+ <target name="tb"/>
+ <target name="da"/>
+ </ant>
+ </target>
+
+ <target name="ta">
+ <echo>ta</echo>
+ </target>
+
+ <target name="tb" depends="da,dc">
+ <echo>tb</echo>
+ </target>
+
+ <target name="tc" depends="db,dc">
+ <echo>tc</echo>
+ </target>
+
+ <target name="da">
+ <echo>da</echo>
+ </target>
+
+ <target name="db">
+ <echo>db</echo>
+ </target>
+
+ <target name="dc">
+ <echo>dc</echo>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum.xml
new file mode 100644
index 00000000..e82fb697
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum.xml
@@ -0,0 +1,266 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="cleanup" basedir=".">
+
+ <macrodef name="compare">
+ <attribute name="expected" />
+ <attribute name="output" />
+ <sequential>
+ <loadfile property="expected" srcfile="@{expected}">
+ <filterchain><striplinebreaks /></filterchain>
+ </loadfile>
+ <loadfile property="output" srcfile="@{output}">
+ <filterchain><striplinebreaks /></filterchain>
+ </loadfile>
+ <fail message="${output} not = ${expected}">
+ <condition>
+ <not>
+ <equals arg1="${output}" arg2="${expected}" />
+ </not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="testverify">
+ <attribute name="checknologo" default="false" />
+ <element name="stuff" implicit="true" />
+ <sequential>
+ <fail>
+ <condition>
+ <or>
+ <isset property="logo.MD5" />
+ <isset property="no.logo.MD5" />
+ </or>
+ </condition>
+ </fail>
+ <stuff />
+ <fail>
+ <condition>
+ <not>
+ <istrue value="${logo.MD5}" />
+ </not>
+ </condition>
+ </fail>
+ <fail>
+ <condition>
+ <and>
+ <istrue value="@{checknologo}" />
+ <not>
+ <isfalse value="${no.logo.MD5}" />
+ </not>
+ </and>
+ </condition>
+ </fail>
+ <fail>
+ <condition>
+ <and>
+ <isfalse value="@{checknologo}" />
+ <isset property="no.logo.MD5" />
+ </and>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <target name="cleanup">
+ <delete file="../asf-logo.gif.MD5" />
+ <delete file="../asf-logo.gif.md5" />
+ <delete file="../asf-logo.gif.MD5SUM" />
+ <delete file="../asf-logo.gif.md5sum" />
+ <delete file="../asf-logo.gif.SVF" />
+ <delete file="../asf-logo.gif.svf" />
+ <delete file="../asf-logo.gif.pattern" />
+ <delete file="../asf-logo.gif.PATTERN" />
+ <delete>
+ <fileset dir="checksum">
+ <include name="**/*.MD5"/>
+ </fileset>
+ </delete>
+ <delete dir="checksum/checksums" />
+ </target>
+
+ <target name="createMd5">
+ <checksum file="../asf-logo.gif" fileext=".MD5" />
+ <compare expected="expected/asf-logo.gif.md5" output="../asf-logo.gif.MD5" />
+ </target>
+
+ <target name="createMD5SUMformat">
+ <checksum file="../asf-logo.gif" format="MD5SUM" fileext=".MD5SUM" />
+ <compare expected="expected/asf-logo.gif.md5sum" output="../asf-logo.gif.MD5SUM" />
+ </target>
+
+ <target name="createSVFformat">
+ <checksum file="../asf-logo.gif" format="SVF" fileext=".SVF" />
+ <compare expected="expected/asf-logo.gif.svf" output="../asf-logo.gif.SVF" />
+ </target>
+
+ <target name="createPattern">
+ <checksum file="../asf-logo.gif" pattern="foo{0}bar" fileext=".PATTERN" />
+ <compare expected="expected/asf-logo.gif.pattern" output="../asf-logo.gif.PATTERN" />
+ </target>
+
+ <target name="setProperty">
+ <checksum file="../asf-logo.gif" property="logo.MD5" />
+ <fail>
+ <condition>
+ <or>
+ <not>
+ <equals arg1="0541d3df42520911f268abc730f3afe0"
+ arg2="${logo.MD5}" />
+ </not>
+ <available file="../asf-logo.gif.MD5" />
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="verifyAsTask">
+ <testverify checknologo="true">
+ <copy file="expected/asf-logo.gif.md5" todir=".." />
+ <checksum file="../asf-logo.gif" fileext=".md5"
+ verifyproperty="logo.MD5" />
+
+ <copy file="checksum.xml" tofile="../asf-logo.gif.MD5"
+ overwrite="true" />
+ <checksum file="../asf-logo.gif" fileext=".MD5"
+ verifyproperty="no.logo.MD5" />
+ </testverify>
+ </target>
+
+ <target name="verifyMD5SUMAsTask">
+ <testverify checknologo="true">
+ <copy file="expected/asf-logo.gif.md5sum" todir=".." />
+ <checksum file="../asf-logo.gif" fileext=".md5sum"
+ verifyproperty="logo.MD5" format="MD5SUM"/>
+
+ <copy file="checksum.xml" tofile="../asf-logo.gif.MD5SUM"
+ overwrite="true" />
+ <checksum file="../asf-logo.gif" fileext=".MD5SUM"
+ verifyproperty="no.logo.MD5" format="MD5SUM"/>
+ </testverify>
+ </target>
+
+ <target name="verifyAsCondition">
+ <testverify>
+ <copy file="expected/asf-logo.gif.md5" todir=".." />
+ <condition property="logo.MD5">
+ <checksum file="../asf-logo.gif" fileext=".md5" />
+ </condition>
+
+ <copy file="checksum.xml" tofile="../asf-logo.gif.MD5"
+ overwrite="true" />
+ <condition property="no.logo.MD5">
+ <checksum file="../asf-logo.gif" fileext=".MD5" />
+ </condition>
+ </testverify>
+ </target>
+
+ <target name="verifyFromProperty">
+ <fail>
+ <condition>
+ <isset property="verify" />
+ </condition>
+ </fail>
+ <checksum property="checksum" file="checksum.xml"/>
+ <checksum property="${checksum}" file="checksum.xml"
+ verifyproperty="verify"/>
+ <fail>
+ <condition>
+ <not>
+ <istrue value="${verify}" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="verifyTotal">
+ <checksum totalproperty="total">
+ <fileset dir="${basedir}/checksum">
+ <exclude name="**/*.MD5"/>
+ </fileset>
+ </checksum>
+ <fail>
+ <condition>
+ <not>
+ <equals arg1="ef8f1477fcc9bf93832c1a74f629c626" arg2="${total}" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="verifyTotalRC">
+ <checksum totalproperty="total">
+ <resources>
+ <fileset dir="${basedir}/checksum">
+ <exclude name="**/*.MD5"/>
+ </fileset>
+ </resources>
+ </checksum>
+ <fail>
+ <condition>
+ <not>
+ <equals arg1="ef8f1477fcc9bf93832c1a74f629c626" arg2="${total}" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="verifyChecksumdir">
+ <checksum totalproperty="total" todir="${basedir}/checksum/checksums">
+ <fileset dir="${basedir}/checksum">
+ <exclude name="**/*.MD5"/>
+ </fileset>
+ </checksum>
+ <fail>
+ <condition>
+ <not>
+ <equals arg1="ef8f1477fcc9bf93832c1a74f629c626" arg2="${total}" />
+ </not>
+ </condition>
+ </fail>
+ <pathconvert property="srcdirfile">
+ <file file="checksum/foo/zap/Eenie.MD5" />
+ </pathconvert>
+ <pathconvert property="destdirfile">
+ <file file="checksum/checksums/foo/zap/Eenie.MD5" />
+ </pathconvert>
+ <fail message="Checksums should be written to ${destdirfile}">
+ <condition>
+ <not>
+ <available file="${destdirfile}" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="Checksums should not be written to ${srcdirfile}">
+ <condition>
+ <available file="${srcdirfile}" />
+ </condition>
+ </fail>
+ </target>
+
+ <!-- bug report 25606 -->
+ <target name="verifyChecksumdirNoTotal">
+ <checksum todir="${basedir}/checksum/checksums">
+ <fileset dir="${basedir}/checksum">
+ <exclude name="**/*.MD5"/>
+ </fileset>
+ </checksum>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/Bar b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/Bar
new file mode 100644
index 00000000..c2bc8eef
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/Bar
@@ -0,0 +1 @@
+Barbapapa \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/zap/Eenie b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/zap/Eenie
new file mode 100644
index 00000000..d689175d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/checksum/foo/zap/Eenie
@@ -0,0 +1 @@
+Meenie Minie Moe \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/classloader.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/classloader.xml
new file mode 100644
index 00000000..02e47ab5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/classloader.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="classloader-test" default="main" basedir=".">
+
+ <target name="init">
+
+ <path id="myJars" >
+ <!-- both ant-junit.jar and junit.jar must be loaded from the same path -->
+ <pathelement path="${ant.home}/lib/ant-junit.jar" />
+ <pathelement path="${junit.jar}" />
+ </path>
+
+ <classloader classpathRef="myJars"
+ reverse="true" >
+
+ </classloader>
+ <junit />
+
+ </target>
+
+ <target name="main" depends="init">
+ <echo message="Found JUNIT" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/A b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/A
new file mode 100644
index 00000000..2e65efe2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/A
@@ -0,0 +1 @@
+a \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/B b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/B
new file mode 100644
index 00000000..63d8dbd4
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat-input/B
@@ -0,0 +1 @@
+b \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat.xml
new file mode 100644
index 00000000..235b1528
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/concat.xml
@@ -0,0 +1,214 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="concat-test" basedir="." default="test1">
+
+ <property name="tmp.file" value="concat.tmp" />
+ <property name="tmp.file.2" value="concat.tmp.2" />
+
+ <property name="world" value="World" />
+
+ <target name="cleanup">
+ <delete file="TESTDEST"/>
+ <delete file="${tmp.file}"/>
+ <delete file="${tmp.file.2}"/>
+ <delete file="concat.line4"/>
+ <delete file="concat.noeol"/>
+ <delete file="concat.linecr"/>
+ <delete file="concat.utf8"/>
+ <delete file="concat.urls"/>
+ </target>
+
+ <target name="test1">
+ <concat>
+ </concat>
+ </target>
+
+ <target name="test2">
+ <concat destfile="">Hello, ${world}!</concat>
+ </target>
+
+ <target name="test3">
+ <concat destfile="${tmp.file}">Hello, ${world}!</concat>
+ </target>
+
+ <target name="test4">
+ <concat destfile="${tmp.file.2}">
+ <fileset dir="${basedir}" includes="${tmp.file}" />
+ <filelist dir="${basedir}" files="${tmp.file},${tmp.file}" />
+ </concat>
+ </target>
+
+ <target name="test5">
+ <concat>Hello, ${world}!</concat>
+ </target>
+
+ <target name="test6">
+ <concat destfile="TESTDEST" append="true">
+ <filelist dir="${basedir}" files="thisfiledoesnotexist"/>
+ </concat>
+ <available file="TESTDEST" property="TESTDEST.was.created"/>
+ <fail message="TESTDEST created for nonexistent files"
+ if="TESTDEST.was.created"/>
+ </target>
+
+ <target name="testConcatNoNewline">
+ <concat>
+ <fileset dir="concat-input"/>
+ </concat>
+ </target>
+
+ <target name="testConcatNoNewlineEncoding">
+ <concat encoding="ASCII">
+ <fileset dir="concat-input"/>
+ </concat>
+ </target>
+
+ <target name="testPath">
+ <concat destfile="${tmp.file.2}">
+ <path path="${tmp.file}"/>
+ </concat>
+ </target>
+
+ <target name="testAppend">
+ <concat destfile="${tmp.file.2}">
+ <path path="${tmp.file}"/>
+ </concat>
+ <concat destfile="${tmp.file.2}" append="true">
+ <path path="${tmp.file}"/>
+ </concat>
+ </target>
+
+ <target name="testfilter">
+ <concat destfile="${tmp.file}">@REPLACEME@</concat>
+ <concat>
+ <path path="${tmp.file}"/>
+ <filterchain>
+ <replacetokens>
+ <token key="REPLACEME" value="REPLACED"/>
+ </replacetokens>
+ </filterchain>
+ </concat>
+ </target>
+
+ <target name="testnooverwrite">
+ <touch file="${tmp.file.2}"/>
+ <!-- concat.xml is now older than tmp.file.2
+ so the following should not do anything -->
+ <concat destfile="${tmp.file.2}" overwrite="false">
+ <path path="concat.xml"/>
+ </concat>
+ </target>
+
+ <target name="testoverwrite">
+ <touch file="${tmp.file.2}"/>
+ <!-- concat.xml is now older than tmp.file.2
+ so the following should still overwrite it -->
+ <concat destfile="${tmp.file.2}" overwrite="true">
+ <path path="concat.xml"/>
+ </concat>
+ </target>
+
+ <target name="testheaderfooter">
+ <concat>
+ <header filtering="false" trim="yes">
+ header
+ </header>
+ <path path="${tmp.file}"/>
+ <footer filtering="no">footer</footer>
+ </concat>
+ </target>
+
+ <target name="testfileheader">
+ <concat>
+ <header file="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ </concat>
+ </target>
+
+ <target name="samefile">
+ <touch file="${tmp.file}"/>
+ <concat destfile="${tmp.file}">
+ <path path="${tmp.file}"/>
+ </concat>
+ </target>
+
+ <target name="testfilterinline">
+ <concat>
+ @REPLACEME@
+ <filterchain>
+ <replacetokens>
+ <token key="REPLACEME" value="REPLACED"/>
+ </replacetokens>
+ </filterchain>
+ </concat>
+ </target>
+
+ <target name="testmultireader">
+ <concat destfile="${tmp.file}">Hello, World
+ </concat>
+ <concat destfile="${tmp.file.2}">Bye, World
+ </concat>
+ <concat>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <path path="${tmp.file}"/>
+ <!-- tailfilter seems to behave a little stange, place two
+ here in case the implementation changes -->
+ <path path="${tmp.file.2}"/>
+ <path path="${tmp.file.2}"/>
+ <filterchain>
+ <tailfilter lines="2"/>
+ </filterchain>
+ </concat>
+ </target>
+
+ <target name="create-noel">
+ <concat destfile="concat.noeol">This has no end of line</concat>
+ </target>
+
+ <target name="testfixlastline" depends="create-noel">
+ <concat destfile="concat.line4" fixlastline="yes">
+ <path path="concat.noeol"/>
+ <path path="concat.noeol"/>
+ <path path="concat.noeol"/>
+ <path path="concat.noeol"/>
+ </concat>
+ </target>
+
+ <target name="testfixlastlineeol" depends="create-noel">
+ <concat destfile="concat.linecr" fixlastline="yes" eol="mac">
+ <path path="concat.noeol"/>
+ <path path="concat.noeol"/>
+ </concat>
+ </target>
+
+ <target name="testTranscoding">
+ <concat destfile="concat.utf8"
+ encoding="ISO8859_1" outputencoding="UTF8">
+ <path path="copy/input/iso8859-1"/>
+ </concat>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/condition.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/condition.xml
new file mode 100644
index 00000000..81660ae6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/condition.xml
@@ -0,0 +1,521 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- test conditioning -->
+<project name="condition-test" basedir="." default="test1">
+
+ <target name="basic">
+ <condition property="basic">
+ <equals arg1="a" arg2="a" />
+ </condition>
+ <echo>${basic}</echo>
+ </target>
+
+ <target name="condition-incomplete">
+ <condition >
+ <equals arg1="a" arg2="a" />
+ </condition>
+ </target>
+
+ <target name="condition-empty">
+ <condition property="condition-empty"/>
+ <echo>${condition-empty}</echo>
+ </target>
+
+ <target name="shortcut">
+ <property name="shortcut" value="set"/>
+ <condition property="shortcut">
+ <equals arg1="a" arg2="a" />
+ </condition>
+ <echo>${shortcut}</echo>
+ </target>
+
+ <target name="dontset">
+ <condition property="dontset">
+ <equals arg1="a" arg2="b" />
+ </condition>
+ <echo>${dontset}</echo>
+ </target>
+
+ <target name="setvalue">
+ <condition property="setvalue" value="woowoo" >
+ <equals arg1="a" arg2="a" />
+ </condition>
+ <echo>${setvalue}</echo>
+ </target>
+
+ <target name="negation">
+ <condition property="negation">
+ <not>
+ <equals arg1="a" arg2="B" />
+ </not>
+ </condition>
+ <echo>${negation}</echo>
+ </target>
+
+ <target name="negationfalse">
+ <condition property="negationfalse">
+ <not>
+ <equals arg1="a" arg2="a" />
+ </not>
+ </condition>
+ <echo>${negationfalse}</echo>
+ </target>
+
+ <target name="negationincomplete">
+ <condition property="negationincomplete">
+ <not />
+ </condition>
+ <echo>${negationincomplete}</echo>
+ </target>
+
+ <target name="and">
+ <condition property="and">
+ <and>
+ <equals arg1="a" arg2="a" />
+ <equals arg1="B" arg2="B" />
+ </and>
+ </condition>
+ <echo>${and}</echo>
+ </target>
+
+ <target name="andfails">
+ <condition property="andfails">
+ <and>
+ <equals arg1="a" arg2="B" />
+ <equals arg1="B" arg2="a" />
+ </and>
+ </condition>
+ <echo>${andfails}</echo>
+ </target>
+
+ <target name="andincomplete">
+ <condition property="andincomplete">
+ <and>
+ <equals arg1="a" arg2="B" />
+ </and>
+ </condition>
+ <echo>${andincomplete}</echo>
+ </target>
+
+ <target name="andempty">
+ <condition property="andempty">
+ <and/>
+ </condition>
+ <echo>${andempty}</echo>
+ </target>
+
+ <target name="or">
+ <condition property="or">
+ <or>
+ <equals arg1="a" arg2="B" />
+ <equals arg1="B" arg2="B" />
+ </or>
+ </condition>
+ <echo>${or}</echo>
+ </target>
+
+ <target name="orincomplete">
+ <condition property="orincomplete">
+ <or>
+ <equals arg1="a" arg2="a" />
+ </or>
+ </condition>
+ <echo>${orincomplete}</echo>
+ </target>
+
+ <target name="orempty">
+ <condition property="orempty">
+ <or/>
+ </condition>
+ <echo>${orempty}</echo>
+ </target>
+
+ <target name="orfails">
+ <condition property="orfails">
+ <or>
+ <equals arg1="a" arg2="B" />
+ <equals arg1="B" arg2="a" />
+ </or>
+ </condition>
+ <echo>${orfails}</echo>
+ </target>
+
+ <target name="orboth">
+ <condition property="orboth">
+ <or>
+ <equals arg1="a" arg2="a" />
+ <equals arg1="B" arg2="B" />
+ </or>
+ </condition>
+ <echo>${orboth}</echo>
+ </target>
+
+ <target name="filesmatch-identical" >
+ <condition property="filesmatch-identical">
+ <filesmatch
+ file1="condition.xml"
+ file2="condition.xml" />
+ </condition>
+ <echo>${filesmatch-identical}</echo>
+ </target>
+
+ <target name="filesmatch-incomplete" >
+ <condition property="filesmatch-incomplete">
+ <filesmatch
+ file1="condition.xml"/>
+ </condition>
+ <echo>${filesmatch-incomplete}</echo>
+ </target>
+
+ <target name="filesmatch-oddsizes" >
+ <condition property="filesmatch-oddsizes">
+ <filesmatch
+ file1="condition.xml"
+ file2="property.xml" />
+ </condition>
+ <echo>${filesmatch-oddsizes}</echo>
+ </target>
+
+ <target name="filesmatch-existence" >
+ <condition property="filesmatch-existence">
+ <filesmatch
+ file1="condition.xml"
+ file2="this-file-doesnt-exist.xml" />
+ </condition>
+ <echo>${filesmatch-existence}</echo>
+ </target>
+
+ <target name="filesmatch-neitherexist">
+ <fail>
+ <condition>
+ <not>
+ <filesmatch file1="idonotexist" file2="andneitherdoi" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="filesmatch-different">
+ <echo file="match1.txt" message="012345676890" />
+ <echo file="match2.txt" message="012345676889" />
+ <condition property="filesmatch-different">
+ <filesmatch
+ file1="match1.txt"
+ file2="match2.txt" />
+ </condition>
+ <echo>${filesmatch-different}</echo>
+ </target>
+
+ <target name="filesmatch-match" >
+ <echo file="match3.txt" message="012345676890" />
+ <echo file="match4.txt" message="012345676890" />
+ <condition property="filesmatch-match">
+ <filesmatch
+ file1="match3.txt"
+ file2="match4.txt" />
+ </condition>
+ <echo>${filesmatch-match}</echo>
+ </target>
+
+ <target name="filesmatch-different-eol" >
+ <echo file="match7.txt" message="012345676890" />
+ <echo file="match8.txt" message="012345676890" />
+ <fixcrlf file="match7.txt" eol="cr" fixlast="true" />
+ <fixcrlf file="match8.txt" eol="lf" fixlast="true" />
+ <fail>
+ <condition>
+ <filesmatch file1="match7.txt" file2="match8.txt" />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="filesmatch-same-eol" >
+ <echo file="match9.txt" message="012345676890" />
+ <echo file="match10.txt" message="012345676890" />
+ <fixcrlf file="match9.txt" eol="crlf" fixlast="true" />
+ <fixcrlf file="match10.txt" eol="lf" fixlast="true" />
+ <fail>
+ <condition>
+ <not>
+ <filesmatch file1="match9.txt" file2="match10.txt" textfile="true" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="filesmatch-different-sizes">
+ <echo file="match5.txt" message="012345676890" />
+ <echo file="match6.txt" message="0123456768" />
+ <condition property="filesmatch-different-sizes">
+ <filesmatch
+ file1="match5.txt"
+ file2="match6.txt" />
+ </condition>
+ <echo>${filesmatch-different-sizes}</echo>
+ </target>
+
+ <target name="filesmatch-different-onemissing">
+ <condition property="filesmatch-different-sizes">
+ <filesmatch
+ file1="condition.xml"
+ file2="missing-file.txt" />
+ </condition>
+ <echo>${filesmatch-different-onemissing}</echo>
+ </target>
+
+ <target name="contains" >
+ <condition property="contains">
+ <contains
+ string="abcd"
+ substring="cd" />
+ </condition>
+ <echo>${contains}</echo>
+ </target>
+
+ <target name="contains-doesnt" >
+ <condition property="contains-doesnt">
+ <contains
+ string="abcd"
+ substring="CD" />
+ </condition>
+ <echo>${contains-doesnt}</echo>
+ </target>
+
+ <target name="contains-anycase" >
+ <condition property="contains-anycase">
+ <contains casesensitive="false"
+ string="abcd"
+ substring="CD" />
+ </condition>
+ <echo>${contains-anycase}</echo>
+ </target>
+
+ <target name="contains-incomplete1" >
+ <condition property="contains-incomplete1">
+ <contains
+ string="abcd" />
+ </condition>
+ <echo>${contains-incomplete1}</echo>
+ </target>
+
+ <target name="contains-incomplete2" >
+ <condition property="contains-incomplete2">
+ <contains
+ substring="CD" />
+ </condition>
+ <echo>${contains-incomplete2}</echo>
+ </target>
+
+ <target name="istrue" >
+ <property name="t" value="true" />
+ <property name="o" value="o" />
+ <property name="n" value="n" />
+ <condition property="istrue">
+ <and>
+ <istrue value="${t}" />
+ <istrue value="TRUE" />
+ <istrue value="yes" />
+ <istrue value="YeS" />
+ <istrue value="on" />
+ <istrue value="${o}${n}" />
+ </and>
+ </condition>
+ <echo>${istrue}</echo>
+ </target>
+
+ <target name="istrue-not" >
+ <condition property="istrue-not">
+ <istrue
+ value="this sentence is true" />
+ </condition>
+ <echo>${istrue-not}</echo>
+ </target>
+
+ <target name="istrue-false" >
+ <condition property="istrue-false">
+ <or>
+ <istrue value="false" />
+ <istrue value="" />
+ </or>
+ </condition>
+ <echo>${istrue-false}</echo>
+ </target>
+
+ <target name="istrue-incomplete" >
+ <condition property="istrue-incomplete">
+ <istrue />
+ </condition>
+ <echo>${istrue-incomplete}</echo>
+ </target>
+
+ <target name="isfalse-true" >
+ <property name="t" value="true" />
+ <condition property="isfalse-true">
+ <isfalse
+ value="${t}" />
+ </condition>
+ <echo>${isfalse-true}</echo>
+ </target>
+
+ <target name="isfalse-not" >
+ <condition property="isfalse-not">
+ <isfalse
+ value="this sentence is true" />
+ </condition>
+ <echo>${isfalse-not}</echo>
+ </target>
+
+ <target name="isfalse-false" >
+ <condition property="isfalse-false">
+ <isfalse
+ value="false" />
+ </condition>
+ <echo>${isfalse-false}</echo>
+ </target>
+
+ <target name="isfalse-incomplete" >
+ <condition property="isfalse-incomplete">
+ <isfalse />
+ </condition>
+ <echo>${isfalse-incomplete}</echo>
+ </target>
+
+ <target name="testElse">
+ <condition property="unset" value="foo">
+ <or />
+ </condition>
+ <condition property="value" value="foo" else="bar">
+ <and />
+ </condition>
+ <condition property="else" value="foo" else="bar">
+ <or />
+ </condition>
+ <fail>
+ <condition>
+ <or>
+ <isset property="unset" />
+ <not>
+ <and>
+ <equals arg1="${value}" arg2="foo" />
+ <equals arg1="${else}" arg2="bar" />
+ </and>
+ </not>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="resourcesmatch-error">
+ <condition property="errorexpected">
+ <resourcesmatch />
+ </condition>
+ </target>
+
+ <target name="resourcesmatch-match-empty">
+ <condition property="errorexpected">
+ <resourcesmatch>
+ <resources />
+ </resourcesmatch>
+ </condition>
+ </target>
+
+ <target name="resourcesmatch-match-one">
+ <condition property="errorexpected">
+ <resourcesmatch>
+ <string value="foo" />
+ </resourcesmatch>
+ </condition>
+ </target>
+
+ <target name="resourcesmatch-match-binary">
+ <fail>
+ <condition>
+ <not>
+ <resourcesmatch>
+ <string value="foo" />
+ <string value="foo" />
+ </resourcesmatch>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="resourcesmatch-match-multiple-binary">
+ <fail>
+ <condition>
+ <not>
+ <resourcesmatch>
+ <string value="foo" />
+ <string value="foo" />
+ <string value="foo" />
+ </resourcesmatch>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="resourcesmatch-differ">
+ <echo file="match11.txt" message="foo" />
+ <fixcrlf file="match11.txt" eol="crlf" fixlast="true" />
+ <fail>
+ <condition>
+ <resourcesmatch>
+ <file file="match11.txt" />
+ <string value="foo" />
+ </resourcesmatch>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="resourcesmatch-match-text">
+ <echo file="match11.txt" message="foo" />
+ <fixcrlf file="match11.txt" eol="crlf" />
+ <fail>
+ <condition>
+ <not>
+ <resourcesmatch astext="true">
+ <file file="match11.txt" />
+ <string value="foo" />
+ </resourcesmatch>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="resourcesmatch-noneexist">
+ <fail>
+ <condition>
+ <not>
+ <resourcesmatch>
+ <resource name="foo" exists="false" />
+ <resource name="bar" exists="false" />
+ <resource name="baz" exists="false" />
+ </resourcesmatch>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="cleanup" >
+ <delete>
+ <fileset dir="." includes="match?.txt,match??.txt" />
+ </delete>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/antversion.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/antversion.xml
new file mode 100644
index 00000000..8a54cb01
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/antversion.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="testantversion" default="testatleast">
+
+ <target name="testatleast">
+ <fail>
+ <condition>
+ <not>
+ <antversion atleast="1.7" />
+ </not>
+ </condition>
+ Should be at least 1.7
+ </fail>
+ </target>
+
+ <target name="testexactly">
+ <fail>
+ <condition>
+ <not>
+ <antversion exactly="1.9.6" />
+ </not>
+ </condition>
+ Should be exactly 1.9.6
+
+ </fail>
+ </target>
+
+ <target name="testatleastfail">
+ <property name="version" value="1.8.9" />
+ <fail>
+ <condition>
+ <not>
+ <antversion atleast="1.9.6" />
+ </not>
+ </condition>
+ Should be at least 1.9.6
+ </fail>
+ </target>
+
+ <target name="testexactlyfail">
+ <property name="version" value="1.8.0" />
+ <fail>
+ <condition>
+ <not>
+ <antversion exactly="1.9.6" />
+ </not>
+ </condition>
+ Should be exactly 1.9.6
+ </fail>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/http.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/http.xml
new file mode 100644
index 00000000..76e87cbe
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/http.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="nope">
+
+ <target name="nope">
+ <fail>This build file should be run by a testcase</fail>
+ </target>
+
+ <target name="basic-no-method">
+ <condition property="basic-no-method">
+ <http url="http://ant.apache.org/"/>
+ </condition>
+ <condition property="basic-no-method-bad-url">
+ <http url="http://ant.apache.org/this-page-does-not-exist"/>
+ </condition>
+ </target>
+
+ <target name="test-head-request">
+ <condition property="test-head-request">
+ <http url="http://ant.apache.org/" requestMethod="HEAD"/>
+ </condition>
+ <condition property="test-head-request-bad-url">
+ <http url="http://ant.apache.org/this-page-does-not-exist" requestMethod="HEAD"/>
+ </condition>
+ </target>
+
+ <target name="test-get-request">
+ <condition property="test-get-request">
+ <http url="http://ant.apache.org/" requestMethod="GET"/>
+ </condition>
+ <condition property="test-get-request-bad-url">
+ <http url="http://ant.apache.org/this-page-does-not-exist" requestMethod="GET"/>
+ </condition>
+ </target>
+
+ <target name="bad-request-method">
+ <condition property="bad-request-method">
+ <http url="http://ant.apache.org" requestMethod="UNKNOWN"/>
+ </condition>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfailure.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfailure.xml
new file mode 100644
index 00000000..b5d1a6a4
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfailure.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="testisfailure">
+
+ <target name="testisfailure">
+ <fail>
+ <condition>
+ <or>
+ <and>
+ <os family="openvms" />
+ <or>
+ <isfailure code="1" />
+ <isfailure code="3" />
+ <isfailure code="5" />
+ <isfailure code="7" />
+ <isfailure code="9" />
+ <not>
+ <and>
+ <isfailure code="0" />
+ <isfailure code="2" />
+ <isfailure code="4" />
+ <isfailure code="6" />
+ <isfailure code="8" />
+ </and>
+ </not>
+ </or>
+ </and>
+ <and>
+ <not>
+ <os family="openvms" />
+ </not>
+ <or>
+ <isfailure code="0" />
+ <not>
+ <and>
+ <isfailure code="1" />
+ <isfailure code="10" />
+ <isfailure code="50" />
+ <isfailure code="100" />
+ <isfailure code="255" />
+ </and>
+ </not>
+ </or>
+ </and>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfileselected.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfileselected.xml
new file mode 100644
index 00000000..0626eedb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isfileselected.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <macrodef name="pass">
+ <element name="conditions" implicit="yes"/>
+ <attribute name="failmessage"/>
+ <sequential>
+ <fail message="@{failmessage}">
+ <condition>
+ <not>
+ <conditions/>
+ </not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <target name="simple">
+ <pass failmessage="a simple test">
+ <isfileselected file="jars/pass.jar">
+ <signedselector/>
+ </isfileselected>
+ </pass>
+ </target>
+
+ <target name="name">
+ <pass failmessage="name did not match">
+ <isfileselected file="jars/nosign.jar">
+ <filename name="jars/nosign.jar"/>
+ </isfileselected>
+ </pass>
+ </target>
+
+ <target name="basedir">
+ <pass failmessage="name did not match with a basedir change">
+ <isfileselected file="jars/nosign.jar" basedir="jars">
+ <filename name="nosign.jar"/>
+ </isfileselected>
+ </pass>
+ </target>
+
+ <target name="type">
+ <pass failmessage="type selector did not work">
+ <isfileselected file="isfileselected.xml">
+ <type type="file"/>
+ </isfileselected>
+ </pass>
+ </target>
+
+ <target name="not.selector">
+ <fileset dir=".">
+ <isfileselected file="nosigned.jar"/>
+ </fileset>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreachable.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreachable.xml
new file mode 100644
index 00000000..3f74aef7
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreachable.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<project name="isreachable">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+
+ <macrodef name="assertHostReachable">
+ <attribute name="host"/>
+ <sequential>
+ <fail message="not reachable: @{host}">
+ <condition>
+ <not>
+ <isreachable host="@{host}"/>
+ </not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertHostNotReachable">
+ <attribute name="host"/>
+ <sequential>
+ <fail message="unexpectedly reachable: @{host}">
+ <condition>
+ <isreachable host="@{host}"/>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertUrlReachable">
+ <attribute name="url"/>
+ <sequential>
+ <fail message="not reachable: @{url}">
+ <condition>
+ <not>
+ <isreachable url="@{url}"/>
+ </not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <target name="testLocalhost">
+ <assertHostReachable host="localhost"/>
+ </target>
+
+ <!-- bugs in XPSP2 mean this is the only IPv4 loopback addr allowed -->
+ <target name="testIpv4localhost">
+ <assertHostReachable host="127.0.0.1"/>
+ </target>
+
+ <target name="testBoth">
+ <condition property="both">
+ <isreachable host="localhost" url="http://localhost"/>
+ </condition>
+ <fail>Expected failure before here</fail>
+ </target>
+
+ <target name="testLocalhostURL">
+ <assertUrlReachable url="http://localhost"/>
+ </target>
+
+ <target name="testIpv4localhostURL">
+ <assertUrlReachable url="http://127.0.0.1/"/>
+ </target>
+
+ <target name="testFTPURL">
+ <assertUrlReachable url="ftp://localhost"/>
+ </target>
+
+ <target name="testFile">
+ <assertUrlReachable url="file://build.xml"/>
+ </target>
+
+ <target name="testBadURL">
+ <assertUrlReachable url="uuid:3349-4404-0ac0ddee"/>
+ </target>
+
+ <target name="testBadTimeout">
+ <condition property="testBadTimeout">
+ <isreachable host="localhost" timeout="-1"/>
+ </condition>
+ </target>
+
+ <target name="testNoTargets">
+ <condition property="none">
+ <isreachable/>
+ </condition>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreference.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreference.xml
new file mode 100644
index 00000000..d1f86db9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/isreference.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="nope">
+ <path id="global-path-id"/>
+ <echo id="echo-id"/>
+
+ <target name="nope">
+ <fail>This build file should be run by a testcase</fail>
+ </target>
+
+ <target name="define">
+ <path id="target-path-id"/>
+ </target>
+
+ <target name="basic" depends="define">
+ <condition property="global-path">
+ <isreference refid="global-path-id"/>
+ </condition>
+ <condition property="target-path">
+ <isreference refid="target-path-id"/>
+ </condition>
+ </target>
+
+ <target name="isreference-incomplete">
+ <condition property="foo">
+ <isreference/>
+ </condition>
+ </target>
+
+ <target name="type">
+ <condition property="global-path">
+ <isreference refid="global-path-id" type="path"/>
+ </condition>
+ <condition property="global-path-as-fileset">
+ <isreference refid="global-path-id" type="fileset"/>
+ </condition>
+ <condition property="global-path-as-foo">
+ <isreference refid="global-path-id" type="foo"/>
+ </condition>
+ <condition property="global-echo">
+ <isreference refid="echo-id" type="echo"/>
+ </condition>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/issigned.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/issigned.xml
new file mode 100644
index 00000000..7cbf328f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/issigned.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="all">
+
+ <target name="pass" description="check if a name of pass is ok">
+ <fail message="name of pass not seen in the signed pass.jar">
+ <condition>
+ <not>
+ <issigned file="jars/pass.jar" name="pass"/>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="password" description="check if a name of password is *not* ok">
+ <fail message="name of password is seen in the signed pass.jar">
+ <condition>
+ <issigned file="jars/pass.jar" name="password"/>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="apassword" description="check if the 8 letter shorting works">
+ <fail message="8 letter shorting does not work 1">
+ <condition>
+ <not>
+ <issigned file="jars/apassword.jar" name="apasswor"/>
+ </not>
+ </condition>
+ </fail>
+ <fail message="8 letter shorting does not work 2">
+ <condition>
+ <not>
+ <issigned file="jars/apassword.jar" name="apassword"/>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="allsigned" description="check the signed / not signed status">
+ <fail message="pass.jar should be signed">
+ <condition>
+ <not>
+ <issigned file="jars/pass.jar"/>
+ </not>
+ </condition>
+ </fail>
+ <fail message="nosign.jar should not be signed">
+ <condition>
+ <issigned file="jars/nosign.jar"/>
+ </condition>
+ </fail>
+
+ <fail message="apassword.jar should be signed">
+ <condition>
+ <not>
+ <issigned file="jars/apassword.jar"/>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/apassword.jar b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/apassword.jar
new file mode 100644
index 00000000..6bd4af1f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/apassword.jar
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/nosign.jar b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/nosign.jar
new file mode 100644
index 00000000..d1b7f8d2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/nosign.jar
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/pass.jar b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/pass.jar
new file mode 100644
index 00000000..cd49f15d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/jars/pass.jar
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/parsersupports.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/parsersupports.xml
new file mode 100644
index 00000000..c80fd350
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/parsersupports.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<project name="parsersupports" >
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+
+ <target name="testEmpty">
+ <condition property="empty">
+ <parsersupports />
+ </condition>
+ <fail>Expected failure before here</fail>
+ </target>
+
+ <target name="testBoth">
+ <condition property="both">
+ <parsersupports property="http://bar" feature="http://foo"/>
+ </condition>
+ <fail>Expected failure before here</fail>
+ </target>
+
+ <target name="testNamespaces">
+ <fail>
+ <condition >
+ <not>
+ <parsersupports feature="http://xml.org/sax/features/namespaces"/>
+ </not>
+ </condition>
+ Expected namespace support
+ </fail>
+ </target>
+
+ <target name="testPropertyInvalid">
+ <fail>
+ <condition>
+ <not>
+ <parsersupports
+ property="http://xml.org/sax/properties/declaration-handler"
+ value="undefined"/>
+ </not>
+ </condition>
+ Expected DTD declaration property settable.
+ </fail>
+ </target>
+
+ <target name="testPropertyNoValue">
+ <fail>
+ <condition>
+ <not>
+ <parsersupports
+ property="http://xml.org/sax/properties/declaration-handler"
+ />
+ </not>
+ </condition>
+ Expected no property
+ </fail>
+ </target>
+
+ <target name="testUnknownProperty">
+ <fail>
+ <condition>
+ <parsersupports property="http://org.apache.ant/something"
+ value="undefined"/>
+ </condition>
+ Expected unsupported property.
+ </fail>
+ </target>
+
+ <target name="testXercesProperty">
+ <fail>
+ <condition>
+ <not>
+ <parsersupports
+ property="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+ value="parsersupports.xml"/>
+ </not>
+ </condition>
+ Expected XSD support on Xerces.
+ </fail>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/typefound.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/typefound.xml
new file mode 100644
index 00000000..054ca673
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/typefound.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="typefound">
+
+
+ <target name="testTask">
+ <condition property="testTask">
+ <typefound name="echo"/>
+ </condition>
+ </target>
+
+
+ <target name="testUndefined">
+ <condition property="testUndefined">
+ <typefound />
+ </condition>
+ </target>
+
+ <target name="testTaskThatIsntDefined">
+ <condition property="testTaskThatIsntDefined">
+ <typefound name="invalid-and-undefined-task-name"/>
+ </condition>
+ </target>
+
+ <target name="testTaskThatDoesntReallyExist">
+ <taskdef name="invalid-task-name" onerror="ignore"
+ classname="org.example.invalid.task.name.hopefully"/>
+ <condition property="testTaskThatDoesntReallyExist">
+ <typefound name="invalid-task-name"/>
+ </condition>
+ </target>
+
+ <target name="testType">
+ <condition property="testType">
+ <typefound name="path"/>
+ </condition>
+ </target>
+
+ <target name="testPreset">
+ <presetdef name="important-echo">
+ <echo level="error"/>
+ </presetdef>
+ <condition property="testPreset">
+ <typefound name="important-echo"/>
+ </condition>
+ </target>
+
+ <target name="testMacro">
+ <macrodef name="error-message">
+ <element name="text" optional="false"/>
+ <sequential>
+ <echo level="error">@{text}</echo>
+ </sequential>
+ </macrodef>
+ <condition property="testMacro">
+ <typefound name="error-message"/>
+ </condition>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/xor.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/xor.xml
new file mode 100644
index 00000000..895dccdb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/conditions/xor.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="all">
+
+<!--
+ Xor semantics
+
+ in out
+ == ===
+ 00 0
+ 01 1
+ 10 1
+ 00 0
+
+-->
+
+ <target name="testEmpty" >
+ <fail message="empty test">
+ <condition>
+ <xor/>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test1" >
+ <fail message="testTrue">
+ <condition>
+ <not>
+ <xor>
+ <istrue value="true" />
+ </xor>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test0" >
+ <fail message="testFalse">
+ <condition>
+ <xor>
+ <istrue value="" />
+ </xor>
+ </condition>
+ </fail>
+ </target>
+
+
+ <target name="test10" >
+ <fail message="test10">
+ <condition>
+ <not>
+ <xor>
+ <istrue value="true" />
+ <istrue value="" />
+ </xor>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test01" >
+ <fail message="test01">
+ <condition>
+ <not>
+ <xor>
+ <istrue value="" />
+ <istrue value="true" />
+ </xor>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test00" >
+ <fail message="test10">
+ <condition>
+ <xor>
+ <istrue value="" />
+ <istrue value="" />
+ </xor>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test11" >
+ <fail message="test11">
+ <condition>
+ <xor>
+ <istrue value="" />
+ <istrue value="" />
+ </xor>
+ </condition>
+ </fail>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.filterset b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.filterset
new file mode 100644
index 00000000..5563dd95
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.filterset
@@ -0,0 +1 @@
+This is the @TITLE@.
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.xml
new file mode 100644
index 00000000..bf4441c1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="copy-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="test1">
+ <copy file="copy.xml" tofile="${output}/copytest1.tmp" />
+ </target>
+
+ <target name="test2">
+ <copy file="copy.xml" todir="${output}/copytest1dir" overwrite="true"/>
+ </target>
+
+ <target name="filtertest">
+ <!-- check fix for bugzilla 23154 -->
+ <concat destfile="${output}/copy.filter.inp">
+PRODUCT_VERSION=6.2.1.4
+PRODUCT_BUILD=6.5 (BLD_65036)
+PRODUCT_VERSION=6.2.1.4
+PRODUCT_BUILD=6.5 (BLD_65036)
+ </concat>
+ <copy file="${output}/copy.filter.inp" tofile="${output}/copy.filter.out">
+ <filterset begintoken="6" endtoken="4">
+ <filter token=".2.1." value="2.6.4" />
+ </filterset>
+ </copy>
+ <concat><path path="${output}/copy.filter.out"/></concat>
+ </target>
+
+ <target name="infinitetest">
+ <concat destfile="${output}/copy.filter.inp">
+a=b=
+ </concat>
+ <copy file="${output}/copy.filter.inp" tofile="${output}/copy.filter.out">
+ <filterset begintoken="=" endtoken="=">
+ <filter token="b" value="=b="/>
+ </filterset>
+ </copy>
+ <concat><path path="${output}/copy.filter.out"/></concat>
+ </target>
+
+ <target name="test3">
+ <!-- create an empty file -->
+ <touch file="${output}/copytest3.tmp"/>
+ <!-- copy a different file to two places -->
+ <copy file="copy.xml" tofile="${output}/copytest3a.tmp" overwrite="true"/>
+ <copy file="copy.xml" tofile="${output}/copytest3b.tmp" overwrite="true"/>
+ </target><target name="test3Part2">
+ <!-- copy an old file onto a newer file (should not work) -->
+ <copy file="${output}/copytest3.tmp" tofile="${output}/copytest3b.tmp" />
+ <!-- copy an older file onto a new one, should succeed -->
+ <copy file="${output}/copytest3.tmp" tofile="${output}/copytest3c.tmp"
+ overwrite="true"
+ preservelastmodified="true" />
+ <!-- copy a newer file onto an older one (should work) -->
+ <copy file="${output}/copytest3a.tmp" tofile="${output}/copytest3.tmp"
+ preservelastmodified="true" />
+ <!-- expected state :
+ 3a.tmp==3.tmp==copy.xml
+ timeof(3a.tmp)==timeof(3.tmp)==now()-4
+ sizeof(3c)==0
+ timeof(3c.tmp)<timeof(3a.tmp);
+ 3b.tmp==copy.xml
+ -->
+ </target>
+
+ <target name="test_single_file_fileset">
+ <copy tofile="${output}/copytest_single_file_fileset.tmp">
+ <fileset dir="." includes="copy.xml"/>
+ </copy>
+ </target>
+
+ <target name="test_single_file_path">
+ <copy tofile="${output}/copytest_single_file_path.tmp">
+ <path>
+ <pathelement location="copy.xml"/>
+ </path>
+ </copy>
+ </target>
+
+ <target name="testFilterSet">
+ <copy file="copy.filterset" tofile="${output}/copy.filterset.tmp">
+ <filterset>
+ <filter token="TITLE" value="Apache Ant Project"/>
+ </filterset>
+ </copy>
+ </target>
+
+ <target name="testFilterChain">
+ <copy file="copy.filterset" tofile="${output}/copy.filterchain.tmp">
+ <filterchain>
+ <replacetokens>
+ <token key="TITLE" value="Apache Ant Project"/>
+ </replacetokens>
+ </filterchain>
+ </copy>
+ </target>
+
+ <target name="testTranscoding">
+ <copy file="copy/input/iso8859-1" tofile="${output}/copytest1.tmp"
+ encoding="ISO8859_1" outputencoding="UTF8"/>
+ </target>
+
+ <target name="testMissingFileIgnore">
+ <copy file="not-there" tofile="${output}/copytest1.tmp"
+ failonerror="false"/>
+ </target>
+
+ <target name="testMissingFileBail">
+ <copy file="not-there" tofile="${output}/copytest1.tmp"
+ failonerror="true"/>
+ </target>
+
+ <target name="testMissingDirIgnore">
+ <copy todir="${output}" failonerror="false">
+ <fileset dir="not-there"/>
+ </copy>
+ </target>
+
+ <target name="testMissingDirBail">
+ <copy todir="${output}" failonerror="true">
+ <fileset dir="not-there"/>
+ </copy>
+ </target>
+
+ <property name="to.dir" value="${output}/copy-todir-tmp"/>
+ <property name="from.dir" value="${output}/copy-fromdir-tmp"/>
+
+ <target name="testResource.prepare">
+ <mkdir dir="${from.dir}"/>
+ <concat destfile="${from.dir}/file1.txt">This is file 1</concat>
+ <concat destfile="${from.dir}/file2.txt">This is file 2</concat>
+ <concat destfile="${from.dir}/file3.txt">This is file 3</concat>
+ <concat destfile="${from.dir}/fileNR.txt">This is file @NR@</concat>
+ </target>
+
+ <target name="testFileResourcePlain" depends="testResource.prepare">
+ <copy todir="${to.dir}" flatten="true">
+ <resources>
+ <file file="${from.dir}/file1.txt"/>
+ <file file="${from.dir}/file2.txt"/>
+ <file file="${from.dir}/file3.txt"/>
+ </resources>
+ </copy>
+ </target>
+
+ <target name="testFileResourceWithMapper" depends="testResource.prepare">
+ <copy todir="${to.dir}" flatten="true">
+ <resources>
+ <file file="${from.dir}/file1.txt"/>
+ <file file="${from.dir}/file2.txt"/>
+ <file file="${from.dir}/file3.txt"/>
+ </resources>
+ <regexpmapper from="^(.*)\.txt$$" to="\1.txt.bak"/>
+ </copy>
+ </target>
+
+ <target name="testFileResourceWithFilter" depends="testResource.prepare">
+ <copy todir="${to.dir}" flatten="true">
+ <resources>
+ <file file="${from.dir}/fileNR.txt"/>
+ </resources>
+ <filterset>
+ <filter token="NR" value="42"/>
+ </filterset>
+ </copy>
+ </target>
+
+ <target name="testResourcePlain">
+ </target>
+
+ <target name="testResourcePlainWithMapper">
+ </target>
+
+ <target name="testResourcePlainWithFilter">
+ </target>
+
+ <target name="testOnlineResources">
+ </target>
+
+ <target name="testPathAsResource" depends="testResource.prepare">
+ <copy todir="${to.dir}">
+ <path>
+ <fileset dir="${from.dir}"/>
+ </path>
+ </copy>
+ </target>
+
+ <target name="testZipfileset" depends="testResource.prepare">
+ <zip destfile="${from.dir}/test.zip" roundup="false">
+ <fileset dir="${from.dir}" excludes="*.zip"/>
+ </zip>
+ <copy todir="${to.dir}">
+ <zipfileset src="${from.dir}/test.zip"/>
+ </copy>
+ </target>
+
+ <target name="prepareDirset">
+ <touch mkdirs="true">
+ <filelist dir="${from.dir}/dirset">
+ <file name="a/x/foo" />
+ <file name="a/y/foo" />
+ <file name="a/z/foo" />
+ <file name="b/x/foo" />
+ <file name="b/y/foo" />
+ <file name="b/z/foo" />
+ </filelist>
+ </touch>
+ <fail>
+ <condition>
+ <or>
+ <resourcecount when="ne" count="9">
+ <dirset id="dirset" dir="${from.dir}/dirset" />
+ </resourcecount>
+ <resourcecount when="ne" count="6">
+ <fileset dir="${from.dir}/dirset" />
+ </resourcecount>
+ </or>
+ </condition>
+ </fail>
+ <delete dir="${to.dir}/dirset" />
+ <fail>
+ <condition>
+ <available file="${to.dir}/dirset" />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testDirset" depends="prepareDirset">
+ <copy todir="${to.dir}/dirset">
+ <resources refid="dirset" />
+ </copy>
+ <fail>
+ <condition>
+ <or>
+ <resourcecount when="ne" count="9">
+ <dirset dir="${to.dir}/dirset" />
+ </resourcecount>
+ <resourcecount when="ne" count="0">
+ <fileset dir="${to.dir}/dirset" />
+ </resourcecount>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/expected/utf-8 b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/expected/utf-8
new file mode 100644
index 00000000..c1949bc1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/expected/utf-8
@@ -0,0 +1 @@
+äöüÄÖÜß
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/input/iso8859-1 b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/input/iso8859-1
new file mode 100644
index 00000000..09044014
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copy/input/iso8859-1
@@ -0,0 +1 @@
+äöüÄÖÜß
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copydir.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copydir.xml
new file mode 100644
index 00000000..8a8abd36
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copydir.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="copydir-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="test1">
+ <copydir/>
+ </target>
+
+ <target name="test2">
+ <copydir src=""/>
+ </target>
+
+ <target name="test3">
+ <copydir dest=""/>
+ </target>
+
+ <target name="test4">
+ <copydir src="."
+ dest="."/>
+ </target>
+
+ <target name="test5">
+ <mkdir dir="${output}/taskdefs.tmp" />
+ <copydir src="."
+ dest="${output}/taskdefs.tmp"/>
+ </target>
+
+ <target name="test6">
+ <copydir src="."
+ dest="template.xml"/>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copyfile.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copyfile.xml
new file mode 100644
index 00000000..0f8c9ab0
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/copyfile.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="copyfile-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="test1">
+ <copyfile/>
+ </target>
+
+ <target name="test2">
+ <copyfile src=""/>
+ </target>
+
+ <target name="test3">
+ <copyfile dest=""/>
+ </target>
+
+ <target name="test4">
+ <copyfile src="template.xml"
+ dest="template.xml"/>
+ </target>
+
+ <target name="test5">
+ <copyfile src="copyfile.xml"
+ dest="${output}/copyfile.tmp"/>
+ </target>
+
+ <target name="test6">
+ <mkdir dir="${output}/testdir"/>
+ <copyfile src="copyfile.xml"
+ dest="${output}/testdir"
+ forceoverwrite="true" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/cvspass.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/cvspass.xml
new file mode 100644
index 00000000..bbca110f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/cvspass.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="cvspass-test" basedir="." default="test1">
+
+ <taskdef name="cvspass" classname="org.apache.tools.ant.taskdefs.CVSPass"/>
+
+ <target name="test1">
+ <cvspass />
+ </target>
+
+ <target name="test2">
+ <cvspass
+ cvsroot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
+ passfile="testpassfile.tmp"
+ />
+ </target>
+
+ <!-- testPassFile -->
+ <target name="test3">
+ <cvspass
+ cvsroot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
+ password="anoncvs"
+ passfile="testpassfile.tmp"
+ />
+ </target>
+
+ <!-- testPassFileDuplicateEntry -->
+ <target name="test4">
+ <cvspass
+ cvsroot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
+ password="anoncvs"
+ passfile="testpassfile.tmp"
+ />
+ <cvspass
+ cvsroot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
+ password="anoncvs"
+ passfile="testpassfile.tmp"
+ />
+ <cvspass
+ cvsroot=":pserver:guest@cvs.tigris.org:/cvs"
+ password="guest"
+ passfile="testpassfile.tmp"
+ />
+ </target>
+
+ <!-- testPassFileMultipleEntry -->
+ <target name="test5">
+ <cvspass
+ cvsroot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
+ password="anoncvs"
+ passfile="testpassfile.tmp"
+ />
+ <cvspass
+ cvsroot=":pserver:anoncvs@xml.apache.org:/home/cvspublic"
+ password="anoncvs"
+ passfile="testpassfile.tmp"
+ />
+ <cvspass
+ cvsroot=":pserver:guest@cvs.tigris.org:/cvs"
+ password="guest"
+ passfile="testpassfile.tmp"
+ />
+ </target>
+
+ <target name="cleanup">
+ <delete file="testpassfile.tmp"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/defaultexcludes.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/defaultexcludes.xml
new file mode 100644
index 00000000..46292501
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/defaultexcludes.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="echo-test" basedir="." default="test1">
+
+ <target name="cleanup">
+ <defaultexcludes default="true"/>
+ </target>
+
+ <target name="test1">
+ <defaultexcludes echo="true"/>
+ </target>
+
+ <target name="test2">
+ <defaultexcludes default="true" add="foo" echo="true"/>
+ </target>
+
+ <target name="test3">
+ <defaultexcludes default="true" remove="**/CVS" echo="true"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/delete.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/delete.xml
new file mode 100644
index 00000000..d74c8bab
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/delete.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="delete-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+
+ <property name="dir" location="${output}" />
+ <basename property="dirname" file="${output}"/>
+
+ <macrodef name="expectabsent">
+ <attribute name="target" default="${dir}"/>
+ <sequential>
+ <fileset id="detritus" dir="@{target}" erroronmissingdir="false"/>
+ <fail message="@{target} still has: ${toString:detritus}">
+ <condition>
+ <available file="@{target}" />
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="expectdirsonly">
+ <sequential>
+ <fail>
+ <condition>
+ <or>
+ <resourcecount when="greater" count="0">
+ <fileset dir="${dir}" />
+ </resourcecount>
+ <not>
+ <resourcecount count="${srcdirs}">
+ <dirset dir="${dir}" />
+ </resourcecount>
+ </not>
+ </or>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <target name="init">
+ <resourcecount property="srcdirs">
+ <dirset dir="${basedir}" />
+ </resourcecount>
+
+ <resourcecount property="srcsize">
+ <files includes="${basedir}/" />
+ </resourcecount>
+
+ <mkdir dir="${dir}" />
+
+ <copy todir="${dir}">
+ <fileset dir="${basedir}" excludes="${dirname},${dirname}/**" />
+ </copy>
+ </target>
+
+ <target name="test1">
+ <delete />
+ </target>
+
+ <target name="test2" depends="init">
+ <delete file="${dir}" />
+ <fail>
+ <condition>
+ <not>
+ <resourcecount count="${srcsize}">
+ <files includes="${dir}/" />
+ </resourcecount>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test4" depends="init">
+ <delete dir="${dir}" />
+ <expectabsent />
+ </target>
+
+ <target name="test5" depends="init">
+ <delete dir="${dir}" includes="**" />
+ <expectdirsonly />
+ </target>
+
+ <target name="test6" depends="init">
+ <delete dir="${dir}" includes="**" includeemptydirs="true" />
+ <expectabsent />
+ </target>
+
+ <target name="test7" depends="init">
+ <delete>
+ <fileset id="fs" dir="${dir}" />
+ </delete>
+ <expectdirsonly />
+ </target>
+
+ <target name="test8" depends="init">
+ <delete includeemptydirs="true">
+ <fileset dir="${dir}" />
+ </delete>
+ <expectabsent />
+ </target>
+
+ <target name="test9" depends="init">
+ <delete>
+ <files>
+ <include name="${dir}/**"/>
+ </files>
+ </delete>
+ <expectabsent />
+ </target>
+
+ <target name="test10">
+ <delete>
+ <filelist dir="${dir}" files="test10absentfile" />
+ </delete>
+ </target>
+
+ <target name="test11">
+ <delete failonerror="false">
+ <fileset dir="thisdenotesadirectorythatwillneverexistblah" />
+ </delete>
+ </target>
+
+ <target name="test12">
+ <delete failonerror="false" includeemptydirs="true">
+ <fileset dir="thisdenotesadirectorythatwillneverexistblah" />
+ </delete>
+ </target>
+
+ <target name="test13" depends="init">
+ <delete includeemptydirs="true">
+ <fileset dir="${dir}" />
+ <fileset dir="${dir}" />
+ </delete>
+ <expectabsent />
+ </target>
+
+ <target name="test14" depends="init">
+ <delete quiet="false">
+ <fileset dir="${dir}" />
+ <fileset dir="${dir}" />
+ </delete>
+ </target>
+
+ <target name="test15" depends="init">
+ <delete quiet="true">
+ <fileset dir="${dir}" />
+ <fileset dir="${dir}" />
+ </delete>
+ </target>
+ <!-- Bugzilla 40313 -->
+ <target name="test16.init">
+ <mkdir dir="${dir}/CVS"/>
+ <touch file="${dir}/CVS/lala"/>
+ <mkdir dir="${dir}/subdir"/>
+ </target>
+
+ <target name="test16" depends="test16.init">
+ <delete defaultexcludes="false" dir="${dir}" includeemptydirs="true"/>
+ <expectabsent/>
+ </target>
+
+ <target name="test17" depends="test16.init">
+ <delete dir="${dir}" defaultexcludes="true" includeemptydirs="true"/>
+ <fail message="file in CVS dir deleted">
+ <condition>
+ <not>
+ <available file="${dir}/CVS/lala"/>
+ </not>
+ </condition>
+ </fail>
+ <expectabsent target="${dir}/subdir"/>
+ </target>
+
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/deltree.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/deltree.xml
new file mode 100644
index 00000000..c69d51f0
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/deltree.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="deltree-test" basedir="." default="test1">
+
+ <target name="test1">
+ <deltree/>
+ </target>
+
+ <target name="test2">
+ <deltree dir="taskdefs.tmp"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dirname.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dirname.xml
new file mode 100644
index 00000000..1027db12
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dirname.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <target name="test1">
+ <dirname/>
+ </target>
+
+ <target name="test2">
+ <dirname property="propname"/>
+ </target>
+
+ <target name="test3">
+ <dirname file="filename"/>
+ </target>
+
+ <target name="test4">
+ <dirname property="local.dir" file="/usr/local/foo.txt"/>
+ </target>
+
+ <target name="test5">
+ <dirname property="base.dir" file="foo.txt"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dynamictask.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dynamictask.xml
new file mode 100644
index 00000000..307181f2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/dynamictask.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="dynamic-test" default="simple">
+
+ <path id="testclasses">
+ <pathelement location="../../../../build/testcases" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <target name="simple">
+ <taskdef name="dyna"
+ classname="org.apache.tools.ant.taskdefs.DynamicTask">
+ <classpath refid="testclasses" />
+ </taskdef>
+ <dyna prop1="1" prop2="2">
+ <sub prop3="3"/>
+ <anything prop4="4"/>
+ </dyna>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/echoxml.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/echoxml.xml
new file mode 100644
index 00000000..ec53abbb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/echoxml.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <property name="file" location="echoed.xml" />
+ <target name="init">
+ <echoxml file="${file}">
+ <project>
+ <property name="foo" value="bar" />
+ <fail message="$$$${foo}=$${foo}">
+ <condition>
+ <istrue value="${mustfail}" />
+ </condition>
+ </fail>
+ </project>
+ </echoxml>
+ </target>
+ <target name="tearDown">
+ <delete file="${file}" />
+ </target>
+ <target name="testPass" depends="init">
+ <ant antfile="${file}" />
+ </target>
+ <target name="testFail" depends="init">
+ <ant antfile="${file}">
+ <property name="mustfail" value="true" />
+ </ant>
+ </target>
+ <target name="testEmpty">
+ <echoxml />
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/email/mail.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/email/mail.xml
new file mode 100644
index 00000000..c56fd403
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/email/mail.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="mail-test" basedir="." default="test1">
+
+ <target name="test1">
+ <!-- this test is supposed to bring a build exception because user and password is not allowed with plain encoding -->
+ <mail host="localhost" port="25" from="joe@abc.com" to="laura@xyz.com" subject="hello" encoding="plain" user="joe" password="secret">
+ <message>
+ Hi Laura, how are you doing ?
+ </message>
+ </mail>
+ </target>
+ <target name="test2">
+ <!-- this test is supposed to bring a build exception because SSL is not allowed with plain encoding -->
+ <mail host="localhost" port="465" from="joe@abc.com" to="laura@xyz.com" subject="hello" encoding="plain" ssl="true">
+ <message>
+ Hi Laura, how are you doing ?
+ </message>
+ </mail>
+ </target>
+
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.sh b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.sh
new file mode 100644
index 00000000..c996d6af
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.sh
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.xml
new file mode 100644
index 00000000..3b13195f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/blabla.xml
@@ -0,0 +1,19 @@
+<project name="blabla" default="doit">
+ <target name="blabla">
+ <exec executable="sh">
+ <arg value="blabla.sh" />
+ </exec>
+ </target>
+ <target name="doit">
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/exec.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/exec.xml
new file mode 100644
index 00000000..20e56565
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/exec.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="exec-test" default="spawn" basedir=".">
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ <!-- this property can be overriden programatically in the Java test case -->
+ <property name="timeToWait" value="10"/>
+ <!-- this property can be overriden programatically in the Java test case -->
+ <property name="logFile" value="${output}/spawn.log"/>
+ <property environment="env"/>
+ <!-- UNIX -->
+ <available file="sh" filepath="${env.PATH}" property="sh.executable"/>
+ <!-- CYGWIN -->
+ <available file="sh.exe" filepath="${env.PATH}" property="sh.exe.executable"/>
+ <!-- WINDOWS + CYGWIN -->
+ <available file="sh.exe" filepath="${env.Path}" property="sh.exe.executable"/>
+ <condition property="test.can.run">
+ <or>
+ <isset property="sh.executable"/>
+ <isset property="sh.exe.executable"/>
+ </or>
+ </condition>
+ </target>
+
+ <target name="spawn" depends="setUp" if="test.can.run">
+ <exec executable="sh" spawn="true">
+ <arg value="spawn.sh"/>
+ <arg value="${timeToWait}"/>
+ <arg value="${logFile}"/>
+ </exec>
+ </target>
+
+ <target name="test-out-and-err" description="see https://issues.apache.org/bugzilla/show_bug.cgi?id=50507"
+ depends="setUp" if="test.can.run">
+ <mkdir dir="${output}"/>
+ <ant antfile="blabla.xml" output="${output}/test-out-and-err.txt">
+ </ant>
+ <loadfile srcfile="${output}/test-out-and-err.txt" property="test-out-and-err">
+ <filterchain>
+ <replaceregex pattern="^\s*\[exec\] some blablablablablablablablablablablabla error message err$" flags="m"/>
+ <replaceregex pattern="^\s*\[exec\] some blablablablablablablablablablablabla info message out$" flags="m"/>
+ </filterchain>
+ </loadfile>
+ <fail message="output indicates a mixup of out and err: '${test-out-and-err}'">
+ <condition>
+ <contains string="${test-out-and-err}" substring="[exec]"/>
+ </condition>
+ </fail>
+
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/parrot.sh b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/parrot.sh
new file mode 100644
index 00000000..2467f23a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/parrot.sh
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+for arg in "$@" ; do
+ echo $arg out
+ sleep 1
+ echo $arg err>&2
+done
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/spawn.sh b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/spawn.sh
new file mode 100644
index 00000000..2cf0631d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/exec/spawn.sh
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+sleeptime=10
+logfile=spawn.log
+if [ $# -ge 1 ]; then
+ sleeptime=$1
+ echo $sleeptime
+fi
+if [ $# -ge 2 ]; then
+ logfile=$2
+ echo $logfile
+fi
+echo hello
+rm $logfile
+sleep $sleeptime
+echo bye bye > $logfile
+echo bye bye
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.bz2 b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.bz2
new file mode 100644
index 00000000..7c2d2154
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.bz2
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.gz b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.gz
new file mode 100644
index 00000000..015471e1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo-huge.tar.gz
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.bz2 b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.bz2
new file mode 100644
index 00000000..0e73d252
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.bz2
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.gz b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.gz
new file mode 100644
index 00000000..decc9187
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.gz
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5 b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5
new file mode 100644
index 00000000..b56119be
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5
@@ -0,0 +1 @@
+0541d3df42520911f268abc730f3afe0
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5sum b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5sum
new file mode 100644
index 00000000..56c49d33
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5sum
@@ -0,0 +1 @@
+0541d3df42520911f268abc730f3afe0 *asf-logo.gif
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.pattern b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.pattern
new file mode 100644
index 00000000..3a6eb82f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.pattern
@@ -0,0 +1 @@
+foo0541d3df42520911f268abc730f3afe0bar
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.svf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.svf
new file mode 100644
index 00000000..c7f8ec23
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.svf
@@ -0,0 +1 @@
+MD5 (asf-logo.gif) = 0541d3df42520911f268abc730f3afe0
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar
new file mode 100644
index 00000000..fc0f7902
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.bz2 b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.bz2
new file mode 100644
index 00000000..99a91fc4
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.bz2
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.gz b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.gz
new file mode 100644
index 00000000..ddd23a24
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.tar.gz
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.zip
new file mode 100644
index 00000000..5f970d59
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/asf-logo.gif.zip
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/copy.filterset.filtered b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/copy.filterset.filtered
new file mode 100644
index 00000000..ddbcf5d8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/expected/copy.filterset.filtered
@@ -0,0 +1 @@
+This is the Apache Ant Project.
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fail.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fail.xml
new file mode 100644
index 00000000..0a6561e9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fail.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="fail-test" basedir="." default="test1">
+
+ <target name="test1">
+ <fail/>
+ </target>
+
+ <target name="test2">
+ <fail message="test2"/>
+ </target>
+
+ <target name="testText">
+ <fail>testText</fail>
+ </target>
+
+ <target name="testIf">
+ <fail if="foo" />
+ </target>
+
+ <target name="testUnless">
+ <fail unless="foo" />
+ </target>
+
+ <target name="testIfAndUnless">
+ <fail unless="unless" if="if"/>
+ </target>
+
+ <target name="testNested1" description="should fail with default message">
+ <fail>
+ <condition>
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested2" description="should pass">
+ <fail>
+ <condition>
+ <or />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested3" description="should fail">
+ <fail message="testNested3">
+ <condition>
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested4a" description="should error">
+ <fail if="if">
+ <condition>
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested4b" description="should error">
+ <fail unless="unless">
+ <condition>
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested4c" description="should error">
+ <fail if="if" unless="unless">
+ <condition>
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested5" description="should error">
+ <fail>
+ <condition>
+ <or />
+ </condition>
+ <condition>
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testNested6" description="should fail with message">
+ <fail>
+ <condition>
+ <and />
+ </condition>
+testNested6
+testNested6
+testNested6
+ </fail>
+ </target>
+
+ <target name="testNested7a" description="should error">
+ <fail>
+ <condition />
+ </fail>
+ </target>
+
+ <target name="testNested7b" description="should error">
+ <fail>
+ <condition>
+ <and />
+ <and />
+ </condition>
+ </fail>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter.xml
new file mode 100644
index 00000000..303efa74
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="filter-test" basedir="." default="test1">
+
+ <target name="test1">
+ <filter/>
+ </target>
+
+ <target name="test2">
+ <filter token=""/>
+ </target>
+
+ <target name="test3">
+ <filter value=""/>
+ </target>
+
+ <target name="test4">
+ <filter token="" value=""/>
+ </target>
+
+ <target name="test5">
+ <filter token="year" value="2000" />
+ <copy file="filter1.txt" tofile="filtered.tmp" filtering="yes" overwrite="yes" />
+ </target>
+
+ <target name="test6">
+ <filter token="year" value="2000" />
+ <copy todir="./taskdefs.tmp" filtering="yes" overwrite="yes">
+ <fileset dir="." includes="filter1.txt" />
+ </copy>
+ </target>
+
+ <target name="test7">
+ <filter token="ROOT" value="root" />
+ <copy file="filter2.txt" tofile="filtered.tmp" filtering="yes" overwrite="yes" />
+ </target>
+
+ <target name="test8">
+ <filter token="ROOT" value="root" />
+ <copy todir="./taskdefs.tmp" filtering="yes" overwrite="yes">
+ <fileset dir="." includes="filter2.txt"/>
+ </copy>
+ </target>
+
+ <target name="test9">
+ <filter filtersfile="filterdefs.properties" />
+ <copy todir="./taskdefs.tmp" filtering="yes" overwrite="yes">
+ <fileset dir="." includes="filter3.txt"/>
+ </copy>
+ </target>
+
+ <target name="cleanup">
+ <delete dir="taskdefs.tmp" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter1.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter1.txt
new file mode 100644
index 00000000..4e4f9763
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter1.txt
@@ -0,0 +1 @@
+@year@
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter2.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter2.txt
new file mode 100644
index 00000000..dccd06b8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter2.txt
@@ -0,0 +1 @@
+<%@ include file="@ROOT@/some/include.jsp"%>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter3.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter3.txt
new file mode 100644
index 00000000..03d7d29e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filter3.txt
@@ -0,0 +1 @@
+@property@
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filterdefs.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filterdefs.properties
new file mode 100644
index 00000000..f099df3b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/filterdefs.properties
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+property=included
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/build.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/build.xml
new file mode 100644
index 00000000..e2fecac3
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/build.xml
@@ -0,0 +1,331 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="fixcrlf" default="cleanup" basedir=".">
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${input}" />
+ <unzip src="input.zip" dest="${input}"/>
+ <unzip src="expected.zip" dest="${input}"/>
+ <mkdir dir="${output}" />
+ </target>
+
+
+ <macrodef name="assertequal">
+ <attribute name="junk" default="" />
+ <attribute name="name" default="Junk@{junk}.java" />
+ <attribute name="file1" default="${output}/@{name}" />
+ <attribute name="file2" default="${input}/expected/@{name}" />
+ <sequential>
+ <fail message="@{file1} and @{file2} are different">
+ <condition>
+ <not>
+ <filesmatch file1="@{file1}" file2="@{file2}" />
+ </not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <target name="test1" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk1.java"
+ javafiles="true" tab="add" eol="crlf" eof="asis" />
+ <assertequal junk="1" />
+ </target>
+
+ <target name="test2" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk2.java"
+ javafiles="true" tab="add" cr="add" eol="crlf" eof="asis" />
+ <assertequal junk="2" />
+ </target>
+
+ <target name="test3" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk3.java"
+ javafiles="true" tab="remove" eol="lf" eof="asis" />
+ <assertequal junk="3" />
+ </target>
+
+ <target name="test4" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk4.java"
+ javafiles="true" tab="remove" eol="lf" eof="asis" />
+ <assertequal junk="4" />
+ </target>
+
+ <target name="test5" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk5.java"
+ tab="remove" eol="lf" eof="asis" />
+ <assertequal junk="5" />
+ </target>
+
+ <target name="test6" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk6.java"
+ tab="add" cr="remove" eol="crlf" eof="asis" />
+ <assertequal junk="6" />
+ </target>
+
+ <target name="test7" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk7.java"
+ tab="add" cr="add" eof="asis" />
+ <assertequal junk="7" />
+ </target>
+
+ <target name="test8" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk8.java"
+ javafiles="true" tab="add" cr="add" eof="add" />
+ <assertequal junk="8" />
+ </target>
+
+ <target name="test9" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk9.java"
+ javafiles="true" tab="remove" cr="remove" eof="remove" />
+ <assertequal junk="9" />
+ </target>
+
+ <target name="testMacLines" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Mac2Unix" eol="lf" />
+ <assertequal name="Mac2Unix" />
+ </target>
+
+ <target name="testNoOverwrite" depends="test1">
+ <touch file="${output}/Junk1.java" millis="0" />
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="Junk1.java" preservelastmodified="false"
+ javafiles="true" tab="add" eol="crlf" eof="asis" />
+ <fail message="overwrote unchanged output file">Q
+ <condition>
+ <not>
+ <isfileselected file="${output}/Junk1.java">
+ <date when="equal" millis="0" />
+ </isfileselected>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testEncoding" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="input.crlf.utf16"
+ javafiles="false" cr="remove" encoding="UnicodeBig" />
+ <assertequal file1="${output}/input.crlf.utf16"
+ file2="${input}/expected/input.lf.utf16" />
+ </target>
+
+ <target name="testOutputEncoding" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="input.crlf.utf16"
+ javafiles="false" eol="lf" encoding="UnicodeBig"
+ outputencoding="ascii" />
+ <assertequal file1="${output}/input.crlf.utf16"
+ file2="${input}/expected/input.lf.ascii" />
+ </target>
+
+ <target name="testLongLines" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="longlines.crlf"
+ javafiles="false" cr="remove" />
+ <assertequal file1="${output}/longlines.crlf"
+ file2="${input}/expected/longlines.lf" />
+ </target>
+
+ <target name="testCrCrLfSequence-unix" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="crcrlf" eol="lf" />
+ <assertequal file1="${output}/crcrlf"
+ file2="${input}/expected/crcrlf.unix" />
+ </target>
+
+ <target name="testCrCrLfSequence-dos" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="crcrlf" eol="crlf" />
+ <assertequal file1="${output}/crcrlf"
+ file2="${input}/expected/crcrlf.dos" />
+ </target>
+
+ <target name="testCrCrLfSequence-mac" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="crcrlf" eol="cr" />
+ <assertequal file1="${output}/crcrlf"
+ file2="${input}/expected/crcrlf.mac" />
+ </target>
+
+ <target name="testFixlastDos" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="fixlastfalse.lf" eol="crlf" />
+ <assertequal file1="${output}/fixlastfalse.lf"
+ file2="${input}/expected/fixlast.dos" />
+ </target>
+
+ <target name="testFixlastFalseMac" depends="setUp">
+ <fixcrlf srcdir="${input}/input" destdir="${output}"
+ includes="fixlastfalse.lf" eol="cr" fixlast="false" />
+ <assertequal file1="${output}/fixlastfalse.lf"
+ file2="${input}/expected/fixlastfalse.mac" />
+ </target>
+
+ <!-- Bugzilla Report 20840 -->
+ <target name="createParentDirs" depends="setUp">
+ <fixcrlf srcdir="${input}" destdir="${output}" includes="input/Junk1.java" />
+ </target>
+
+ <target name="testFixFile" depends="setUp">
+ <fixcrlf file="${input}/input/longlines.crlf" destdir="${output}" />
+ <fail message="didn't create output file">
+ <condition>
+ <not>
+ <available file="${output}/longlines.crlf" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testFixFileExclusive" depends="setUp">
+ <fixcrlf file="${input}/input/longlines.crlf" srcdir="${input}/input" destdir="${output}"/>
+ </target>
+
+ <target name="testPreserveLastModified" depends="setUp">
+ <fixcrlf file="${input}/input/longlines.crlf" destdir="${output}"
+ preservelastmodified="true" />
+ <fail>
+ <condition>
+ <not>
+ <uptodate srcfile="${output}/longlines.crlf"
+ targetfile="${input}/input/longlines.crlf" />
+ </not>
+ </condition>
+ </fail>
+
+ <touch file="${output}/longlines.crlf" millis="0" />
+
+ <fixcrlf file="${output}/longlines.crlf" destdir="${output}" eol="lf"
+ preservelastmodified="true" />
+
+ <fileset id="fs" file="${output}/longlines.crlf">
+ <date when="equal" millis="0" />
+ </fileset>
+ <property name="fs" refid="fs" />
+ <fail unless="fs" />
+ </target>
+
+ <target name="testFilter1" depends="setUp">
+ <copy file="${input}/input/Junk1.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="add"
+ eol="crlf" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="1" />
+ </target>
+
+ <target name="testFilter2" depends="setUp">
+ <copy file="${input}/input/Junk2.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="add" cr="add" eol="crlf" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="2" />
+ </target>
+
+ <target name="testFilter3" depends="setUp">
+ <copy file="${input}/input/Junk3.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="remove" eol="lf" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="3" />
+ </target>
+
+ <target name="testFilter4" depends="setUp">
+ <copy file="${input}/input/Junk4.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="remove" eol="lf" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="4" />
+ </target>
+
+ <target name="testFilter5" depends="setUp">
+ <copy file="${input}/input/Junk5.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf tab="remove" eol="lf" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="5" />
+ </target>
+
+ <target name="testFilter6" depends="setUp">
+ <copy file="${input}/input/Junk6.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf tab="add" cr="remove" eol="crlf" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="6" />
+ </target>
+
+ <target name="testFilter7" depends="setUp">
+ <copy file="${input}/input/Junk7.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf tab="add" cr="add" eof="asis" />
+ </filterchain>
+ </copy>
+ <assertequal junk="7" />
+ </target>
+
+ <target name="testFilter8" depends="setUp">
+ <copy file="${input}/input/Junk8.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="add" cr="add" eof="add" />
+ </filterchain>
+ </copy>
+ <assertequal junk="8" />
+ </target>
+
+ <target name="testFilter9" depends="setUp">
+ <copy file="${input}/input/Junk9.java" todir="${output}" overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="remove" cr="remove" eof="remove" />
+ </filterchain>
+ </copy>
+ <assertequal junk="9" />
+ </target>
+
+ <target name="testCannotDoubleEof" depends="test8">
+ <fixcrlf file="${output}/Junk8.java"
+ javafiles="true" tab="add" cr="add" eof="add" />
+ <assertequal junk="8" />
+ </target>
+
+ <target name="testTabInLiteralInComment" depends="setUp">
+ <copy file="${input}/input/tab_in_literal_in_comment" todir="${output}"
+ overwrite="true">
+ <filterchain>
+ <fixcrlf javafiles="true" tab="remove" eol="lf" fixlast="false" />
+ </filterchain>
+ </copy>
+ <assertequal name="tab_in_literal_in_comment" />
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/expected.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/expected.zip
new file mode 100644
index 00000000..3111502a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/expected.zip
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/input.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/input.zip
new file mode 100644
index 00000000..f65ba92d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/fixcrlf/input.zip
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/foo.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/foo.properties
new file mode 100644
index 00000000..e4a8152e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/foo.properties
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+foo=Foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/get.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/get.xml
new file mode 100644
index 00000000..b74e92ab
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/get.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <target name="test1">
+ <get/>
+ </target>
+
+ <target name="test2">
+ <get src=""/>
+ </target>
+
+ <target name="test3">
+ <get src="" dest=""/>
+ </target>
+
+ <target name="test4">
+ <get src="" dest=""/>
+ </target>
+
+ <target name="test5">
+ <get src="http://www.apache.org/" dest=""/>
+ </target>
+
+ <target name="test6">
+ <get src="http://www.apache.org/" dest="get.tmp" userAgent="Apache Ant/test"/>
+
+ <fileset id="t6" file="get.tmp" />
+ <pathconvert property="t6" refid="t6" setonempty="false" />
+
+ <fail message="get failed">
+ <condition>
+ <not>
+ <isset property="t6" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test7">
+ <get src="" dest="" userAgent=""/>
+ </target>
+
+ <target name="testUseTimestamp" depends="-90s,-timestamp" />
+
+ <target name="-90s">
+ <property name="off" value="-90" />
+ <property name="unit" value="second" />
+ </target>
+
+ <target name="testUseTomorrow" depends="+1d,-timestamp" />
+
+ <target name="+1d">
+ <property name="off" value="1" />
+ <property name="unit" value="day" />
+ </target>
+
+ <target name="-timestamp">
+ <property name="pat" value="yyyyMMddHHmm" />
+
+ <tstamp>
+ <format property="dt" pattern="${pat}" offset="${off}" unit="${unit}" />
+ </tstamp>
+
+ <touch file="get.tmp" datetime="${dt}" pattern="${pat}" />
+
+ <get src="http://www.w3.org/MarkUp" dest="get.tmp"
+ usetimestamp="true" verbose="true" />
+
+ <fileset id="ts" file="get.tmp">
+ <date when="equal" datetime="${dt}" pattern="${pat}" />
+ </fileset>
+
+ <pathconvert property="ts" refid="ts" setonempty="false" />
+
+ <fail message="get w/ timestamp should have failed.">
+ <condition>
+ <not>
+ <isset property="ts" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="cleanup">
+ <delete>
+ <fileset dir="${basedir}" includes="get.tmp" />
+ </delete>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gunzip.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gunzip.xml
new file mode 100644
index 00000000..ea75d54d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gunzip.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <target name="test1">
+ <gunzip/>
+ </target>
+
+ <target name="test2">
+ <gunzip src=""/>
+ </target>
+
+ <target name="cleanup">
+ <delete file="asf-logo.gif" />
+ </target>
+
+ <target name="testGzipTask">
+ <ant antfile="gzip.xml" target="realTest" />
+ <gunzip src="asf-logo.gif.gz" dest="asf-logo.gif" />
+ <ant antfile="gzip.xml" target="cleanup" />
+ </target>
+
+ <target name="realTest">
+ <gunzip src="expected/asf-logo.gif.gz" dest="asf-logo.gif" />
+ </target>
+
+ <target name="realTestWithResource">
+ <gunzip dest="asf-logo.gif">
+ <file file="expected/asf-logo.gif.gz"/>
+ </gunzip>
+ </target>
+
+ <target name="testDocumentationClaimsOnCopy">
+ <copy todir=".">
+ <gzipresource>
+ <file file="expected/asf-logo.gif.gz"/>
+ </gzipresource>
+ <mapper type="glob" from="*.gz" to="*"/>
+ </copy>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gzip.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gzip.xml
new file mode 100644
index 00000000..f1c42623
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/gzip.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <target name="test1">
+ <gzip/>
+ </target>
+
+ <target name="test2">
+ <gzip src=""/>
+ </target>
+
+ <target name="test3">
+ <gzip zipfile=""/>
+ </target>
+
+ <target name="test4">
+ <gzip src="gzip.xml" zipfile="." />
+ </target>
+
+ <target name="realTest">
+ <gzip src="../asf-logo.gif" zipfile="asf-logo.gif.gz" />
+ </target>
+
+ <target name="realTestWithResource">
+ <gzip zipfile="asf-logo.gif.gz">
+ <file file="../asf-logo.gif"/>
+ </gzip>
+ </target>
+
+ <target name="testDateCheck">
+ <touch file="asf-logo.gif.gz"/>
+ <gzip src="../asf-logo.gif" zipfile="asf-logo.gif.gz" />
+ </target>
+
+ <target name="cleanup">
+ <delete file="asf-logo.gif.gz" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/a.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/a.xml
new file mode 100644
index 00000000..cf4e7a5c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/a.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="A">
+ <target name="x"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/b.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/b.xml
new file mode 100644
index 00000000..f95cf010
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/b.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="B">
+ <import file="a.xml"/>
+ <target name="x" depends="A.x"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/bad.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/bad.xml
new file mode 100644
index 00000000..a3a06479
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/bad.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+<<<
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/c.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/c.xml
new file mode 100644
index 00000000..d92fbc7f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/c.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="C">
+ <import file="a.xml"/>
+ <import file="b.xml"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import.xml
new file mode 100644
index 00000000..f84d8e33
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="import-test" default="main" basedir=".">
+ <echo>Before import</echo>
+
+ <import file="imported.xml"/>
+
+ <echo message="After import"/>
+
+ <target name="import-init">
+ <echo message="In import-init" />
+ </target>
+
+ <target name="main" depends="imported">
+ <echo message="In main"/>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_bad_import.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_bad_import.xml
new file mode 100644
index 00000000..8ff53672
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_bad_import.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <import file="bad.xml"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_same_target.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_same_target.xml
new file mode 100644
index 00000000..f2b1933e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/import_same_target.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <target name="t"/>
+ <target name="t"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/imported.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/imported.xml
new file mode 100644
index 00000000..19dfdb07
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/imported.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="imported-test" default="imported" basedir=".">
+
+ <echo message="In imported top"/>
+
+ <target name="imported" depends="import-init" >
+ <echo message="In imported target" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/importtargetfirst.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/importtargetfirst.xml
new file mode 100644
index 00000000..835191ba
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/importtargetfirst.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <echo>Importing targetfirst</echo>
+ <import file="targetfirst.xml"/>
+ <echo>After importing</echo>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/recursive-selfimport.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/recursive-selfimport.xml
new file mode 100644
index 00000000..d5ae3b28
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/recursive-selfimport.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <echo>Before import: ${foo}</echo>
+ <property name="foo" value="bar"/>
+ <import file="./recursive-selfimport.xml"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/same_target.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/same_target.xml
new file mode 100644
index 00000000..1a14fe59
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/same_target.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <import file="import_same_target.xml"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential-inner.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential-inner.xml
new file mode 100644
index 00000000..cc2a6813
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential-inner.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <target name="within-imported">
+ <property name="foo" value="bar"/>
+ <path id="baz">
+ <pathelement location="."/>
+ </path>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential.xml
new file mode 100644
index 00000000..fdd68b06
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importinsequential.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <sequential>
+ <import file="importinsequential-inner.xml"/>
+ </sequential>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget-inner.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget-inner.xml
new file mode 100644
index 00000000..cd5086ee
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget-inner.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <property name="foo" value="bar"/>
+ <path id="baz">
+ <pathelement location="."/>
+ </path>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget.xml
new file mode 100644
index 00000000..2dfa370e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/importintarget.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <target name="do-import">
+ <import file="importintarget-inner.xml"/>
+ </target>
+
+ <target name="no-import"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/serial.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/serial.xml
new file mode 100644
index 00000000..360f9d16
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/subdir/serial.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="serial">
+ <import file="../unnamed1.xml"/>
+ <import file="../unnamed2.xml"/>
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml
new file mode 100644
index 00000000..d1b792cb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="p1" default="run">
+ <import file="../d2/p2.xml"/>
+ <import file="../d3b/p3.xml"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml
new file mode 100644
index 00000000..51948c9d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="p2"/>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d3a/p3.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d3a/p3.xml
new file mode 100644
index 00000000..31858455
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/symlinks/d3a/p3.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="p3"/>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/targetfirst.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/targetfirst.xml
new file mode 100644
index 00000000..06c1fbed
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/targetfirst.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <target name="first"/>
+ <echo>After target first</echo>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed1.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed1.xml
new file mode 100644
index 00000000..6fc7fde5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed1.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="test">
+ <import file="unnamed2.xml"/>
+
+ <echo message="Unnamed1.xml" level="info"/>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed2.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed2.xml
new file mode 100644
index 00000000..c0fd7c65
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamed2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="test">
+ <echo message="Unnamed2.xml" level="info"/>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamedImport.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamedImport.xml
new file mode 100644
index 00000000..13b3a85c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/import/unnamedImport.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="unnamed-import" default="test">
+
+ <import file="unnamed1.xml"/>
+
+ <target name="test">
+ <echo level="info">Tests import of unnamed projects</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/initializeclass.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/initializeclass.xml
new file mode 100644
index 00000000..6e079919
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/initializeclass.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="test" default="all">
+ <target name="all"/>
+
+ <target name="forked">
+ <java fork="true" output="forkedout" failonerror="true"
+ className="org.apache.tools.ant.taskdefs.dir1.B">
+
+ <classpath>
+ <pathelement path="../../../../build/testcases"/>
+ <pathelement location="${java.home}/lib/classes.zip" />
+ </classpath>
+ </java>
+ </target>
+
+ <target name="unforked">
+ <java className="org.apache.tools.ant.taskdefs.dir1.B">
+ <classpath>
+ <pathelement path="../../../../build/testcases"/>
+ <pathelement location="${java.home}/lib/classes.zip" />
+ </classpath>
+ </java>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.properties
new file mode 100644
index 00000000..c0025a3f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.properties
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+Press\ Return\ key\ to\ continue...=test
+All\ data\ is\ going\ to\ be\ deleted\ from\ DB\ continue?=test
+All\ data\ is\ going\ to\ be\ deleted\ from\ db\ continue\ (y/n)?=y
+Please\ enter\ db-username\:=scott
+#
+# JDK 1.1 doesn't seem to handle blanks in the property key
+#
+Press_Return_key_to_continue...=test
+All_data_is_going_to_be_deleted_from_DB_continue?=test
+All_data_is_going_to_be_deleted_from_db_continue_(y/n)?=y
+Please_enter_db_username=scott
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.stdin b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.stdin
new file mode 100644
index 00000000..3bd1f0e2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.stdin
@@ -0,0 +1,2 @@
+foo
+bar
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.xml
new file mode 100644
index 00000000..d204b79d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/input.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="input-test" basedir="." default="test1">
+
+ <target name="test1">
+ <input>Press Return key to continue...</input>
+ </target>
+
+ <target name="test2">
+ <input message="Press Return key to continue..." />
+ </target>
+
+ <target name="test3">
+ <input message="All data is going to be deleted from DB continue?"
+ validargs="y,n"
+ />
+ </target>
+
+ <target name="test5">
+ <input message="All data is going to be deleted from db continue (y/n)?"
+ validargs="y,n"
+ />
+ </target>
+
+ <target name="test6">
+ <input message="Please enter db-username:"
+ addproperty="db.user"
+ />
+ </target>
+
+ <target name="testPropertyFileInlineHandler">
+ <input message="Press Return key to continue..." addproperty="test">
+ <handler type="propertyfile" />
+ </input>
+ <fail>
+ <condition>
+ <not>
+ <equals arg1="${test}" arg2="test" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testDefaultInlineHandler">
+ <input message="Press Return key to continue..." addproperty="test">
+ <handler type="default" />
+ </input>
+ <fail message="$${test} = ${test}">
+ <condition>
+ <not>
+ <equals arg1="${test}" arg2="foo" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testGreedyInlineHandler">
+ <input message="Press Return key to continue..." addproperty="test">
+ <handler type="greedy" />
+ </input>
+ <loadfile srcFile="input.stdin" property="input" />
+ <fail message="$${test} = ${test}">
+ <condition>
+ <not>
+ <equals arg1="${test}" arg2="${input}" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testGreedyInlineHandlerClassname">
+ <input message="Press Return key to continue..." addproperty="test">
+ <handler classname="org.apache.tools.ant.input.GreedyInputHandler" />
+ </input>
+ <loadfile srcFile="input.stdin" property="input" />
+ <fail message="$${test} = ${test}">
+ <condition>
+ <not>
+ <equals arg1="${test}" arg2="${input}" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testGreedyInlineHandlerRefid">
+ <typedef name="greedy"
+ classname="org.apache.tools.ant.input.GreedyInputHandler" />
+ <greedy id="greedy" />
+
+ <input message="Press Return key to continue..." addproperty="test">
+ <handler refid="greedy" />
+ </input>
+ <loadfile srcFile="input.stdin" property="input" />
+ <fail message="$${test} = ${test}">
+ <condition>
+ <not>
+ <equals arg1="${test}" arg2="${input}" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/jar.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/jar.xml
new file mode 100644
index 00000000..78d1abc6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/jar.xml
@@ -0,0 +1,285 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="jar-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <property name="tmp.jar" location="${output}/tmp.jar"/>
+ <property name="tmp.dir" location="${output}/jartmp"/>
+ <property name="tmp.zip" location="${output}/tmp.zip"/>
+ <property name="tmp1.dir" location="${output}/jartmp1"/>
+ <property name="tmp2.dir" location="${output}/jartmp2"/>
+
+ <target name="test1">
+ <jar/>
+ </target>
+
+ <target name="test2">
+ <jar
+ jarfile="jar.tmp"
+ manifest="none"
+ />
+ </target>
+
+ <target name="test3">
+ <jar
+ destfile="jar.tmp"
+ whenempty="format C: /y"
+ />
+ </target>
+
+ <target name="test4">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="jar.xml"
+ />
+ </target>
+
+ <target name="testNoRecreateWithUpdate">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="jar.xml"
+ update="true"
+ />
+ </target>
+
+ <target name="testRecreateNewerFileSetup" depends="test4">
+ <touch file="jar.xml"/>
+ </target>
+
+ <target name="testRecreateWithoutUpdateAdditionalFiles">
+ <jar
+ destfile="${tmp.jar}"
+ includes="*.xml"
+ basedir="."
+ />
+ </target>
+
+ <target name="testRecreateWithUpdateAdditionalFiles">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="*.xml"
+ update="true"
+ />
+ </target>
+
+ <target name="testRecreateWithoutUpdateNewerFile">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="jar.xml"
+ />
+ </target>
+
+ <target name="testRecreateWithUpdateNewerFile">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="jar.xml"
+ update="true"
+ />
+ </target>
+
+ <target name="testManifestStaysIntact">
+ <mkdir dir="${tmp.dir}"/>
+ <manifest file="${tmp.dir}/manifest">
+ <attribute name="Foo" value="bar"/>
+ </manifest>
+ <jar destfile="${tmp.jar}" basedir="." includes="jar.xml"
+ manifest="${tmp.dir}/manifest"/>
+ <touch file="jar.xml"/>
+ <jar destfile="${tmp.jar}" basedir="." includes="jar.xml"
+ update="true"/>
+ <unjar src="${tmp.jar}" dest="${tmp.dir}"/>
+ </target>
+
+ <target name="testNoRecreateBasedirExcludesWithUpdate">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="j*.xml"
+ excludes="java.xml"
+ update="true"
+ />
+ </target>
+
+ <target name="testNoRecreateBasedirExcludesWithoutUpdate">
+ <jar
+ destfile="${tmp.jar}"
+ basedir="."
+ includes="j*.xml"
+ excludes="java.xml"
+ />
+ </target>
+
+ <target name="makezip">
+ <zip destfile="${tmp.zip}"
+ basedir="." includes="j*.xml"/>
+ </target>
+
+ <target name="testNoRecreateZipfilesetExcludesWithUpdate"
+ depends="makezip">
+ <jar destfile="${tmp.jar}"
+ update="true">
+ <zipfileset src="${tmp.zip}" excludes="java.xml"/>
+ </jar>
+ </target>
+
+ <target name="testNoRecreateZipfilesetExcludesWithoutUpdate"
+ depends="makezip">
+ <jar destfile="${tmp.jar}">
+ <zipfileset src="${tmp.zip}" excludes="java.xml"/>
+ </jar>
+ </target>
+
+ <target name="testRecreateZipfilesetWithoutUpdateAdditionalFiles"
+ depends="makezip">
+ <jar destfile="${tmp.jar}">
+ <zipfileset src="${tmp.zip}"/>
+ </jar>
+ </target>
+
+ <target name="testRecreateZipfilesetWithUpdateAdditionalFiles"
+ depends="makezip">
+ <jar destfile="${tmp.jar}"
+ update="true">
+ <zipfileset src="${tmp.zip}"/>
+ </jar>
+ </target>
+
+ <target name="testRecreateZipfilesetWithoutUpdateNewerFile"
+ depends="makezip">
+ <jar destfile="${tmp.jar}">
+ <zipfileset src="${tmp.zip}" includes="jar.xml"/>
+ </jar>
+ </target>
+
+ <target name="testRecreateZipfilesetWithUpdateNewerFile"
+ depends="makezip">
+ <jar destfile="${tmp.jar}"
+ update="true">
+ <zipfileset src="${tmp.zip}" includes="jar.xml"/>
+ </jar>
+ </target>
+
+ <target name="testCreateWithEmptyFilesetSetUp">
+ <mkdir dir="${tmp1.dir}"/>
+ <mkdir dir="${tmp2.dir}"/>
+ <echo file="${tmp2.dir}/foo.txt" message="foo"/>
+ </target>
+
+ <target name="testCreateWithEmptyFileset">
+ <jar destfile="${tmp.jar}">
+ <fileset dir="${tmp1.dir}">
+ <include name="**/*.doesNotExist"/>
+ </fileset>
+ <fileset dir="${tmp2.dir}">
+ <include name="**/foo.txt"/>
+ </fileset>
+ </jar>
+ </target>
+
+ <!-- bug 17780 -->
+ <target name="testUpdateIfOnlyManifestHasChanged"
+ depends="test4">
+ <jar destfile="${tmp.jar}" update="true">
+ <manifest>
+ <attribute name="Foo" value="bar"/>
+ </manifest>
+ </jar>
+ <mkdir dir="${tmp.dir}"/>
+ <unzip src="${tmp.jar}" dest="${tmp.dir}"/>
+ </target>
+
+ <!-- bugs 10262 and 16972 -->
+ <target name="testIndexTests">
+ <mkdir dir="${tmp.dir}/META-INF"/>
+ <touch file="${tmp.dir}/META-INF/INDEX.LIST"/>
+ <touch file="${tmp.dir}/foo"/>
+ <mkdir dir="${tmp.dir}/sub"/>
+ <touch file="${tmp.dir}/sub/foo"/>
+ <jar destfile="${tmp.jar}" index="yes" basedir="${tmp.dir}"/>
+ </target>
+ <!-- bug 32802 -->
+ <target name="testManifestOnlyJar">
+ <mkdir dir="${tmp.dir}"/>
+ <jar destfile="${tmp.jar}" duplicate="preserve">
+ <manifest>
+ <attribute name="Foo" value="bar"/>
+ </manifest>
+ </jar>
+ <mkdir dir="${tmp.dir}"/>
+ <unzip src="${tmp.jar}" dest="${tmp.dir}"/>
+
+ </target>
+
+ <!-- bug 37237 -->
+ <target name="testIndexJarsPlusJarMarker">
+ <mkdir dir="${tmp.dir}/a/b/c"/>
+ <jar destfile="${tmp.jar}" basedir="${tmp.dir}"/>
+ <delete dir="${tmp.dir}/a" quiet="true"/>
+ <mkdir dir="${tmp.dir}/d/e/f"/>
+ <jar destfile="${tmp.jar}2" basedir="${tmp.dir}" index="true">
+ <indexjars>
+ <fileset file="${tmp.jar}"/>
+ </indexjars>
+ </jar>
+ </target>
+
+ <target name="testNoVersionInfoNoStrict">
+ <mkdir dir="${tmp.dir}"/>
+ <jar destfile="${tmp.jar}" basedir="${tmp.dir}"/>
+ </target>
+
+ <target name="testNoVersionInfoFail">
+ <mkdir dir="${tmp.dir}"/>
+ <jar destfile="${tmp.jar}" basedir="${tmp.dir}" strict="fail"/>
+ </target>
+
+ <target name="testNoVersionInfoIgnore">
+ <mkdir dir="${tmp.dir}"/>
+ <jar destfile="${tmp.jar}" basedir="${tmp.dir}" strict="ignore"/>
+ </target>
+
+ <target name="testNoVersionInfoWarn">
+ <mkdir dir="${tmp.dir}"/>
+ <jar destfile="${tmp.jar}" basedir="${tmp.dir}" strict="warn"/>
+ </target>
+
+ <!-- see http://java.sun.com/j2se/1.3/docs/guide/versioning/spec/VersioningSpecification.html#PackageVersioning -->
+ <target name="testHasVersionInfo">
+ <mkdir dir="${tmp.dir}"/>
+ <jar destfile="${tmp.jar}" basedir="${tmp.dir}" strict="fail">
+ <manifest>
+ <attribute name="Implementation-Title" value="Packaging Version Test"/>
+ <attribute name="Implementation-Version" value="1.0"/>
+ <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
+ </manifest>
+ </jar>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/java.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/java.xml
new file mode 100644
index 00000000..a0c0450b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/java.xml
@@ -0,0 +1,404 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="java-test" basedir="." default="foo">
+ <property name="tests-classpath.value" value="${java.class.path}"/>
+ <fail unless="tests-classpath.value"
+ message="the property tests-classpath.value is required by this test" />
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <!-- this property gets overridden programmatically-->
+ <property name="timeToWait" value="4"/>
+ <!-- this property gets overridden programmatically-->
+ <property name="logFile" value="${output}/spawn.log"/>
+ <property name="tmp" location="${output}/ant.tmp.java-test"/>
+ <mkdir dir="${tmp}" description="The directory must exist"/>
+ <property name="app"
+ value="org.apache.tools.ant.taskdefs.JavaTest$$EntryPoint" />
+
+ <property name="app2"
+ value="org.apache.tools.ant.taskdefs.JavaTest$$ExceptingEntryPoint" />
+
+ <property name="spawnapp"
+ value="org.apache.tools.ant.taskdefs.JavaTest$$SpawnEntryPoint" />
+
+ <property name="pipeapp"
+ value="org.apache.tools.ant.taskdefs.JavaTest$$PipeEntryPoint" />
+
+ <target name="testNoJarNoClassname">
+ <java/>
+ </target>
+
+ <target name="testJarNoFork">
+ <java jar="test.jar" fork="false"/>
+ </target>
+
+
+ <target name="testJarAndClassName">
+ <java jar="test.jar" classname="${app}" />
+ </target>
+
+ <target name="testClassnameAndJar">
+ <java classname="${app}" jar="test.jar" />
+ </target>
+
+ <target name="testRun">
+ <fail unless="tests-classpath.value" />
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"/>
+ </target>
+
+ <target name="testRunFail">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ >
+ <arg value="2"/>
+ </java>
+ </target>
+
+ <target name="testRunFailFoe">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ failonerror="true">
+ <arg value="2"/>
+ </java>
+ </target>
+
+ <target name="testRunFailFoeFork">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ failonerror="true"
+ fork="true">
+ <arg value="2"/>
+ </java>
+ </target>
+
+ <target name="testExcepting">
+ <java classname="${app2}"
+ classpath="${tests-classpath.value}"
+ >
+ </java>
+ </target>
+
+ <target name="testExceptingFork">
+ <java classname="${app2}"
+ classpath="${tests-classpath.value}"
+ fork="true">
+ </java>
+ </target>
+
+ <target name="testExceptingFoe">
+ <java classname="${app2}"
+ classpath="${tests-classpath.value}"
+ failonerror="true">
+ </java>
+ </target>
+
+ <target name="testExceptingFoeFork">
+ <java classname="${app2}"
+ classpath="${tests-classpath.value}"
+ failonerror="true"
+ fork="true">
+ </java>
+ </target>
+
+ <target name="testResultPropertyZero">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ resultproperty="exitcode"
+ fork="true"
+ >
+ </java>
+ <echo message="exitcode = ${exitcode}"/>
+ </target>
+
+ <target name="testResultPropertyNonZero">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ resultproperty="exitcode"
+ failonerror="false"
+ fork="true"
+ >
+ <arg value="2"/>
+ </java>
+ <echo message="exitcode = ${exitcode}"/>
+ </target>
+
+ <target name="testResultPropertyZeroNoFork">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ resultproperty="exitcode"
+ fork="false"
+ >
+ <permissions/>
+ </java>
+ <echo message="exitcode = ${exitcode}"/>
+ </target>
+
+ <target name="testResultPropertyNonZeroNoFork">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ resultproperty="exitcode"
+ failonerror="false"
+ fork="false">
+ <arg value="-1"/>
+ <permissions/>
+ </java>
+ <echo message="exitcode = ${exitcode}"/>
+ </target>
+
+ <target name="testRunFailWithFailOnError">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ failonerror="true"
+ >
+ <arg value="2"/>
+ </java>
+ </target>
+
+ <target name="testRunSuccessWithFailOnError">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ failonerror="true"
+ >
+ <arg value="0"/>
+ </java>
+ </target>
+
+ <target name="testSpawn">
+ <java classname="${spawnapp}" fork="true" spawn="true" classpath="${tests-classpath.value}">
+ <arg value="${timeToWait}"/>
+ <arg value="${logFile}" />
+ </java>
+ </target>
+
+ <!--redirection testcases don't want to run under junit unless forked-->
+ <target name="redirect1">
+ <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
+
+ <java classname="${pipeapp}"
+ classpath="${tests-classpath.value}"
+ inputstring="foo"
+ fork="true"
+ output="${outfile}"
+ errorproperty="redirect.err">
+ <arg value="out" />
+ </java>
+
+ <!-- let dumb Windows catch up -->
+ <waitfor maxwait="30000">
+ <available file="${outfile}" />
+ </waitfor>
+ <waitfor maxwait="30000">
+ <length file="${outfile}" length="1" when="greater" />
+ </waitfor>
+
+ <loadfile property="redirect.out.contents" srcfile="${outfile}" />
+
+ <condition property="r1file">
+ <equals arg1="${redirect.out.contents}" arg2="foo" />
+ </condition>
+
+ <fail unless="r1file">${outfile}:
+&quot;${redirect.out.contents}&quot; expected &quot;foo&quot;</fail>
+
+ <condition property="r1prop">
+ <equals arg1="${redirect.err}" arg2="" />
+ </condition>
+
+ <fail unless="r1prop">
+redirect.err=&quot;${redirect.err}&quot; should be empty</fail>
+
+ </target>
+
+ <target name="redirect2" depends="redirect1">
+ <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
+
+ <java classname="${pipeapp}"
+ classpath="${tests-classpath.value}"
+ inputstring="bar"
+ append="true"
+ fork="true"
+ output="${outfile}"
+ errorproperty="redirect.err">
+ <arg value="both" />
+ </java>
+
+ <!-- let dumb Windows catch up -->
+ <waitfor maxwait="30000">
+ <available file="${outfile}" />
+ </waitfor>
+ <waitfor maxwait="30000">
+ <length file="${outfile}" length="1" when="greater" />
+ </waitfor>
+
+
+ <loadfile property="redirect.out.contents2" srcfile="${outfile}" />
+
+ <condition property="r2file">
+ <equals arg1="${redirect.out.contents2}" arg2="foobar" />
+ </condition>
+
+ <fail unless="r2file">${outfile}:
+&quot;${redirect.out.contents2}&quot; expected &quot;foobar&quot;</fail>
+
+ <condition property="r2prop">
+ <!-- property should not change -->
+ <equals arg1="${redirect.err}" arg2="" />
+ </condition>
+
+ <fail unless="r2prop">
+redirect.err=&quot;${redirect.err}&quot; should be empty</fail>
+
+ </target>
+
+ <target name="redirect3">
+ <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
+ <tempfile property="errfile" destdir="${tmp}" prefix="redirect" suffix=".err" deleteonexit="true"/>
+
+ <java classname="${pipeapp}"
+ classpath="${tests-classpath.value}"
+ inputstring="foo"
+ fork="true"
+ output="${outfile}"
+ error="${errfile}">
+ <arg value="both" />
+ </java>
+
+ <!-- let dumb Windows catch up -->
+ <waitfor>
+ <and>
+ <available file="${outfile}" />
+ <available file="${errfile}" />
+ </and>
+ </waitfor>
+
+ <loadfile property="redirect.out.contents" srcfile="${outfile}" />
+
+ <condition property="r3file">
+ <equals arg1="${redirect.out.contents}" arg2="foo" />
+ </condition>
+
+ <fail unless="r3file">${outfile}:
+&quot;${redirect.out.contents}&quot; expected &quot;foo&quot;</fail>
+
+ <condition property="r3match">
+ <filesmatch file1="${outfile}" file2="${errfile}" />
+ </condition>
+
+ <fail unless="r3file">${errfile} differs from ${outfile}</fail>
+
+ </target>
+
+ <target name="redirector1">
+ <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
+ <tempfile property="errfile" destdir="${tmp}" prefix="redirect" suffix=".err" deleteonexit="true"/>
+
+ <java taskname="foo" classname="${pipeapp}" fork="true"
+ classpath="${tests-classpath.value}">
+ <redirector inputstring="foo"
+ output="${outfile}"
+ error="${errfile}"
+ createemptyfiles="false" />
+ <arg value="out" />
+ </java>
+
+ <!-- let dumb Windows catch up -->
+ <waitfor>
+ <available file="${outfile}" />
+ </waitfor>
+
+ <loadfile property="redirector.out.contents" srcfile="${outfile}" />
+
+ <condition property="ror1out">
+ <equals arg1="${redirector.out.contents}" arg2="foo" />
+ </condition>
+
+ <fail unless="ror1out">${outfile}:
+&quot;${redirector.out.contents}&quot; expected &quot;foo&quot;</fail>
+
+ <condition property="ror1noerr">
+ <not>
+ <available file="${errfile}" />
+ </not>
+ </condition>
+ <fail unless="ror1noerr">${errfile} exists but should not</fail>
+ </target>
+
+ <target name="redirector2" depends="redirector1">
+ <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
+ <tempfile property="errfile" destdir="${tmp}" prefix="redirect" suffix=".err" deleteonexit="true"/>
+
+ <!-- fork here; some VMs can be ill-behaved with files,
+ such as W!nd0ws -->
+ <java taskname="foo" classname="${pipeapp}" fork="true"
+ classpath="${tests-classpath.value}">
+ <redirector inputstring="foo"
+ append="true"
+ output="${outfile}"
+ error="${errfile}"
+ createemptyfiles="false">
+ <errorfilterchain>
+ <replacestring from="foo" to="bar" />
+ </errorfilterchain>
+ </redirector>
+ <arg value="both" />
+ </java>
+
+ <!-- let dumb Windows catch up -->
+ <waitfor>
+ <and>
+ <available file="${outfile}" />
+ <available file="${errfile}" />
+ </and>
+ </waitfor>
+
+ <loadfile property="redirector.out.contents2"
+ srcfile="${outfile}" />
+
+ <loadfile property="redirector.err.contents"
+ srcfile="${errfile}" />
+
+ <condition property="ror2out">
+ <equals arg1="${redirector.out.contents2}" arg2="foofoo" />
+ </condition>
+
+ <fail unless="ror1out">${outfile}:
+&quot;${redirector.out.contents}&quot; expected &quot;foofoo&quot;</fail>
+
+ <condition property="ror2err">
+ <equals arg1="${redirector.err.contents}" arg2="bar" />
+ </condition>
+
+ <fail unless="ror1out">${errfile}:
+&quot;${redirector.err.contents}&quot; expected &quot;bar&quot;</fail>
+
+ </target>
+
+ <target name="flushedInput">
+ <java classname="org.apache.tools.ant.taskdefs.JavaTest$$ReadPoint" fork="true"
+ classpath="${tests-classpath.value}" failonerror="true" timeout="2000" />
+ </target>
+
+ <target name="foo" />
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/java/ClassToJavadoc.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/java/ClassToJavadoc.java
new file mode 100644
index 00000000..a41bdc15
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/java/ClassToJavadoc.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package etc.testcases.taskdefs.javadoc.java;
+
+/**
+ * This is a simple class to provide grist for the javadoc mill
+ * while testing it.
+ */
+public class ClassToJavadoc {
+ /**
+ * @param anArgument A String that is ignored
+ */
+ public void methodToJavadoc(String anArgument) { }
+
+ /**
+ * @see java.lang.Object#toString()
+ */
+ public String toString() { return this.getClass().getName(); }
+
+ /**
+ * @return An arbitrary string.
+ */
+ public String anotherString() {return "An arbitrary string.";}
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/javadoc.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/javadoc.xml
new file mode 100644
index 00000000..2a05ec0f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/javadoc/javadoc.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+<project name="javadoc" basedir=".">
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <path id="path.dirset">
+ <dirset dir="." />
+ </path>
+
+
+ <target name="dirsetPath">
+ <javadoc sourcepathref="path.dirset" packagenames="*" destdir="${output}" />
+ </target>
+
+ <target name="dirsetPathWithoutPackagenames">
+ <javadoc sourcepathref="path.dirset" destdir="${output}" />
+ </target>
+
+ <target name="nestedDirsetPath">
+ <javadoc packagenames="*" destdir="${output}">
+ <sourcepath refid="path.dirset" />
+ </javadoc>
+ </target>
+
+ <path id="path.fileset">
+ <pathelement location="."/>
+ <fileset dir="java/" id="fileset.inpath">
+ <include name="**/*.java" />
+ </fileset>
+ </path>
+
+ <target name="filesetPath">
+ <javadoc sourcepathref="path.fileset" packagenames="*" destdir="${output}" />
+ </target>
+
+ <target name="nestedFilesetPath">
+ <javadoc packagenames="*" destdir="${output}">
+ <sourcepath refid="path.fileset" />
+ </javadoc>
+ </target>
+
+ <target name="nestedFilesetRefInPath">
+ <javadoc packagenames="*" destdir="${output}">
+ <fileset refid="fileset.inpath" />
+ </javadoc>
+ </target>
+
+ <target name="nestedFilesetNoPatterns">
+ <javadoc packagenames="*" destdir="${output}">
+ <fileset dir="java/"/>
+ </javadoc>
+ </target>
+
+ <target name="doublyNestedFileset">
+ <javadoc packagenames="*" destdir="${output}">
+ <sourcefiles>
+ <fileset dir="java/" includes="**/*.java"/>
+ </sourcefiles>
+ </javadoc>
+ </target>
+
+ <target name="doublyNestedFilesetNoPatterns">
+ <javadoc packagenames="*" destdir="${output}">
+ <sourcefiles>
+ <fileset dir="java/"/>
+ </sourcefiles>
+ </javadoc>
+ </target>
+
+ <path id="path.filelist">
+ <pathelement location="."/>
+ <filelist dir="java/">
+ <file name="ClassToJavadoc.java" />
+ </filelist>
+ </path>
+
+ <target name="filelistPath">
+ <javadoc sourcepathref="path.filelist" packagenames="*"
+ destdir="${output}" />
+ </target>
+
+ <target name="nestedFilelistPath">
+ <javadoc packagenames="*" destdir="${output}">
+ <sourcepath refid="path.filelist" />
+ </javadoc>
+ </target>
+
+ <!-- this property is set when the tests are run using ant's build.xml -->
+ <property name="root" location="../../../../.."/>
+
+ <path id="path.pathelement.path">
+ <pathelement path="${root}/src" />
+ </path>
+
+ <target name="pathelementPath">
+ <javadoc sourcepathref="path.pathelement.path"
+ packagenames="etc.testcases.taskdefs.javadoc.*" destdir="${output}" />
+ </target>
+
+ <path id="path.pathelement.location">
+ <pathelement location="."/>
+ <pathelement path="java/ClassToJavadoc.java" />
+ </path>
+
+ <target name="pathelementLocationPath">
+ <javadoc sourcepathref="path.pathelement.location"
+ packagenames="*" destdir="${output}" />
+ </target>
+
+ <target name="nestedSource">
+ <javadoc destdir="${output}">
+ <source file="java/ClassToJavadoc.java" />
+ </javadoc>
+ </target>
+
+ <fileset dir="java/" id="fileset.simple">
+ <include name="**/*.java" />
+ </fileset>
+
+ <target name="nestedFilesetRef">
+ <javadoc destdir="${output}">
+ <fileset refid="fileset.simple" />
+ </javadoc>
+ </target>
+
+ <target name="nonJavaIncludes">
+ <echo file="${output}/stuff1.java">public class stuff1 {}</echo>
+ <echo file="${output}/stuff2.java">public class stuff2 {}</echo>
+ <echo file="${output}/stuff.properties">x=4</echo>
+ <javadoc destdir="${output}" failonerror="true">
+ <fileset dir="${output}"/>
+ </javadoc>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/loadfile.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/loadfile.xml
new file mode 100644
index 00000000..66c9ce4f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/loadfile.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="loadfile-test" basedir="." default="testLoadAFile">
+
+
+ <target name="init">
+ </target>
+
+ <target name="testNoSourcefileDefined" depends="init">
+ <loadfile property="foo" />
+ </target>
+
+ <target name="testNoPropertyDefined"
+ depends="init">
+ <loadfile srcFile="somefile" />
+ </target>
+
+
+ <target name="testNoSourcefilefound"
+ depends="init">
+ <loadfile property="missing" srcFile="somefile" />
+ </target>
+
+ <target name="testFailOnError"
+ depends="init">
+ <loadfile
+ property="testFailOnError"
+ srcFile="somefile"
+ failonerror="false"/>
+ </target>
+
+ <target name="testLoadAFile"
+ depends="init">
+ <echo
+ message="What's it going to be then, eh?"
+ file="loadfile1.tmp"
+ />
+ <loadfile property="testLoadAFile" srcFile="loadfile1.tmp" />
+ <echo>${testLoadAFile}</echo>
+ </target>
+
+ <target name="testLoadAFileEnc"
+ depends="init">
+ <loadfile property="testLoadAFileEnc"
+ srcFile="loadfile.xml"
+ encoding="ISO-8859-1"/>
+ </target>
+
+ <target name="testEvalProps"
+ depends="init">
+ <property name="weather" value="rain" />
+ <echo
+ message="All these moments will be lost in time, like teardrops in the ${weather}"
+ file="loadfile1.tmp"
+ />
+ <loadfile property="testEvalProps"
+ srcFile="loadfile1.tmp">
+ <filterchain>
+ <expandproperties/>
+ </filterchain>
+ </loadfile>
+ <echo>${testEvalProps}</echo>
+ </target>
+
+ <target name="testFilterChain"
+ depends="init">
+ <echo file="loadfile1.tmp">#Line 1
+REM Line 2
+--Line 3
+Line 4
+Hello World!</echo>
+ <loadfile srcFile="loadfile1.tmp"
+ property="testFilterChain">
+ <filterchain>
+ <headfilter lines="5"/>
+ <striplinecomments>
+ <comment value="--"/>
+ <comment value="REM "/>
+ <comment value="#"/>
+ </striplinecomments>
+ <filterreader classname="org.apache.tools.ant.filters.TailFilter">
+ <param name="lines" value="1"/>
+ </filterreader>
+ <linecontains>
+ <contains value="World!"/>
+ </linecontains>
+ </filterchain>
+ </loadfile>
+ </target>
+
+ <target name="testStripJavaComments"
+ depends="init">
+ <echo file="loadfile1.tmp">
+/*
+Comment "1"
+*/
+public class test1 {
+ //Some comment
+ int x = 1/2;
+ private static final String GREETING="*/Hello/*";
+ private static final String GREETING1="/*Hello*/";
+
+ public static void main( String args[] ) {
+ }
+}</echo>
+ <echo file="nocomments.tmp">
+
+public class test1 {
+
+ int x = 1/2;
+ private static final String GREETING="*/Hello/*";
+ private static final String GREETING1="/*Hello*/";
+
+ public static void main( String args[] ) {
+ }
+}</echo>
+ <loadfile srcFile="loadfile1.tmp"
+ property="testStripJavaComments">
+ <filterchain>
+ <stripjavacomments/>
+ </filterchain>
+ </loadfile>
+ <loadfile srcFile="nocomments.tmp"
+ property="expected"/>
+ </target>
+
+ <target name="testOneLine"
+ depends="init">
+ <echo
+ message="1,&#10;2,&#13;3,&#13;&#10;4"
+ file="loadfile1.tmp"
+ />
+ <loadfile property="testOneLine"
+ srcFile="loadfile1.tmp">
+ <filterchain>
+ <striplinebreaks/>
+ </filterchain>
+ </loadfile>
+ <echo>${testOneLine}</echo>
+ </target>
+
+
+ <target name="cleanup">
+ <delete file="loadfile1.tmp"/>
+ <delete file="nocomments.tmp"/>
+ </target>
+
+ </project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/macrodef.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/macrodef.xml
new file mode 100644
index 00000000..f7a356fc
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/macrodef.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+
+ <target name="simple">
+ <macrodef name="my.echo">
+ <attribute name="text"/>
+ <sequential>
+ <echo message="@{text}"/>
+ </sequential>
+ </macrodef>
+ <my.echo text="Hello World"/>
+ </target>
+
+ <target name="text">
+ <macrodef name="my.echo">
+ <attribute name="text"/>
+ <sequential>
+ <echo>@{text}</echo>
+ </sequential>
+ </macrodef>
+ <my.echo text="Inner Text"/>
+ </target>
+
+ <target name="duplicate.attribute">
+ <macrodef name="my.echo">
+ <attribute name="text"/>
+ <attribute name="text"/>
+ <sequential>
+ <echo>@{text}</echo>
+ </sequential>
+ </macrodef>
+ </target>
+
+ <target name="duplicate.element">
+ <macrodef name="my.echo">
+ <element name="text"/>
+ <element name="text"/>
+ <sequential>
+ <text/>
+ </sequential>
+ </macrodef>
+ </target>
+
+ <target name="uri">
+ <macrodef name="echo" uri="abc">
+ <attribute name="text"/>
+ <sequential>
+ <echo message="@{text}"/>
+ </sequential>
+ </macrodef>
+ <x:echo xmlns:x="abc" text="Hello World"/>
+ </target>
+
+ <target name="nested">
+ <macrodef name="nested">
+ <element name="nested"/>
+ <sequential>
+ <nested/>
+ </sequential>
+ </macrodef>
+
+ <nested>
+ <nested>
+ <echo>A nested element</echo>
+ </nested>
+ </nested>
+ </target>
+
+ <target name="double">
+ <macrodef name="double">
+ <attribute name="prop"/>
+ <sequential>
+ <echo>@@{prop} is '@{prop}', value of $${@{prop}} is '${@{prop}}'</echo>
+ </sequential>
+ </macrodef>
+ <property name="property" value="A property value"/>
+ <double prop="property"/>
+ </target>
+
+ <target name="ignorecase">
+ <macrodef name="ignore">
+ <attribute name="MyAttribute"/>
+ <sequential>
+ <echo>@{myattribute} is @{MYATTRIBUTE}</echo>
+ </sequential>
+ </macrodef>
+ <ignore myattribute="a"/>
+ <ignore Myattribute="b"/>
+ </target>
+
+ <target name="ignore-element-case">
+ <macrodef name="ignore">
+ <element name="MyElement"/>
+ <sequential>
+ <myElement/>
+ <MyElEmEnT/>
+ </sequential>
+ </macrodef>
+ <ignore>
+ <MYELEMENT>
+ <echo>nested element</echo>
+ </MYELEMENT>
+ </ignore>
+ </target>
+
+ <target name="textelement">
+ <macrodef name="echotest">
+ <text name="text" optional="yes"/>
+ <sequential>
+ <echo>@{text}</echo>
+ </sequential>
+ </macrodef>
+ <echotest>
+ Hello world
+ </echotest>
+ </target>
+
+ <target name="text.trim">
+ <macrodef name="echotest">
+ <text name="text" trim="yes"/>
+ <sequential>
+ <echo>[@{text}]</echo>
+ </sequential>
+ </macrodef>
+ <echotest>
+ Hello world
+ </echotest>
+ </target>
+
+ <target name="duplicatetextname">
+ <macrodef name="echotest">
+ <attribute name="text"/>
+ <text name="text"/>
+ <sequential>
+ <echo>@{text}</echo>
+ </sequential>
+ </macrodef>
+ </target>
+
+ <target name="duplicatetextname2">
+ <macrodef name="echotest">
+ <text name="text"/>
+ <attribute name="text"/>
+ <sequential>
+ <echo>@{text}</echo>
+ </sequential>
+ </macrodef>
+ </target>
+
+ <target name="escape">
+ <macrodef name="escape">
+ <attribute name="a"/>
+ <attribute name="b"/>
+ <sequential>
+ <echo>a@b or a@@b is @{a}@@@{b}</echo>
+ </sequential>
+ </macrodef>
+ <escape a="avalue" b="bvalue"/>
+ </target>
+
+ <target name="attribute.description">
+ <macrodef name="d">
+ <attribute name="description"/>
+ <attribute name="d" default="p"/>
+ <sequential>
+ <echo>description is @{description}</echo>
+ </sequential>
+ </macrodef>
+ <d description="hello world"/>
+ </target>
+
+ <target name="implicit">
+ <macrodef name="implicit">
+ <element name="implicit" implicit="yes"/>
+ <sequential>
+ <echo>Before implicit</echo>
+ <implicit/>
+ <echo>After implicit</echo>
+ </sequential>
+ </macrodef>
+
+ <implicit>
+ <echo>In implicit</echo>
+ </implicit>
+ </target>
+
+ <target name="implicit.notoptional">
+ <macrodef name="implicit">
+ <element name="implicit" implicit="yes"/>
+ <sequential>
+ <echo>Before implicit</echo>
+ <implicit/>
+ <echo>After implicit</echo>
+ </sequential>
+ </macrodef>
+
+ <implicit>
+ </implicit>
+ </target>
+
+ <target name="implicit.optional">
+ <macrodef name="implicit">
+ <element name="implicit" optional="yes" implicit="yes"/>
+ <sequential>
+ <echo>Before implicit</echo>
+ <implicit/>
+ <echo>After implicit</echo>
+ </sequential>
+ </macrodef>
+
+ <implicit>
+ </implicit>
+ </target>
+
+ <target name="implicit.explicit">
+ <macrodef name="implicit">
+ <element name="explicit" optional="yes"/>
+ <element name="implicit" optional="yes" implicit="yes"/>
+ <sequential>
+ <implicit/>
+ <explicit/>
+ </sequential>
+ </macrodef>
+ </target>
+
+ <property name="default.override" value="old"/>
+ <macrodef name="simple.override">
+ <attribute name="attr" default="${default.override}"/>
+ <sequential>
+ <echo>value is @{attr}</echo>
+ </sequential>
+ </macrodef>
+
+ <target name="override.default">
+ <antcall target="override.call">
+ <param name="default.override" value="new"/>
+ </antcall>
+ </target>
+
+ <target name="override.call">
+ <simple.override/>
+ </target>
+
+ <target name="backtraceoff">
+ <macrodef name="nobacktrace" backtrace="false">
+ <sequential>
+ <fail>This is a failure</fail>
+ </sequential>
+ </macrodef>
+ <nobacktrace/>
+ </target>
+ <target name="backtraceon">
+ <macrodef name="nobacktrace" backtrace="true">
+ <sequential>
+ <fail>This is a failure</fail>
+ </sequential>
+ </macrodef>
+ <nobacktrace/>
+ </target>
+
+ <target name="top-level-text">
+ <macrodef name="top">
+ <element name="em"/>
+ <sequential>
+ <echo><em/></echo>
+ </sequential>
+ </macrodef>
+ <top>
+ <em>
+ Hello World
+ </em>
+ </top>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/makeurl.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/makeurl.xml
new file mode 100644
index 00000000..dafd00a2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/makeurl.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="to-url" >
+
+
+ <target name="testEmpty">
+ <makeurl/>
+ </target>
+
+ <target name="testNoProperty">
+ <makeurl file="foo"/>
+ </target>
+
+ <target name="testNoFile">
+ <makeurl property="foo"/>
+ </target>
+
+ <target name="testWorks">
+ <makeurl property="testWorks" file="foo" validate="false"/>
+ <fail unless="testWorks" />
+ </target>
+
+ <target name="testIllegalChars">
+ <makeurl property="testIllegalChars" file="fo o%" validate="false"/>
+ </target>
+
+ <target name="testRoundTrip">
+ <makeurl property="testRoundTrip" file="${ant.file}"/>
+ </target>
+
+ <target name="testIllegalCombinations">
+ <makeurl property="testIllegalCombinations" file="foo" validate="false">
+ <fileset dir="." includes="*.xml" />
+ </makeurl>
+ </target>
+
+
+ <target name="testFileset">
+ <makeurl property="testFileset">
+ <fileset dir="." includes="*.xml" />
+ </makeurl>
+ </target>
+
+ <target name="testFilesetSeparator">
+ <makeurl property="testFilesetSeparator" separator='","'>
+ <fileset dir="." includes="*.xml" />
+ </makeurl>
+ </target>
+
+ <target name="testValidation">
+ <makeurl property="testValidation" file="absent" validate="true"/>
+ </target>
+
+ <target name="testPath">
+ <path id="test.path">
+ <pathelement location="." />
+ <fileset dir="." includes="*.xml"/>
+ </path>
+ <makeurl property="testPath">
+ <path refid="test.path" />
+ </makeurl>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifest.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifest.xml
new file mode 100644
index 00000000..aecaf967
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifest.xml
@@ -0,0 +1,267 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Manifest tests build file -->
+<project name="manifest-test" basedir="." default="test1">
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}/manifests"/>
+ </target>
+
+ <target name="test1" depends="setUp">
+ <jar file="${output}/mftest1.jar" manifest="manifests/test1.mf"/>
+ <unjar src="${output}/mftest1.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="test2" depends="setUp">
+ <jar file="${output}/mftest2.jar" manifest="manifests/test2.mf"/>
+ <unjar src="${output}/mftest2.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="test3" depends="setUp">
+ <jar file="${output}/mftest3.jar" manifest="manifests/test3.mf"/>
+ </target>
+
+ <target name="test4" depends="setUp">
+ <jar file="${output}/mftest4.jar" manifest="manifests/test4.mf"/>
+ </target>
+
+ <target name="test5" depends="setUp">
+ <jar file="${output}/mftest5.jar" manifest="manifests/test5.mf"/>
+ </target>
+
+ <target name="test6" depends="setUp">
+ <jar file="${output}/mftest6.jar" manifest="manifests/test6.mf"/>
+ </target>
+
+ <target name="test7" depends="setUp">
+ <jar file="${output}/mftest7.jar" manifest="manifests/test7.mf"/>
+ </target>
+
+ <target name="test8" depends="setUp">
+ <jar file="${output}/mftest8.jar">
+ <manifest>
+ <attribute name="Class-Path" value="fubar"/>
+ <section name="Test">
+ <attribute name="TestAttr" value="Test"/>
+ </section>
+ </manifest>
+ </jar>
+ <unjar src="${output}/mftest8.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="test9" depends="setUp">
+ <jar file="${output}/mftest9.jar">
+ <manifest>
+ <attribute name="Class-Path" value="fubar"/>
+ <section name="Test">
+ <attribute name="Name" value="Test"/>
+ </section>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="test10" depends="setUp">
+ <jar file="${output}/mftest10.jar">
+ <manifest>
+ <attribute value="fubar"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="test11" depends="setUp">
+ <jar file="${output}/mftest11.jar">
+ <manifest>
+ <attribute name="Test"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="test12" depends="setUp">
+ <jar file="${output}/mftest12.jar">
+ <manifest>
+ <section>
+ <attribute name="TestAttr" value="Test"/>
+ </section>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="test13" depends="setUp">
+ <jar file="${output}/mftest13.jar">
+ <manifest>
+ <attribute name="Test" value="Test1"/>
+ <attribute name="Test" value="Test2"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="test14" depends="setUp">
+ <jar file="${output}/mftest14.jar">
+ <manifest>
+ <attribute name="Class-path" value="Test1"/>
+ <attribute name="Class-path" value="Test2"/>
+ <attribute name="Class-Path" value="Test3"/>
+ <attribute name="class-Path" value="Test4"/>
+ </manifest>
+ </jar>
+ <unjar src="${output}/mftest14.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="testNoFile">
+ <manifest />
+ </target>
+
+ <target name="testLongLine" depends="setUp">
+ <jar file="${output}/mftestLongLine.jar">
+ <manifest>
+ <attribute name="Class-path"
+ value="${test.longline}"/>
+ <attribute name="${test.long68name}" value="${test.value}" />
+ <attribute name="${test.long70name}" value="${test.value}" />
+ <attribute name="${test.notlongname}" value="${test.value}" />
+ </manifest>
+ </jar>
+ <unjar src="${output}/mftestLongLine.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="testOrder1" depends="setUp">
+ <jar file="${output}/mftestOrder1.jar">
+ <manifest>
+ <section name="Test1">
+ <attribute name="TestAttr1" value="Test1"/>
+ <attribute name="TestAttr2" value="Test2"/>
+ </section>
+ <section name="Test2">
+ <attribute name="TestAttrx" value="Testx"/>
+ </section>
+ </manifest>
+ </jar>
+ <unjar src="${output}/mftestOrder1.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="testOrder2" depends="setUp">
+ <jar file="${output}/mftestOrder2.jar">
+ <manifest>
+ <section name="Test2">
+ <attribute name="TestAttrx" value="Testx"/>
+ </section>
+ <section name="Test1">
+ <attribute name="TestAttr2" value="Test2"/>
+ <attribute name="TestAttr1" value="Test1"/>
+ </section>
+ </manifest>
+ </jar>
+ <unjar src="${output}/mftestOrder2.jar" dest="${output}/manifests">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
+ </target>
+
+ <target name="testReplace" depends="setUp">
+ <copy file="manifests/test2.mf" toFile="${output}/mftest.mf" />
+ <manifest file="${output}/mftest.mf" />
+ </target>
+
+ <target name="testUpdate" depends="setUp">
+ <copy file="manifests/test2.mf" toFile="${output}/mftest.mf" />
+ <manifest file="${output}/mftest.mf" mode="update">
+ <attribute name="Foo" value="Bar" />
+ </manifest>
+
+ <copy file="manifests/test2.mf" toFile="${output}/mftest2.mf" />
+ <manifest file="${output}/mftest2.mf" mode="update">
+ <section name="Test">
+ <attribute name="Foo" value="Bar" />
+ </section>
+ </manifest>
+ <manifest file="${output}/mftest2.mf" mode="update">
+ <section name="Test">
+ <attribute name="Foo" value="Baz" />
+ </section>
+ </manifest>
+ </target>
+
+ <target name="testFrom" depends="setUp">
+ <manifest file="${output}/mftestfrom.mf" >
+ <section name="Test">
+ <attribute name="before" value="before" />
+ <attribute name="From" value="illegal"/>
+ <attribute name="after" value="after" />
+ </section>
+ </manifest>
+ </target>
+
+ <target name="testIllegalName" depends="setUp">
+ <manifest file="${output}/mftestillegalname.mf">
+ <attribute name="has blank" value="value"/>
+ </manifest>
+ </target>
+
+ <target name="testIllegalNameInSection" depends="setUp">
+ <manifest file="${output}/mftestillegalnameinsection.mf">
+ <section name="s1">
+ <attribute name="has blank" value="value"/>
+ </section>
+ </manifest>
+ </target>
+
+ <target name="testIllegalNameBegin" depends="setUp">
+ <manifest file="${output}/mftestillegalnamebegin.mf">
+ <attribute name="-name" value="value"/>
+ </manifest>
+ </target>
+
+ <target name="testIllegalName2" depends="setUp">
+ <manifest file="${output}/mftestillegalnamebegin.mf">
+ <attribute name="has.point" value="value"/>
+ </manifest>
+ </target>
+
+ <target name="testIllegalName3" depends="setUp">
+ <manifest file="${output}/mftestillegalnamebegin.mf">
+ <attribute name="has*star" value="value"/>
+ </manifest>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath.xml
new file mode 100644
index 00000000..f8a47951
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath.xml
@@ -0,0 +1,238 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="manifestclasspath" default="tearDown">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <!-- hebrew -->
+ <property name="jom" value="&#1501;&#1493;&#1497;"/>
+ <!-- german -->
+ <property name="aent" value="&#227;nt"/>
+ <target name="fullSetUp" depends="setUp">
+ <mkdir dir="${output}/lib" />
+ <touch file="${output}/lib/acme-core.jar" />
+ <touch file="${output}/lib/acme-pres.jar" />
+
+ <mkdir dir="${output}/classes/dsp-core/com/lgc/infra/core" />
+ <mkdir dir="${output}/classes/dsp-pres/com/lgc/infra/pres" />
+ <mkdir dir="${output}/classes/dsp-void" />
+ <mkdir dir="${output}/generated/dsp-core/com/lgc/infra/core/generated" />
+ <mkdir dir="${output}/generated/dsp-pres" />
+ <mkdir dir="${output}/generated/dsp-void" />
+ <mkdir dir="${output}/resources/dsp-core/com/lgc/infra/core" />
+ <mkdir dir="${output}/resources/dsp-pres/com/lgc/infra/pres" />
+ <mkdir dir="${output}/resources/dsp-void" />
+ </target>
+
+ <target name="test-bad-directory">
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classpath.jar">
+ <classpath />
+ </manifestclasspath>
+ </target>
+
+ <target name="test-bad-no-property" depends="setUp">
+ <manifestclasspath jarfile="${output}/classpath.jar">
+ <classpath />
+ </manifestclasspath>
+ </target>
+
+ <target name="test-bad-property-exists" depends="setUp">
+ <property name="jar.classpath" value="exists" />
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classpath.jar">
+ <classpath />
+ </manifestclasspath>
+ </target>
+
+ <target name="test-bad-no-jarfile" depends="setUp">
+ <manifestclasspath property="jar.classpath">
+ <classpath />
+ </manifestclasspath>
+ </target>
+
+ <target name="test-bad-no-classpath" depends="setUp">
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classpath.jar" />
+ </target>
+
+ <target name="test-pseudo-tahoe-refid" depends="fullSetUp">
+ <path id="classpath">
+ <!-- All the classes/ directories -->
+ <dirset dir="${output}/classes" includes="dsp-*" />
+
+ <!-- All the JAXB generated/ directories -->
+ <dirset dir="${output}/generated" includes="dsp-*">
+ <!-- Add only non-empty directories to the classpath -->
+ <present targetdir="${output}/generated" present="both">
+ <mapper type="regexp" from="(.*)" to="\1/com" />
+ </present>
+ </dirset>
+
+ <!-- All the resources/ directories -->
+ <dirset dir="${output}/resources" includes="dsp-*">
+ <!-- Add only non-empty directories to the classpath -->
+ <present targetdir="${output}/resources" present="both">
+ <mapper type="regexp" from="(.*)" to="\1/com" />
+ </present>
+ </dirset>
+ </path>
+
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classpath.jar">
+ <classpath refid="classpath" />
+ </manifestclasspath>
+ </target>
+
+ <target name="test-pseudo-tahoe-nested" depends="fullSetUp">
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classpath.jar">
+ <classpath>
+ <!-- All the classes/ directories -->
+ <dirset dir="${output}/classes" includes="dsp-*" />
+
+ <!-- All the JAXB generated/ directories -->
+ <dirset dir="${output}/generated" includes="dsp-*">
+ <!-- Add only non-empty directories to the classpath -->
+ <present targetdir="${output}/generated" present="both">
+ <mapper type="regexp" from="(.*)" to="\1/com" />
+ </present>
+ </dirset>
+
+ <!-- All the resources/ directories -->
+ <dirset dir="${output}/resources" includes="dsp-*">
+ <!-- Add only non-empty directories to the classpath -->
+ <present targetdir="${output}/resources" present="both">
+ <mapper type="regexp" from="(.*)" to="\1/com" />
+ </present>
+ </dirset>
+ </classpath>
+ </manifestclasspath>
+ </target>
+
+ <target name="test-parent-level1" depends="fullSetUp">
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classes/classpath.jar">
+ <classpath>
+ <dirset dir="${output}/classes" includes="dsp-*" />
+ <dirset dir="${output}/generated" includes="dsp-*" />
+ <dirset dir="${output}/resources" includes="dsp-*" />
+ </classpath>
+ </manifestclasspath>
+ </target>
+
+ <target name="test-parent-level2" depends="fullSetUp">
+ <mkdir dir="${output}/classes/level2" />
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classes/level2/classpath.jar">
+ <classpath>
+ <dirset dir="${output}/classes" includes="dsp-*" />
+ <dirset dir="${output}/generated" includes="dsp-*" />
+ <dirset dir="${output}/resources" includes="dsp-*" />
+ </classpath>
+ </manifestclasspath>
+ </target>
+
+ <target name="test-parent-level2-too-deep" depends="fullSetUp">
+ <mkdir dir="${output}/classes/level2" />
+ <manifestclasspath property="jar.classpath" maxParentLevels="1"
+ jarfile="${output}/classes/level2/classpath.jar">
+ <classpath>
+ <dirset dir="${output}/classes" includes="dsp-*" />
+ <dirset dir="${output}/generated" includes="dsp-*" />
+ <dirset dir="${output}/resources" includes="dsp-*" />
+ </classpath>
+ </manifestclasspath>
+ </target>
+
+ <target name="test-parent-level2-with-jars" depends="fullSetUp">
+ <mkdir dir="${output}/classes/level2" />
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/classes/level2/classpath.jar">
+ <classpath>
+ <fileset dir="${output}/lib" includes="*.jar" />
+ <dirset dir="${output}/classes" includes="dsp-*" />
+ <dirset dir="${output}/generated" includes="dsp-*" />
+ <dirset dir="${output}/resources" includes="dsp-*" />
+ </classpath>
+ </manifestclasspath>
+ </target>
+
+ <target name="international-german" depends="setUp">
+ <antcall target="run-two-jars">
+ <param name="ext.dir" value="${aent}"/>
+ </antcall>
+ </target>
+ <target name="international-hebrew" depends="setUp">
+ <antcall target="run-two-jars">
+ <param name="ext.dir" value="${jom}"/>
+ </antcall>
+ </target>
+ <target name="run-two-jars">
+ <mkdir dir="${output}/${ext.dir}"/>
+ <javac srcdir="manifestclasspath" destdir="${output}" />
+ <jar destfile="${output}/${ext.dir}/alpha.jar">
+ <fileset dir="${output}">
+ <include name="Alpha.class"/>
+ </fileset>
+ </jar>
+ <manifestclasspath property="jar.classpath"
+ jarfile="${output}/beta.jar">
+ <classpath>
+ <pathelement location="${output}/beta.jar"/>
+ <pathelement location="${output}/${ext.dir}/alpha.jar"/>
+ </classpath>
+ </manifestclasspath>
+ <jar destfile="${output}/beta.jar" >
+ <fileset dir="${output}">
+ <include name="Beta.class"/>
+ </fileset>
+ <manifest>
+ <attribute name="Main-Class" value="Beta"/>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </jar>
+ <java fork="true" jar="${output}/beta.jar"/>
+ </target>
+
+ <target name="testSameDrive">
+ <property name="temp" location="${java.io.tmpdir}"/>
+ <manifestclasspath jarfile="${temp}\e.jar"
+ maxParentLevels="99" property="cp">
+ <classpath>
+ <pathelement location="${temp}\..\a\b\x.jar"/>
+ </classpath>
+ </manifestclasspath>
+ </target>
+
+ <target name="testDifferentDrive">
+ <property name="temp" location="${java.io.tmpdir}"/>
+ <!-- the property altDriveLetter gets defined in Java -->
+ <manifestclasspath jarfile="${temp}\e.jar"
+ maxParentLevels="99" property="cp">
+ <classpath>
+ <pathelement location="${altDriveLetter}:\a\b\x.jar"/>
+ </classpath>
+ </manifestclasspath>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Alpha.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Alpha.java
new file mode 100644
index 00000000..96124d54
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Alpha.java
@@ -0,0 +1,21 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class Alpha {
+ public String toString() {
+ return "alpha";
+ }
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Beta.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Beta.java
new file mode 100644
index 00000000..c1b446f1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifestclasspath/Beta.java
@@ -0,0 +1,25 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class Beta extends Alpha {
+ public String toString() {
+ return "beta " + super.toString();
+ }
+ public static void main(String [] args) {
+ Beta myBeta = new Beta();
+ System.out.println(myBeta.toString());
+ }
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test1.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test1.mf
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test1.mf
@@ -0,0 +1 @@
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test2.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test2.mf
new file mode 100644
index 00000000..b8a88bd3
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test2.mf
@@ -0,0 +1,2 @@
+Manifest-Version: 2.0
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test3.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test3.mf
new file mode 100644
index 00000000..6aa82cca
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test3.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Header-without-colon maybe mistyped
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test4.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test4.mf
new file mode 100644
index 00000000..27afb189
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test4.mf
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+
+ Can't start with a continuation line
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test5.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test5.mf
new file mode 100644
index 00000000..0fb8deae
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test5.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Name: test5
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test6.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test6.mf
new file mode 100644
index 00000000..97988c69
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test6.mf
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+
+Test: test6
+Class-Path: fubar
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test7.mf b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test7.mf
new file mode 100644
index 00000000..72aace0b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/manifests/test7.mf
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Class-Path: fubar
+From: Jack
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/mkdir.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/mkdir.xml
new file mode 100644
index 00000000..1ecc274d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/mkdir.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="test1">
+ <mkdir/>
+ </target>
+
+ <target name="test2">
+ <mkdir dir="template.xml"/>
+ </target>
+
+ <target name="test3">
+ <mkdir dir="${output}/testdir.tmp"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/move.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/move.xml
new file mode 100644
index 00000000..8b4a6c8e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/move.xml
@@ -0,0 +1,263 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="move-test" basedir="." default="testFilterSet">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="testFilterSet">
+ <copy file="copy.filterset" tofile="${output}/move.filterset"/>
+ <move file="${output}/move.filterset" tofile="${output}/move.filterset.tmp">
+ <filterset>
+ <filter token="TITLE" value="Apache Ant Project"/>
+ </filterset>
+ </move>
+ </target>
+
+ <target name="testFilterChain">
+ <copy file="copy.filterset" tofile="${output}/move.filterchain"/>
+ <move file="${output}/move.filterchain" tofile="${output}/move.filterchain.tmp">
+ <filterchain>
+ <replacetokens>
+ <token key="TITLE" value="Apache Ant Project"/>
+ </replacetokens>
+ </filterchain>
+ </move>
+ </target>
+
+ <!-- Bugzilla Report 11732 -->
+ <target name="testDirectoryRemoval">
+ <mkdir dir="${output}/A/B"/>
+ <mkdir dir="${output}/A/C"/>
+ <mkdir dir="${output}/A/D"/>
+ <touch file="${output}/A/B/1"/>
+ <touch file="${output}/A/C/2"/>
+ <touch file="${output}/A/D/3"/>
+ <mkdir dir="${output}/E"/>
+ <move todir="${output}/E" includeemptydirs="true">
+ <fileset dir="${output}/A">
+ <include name="C"/>
+ <include name="D"/>
+ <include name="C/**"/>
+ <include name="D/**"/>
+ </fileset>
+ </move>
+ </target>
+
+ <!-- Bugzilla Report 18886 -->
+ <target name="testDirectoryRetaining">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <mkdir dir="${output}/E"/>
+ <move todir="${output}/E" includeemptydirs="true">
+ <fileset dir="${output}/A" includes="1"/>
+ </move>
+ </target>
+
+ <target name="testCompleteDirectoryMove">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <move todir="${output}/E">
+ <fileset dir="${output}/A"/>
+ </move>
+ </target>
+
+ <target name="testCompleteDirectoryMove2">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <move todir="${output}/E">
+ <path>
+ <fileset dir="${output}/A"/>
+ </path>
+ </move>
+ </target>
+
+ <target name="testPathElementMove">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <move todir="${output}/E" flatten="true">
+ <path>
+ <pathelement location="${output}/A/1"/>
+ </path>
+ </move>
+ </target>
+
+ <target name="testMoveFileAndFileset">
+ <mkdir dir="${output}/A" />
+ <touch>
+ <filelist dir="${output}/A" files="1,2,3" />
+ </touch>
+ <move todir="${output}/E" file="${output}/A/1">
+ <fileset dir="${output}/A" includes="2,3" />
+ </move>
+ <fail message="A unavailable">
+ <condition>
+ <not>
+ <available file="${output}/A" type="dir" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="${output}/A/1 not moved">
+ <condition>
+ <or>
+ <available file="${output}/A/1" type="file" />
+ <not>
+ <available file="${output}/E/1" type="file" />
+ </not>
+ </or>
+ </condition>
+ </fail>
+ <fail message="${output}/A/2 not moved">
+ <condition>
+ <or>
+ <available file="${output}/A/2" type="file" />
+ <not>
+ <available file="${output}/E/2" type="file" />
+ </not>
+ </or>
+ </condition>
+ </fail>
+ <fail message="${output}/A/3 not moved">
+ <condition>
+ <or>
+ <available file="${output}/A/3" type="file" />
+ <not>
+ <available file="${output}/E/3" type="file" />
+ </not>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+ <macrodef name="verifymove">
+ <attribute name="newfile" />
+ <attribute name="olddir" />
+ <sequential>
+ <fail message="@{newfile} not available">
+ <condition>
+ <not>
+ <available file="@{newfile}" type="file" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="@{olddir} remains">
+ <condition>
+ <available file="@{olddir}" type="dir" />
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <target name="testCompleteDirectoryMoveToExistingDir">
+ <mkdir dir="${output}/A" />
+ <touch file="${output}/A/1" />
+ <mkdir dir="${output}/E" />
+ <touch file="${output}/E/2" />
+ <move todir="${output}/E">
+ <fileset dir="${output}/A" />
+ </move>
+ <verifymove newfile="${output}/E/1" olddir="${output}/A" />
+ <fail message="E/2 unavailable">
+ <condition>
+ <not>
+ <available file="${output}/E/2" type="file" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileToFile">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <move file="${output}/A" tofile="${output}/E" />
+ <verifymove newfile="${output}/E/1" olddir="${output}/A" />
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileToDir">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <move file="${output}/A" todir="${output}/E" />
+ <verifymove newfile="${output}/E/A/1" olddir="${output}/A" />
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileAndFileset">
+ <mkdir dir="${output}/A/1" />
+ <touch file="${output}/A/2" />
+ <move file="${output}/A/1" todir="${output}/E">
+ <fileset dir="${output}/A" includes="2" />
+ </move>
+ <fail message="A unavailable">
+ <condition>
+ <not>
+ <available file="${output}/A" type="dir" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="E/1 unavailable">
+ <condition>
+ <not>
+ <available file="${output}/E/1" type="dir" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="E/2 unavailable">
+ <condition>
+ <not>
+ <available file="${output}/E/2" type="file" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileToExistingFile">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <touch file="${output}/E"/>
+ <move file="${output}/A" tofile="${output}/E" />
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileToExistingDir">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <mkdir dir="${output}/E"/>
+ <move file="${output}/A" tofile="${output}/E" />
+ <verifymove newfile="${output}/E/1" olddir="${output}/A" />
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileToDirWithExistingFile">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <mkdir dir="${output}/E"/>
+ <touch file="${output}/E/A"/>
+ <move file="${output}/A" todir="${output}/E" />
+ </target>
+
+ <target name="testCompleteDirectoryMoveFileToDirWithExistingDir">
+ <mkdir dir="${output}/A"/>
+ <touch file="${output}/A/1"/>
+ <mkdir dir="${output}/E"/>
+ <mkdir dir="${output}/E/A"/>
+ <move file="${output}/A" todir="${output}/E" />
+ <verifymove newfile="${output}/E/A/1" olddir="${output}/A" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/multimap.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/multimap.xml
new file mode 100644
index 00000000..ce4b1218
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/multimap.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" basedir=".">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <path id="testclasses">
+ <pathelement location="../../../../build/testcases" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <mapper id="testmapper"
+ classname="org.apache.tools.ant.taskdefs.MultiMapTest$TestMapper"
+ classpathref="testclasses"/>
+
+ <property name="map.ext" value=".copy2"/>
+ <property name="rootScratchDir" value="${output}/test_multi_mapper_scratch_area"/>
+ <property name="baseScratchSrc" value="${rootScratchDir}/src"/>
+ <property name="baseScratchDest" value="${rootScratchDir}/dest"/>
+
+ <target name="setUp">
+ <delete dir="${baseScratchSrc}"/>
+ <mkdir dir="${baseScratchSrc}"/>
+ <delete dir="${baseScratchDest}"/>
+ <mkdir dir="${baseScratchDest}"/>
+ <touch file="${baseScratchSrc}/somefile.txt"/>
+ </target>
+
+ <!-- test simple single file to multiple file move -->
+ <target name="multicopy" depends="setUp">
+ <copy todir="${baseScratchDest}" enablemultiplemappings="true">
+ <fileset dir="${baseScratchSrc}" includes="somefile.txt"/>
+ <mapper refid="testmapper"/>
+ </copy>
+ <condition property="multicopy.outcome">
+ <and>
+ <available file="${baseScratchDest}/somefile.txt"/>
+ <available file="${baseScratchDest}/somefile.txt${map.ext}"/>
+ </and>
+ </condition>
+ <fail unless="multicopy.outcome">multicopy failed</fail>
+ </target>
+
+ <target name="multimove" depends="setUp">
+ <move todir="${baseScratchDest}" enablemultiplemappings="true">
+ <fileset dir="${baseScratchSrc}" includes="somefile.txt"/>
+ <mapper refid="testmapper"/>
+ </move>
+ <condition property="test2.outcome">
+ <and>
+ <available file="${baseScratchDest}/somefile.txt"/>
+ <available file="${baseScratchDest}/somefile.txt${map.ext}"/>
+ <not>
+ <available file="${baseScratchSrc}/somefile.txt"/>
+ </not>
+ <not>
+ <available file="${baseScratchSrc}/somefile.txt${map.ext}"/>
+ </not>
+ </and>
+ </condition>
+ <fail unless="test2.outcome">mulitmove failed</fail>
+ </target>
+
+ <!--
+ test traditional single file to single file copy explicitly telling
+ task to ignore multiple mappings
+ -->
+
+ <target name="singlecopy" depends="setUp">
+ <copy todir="${baseScratchDest}" enablemultiplemappings="false">
+ <fileset dir="${baseScratchSrc}" includes="somefile.txt"/>
+ <mapper refid="testmapper"/>
+ </copy>
+ <condition property="singlecopy.outcome">
+ <and>
+ <available file="${baseScratchDest}/somefile.txt"/>
+ <not>
+ <available file="${baseScratchDest}/somefile.txt${map.ext}"/>
+ </not>
+ <available file="${baseScratchSrc}/somefile.txt"/>
+ </and>
+ </condition>
+ <fail unless="singlecopy.outcome">singlecopy failed</fail>
+ </target>
+
+ <target name="singlemove" depends="setUp">
+ <move todir="${baseScratchDest}" enablemultiplemappings="false">
+ <fileset dir="${baseScratchSrc}" includes="somefile.txt"/>
+ <mapper refid="testmapper"/>
+ </move>
+ <condition property="singlemove.outcome">
+ <and>
+ <available file="${baseScratchDest}/somefile.txt"/>
+ <not>
+ <available file="${baseScratchDest}/somefile.txt${map.ext}"/>
+ </not>
+ <not>
+ <available file="${baseScratchSrc}/somefile.txt"/>
+ </not>
+ </and>
+ </condition>
+ <fail unless="singlemove.outcome">singlemove failed</fail>
+ </target>
+
+ <!-- test dir w/ file + empty dir multimap copy -->
+ <target name="copywithempty">
+ <delete dir="${baseScratchSrc}"/>
+ <mkdir dir="${baseScratchSrc}/dirwithfile"/>
+ <mkdir dir="${baseScratchSrc}/emptydir"/>
+ <touch file="${baseScratchSrc}/dirwithfile/somefile.txt"/>
+
+ <delete dir="${baseScratchDest}"/>
+ <mkdir dir="${baseScratchDest}"/>
+
+ <copy todir="${baseScratchDest}" enablemultiplemappings="true">
+ <fileset dir="${baseScratchSrc}" includes="**/*"/>
+ <mapper refid="testmapper"/>
+ </copy>
+ <condition property="copywithempty.outcome">
+ <and>
+ <available file="${baseScratchDest}/dirwithfile"/>
+ <available file="${baseScratchDest}/dirwithfile${map.ext}"/>
+ <available file="${baseScratchDest}/dirwithfile/somefile.txt"/>
+ <available file="${baseScratchDest}/dirwithfile/somefile.txt${map.ext}"/>
+ <not>
+ <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt"/>
+ </not>
+ <not>
+ <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt${map.ext}"/>
+ </not>
+ <available file="${baseScratchDest}/emptydir"/>
+ <available file="${baseScratchDest}/emptydir${map.ext}"/>
+ </and>
+ </condition>
+ <fail unless="copywithempty.outcome">copywithempty failed</fail>
+ </target>
+ <!-- test dir w/ file + empty dir multimap move -->
+ <target name="movewithempty">
+ <delete dir="${baseScratchSrc}"/>
+ <mkdir dir="${baseScratchSrc}/dirwithfile"/>
+ <mkdir dir="${baseScratchSrc}/emptydir"/>
+ <touch file="${baseScratchSrc}/dirwithfile/somefile.txt"/>
+
+ <delete dir="${baseScratchDest}"/>
+ <mkdir dir="${baseScratchDest}"/>
+
+ <move todir="${baseScratchDest}" enablemultiplemappings="true">
+ <fileset dir="${baseScratchSrc}" includes="**/*"/>
+ <mapper refid="testmapper"/>
+ </move>
+ <condition property="movewithempty.outcome">
+ <and>
+ <available file="${baseScratchDest}/dirwithfile"/>
+ <available file="${baseScratchDest}/dirwithfile${map.ext}"/>
+ <available file="${baseScratchDest}/dirwithfile/somefile.txt"/>
+ <available file="${baseScratchDest}/dirwithfile/somefile.txt${map.ext}"/>
+ <not>
+ <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt"/>
+ </not>
+ <not>
+ <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt${map.ext}"/>
+ </not>
+ <available file="${baseScratchDest}/emptydir"/>
+ <available file="${baseScratchDest}/emptydir${map.ext}"/>
+ <not>
+ <available file="${baseScratchSrc}/dirwithfile"/>
+ </not>
+ <not>
+ <available file="${baseScratchSrc}/emptydir"/>
+ </not>
+ </and>
+ </condition>
+ <fail unless="movewithempty.outcome">movewithempty failed</fail>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nice.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nice.xml
new file mode 100644
index 00000000..e67ee19c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nice.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="nice" basedir=".">
+
+<description>
+Test nicing. To make the test more complex we may be running in a nice mode
+to start with, and we want to restore that value at the end. So every test
+that succeeds must restore the saved value.
+</description>
+ <target name="noop">
+ <nice/>
+ </target>
+
+ <target name="current">
+ <nice currentPriority="nice.now"/>
+ <fail unless="nice.now"/>
+ </target>
+
+ <target name="faster">
+ <nice newPriority="8" currentPriority="nice.old"/>
+ <nice currentPriority="nice.now"/>
+ <condition property="test.succeeded">
+ <equals arg1="${nice.now}" arg2="8" />
+ </condition>
+ <nice newPriority="${nice.old}"/>
+ <fail unless="test.succeeded"/>
+ </target>
+
+ <target name="slower">
+ <nice newPriority="3" currentPriority="nice.old"/>
+ <nice currentPriority="nice.now"/>
+ <condition property="test.succeeded">
+ <equals arg1="${nice.now}" arg2="3" />
+ </condition>
+ <nice newPriority="${nice.old}"/>
+ <fail unless="test.succeeded"/>
+ </target>
+
+ <target name="too_slow">
+ <nice currentPriority="nice.old"/>
+ <nice newPriority="0"/>
+ <nice newPriority="${nice.old}"/>
+ </target>
+
+ <target name="too_fast">
+ <nice currentPriority="nice.old"/>
+ <nice newPriority="20"/>
+ <nice newPriority="${nice.old}"/>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nopermissions.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nopermissions.zip
new file mode 100644
index 00000000..979ee68b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/nopermissions.zip
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.g b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.g
new file mode 100644
index 00000000..9f724936
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.g
@@ -0,0 +1,76 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+class CalcParser extends Parser;
+options {
+ buildAST = true; // uses CommonAST by default
+}
+
+expr
+ : mexpr (PLUS^ mexpr)* SEMI!
+ ;
+
+mexpr
+ : atom (STAR^ atom)*
+ ;
+
+atom: INT
+ ;
+
+class CalcLexer extends Lexer;
+
+WS : (' '
+ | '\t'
+ | '\n'
+ | '\r')
+ { _ttype = Token.SKIP; }
+ ;
+
+LPAREN: '('
+ ;
+
+RPAREN: ')'
+ ;
+
+STAR: '*'
+ ;
+
+PLUS: '+'
+ ;
+
+SEMI: ';'
+ ;
+
+protected
+DIGIT
+ : '0'..'9'
+ ;
+
+INT : (DIGIT)+
+ ;
+
+class CalcTreeWalker extends TreeParser;
+
+expr returns [float r]
+{
+ float a,b;
+ r=0;
+}
+ : #(PLUS a=expr b=expr) {r = a+b;}
+ | #(STAR a=expr b=expr) {r = a*b;}
+ | i:INT {r = (float)Integer.parseInt(i.getText());}
+ ;
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.xml
new file mode 100644
index 00000000..c136d061
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/antlr.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="antlr-test" basedir="." default="test1">
+
+ <import file="../../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="test1">
+ <antlr/>
+ </target>
+
+ <target name="test2">
+ <antlr target="antlr.g" outputdirectory="${output}"/>
+ </target>
+
+ <target name="test3" depends="setUp">
+ <antlr target="antlr.g" outputdirectory="${output}"/>
+ <fail>
+ <condition>
+ <!-- to prove each of these files exists;
+ ANTLR >= 2.7.6 leaves behind new (.smap) files as well. -->
+ <resourcecount when="ne" count="5">
+ <fileset dir="${output}">
+ <include name="CalcParserTokenTypes.txt" />
+ <include name="CalcParserTokenTypes.java" />
+ <include name="CalcLexer.java" />
+ <include name="CalcParser.java" />
+ <include name="CalcTreeWalker.java" />
+ </fileset>
+ </resourcecount>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="test4" depends="setUp">
+ <antlr target="java.g" outputdirectory="${output}"/>
+ <antlr dir="${output}" target="java.tree.g" outputdirectory="${output}"/>
+ </target>
+
+ <target name="test5" depends="setUp">
+ <antlr target="java.tree.g" outputdirectory="${output}" fork="yes"/>
+ </target>
+
+ <target name="test6" depends="setUp">
+ <antlr target="java.g" outputdirectory="${output}" />
+ <antlr dir="${output}"
+ target="java.tree.g"
+ outputdirectory="${output}"
+ fork="yes"/>
+ </target>
+
+ <target name="test7">
+ <antlr target="antlr.xml"/>
+ </target>
+
+ <target name="test8" depends="setUp">
+ <antlr target="extended.calc.g" outputdirectory="${output}" glib="non-existent-file.g"/>
+ </target>
+
+ <target name="test9" depends="setUp">
+ <!-- Note that I had to copy the grammars over to the temporary directory. -->
+ <!-- This is because ANTLR expects the super grammar and its generated java -->
+ <!-- files to be in the same directory, which won't be the case if I use -->
+ <!-- the output directory option. -->
+ <copy file="antlr.g" todir="${output}"/>
+ <copy file="extended.calc.g" todir="${output}"/>
+ <antlr target="${output}/antlr.g"/>
+ <antlr target="${output}/extended.calc.g" glib="${output}/antlr.g"/>
+ </target>
+
+ <target name="test10" depends="setUp">
+ <antlr target="antlr.g" outputdirectory="${output}" html="yes"/>
+ </target>
+
+ <target name="test11" depends="setUp">
+ <antlr target="antlr.g" outputdirectory="${output}" diagnostic="yes"/>
+ </target>
+
+ <target name="test12" depends="setUp">
+ <antlr target="antlr.g" outputdirectory="${output}" trace="yes"/>
+ </target>
+
+ <target name="test13" depends="setUp">
+ <antlr target="antlr.g" outputdirectory="${output}" traceLexer="yes" traceParser="yes" traceTreeWalker="yes"/>
+ </target>
+
+ <!-- test9 will have been run before that -->
+ <target name="noRecompile">
+ <antlr target="${output}/extended.calc.g" glib="${output}/antlr.g"/>
+ </target>
+
+ <!-- test9 will have been run before that -->
+ <target name="normalRecompile">
+ <touch file="${output}/extended.calc.g"/>
+ <antlr target="${output}/extended.calc.g" glib="${output}/antlr.g"/>
+ </target>
+
+ <!-- test9 will have been run before that -->
+ <target name="supergrammarChangeRecompile">
+ <touch file="${output}/antlr.g"/>
+ <antlr target="${output}/extended.calc.g" glib="${output}/antlr.g"/>
+ </target>
+
+ <target name="tearDown">
+ <delete dir="${output}" />
+ <delete file="../../../../../../CalcParserTokenTypes.txt"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/extended.calc.g b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/extended.calc.g
new file mode 100644
index 00000000..00c1993f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/extended.calc.g
@@ -0,0 +1,23 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+// Not really a great extension, but it is only a test after all!
+
+class ExtendedCalcParser extends CalcParser;
+
+exprList
+ : LPAREN (expr)* RPAREN
+ ;
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.g b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.g
new file mode 100644
index 00000000..e5857502
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.g
@@ -0,0 +1,1162 @@
+/** Java 1.2 Recognizer
+ *
+ * Run 'java Main <directory full of java files>'
+ *
+ * Contributing authors:
+ * John Mitchell johnm@non.net
+ * Terence Parr parrt@magelang.com
+ * John Lilley jlilley@empathy.com
+ * Scott Stanchfield thetick@magelang.com
+ * Markus Mohnen mohnen@informatik.rwth-aachen.de
+ * Peter Williams pwilliams@netdynamics.com
+ *
+ * Version 1.00 December 9, 1997 -- initial release
+ * Version 1.01 December 10, 1997
+ * fixed bug in octal def (0..7 not 0..8)
+ * Version 1.10 August 1998 (parrt)
+ * added tree construction
+ * fixed definition of WS,comments for mac,pc,unix newlines
+ * added unary plus
+ * Version 1.11 (Nov 20, 1998)
+ * Added "shutup" option to turn off last ambig warning.
+ * Fixed inner class def to allow named class defs as statements
+ * synchronized requires compound not simple statement
+ * add [] after builtInType DOT class in primaryExpression
+ * "const" is reserved but not valid..removed from modifiers
+ * Version 1.12 (Feb 2, 1999)
+ * Changed LITERAL_xxx to xxx in tree grammar.
+ * Updated java.g to use tokens {...} now for 2.6.0 (new feature).
+ *
+ * Version 1.13 (Apr 23, 1999)
+ * Didn't have (stat)? for else clause in tree parser.
+ * Didn't gen ASTs for interface extends. Updated tree parser too.
+ * Updated to 2.6.0.
+ * Version 1.14 (Jun 20, 1999)
+ * Allowed final/abstract on local classes.
+ * Removed local interfaces from methods
+ * Put instanceof precedence where it belongs...in relationalExpr
+ * It also had expr not type as arg; fixed it.
+ * Missing ! on SEMI in classBlock
+ * fixed: (expr) + "string" was parsed incorrectly (+ as unary plus).
+ * fixed: didn't like Object[].class in parser or tree parser
+ * Version 1.15 (Jun 26, 1999)
+ * Screwed up rule with instanceof in it. :( Fixed.
+ * Tree parser didn't like (expr).something; fixed.
+ * Allowed multiple inheritance in tree grammar. oops.
+ * Version 1.16 (August 22, 1999)
+ * Extending an interface built a wacky tree: had extra EXTENDS.
+ * Tree grammar didn't allow multiple superinterfaces.
+ * Tree grammar didn't allow empty var initializer: {}
+ * Version 1.17 (October 12, 1999)
+ * ESC lexer rule allowed 399 max not 377 max.
+ * java.tree.g didn't handle the expression of synchronized
+ * statements.
+ *
+ * BUG:
+ * Doesn't like boolean.class!
+ *
+ * class Test {
+ * public static void main( String args[] ) {
+ * if (boolean.class.equals(boolean.class)) {
+ * System.out.println("works");
+ * }
+ * }
+ * }
+ *
+ * This grammar is in the PUBLIC DOMAIN
+ */
+class JavaRecognizer extends Parser;
+options {
+ k = 2; // two token lookahead
+ exportVocab=Java; // Call its vocabulary "Java"
+ codeGenMakeSwitchThreshold = 2; // Some optimizations
+ codeGenBitsetTestThreshold = 3;
+ defaultErrorHandler = false; // Don't generate parser error handlers
+ buildAST = true;
+}
+
+tokens {
+ BLOCK; MODIFIERS; OBJBLOCK; SLIST; CTOR_DEF; METHOD_DEF; VARIABLE_DEF;
+ INSTANCE_INIT; STATIC_INIT; TYPE; CLASS_DEF; INTERFACE_DEF;
+ PACKAGE_DEF; ARRAY_DECLARATOR; EXTENDS_CLAUSE; IMPLEMENTS_CLAUSE;
+ PARAMETERS; PARAMETER_DEF; LABELED_STAT; TYPECAST; INDEX_OP;
+ POST_INC; POST_DEC; METHOD_CALL; EXPR; ARRAY_INIT;
+ IMPORT; UNARY_MINUS; UNARY_PLUS; CASE_GROUP; ELIST; FOR_INIT; FOR_CONDITION;
+ FOR_ITERATOR; EMPTY_STAT; FINAL="final"; ABSTRACT="abstract";
+}
+
+// Compilation Unit: In Java, this is a single file. This is the start
+// rule for this parser
+compilationUnit
+ : // A compilation unit starts with an optional package definition
+ ( packageDefinition
+ | /* nothing */
+ )
+
+ // Next we have a series of zero or more import statements
+ ( importDefinition )*
+
+ // Wrapping things up with any number of class or interface
+ // definitions
+ ( typeDefinition )*
+
+ EOF!
+ ;
+
+
+// Package statement: "package" followed by an identifier.
+packageDefinition
+ options {defaultErrorHandler = true;} // let ANTLR handle errors
+ : p:"package"^ {#p.setType(PACKAGE_DEF);} identifier SEMI!
+ ;
+
+
+// Import statement: import followed by a package or class name
+importDefinition
+ options {defaultErrorHandler = true;}
+ : i:"import"^ {#i.setType(IMPORT);} identifierStar SEMI!
+ ;
+
+// A type definition in a file is either a class or interface definition.
+typeDefinition
+ options {defaultErrorHandler = true;}
+ : m:modifiers!
+ ( classDefinition[#m]
+ | interfaceDefinition[#m]
+ )
+ | SEMI!
+ ;
+
+/** A declaration is the creation of a reference or primitive-type variable
+ * Create a separate Type/Var tree for each var in the var list.
+ */
+declaration!
+ : m:modifiers t:typeSpec[false] v:variableDefinitions[#m,#t]
+ {#declaration = #v;}
+ ;
+
+// A list of zero or more modifiers. We could have used (modifier)* in
+// place of a call to modifiers, but I thought it was a good idea to keep
+// this rule separate so they can easily be collected in a Vector if
+// someone so desires
+modifiers
+ : ( modifier )*
+ {#modifiers = #([MODIFIERS, "MODIFIERS"], #modifiers);}
+ ;
+
+
+// A type specification is a type name with possible brackets afterwards
+// (which would make it an array type).
+typeSpec[boolean addImagNode]
+ : classTypeSpec[addImagNode]
+ | builtInTypeSpec[addImagNode]
+ ;
+
+// A class type specification is a class type with possible brackets afterwards
+// (which would make it an array type).
+classTypeSpec[boolean addImagNode]
+ : identifier (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+ {
+ if ( addImagNode ) {
+ #classTypeSpec = #(#[TYPE,"TYPE"], #classTypeSpec);
+ }
+ }
+ ;
+
+// A builtin type specification is a builtin type with possible brackets
+// afterwards (which would make it an array type).
+builtInTypeSpec[boolean addImagNode]
+ : builtInType (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+ {
+ if ( addImagNode ) {
+ #builtInTypeSpec = #(#[TYPE,"TYPE"], #builtInTypeSpec);
+ }
+ }
+ ;
+
+// A type name. which is either a (possibly qualified) class name or
+// a primitive (builtin) type
+type
+ : identifier
+ | builtInType
+ ;
+
+// The primitive types.
+builtInType
+ : "void"
+ | "boolean"
+ | "byte"
+ | "char"
+ | "short"
+ | "int"
+ | "float"
+ | "long"
+ | "double"
+ ;
+
+// A (possibly-qualified) java identifier. We start with the first IDENT
+// and expand its name by adding dots and following IDENTS
+identifier
+ : IDENT ( DOT^ IDENT )*
+ ;
+
+identifierStar
+ : IDENT
+ ( DOT^ IDENT )*
+ ( DOT^ STAR )?
+ ;
+
+
+// modifiers for Java classes, interfaces, class/instance vars and methods
+modifier
+ : "private"
+ | "public"
+ | "protected"
+ | "static"
+ | "transient"
+ | "final"
+ | "abstract"
+ | "native"
+ | "threadsafe"
+ | "synchronized"
+// | "const" // reserved word; leave out
+ | "volatile"
+ ;
+
+
+// Definition of a Java class
+classDefinition![AST modifiers]
+ : "class" IDENT
+ // it _might_ have a superclass...
+ sc:superClassClause
+ // it might implement some interfaces...
+ ic:implementsClause
+ // now parse the body of the class
+ cb:classBlock
+ {#classDefinition = #(#[CLASS_DEF,"CLASS_DEF"],
+ modifiers,IDENT,sc,ic,cb);}
+ ;
+
+superClassClause!
+ : ( "extends" id:identifier )?
+ {#superClassClause = #(#[EXTENDS_CLAUSE,"EXTENDS_CLAUSE"],id);}
+ ;
+
+// Definition of a Java Interface
+interfaceDefinition![AST modifiers]
+ : "interface" IDENT
+ // it might extend some other interfaces
+ ie:interfaceExtends
+ // now parse the body of the interface (looks like a class...)
+ cb:classBlock
+ {#interfaceDefinition = #(#[INTERFACE_DEF,"INTERFACE_DEF"],
+ modifiers,IDENT,ie,cb);}
+ ;
+
+
+// This is the body of a class. You can have fields and extra semicolons,
+// That's about it (until you see what a field is...)
+classBlock
+ : LCURLY!
+ ( field | SEMI! )*
+ RCURLY!
+ {#classBlock = #([OBJBLOCK, "OBJBLOCK"], #classBlock);}
+ ;
+
+// An interface can extend several other interfaces...
+interfaceExtends
+ : (
+ e:"extends"!
+ identifier ( COMMA! identifier )*
+ )?
+ {#interfaceExtends = #(#[EXTENDS_CLAUSE,"EXTENDS_CLAUSE"],
+ #interfaceExtends);}
+ ;
+
+// A class can implement several interfaces...
+implementsClause
+ : (
+ i:"implements"! identifier ( COMMA! identifier )*
+ )?
+ {#implementsClause = #(#[IMPLEMENTS_CLAUSE,"IMPLEMENTS_CLAUSE"],
+ #implementsClause);}
+ ;
+
+// Now the various things that can be defined inside a class or interface...
+// Note that not all of these are really valid in an interface (constructors,
+// for example), and if this grammar were used for a compiler there would
+// need to be some semantic checks to make sure we're doing the right thing...
+field!
+ : // method, constructor, or variable declaration
+ mods:modifiers
+ ( h:ctorHead s:compoundStatement // constructor
+ {#field = #(#[CTOR_DEF,"CTOR_DEF"], mods, h, s);}
+
+ | cd:classDefinition[#mods] // inner class
+ {#field = #cd;}
+
+ | id:interfaceDefinition[#mods] // inner interface
+ {#field = #id;}
+
+ | t:typeSpec[false] // method or variable declaration(s)
+ ( IDENT // the name of the method
+
+ // parse the formal parameter declarations.
+ LPAREN! param:parameterDeclarationList RPAREN!
+
+ rt:returnTypeBrackersOnEndOfMethodHead[#t]
+
+ // get the list of exceptions that this method is declared to throw
+ (tc:throwsClause)?
+
+ ( s2:compoundStatement | SEMI )
+ {#field = #(#[METHOD_DEF,"METHOD_DEF"],
+ mods,
+ #(#[TYPE,"TYPE"],rt),
+ IDENT,
+ param,
+ tc,
+ s2);}
+ | v:variableDefinitions[#mods,#t] SEMI
+// {#field = #(#[VARIABLE_DEF,"VARIABLE_DEF"], v);}
+ {#field = #v;}
+ )
+ )
+
+ // "static { ... }" class initializer
+ | "static" s3:compoundStatement
+ {#field = #(#[STATIC_INIT,"STATIC_INIT"], s3);}
+
+ // "{ ... }" instance initializer
+ | s4:compoundStatement
+ {#field = #(#[INSTANCE_INIT,"INSTANCE_INIT"], s4);}
+ ;
+
+variableDefinitions[AST mods, AST t]
+ : variableDeclarator[getASTFactory().dupTree(mods),
+ getASTFactory().dupTree(t)]
+ ( COMMA!
+ variableDeclarator[getASTFactory().dupTree(mods),
+ getASTFactory().dupTree(t)]
+ )*
+ ;
+
+/** Declaration of a variable. This can be a class/instance variable,
+ * or a local variable in a method
+ * It can also include possible initialization.
+ */
+variableDeclarator![AST mods, AST t]
+ : id:IDENT d:declaratorBrackets[t] v:varInitializer
+ {#variableDeclarator = #(#[VARIABLE_DEF,"VARIABLE_DEF"], mods, #(#[TYPE,"TYPE"],d), id, v);}
+ ;
+
+declaratorBrackets[AST typ]
+ : {#declaratorBrackets=typ;}
+ (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+ ;
+
+varInitializer
+ : ( ASSIGN^ initializer )?
+ ;
+
+// This is an initializer used to set up an array.
+arrayInitializer
+ : lc:LCURLY^ {#lc.setType(ARRAY_INIT);}
+ ( initializer
+ (
+ // CONFLICT: does a COMMA after an initializer start a new
+ // initializer or start the option ',' at end?
+ // ANTLR generates proper code by matching
+ // the comma as soon as possible.
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ :
+ COMMA! initializer
+ )*
+ (COMMA!)?
+ )?
+ RCURLY!
+ ;
+
+
+// The two "things" that can initialize an array element are an expression
+// and another (nested) array initializer.
+initializer
+ : expression
+ | arrayInitializer
+ ;
+
+// This is the header of a method. It includes the name and parameters
+// for the method.
+// This also watches for a list of exception classes in a "throws" clause.
+ctorHead
+ : IDENT // the name of the method
+
+ // parse the formal parameter declarations.
+ LPAREN! parameterDeclarationList RPAREN!
+
+ // get the list of exceptions that this method is declared to throw
+ (throwsClause)?
+ ;
+
+// This is a list of exception classes that the method is declared to throw
+throwsClause
+ : "throws"^ identifier ( COMMA! identifier )*
+ ;
+
+
+returnTypeBrackersOnEndOfMethodHead[AST typ]
+ : {#returnTypeBrackersOnEndOfMethodHead = typ;}
+ (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+ ;
+
+// A list of formal parameters
+parameterDeclarationList
+ : ( parameterDeclaration ( COMMA! parameterDeclaration )* )?
+ {#parameterDeclarationList = #(#[PARAMETERS,"PARAMETERS"],
+ #parameterDeclarationList);}
+ ;
+
+// A formal parameter.
+parameterDeclaration!
+ : pm:parameterModifier t:typeSpec[false] id:IDENT
+ pd:parameterDeclaratorBrackets[#t]
+ {#parameterDeclaration = #(#[PARAMETER_DEF,"PARAMETER_DEF"],
+ pm, #([TYPE,"TYPE"],pd), id);}
+ ;
+
+parameterDeclaratorBrackets[AST t]
+ : {#parameterDeclaratorBrackets = t;}
+ (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+ ;
+
+parameterModifier
+ : (f:"final")?
+ {#parameterModifier = #(#[MODIFIERS,"MODIFIERS"], f);}
+ ;
+
+// Compound statement. This is used in many contexts:
+// Inside a class definition prefixed with "static":
+// it is a class initializer
+// Inside a class definition without "static":
+// it is an instance initializer
+// As the body of a method
+// As a completely indepdent braced block of code inside a method
+// it starts a new scope for variable definitions
+
+compoundStatement
+ : lc:LCURLY^ {#lc.setType(SLIST);}
+ // include the (possibly-empty) list of statements
+ (statement)*
+ RCURLY!
+ ;
+
+
+statement
+ // A list of statements in curly braces -- start a new scope!
+ : compoundStatement
+
+ // class definition
+ | classDefinition[#[MODIFIERS, "MODIFIERS"]]
+
+ // final class definition
+ | "final"! classDefinition[#(#[MODIFIERS, "MODIFIERS"],#[FINAL,"final"])]
+
+ // abstract class definition
+ | "abstract"! classDefinition[#(#[MODIFIERS, "MODIFIERS"],#[ABSTRACT,"abstract"])]
+
+ // declarations are ambiguous with "ID DOT" relative to expression
+ // statements. Must backtrack to be sure. Could use a semantic
+ // predicate to test symbol table to see what the type was coming
+ // up, but that's pretty hard without a symbol table ;)
+ | (declaration)=> declaration SEMI!
+
+ // An expression statement. This could be a method call,
+ // assignment statement, or any other expression evaluated for
+ // side-effects.
+ | expression SEMI!
+
+ // Attach a label to the front of a statement
+ | IDENT c:COLON^ {#c.setType(LABELED_STAT);} statement
+
+ // If-else statement
+ | "if"^ LPAREN! expression RPAREN! statement
+ (
+ // CONFLICT: the old "dangling-else" problem...
+ // ANTLR generates proper code matching
+ // as soon as possible. Hush warning.
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ :
+ "else"! statement
+ )?
+
+ // For statement
+ | "for"^
+ LPAREN!
+ forInit SEMI! // initializer
+ forCond SEMI! // condition test
+ forIter // updater
+ RPAREN!
+ statement // statement to loop over
+
+ // While statement
+ | "while"^ LPAREN! expression RPAREN! statement
+
+ // do-while statement
+ | "do"^ statement "while"! LPAREN! expression RPAREN! SEMI!
+
+ // get out of a loop (or switch)
+ | "break"^ (IDENT)? SEMI!
+
+ // do next iteration of a loop
+ | "continue"^ (IDENT)? SEMI!
+
+ // Return an expression
+ | "return"^ (expression)? SEMI!
+
+ // switch/case statement
+ | "switch"^ LPAREN! expression RPAREN! LCURLY!
+ ( casesGroup )*
+ RCURLY!
+
+ // exception try-catch block
+ | tryBlock
+
+ // throw an exception
+ | "throw"^ expression SEMI!
+
+ // synchronize a statement
+ | "synchronized"^ LPAREN! expression RPAREN! compoundStatement
+
+ // empty statement
+ | s:SEMI {#s.setType(EMPTY_STAT);}
+ ;
+
+
+casesGroup
+ : ( // CONFLICT: to which case group do the statements bind?
+ // ANTLR generates proper code: it groups the
+ // many "case"/"default" labels together then
+ // follows them with the statements
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ :
+ aCase
+ )+
+ caseSList
+ {#casesGroup = #([CASE_GROUP, "CASE_GROUP"], #casesGroup);}
+ ;
+
+aCase
+ : ("case"^ expression | "default") COLON!
+ ;
+
+caseSList
+ : (statement)*
+ {#caseSList = #(#[SLIST,"SLIST"],#caseSList);}
+ ;
+
+// The initializer for a for loop
+forInit
+ // if it looks like a declaration, it is
+ : ( (declaration)=> declaration
+ // otherwise it could be an expression list...
+ | expressionList
+ )?
+ {#forInit = #(#[FOR_INIT,"FOR_INIT"],#forInit);}
+ ;
+
+forCond
+ : (expression)?
+ {#forCond = #(#[FOR_CONDITION,"FOR_CONDITION"],#forCond);}
+ ;
+
+forIter
+ : (expressionList)?
+ {#forIter = #(#[FOR_ITERATOR,"FOR_ITERATOR"],#forIter);}
+ ;
+
+// an exception handler try/catch block
+tryBlock
+ : "try"^ compoundStatement
+ (handler)*
+ ( "finally"^ compoundStatement )?
+ ;
+
+
+// an exception handler
+handler
+ : "catch"^ LPAREN! parameterDeclaration RPAREN! compoundStatement
+ ;
+
+
+// expressions
+// Note that most of these expressions follow the pattern
+// thisLevelExpression :
+// nextHigherPrecedenceExpression
+// (OPERATOR nextHigherPrecedenceExpression)*
+// which is a standard recursive definition for a parsing an expression.
+// The operators in java have the following precedences:
+// lowest (13) = *= /= %= += -= <<= >>= >>>= &= ^= |=
+// (12) ?:
+// (11) ||
+// (10) &&
+// ( 9) |
+// ( 8) ^
+// ( 7) &
+// ( 6) == !=
+// ( 5) < <= > >=
+// ( 4) << >>
+// ( 3) +(binary) -(binary)
+// ( 2) * / %
+// ( 1) ++ -- +(unary) -(unary) ~ ! (type)
+// [] () (method call) . (dot -- identifier qualification)
+// new () (explicit parenthesis)
+//
+// the last two are not usually on a precedence chart; I put them in
+// to point out that new has a higher precedence than '.', so you
+// can validy use
+// new Frame().show()
+//
+// Note that the above precedence levels map to the rules below...
+// Once you have a precedence chart, writing the appropriate rules as below
+// is usually very straightfoward
+
+
+
+// the mother of all expressions
+expression
+ : assignmentExpression
+ {#expression = #(#[EXPR,"EXPR"],#expression);}
+ ;
+
+
+// This is a list of expressions.
+expressionList
+ : expression (COMMA! expression)*
+ {#expressionList = #(#[ELIST,"ELIST"], expressionList);}
+ ;
+
+
+// assignment expression (level 13)
+assignmentExpression
+ : conditionalExpression
+ ( ( ASSIGN^
+ | PLUS_ASSIGN^
+ | MINUS_ASSIGN^
+ | STAR_ASSIGN^
+ | DIV_ASSIGN^
+ | MOD_ASSIGN^
+ | SR_ASSIGN^
+ | BSR_ASSIGN^
+ | SL_ASSIGN^
+ | BAND_ASSIGN^
+ | BXOR_ASSIGN^
+ | BOR_ASSIGN^
+ )
+ assignmentExpression
+ )?
+ ;
+
+
+// conditional test (level 12)
+conditionalExpression
+ : logicalOrExpression
+ ( QUESTION^ assignmentExpression COLON! conditionalExpression )?
+ ;
+
+
+// logical or (||) (level 11)
+logicalOrExpression
+ : logicalAndExpression (LOR^ logicalAndExpression)*
+ ;
+
+
+// logical and (&&) (level 10)
+logicalAndExpression
+ : inclusiveOrExpression (LAND^ inclusiveOrExpression)*
+ ;
+
+
+// bitwise or non-short-circuiting or (|) (level 9)
+inclusiveOrExpression
+ : exclusiveOrExpression (BOR^ exclusiveOrExpression)*
+ ;
+
+
+// exclusive or (^) (level 8)
+exclusiveOrExpression
+ : andExpression (BXOR^ andExpression)*
+ ;
+
+
+// bitwise or non-short-circuiting and (&) (level 7)
+andExpression
+ : equalityExpression (BAND^ equalityExpression)*
+ ;
+
+
+// equality/inequality (==/!=) (level 6)
+equalityExpression
+ : relationalExpression ((NOT_EQUAL^ | EQUAL^) relationalExpression)*
+ ;
+
+
+// boolean relational expressions (level 5)
+relationalExpression
+ : shiftExpression
+ ( ( ( LT^
+ | GT^
+ | LE^
+ | GE^
+ )
+ shiftExpression
+ )*
+ | "instanceof"^ typeSpec[true]
+ )
+ ;
+
+
+// bit shift expressions (level 4)
+shiftExpression
+ : additiveExpression ((SL^ | SR^ | BSR^) additiveExpression)*
+ ;
+
+
+// binary addition/subtraction (level 3)
+additiveExpression
+ : multiplicativeExpression ((PLUS^ | MINUS^) multiplicativeExpression)*
+ ;
+
+
+// multiplication/division/modulo (level 2)
+multiplicativeExpression
+ : unaryExpression ((STAR^ | DIV^ | MOD^ ) unaryExpression)*
+ ;
+
+unaryExpression
+ : INC^ unaryExpression
+ | DEC^ unaryExpression
+ | MINUS^ {#MINUS.setType(UNARY_MINUS);} unaryExpression
+ | PLUS^ {#PLUS.setType(UNARY_PLUS);} unaryExpression
+ | unaryExpressionNotPlusMinus
+ ;
+
+unaryExpressionNotPlusMinus
+ : BNOT^ unaryExpression
+ | LNOT^ unaryExpression
+
+ | ( // subrule allows option to shut off warnings
+ options {
+ // "(int" ambig with postfixExpr due to lack of sequence
+ // info in linear approximate LL(k). It's ok. Shut up.
+ generateAmbigWarnings=false;
+ }
+ : // If typecast is built in type, must be numeric operand
+ // Also, no reason to backtrack if type keyword like int, float...
+ lpb:LPAREN^ {#lpb.setType(TYPECAST);} builtInTypeSpec[true] RPAREN!
+ unaryExpression
+
+ // Have to backtrack to see if operator follows. If no operator
+ // follows, it's a typecast. No semantic checking needed to parse.
+ // if it _looks_ like a cast, it _is_ a cast; else it's a "(expr)"
+ | (LPAREN classTypeSpec[true] RPAREN unaryExpressionNotPlusMinus)=>
+ lp:LPAREN^ {#lp.setType(TYPECAST);} classTypeSpec[true] RPAREN!
+ unaryExpressionNotPlusMinus
+
+ | postfixExpression
+ )
+ ;
+
+// qualified names, array expressions, method invocation, post inc/dec
+postfixExpression
+ : primaryExpression // start with a primary
+
+ ( // qualified id (id.id.id.id...) -- build the name
+ DOT^ ( IDENT
+ | "this"
+ | "class"
+ | newExpression
+ | "super" LPAREN ( expressionList )? RPAREN
+ )
+ // the above line needs a semantic check to make sure "class"
+ // is the _last_ qualifier.
+
+ // allow ClassName[].class
+ | ( lbc:LBRACK^ {#lbc.setType(ARRAY_DECLARATOR);} RBRACK! )+
+ DOT^ "class"
+
+ // an array indexing operation
+ | lb:LBRACK^ {#lb.setType(INDEX_OP);} expression RBRACK!
+
+ // method invocation
+ // The next line is not strictly proper; it allows x(3)(4) or
+ // x[2](4) which are not valid in Java. If this grammar were used
+ // to validate a Java program a semantic check would be needed, or
+ // this rule would get really ugly...
+ | lp:LPAREN^ {#lp.setType(METHOD_CALL);}
+ argList
+ RPAREN!
+ )*
+
+ // possibly add on a post-increment or post-decrement.
+ // allows INC/DEC on too much, but semantics can check
+ ( in:INC^ {#in.setType(POST_INC);}
+ | de:DEC^ {#de.setType(POST_DEC);}
+ | // nothing
+ )
+
+ // look for int.class and int[].class
+ | builtInType
+ ( lbt:LBRACK^ {#lbt.setType(ARRAY_DECLARATOR);} RBRACK! )*
+ DOT^ "class"
+ ;
+
+// the basic element of an expression
+primaryExpression
+ : IDENT
+ | newExpression
+ | constant
+ | "super"
+ | "true"
+ | "false"
+ | "this"
+ | "null"
+ | LPAREN! assignmentExpression RPAREN!
+ ;
+
+/** object instantiation.
+ * Trees are built as illustrated by the following input/tree pairs:
+ *
+ * new T()
+ *
+ * new
+ * |
+ * T -- ELIST
+ * |
+ * arg1 -- arg2 -- .. -- argn
+ *
+ * new int[]
+ *
+ * new
+ * |
+ * int -- ARRAY_DECLARATOR
+ *
+ * new int[] {1,2}
+ *
+ * new
+ * |
+ * int -- ARRAY_DECLARATOR -- ARRAY_INIT
+ * |
+ * EXPR -- EXPR
+ * | |
+ * 1 2
+ *
+ * new int[3]
+ * new
+ * |
+ * int -- ARRAY_DECLARATOR
+ * |
+ * EXPR
+ * |
+ * 3
+ *
+ * new int[1][2]
+ *
+ * new
+ * |
+ * int -- ARRAY_DECLARATOR
+ * |
+ * ARRAY_DECLARATOR -- EXPR
+ * | |
+ * EXPR 1
+ * |
+ * 2
+ *
+ */
+newExpression
+ : "new"^ type
+ ( LPAREN! argList RPAREN! (classBlock)?
+
+ //java 1.1
+ // Note: This will allow bad constructs like
+ // new int[4][][3] {exp,exp}.
+ // There needs to be a semantic check here...
+ // to make sure:
+ // a) [ expr ] and [ ] are not mixed
+ // b) [ expr ] and an init are not used together
+
+ | newArrayDeclarator (arrayInitializer)?
+ )
+ ;
+
+argList
+ : ( expressionList
+ | /*nothing*/
+ {#argList = #[ELIST,"ELIST"];}
+ )
+ ;
+
+newArrayDeclarator
+ : (
+ // CONFLICT:
+ // newExpression is a primaryExpression which can be
+ // followed by an array index reference. This is ok,
+ // as the generated code will stay in this loop as
+ // long as it sees an LBRACK (proper behavior)
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ :
+ lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);}
+ (expression)?
+ RBRACK!
+ )+
+ ;
+
+constant
+ : NUM_INT
+ | CHAR_LITERAL
+ | STRING_LITERAL
+ | NUM_FLOAT
+ ;
+
+
+//----------------------------------------------------------------------------
+// The Java scanner
+//----------------------------------------------------------------------------
+class JavaLexer extends Lexer;
+
+options {
+ exportVocab=Java; // call the vocabulary "Java"
+ testLiterals=false; // don't automatically test for literals
+ k=4; // four characters of lookahead
+}
+
+
+
+// OPERATORS
+QUESTION : '?' ;
+LPAREN : '(' ;
+RPAREN : ')' ;
+LBRACK : '[' ;
+RBRACK : ']' ;
+LCURLY : '{' ;
+RCURLY : '}' ;
+COLON : ':' ;
+COMMA : ',' ;
+//DOT : '.' ;
+ASSIGN : '=' ;
+EQUAL : "==" ;
+LNOT : '!' ;
+BNOT : '~' ;
+NOT_EQUAL : "!=" ;
+DIV : '/' ;
+DIV_ASSIGN : "/=" ;
+PLUS : '+' ;
+PLUS_ASSIGN : "+=" ;
+INC : "++" ;
+MINUS : '-' ;
+MINUS_ASSIGN : "-=" ;
+DEC : "--" ;
+STAR : '*' ;
+STAR_ASSIGN : "*=" ;
+MOD : '%' ;
+MOD_ASSIGN : "%=" ;
+SR : ">>" ;
+SR_ASSIGN : ">>=" ;
+BSR : ">>>" ;
+BSR_ASSIGN : ">>>=" ;
+GE : ">=" ;
+GT : ">" ;
+SL : "<<" ;
+SL_ASSIGN : "<<=" ;
+LE : "<=" ;
+LT : '<' ;
+BXOR : '^' ;
+BXOR_ASSIGN : "^=" ;
+BOR : '|' ;
+BOR_ASSIGN : "|=" ;
+LOR : "||" ;
+BAND : '&' ;
+BAND_ASSIGN : "&=" ;
+LAND : "&&" ;
+SEMI : ';' ;
+
+
+// Whitespace -- ignored
+WS : ( ' '
+ | '\t'
+ | '\f'
+ // handle newlines
+ | ( "\r\n" // Evil DOS
+ | '\r' // Macintosh
+ | '\n' // Unix (the right way)
+ )
+ { newline(); }
+ )
+ { _ttype = Token.SKIP; }
+ ;
+
+// Single-line comments
+SL_COMMENT
+ : "//"
+ (~('\n'|'\r'))* ('\n'|'\r'('\n')?)
+ {$setType(Token.SKIP); newline();}
+ ;
+
+// multiple-line comments
+ML_COMMENT
+ : "/*"
+ ( /* '\r' '\n' can be matched in one alternative or by matching
+ '\r' in one iteration and '\n' in another. I am trying to
+ handle any flavor of newline that comes in, but the language
+ that allows both "\r\n" and "\r" and "\n" to all be valid
+ newline is ambiguous. Consequently, the resulting grammar
+ must be ambiguous. I'm shutting this warning off.
+ */
+ options {
+ generateAmbigWarnings=false;
+ }
+ :
+ { LA(2)!='/' }? '*'
+ | '\r' '\n' {newline();}
+ | '\r' {newline();}
+ | '\n' {newline();}
+ | ~('*'|'\n'|'\r')
+ )*
+ "*/"
+ {$setType(Token.SKIP);}
+ ;
+
+
+// character literals
+CHAR_LITERAL
+ : '\'' ( ESC | ~'\'' ) '\''
+ ;
+
+// string literals
+STRING_LITERAL
+ : '"' (ESC|~('"'|'\\'))* '"'
+ ;
+
+
+// escape sequence -- note that this is protected; it can only be called
+// from another lexer rule -- it will not ever directly return a token to
+// the parser
+// There are various ambiguities hushed in this rule. The optional
+// '0'...'9' digit matches should be matched here rather than letting
+// them go back to STRING_LITERAL to be matched. ANTLR does the
+// right thing by matching immediately; hence, it's ok to shut off
+// the FOLLOW ambig warnings.
+protected
+ESC
+ : '\\'
+ ( 'n'
+ | 'r'
+ | 't'
+ | 'b'
+ | 'f'
+ | '"'
+ | '\''
+ | '\\'
+ | ('u')+ HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
+ | ('0'..'3')
+ (
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ : ('0'..'7')
+ (
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ : '0'..'7'
+ )?
+ )?
+ | ('4'..'7')
+ (
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ : ('0'..'9')
+ )?
+ )
+ ;
+
+
+// hexadecimal digit (again, note it's protected!)
+protected
+HEX_DIGIT
+ : ('0'..'9'|'A'..'F'|'a'..'f')
+ ;
+
+
+// a dummy rule to force vocabulary to be all characters (except special
+// ones that ANTLR uses internally (0 to 2)
+protected
+VOCAB
+ : '\3'..'\377'
+ ;
+
+
+// an identifier. Note that testLiterals is set to true! This means
+// that after we match the rule, we look in the literals table to see
+// if it's a literal or really an identifer
+IDENT
+ options {testLiterals=true;}
+ : ('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'$')*
+ ;
+
+
+// a numeric literal
+NUM_INT
+ {boolean isDecimal=false;}
+ : '.' {_ttype = DOT;}
+ (('0'..'9')+ (EXPONENT)? (FLOAT_SUFFIX)? { _ttype = NUM_FLOAT; })?
+ | ( '0' {isDecimal = true;} // special case for just '0'
+ ( ('x'|'X')
+ ( // hex
+ // the 'e'|'E' and float suffix stuff look
+ // like hex digits, hence the (...)+ doesn't
+ // know when to stop: ambig. ANTLR resolves
+ // it correctly by matching immediately. It
+ // is therefor ok to hush warning.
+ options {
+ warnWhenFollowAmbig=false;
+ }
+ : HEX_DIGIT
+ )+
+ | ('0'..'7')+ // octal
+ )?
+ | ('1'..'9') ('0'..'9')* {isDecimal=true;} // non-zero decimal
+ )
+ ( ('l'|'L')
+
+ // only check to see if it's a float if looks like decimal so far
+ | {isDecimal}?
+ ( '.' ('0'..'9')* (EXPONENT)? (FLOAT_SUFFIX)?
+ | EXPONENT (FLOAT_SUFFIX)?
+ | FLOAT_SUFFIX
+ )
+ { _ttype = NUM_FLOAT; }
+ )?
+ ;
+
+
+// a couple protected methods to assist in matching floating point numbers
+protected
+EXPONENT
+ : ('e'|'E') ('+'|'-')? ('0'..'9')+
+ ;
+
+
+protected
+FLOAT_SUFFIX
+ : 'f'|'F'|'d'|'D'
+ ;
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.tree.g b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.tree.g
new file mode 100644
index 00000000..f065c356
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/antlr/java.tree.g
@@ -0,0 +1,312 @@
+/** Java 1.2 AST Recognizer Grammar
+ *
+ * Author:
+ * Terence Parr parrt@jguru.com
+ *
+ * Version tracking now done with following ID:
+ *
+ * This grammar is in the PUBLIC DOMAIN
+ *
+ * BUGS
+ */
+class JavaTreeParser extends TreeParser;
+
+options {
+ importVocab = Java;
+}
+
+compilationUnit
+ : (packageDefinition)?
+ (importDefinition)*
+ (typeDefinition)*
+ ;
+
+packageDefinition
+ : #( PACKAGE_DEF identifier )
+ ;
+
+importDefinition
+ : #( IMPORT identifierStar )
+ ;
+
+typeDefinition
+ : #(CLASS_DEF modifiers IDENT extendsClause implementsClause objBlock )
+ | #(INTERFACE_DEF modifiers IDENT extendsClause interfaceBlock )
+ ;
+
+typeSpec
+ : #(TYPE typeSpecArray)
+ ;
+
+typeSpecArray
+ : #( ARRAY_DECLARATOR typeSpecArray )
+ | type
+ ;
+
+type: identifier
+ | builtInType
+ ;
+
+builtInType
+ : "void"
+ | "boolean"
+ | "byte"
+ | "char"
+ | "short"
+ | "int"
+ | "float"
+ | "long"
+ | "double"
+ ;
+
+modifiers
+ : #( MODIFIERS (modifier)* )
+ ;
+
+modifier
+ : "private"
+ | "public"
+ | "protected"
+ | "static"
+ | "transient"
+ | "final"
+ | "abstract"
+ | "native"
+ | "threadsafe"
+ | "synchronized"
+ | "const"
+ | "volatile"
+ ;
+
+extendsClause
+ : #(EXTENDS_CLAUSE (identifier)* )
+ ;
+
+implementsClause
+ : #(IMPLEMENTS_CLAUSE (identifier)* )
+ ;
+
+
+interfaceBlock
+ : #( OBJBLOCK
+ ( methodDecl
+ | variableDef
+ )*
+ )
+ ;
+
+objBlock
+ : #( OBJBLOCK
+ ( ctorDef
+ | methodDef
+ | variableDef
+ | typeDefinition
+ | #(STATIC_INIT slist)
+ | #(INSTANCE_INIT slist)
+ )*
+ )
+ ;
+
+ctorDef
+ : #(CTOR_DEF modifiers methodHead slist)
+ ;
+
+methodDecl
+ : #(METHOD_DEF modifiers typeSpec methodHead)
+ ;
+
+methodDef
+ : #(METHOD_DEF modifiers typeSpec methodHead (slist)?)
+ ;
+
+variableDef
+ : #(VARIABLE_DEF modifiers typeSpec variableDeclarator varInitializer)
+ ;
+
+parameterDef
+ : #(PARAMETER_DEF modifiers typeSpec IDENT )
+ ;
+
+objectinitializer
+ : #(INSTANCE_INIT slist)
+ ;
+
+variableDeclarator
+ : IDENT
+ | LBRACK variableDeclarator
+ ;
+
+varInitializer
+ : #(ASSIGN initializer)
+ |
+ ;
+
+initializer
+ : expression
+ | arrayInitializer
+ ;
+
+arrayInitializer
+ : #(ARRAY_INIT (initializer)*)
+ ;
+
+methodHead
+ : IDENT #( PARAMETERS (parameterDef)* ) (throwsClause)?
+ ;
+
+throwsClause
+ : #( "throws" (identifier)* )
+ ;
+
+identifier
+ : IDENT
+ | #( DOT identifier IDENT )
+ ;
+
+identifierStar
+ : IDENT
+ | #( DOT identifier (STAR|IDENT) )
+ ;
+
+slist
+ : #( SLIST (stat)* )
+ ;
+
+stat: typeDefinition
+ | variableDef
+ | expression
+ | #(LABELED_STAT IDENT stat)
+ | #("if" expression stat (stat)? )
+ | #( "for"
+ #(FOR_INIT (variableDef | elist)?)
+ #(FOR_CONDITION (expression)?)
+ #(FOR_ITERATOR (elist)?)
+ stat
+ )
+ | #("while" expression stat)
+ | #("do" stat expression)
+ | #("break" (IDENT)? )
+ | #("continue" (IDENT)? )
+ | #("return" (expression)? )
+ | #("switch" expression (caseGroup)*)
+ | #("throw" expression)
+ | #("synchronized" expression stat)
+ | tryBlock
+ | slist // nested SLIST
+ | EMPTY_STAT
+ ;
+
+caseGroup
+ : #(CASE_GROUP (#("case" expression) | "default")+ slist)
+ ;
+
+tryBlock
+ : #( "try" slist (handler)* (#("finally" slist))? )
+ ;
+
+handler
+ : #( "catch" parameterDef slist )
+ ;
+
+elist
+ : #( ELIST (expression)* )
+ ;
+
+expression
+ : #(EXPR expr)
+ ;
+
+expr: #(QUESTION expr expr expr) // trinary operator
+ | #(ASSIGN expr expr) // binary operators...
+ | #(PLUS_ASSIGN expr expr)
+ | #(MINUS_ASSIGN expr expr)
+ | #(STAR_ASSIGN expr expr)
+ | #(DIV_ASSIGN expr expr)
+ | #(MOD_ASSIGN expr expr)
+ | #(SR_ASSIGN expr expr)
+ | #(BSR_ASSIGN expr expr)
+ | #(SL_ASSIGN expr expr)
+ | #(BAND_ASSIGN expr expr)
+ | #(BXOR_ASSIGN expr expr)
+ | #(BOR_ASSIGN expr expr)
+ | #(LOR expr expr)
+ | #(LAND expr expr)
+ | #(BOR expr expr)
+ | #(BXOR expr expr)
+ | #(BAND expr expr)
+ | #(NOT_EQUAL expr expr)
+ | #(EQUAL expr expr)
+ | #(LT expr expr)
+ | #(GT expr expr)
+ | #(LE expr expr)
+ | #(GE expr expr)
+ | #(SL expr expr)
+ | #(SR expr expr)
+ | #(BSR expr expr)
+ | #(PLUS expr expr)
+ | #(MINUS expr expr)
+ | #(DIV expr expr)
+ | #(MOD expr expr)
+ | #(STAR expr expr)
+ | #(INC expr)
+ | #(DEC expr)
+ | #(POST_INC expr)
+ | #(POST_DEC expr)
+ | #(BNOT expr)
+ | #(LNOT expr)
+ | #("instanceof" expr expr)
+ | #(UNARY_MINUS expr)
+ | #(UNARY_PLUS expr)
+ | primaryExpression
+ ;
+
+primaryExpression
+ : IDENT
+ | #( DOT
+ ( expr
+ ( IDENT
+ | arrayIndex
+ | "this"
+ | "class"
+ | #( "new" IDENT elist )
+ )
+ | #(ARRAY_DECLARATOR type)
+ | builtInType ("class")?
+ )
+ )
+ | arrayIndex
+ | #(METHOD_CALL primaryExpression elist)
+ | #(TYPECAST typeSpec expr)
+ | newExpression
+ | constant
+ | "super"
+ | "true"
+ | "false"
+ | "this"
+ | "null"
+ | typeSpec // type name used with instanceof
+ ;
+
+arrayIndex
+ : #(INDEX_OP primaryExpression expression)
+ ;
+
+constant
+ : NUM_INT
+ | CHAR_LITERAL
+ | STRING_LITERAL
+ | NUM_FLOAT
+ ;
+
+newExpression
+ : #( "new" type
+ ( newArrayDeclarator (arrayInitializer)?
+ | elist
+ )
+ )
+
+ ;
+
+newArrayDeclarator
+ : #( ARRAY_DECLARATOR (newArrayDeclarator)? (expression)? )
+ ;
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/depend.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/depend.xml
new file mode 100644
index 00000000..8465bb02
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/depend.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="depend" basedir="." default="help">
+ <import file="../../../buildfiletest-base.xml"/>
+
+ <property name="tempsrc.dir" value="${output}/tempsrc.dir"/>
+ <property name="cache.dir" value="${output}/tempsrc.dir"/>
+ <property name="classes.dir" value="${output}/classes"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+
+ </target>
+
+ <property name="src1.dir" value="src1"/>
+ <property name="src2.dir" value="src2"/>
+ <property name="src3.dir" value="src3"/>
+ <property name="src4.dir" value="src4"/>
+ <property name="src5.dir" value="src5"/>
+
+ <target name="help">
+ <echo>This buildfile is used as part of Ant's test suite.</echo>
+ </target>
+
+ <target name="src1setup" depends="setUp">
+ <copy todir="${tempsrc.dir}">
+ <fileset dir="${src1.dir}"/>
+ </copy>
+ </target>
+
+ <target name="src2setup" depends="setUp">
+ <copy todir="${tempsrc.dir}">
+ <fileset dir="${src2.dir}"/>
+ </copy>
+ </target>
+
+ <target name="src3setup" depends="setUp">
+ <copy todir="${tempsrc.dir}">
+ <fileset dir="${src3.dir}"/>
+ </copy>
+ </target>
+
+ <target name="src4setup" depends="setUp">
+ <copy todir="${tempsrc.dir}">
+ <fileset dir="${src4.dir}"/>
+ </copy>
+ </target>
+
+ <target name="src5setup" depends="setUp">
+ <copy todir="${tempsrc.dir}">
+ <fileset dir="${src5.dir}"/>
+ </copy>
+ </target>
+
+ <target name="compile">
+ <mkdir dir="${classes.dir}"/>
+ <javac srcdir="${tempsrc.dir}" destdir="${classes.dir}"/>
+ </target>
+
+ <target name="testdirect">
+ <delete file="${tempsrc.dir}/C.java"/>
+ <copy file="${src1.dir}/C.java" tofile="${tempsrc.dir}/C.java"/>
+ <depend srcdir="${tempsrc.dir}" destdir="${classes.dir}"/>
+ <fileset id="result" dir="${classes.dir}"/>
+ </target>
+
+ <target name="testclosure">
+ <delete file="${tempsrc.dir}/C.java"/>
+ <copy file="${src1.dir}/C.java" tofile="${tempsrc.dir}/C.java"/>
+ <depend srcdir="${tempsrc.dir}" destdir="${classes.dir}" closure="yes"/>
+ <fileset id="result" dir="${classes.dir}"/>
+ </target>
+
+ <target name="testbasicset" depends="src1setup, compile">
+ <classfileset id="result" dir="${classes.dir}" rootclass="A"/>
+ </target>
+
+ <target name="testsmallset" depends="src1setup, compile">
+ <classfileset id="result" dir="${classes.dir}" rootclass="B"/>
+ </target>
+
+ <target name="testresourcecollection" depends="testsmallset">
+ <fail>
+ <condition>
+ <not>
+ <and>
+ <resourcecount count="2" refid="result" />
+ <resourcecount count="1">
+ <intersect>
+ <resources refid="result" />
+ <file file="${classes.dir}/B.class" />
+ </intersect>
+ </resourcecount>
+ <resourcecount count="1">
+ <intersect>
+ <resources refid="result" />
+ <file file="${classes.dir}/C.class" />
+ </intersect>
+ </resourcecount>
+ </and>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testcomboset" depends="src1setup, compile">
+ <classfileset id="result" dir="${classes.dir}" rootclass="B">
+ <include name="**/C.class"/>
+ </classfileset>
+ </target>
+
+ <target name="testbyreference" depends="src1setup, compile">
+ <classfileset id="classSet" dir="${classes.dir}" rootclass="A">
+ <include name="**/C.class"/>
+ </classfileset>
+ <jar destfile="${tempsrc.dir}/test.jar">
+ <fileset refid="classSet"/>
+ </jar>
+ </target>
+
+ <target name="testmethodparam" depends="src1setup, compile">
+ <classfileset id="result" dir="${classes.dir}" rootclass="E"/>
+ </target>
+
+ <target name="testinner">
+ <delete file="${tempsrc.dir}/B.java"/>
+ <copy file="${src2.dir}/B.java" tofile="${tempsrc.dir}/B.java"/>
+ <depend srcdir="${tempsrc.dir}" destdir="${classes.dir}" closure="yes"/>
+ <fileset id="result" dir="${classes.dir}"/>
+ </target>
+
+ <target name="testinnerinner">
+ <delete file="${tempsrc.dir}/B.java"/>
+ <copy file="${src3.dir}/B.java" tofile="${tempsrc.dir}/B.java"/>
+ <depend srcdir="${tempsrc.dir}" destdir="${classes.dir}" closure="yes"/>
+ <fileset id="result" dir="${classes.dir}"/>
+ </target>
+
+ <target name="testmethodparaminner" depends="src4setup, compile">
+ <classfileset id="result" dir="${classes.dir}" rootclass="test.MethodParam"/>
+ </target>
+
+ <target name="testnosource" depends="src1setup, compile">
+ <depend destdir="${classes.dir}" closure="yes"/>
+ </target>
+
+ <target name="testemptysource" depends="src1setup, compile">
+ <depend srcdir="" destdir="${classes.dir}" closure="yes"/>
+ </target>
+
+ <target name="testinnerclosure" depends="src4setup">
+ <mkdir dir="${classes.dir}"/>
+ <path id="path.compile">
+ <pathelement location="${classes.dir}"/>
+ </path>
+
+ <javac srcdir="${tempsrc.dir}" destdir="${classes.dir}"
+ classpathref="path.compile" fork="false" />
+
+ <depend srcdir="${tempsrc.dir}" destdir="${classes.dir}"
+ closure="yes" dump="yes"
+ classpathref="path.compile"/>
+
+ <fileset id="result" dir="${classes.dir}"/>
+ </target>
+
+ <target name="testcache" depends="src1setup, compile">
+ <depend cache="${cache.dir}" srcdir="${tempsrc.dir}"
+ destdir="${classes.dir}" closure="yes"/>
+ <depend cache="${cache.dir}" srcdir="${tempsrc.dir}"
+ destdir="${classes.dir}" closure="yes"/>
+ </target>
+
+ <target name="testnonpublic">
+ <delete file="${tempsrc.dir}/B.java"/>
+ <copy file="${src2.dir}/B.java" tofile="${tempsrc.dir}/B.java"/>
+ <depend srcdir="${tempsrc.dir}" destdir="${classes.dir}" closure="yes"/>
+ <fileset id="result" dir="${classes.dir}"/>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/A.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/A.java
new file mode 100644
index 00000000..dc6df231
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/A.java
@@ -0,0 +1,20 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class A extends B {
+ private D d = new D();
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/B.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/B.java
new file mode 100644
index 00000000..4be51f78
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/B.java
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class B extends C {
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/C.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/C.java
new file mode 100644
index 00000000..d2bfca9d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/C.java
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class C {
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/D.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/D.java
new file mode 100644
index 00000000..127de573
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/D.java
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class D {
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/E.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/E.java
new file mode 100644
index 00000000..0efd6134
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src1/E.java
@@ -0,0 +1,22 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class E {
+ E() {
+ System.out.println(A.class);
+ }
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/A.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/A.java
new file mode 100644
index 00000000..02b35be7
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/A.java
@@ -0,0 +1,21 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class A {
+ static private class Inner extends B {
+ }
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/B.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/B.java
new file mode 100644
index 00000000..bc7b7d24
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src2/B.java
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class B {
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/A.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/A.java
new file mode 100644
index 00000000..1d973b15
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/A.java
@@ -0,0 +1,23 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class A {
+ static private class Inner {
+ static private class Inner2 extends B {
+ }
+ }
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/B.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/B.java
new file mode 100644
index 00000000..bc7b7d24
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src3/B.java
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class B {
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/ContainsOnlyInner.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/ContainsOnlyInner.java
new file mode 100644
index 00000000..d00254b9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/ContainsOnlyInner.java
@@ -0,0 +1,24 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package test;
+
+public class ContainsOnlyInner {
+ void method1() {
+ System.out.println(Outer.Inner.class);
+ }
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/MethodParam.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/MethodParam.java
new file mode 100644
index 00000000..276f0163
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/MethodParam.java
@@ -0,0 +1,24 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package test;
+
+public class MethodParam {
+ void method1() {
+ System.out.print(ContainsOnlyInner.class);
+ }
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/Outer.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/Outer.java
new file mode 100644
index 00000000..0b709002
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src4/test/Outer.java
@@ -0,0 +1,23 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package test;
+
+public class Outer {
+ static class Inner {
+ }
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/A.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/A.java
new file mode 100644
index 00000000..19521a14
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/A.java
@@ -0,0 +1,22 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class A {
+ APrivate dependency = new APrivate();
+}
+
+class APrivate extends B {
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/B.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/B.java
new file mode 100644
index 00000000..bc7b7d24
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/depend/src5/B.java
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+public class B {
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.properties
new file mode 100644
index 00000000..4c970e7e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.properties
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+test.infile=true \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.xml
new file mode 100644
index 00000000..7b1b8bb8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/echoproperties.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" default="def" basedir=".">
+
+ <target name="def">
+ </target>
+
+ <target name="setup">
+ <property name="a.set" value="true" />
+ <property name="b.set" value="false" />
+ </target>
+
+ <target name="testEchoToLog" depends="setup">
+ <echoproperties />
+ </target>
+
+ <target name="testEchoWithEmptyPrefixToLog" depends="setup">
+ <echoproperties prefix=""/>
+ </target>
+
+ <target name="testEchoToLogXml" depends="setup">
+ <echoproperties format="xml" />
+ </target>
+
+ <target name="testReadAndEchoToLog" depends="setup">
+ <echoproperties srcfile="echoproperties.properties" />
+ </target>
+
+ <target name="testReadBadFile" depends="setup">
+ <echoproperties srcfile="." />
+ </target>
+
+ <target name="testReadBadFileFail" depends="setup">
+ <echoproperties srcfile="." failonerror="yes" />
+ </target>
+
+ <target name="testReadBadFileNoFail" depends="setup">
+ <echoproperties srcfile="." failonerror="no" />
+ </target>
+
+ <target name="testEchoToBadFile" depends="setup">
+ <echoproperties destfile="." />
+ </target>
+
+ <target name="testEchoToBadFileFail" depends="setup">
+ <echoproperties destfile="." failonerror="yes" />
+ </target>
+
+ <target name="testEchoToBadFileNoFail" depends="setup">
+ <echoproperties destfile="." failonerror="no" />
+ </target>
+
+ <target name="testEchoToGoodFile" depends="setup">
+ <echoproperties destfile="test.properties" />
+ </target>
+
+ <target name="testEchoToGoodFileXml" depends="setup">
+ <echoproperties destfile="test.xml" format="xml" />
+ </target>
+
+ <target name="testEchoToGoodFileFail" depends="setup">
+ <echoproperties destfile="test.properties" failonerror="yes" />
+ </target>
+
+ <target name="testEchoToGoodFileNoFail" depends="setup">
+ <echoproperties destfile="test.properties" failonerror="no" />
+ </target>
+
+ <target name="testEchoPrefix" depends="setup">
+ <echoproperties destfile="test-prefix.properties" prefix="a." />
+ </target>
+
+ <target name="testEchoPrefixAsPropertyset" depends="setup">
+ <echoproperties destfile="test-prefix.properties">
+ <propertyset>
+ <propertyref prefix="a."/>
+ </propertyset>
+ </echoproperties>
+ </target>
+
+ <target name="testEchoPrefixAsNegatedPropertyset" depends="setup">
+ <echoproperties destfile="test-prefix.properties">
+ <propertyset negate="true">
+ <propertyref prefix="b."/>
+ </propertyset>
+ </echoproperties>
+ </target>
+
+ <target name="testEchoPrefixAsDoublyNegatedPropertyset" depends="setup">
+ <echoproperties destfile="test-prefix.properties">
+ <propertyset negate="true">
+ <propertyset negate="true">
+ <propertyref prefix="a."/>
+ </propertyset>
+ </propertyset>
+ </echoproperties>
+ </target>
+
+ <target name="testWithPrefixAndRegex" depends="setup">
+ <echoproperties prefix="ant." regex=".*ant.*"/>
+ </target>
+
+ <target name="testWithEmptyPrefixAndRegex" depends="setup">
+ <echoproperties prefix="" regex=""/>
+ </target>
+
+ <target name="testWithRegex" depends="setup">
+ <echoproperties regex=".*ant.*"/>
+ </target>
+
+ <target name="cleanup">
+ <delete file="test.properties" failonerror="no" />
+ <delete file="test-prefix.properties" failonerror="no" />
+ <delete file="test.xml" failonerror="no" />
+ </target>
+
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/expected/de/template.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/expected/de/template.txt
new file mode 100644
index 00000000..9a7af4e2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/expected/de/template.txt
@@ -0,0 +1 @@
+Diese ist eine Demo Datei für die translate_Aufgabe @missing_token@.
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/resources_ger_DE.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/resources_ger_DE.properties
new file mode 100644
index 00000000..7efe9b0a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/resources_ger_DE.properties
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+This=Diese
+is=ist
+a=eine
+demo=Demo
+file=Datei
+#note for people understanding german
+# \u00fc = u umlaut
+for=für
+the=die
+_task=_Aufgabe
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/template.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/template.txt
new file mode 100644
index 00000000..cda413bd
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/input/template.txt
@@ -0,0 +1 @@
+@This@ @is@ @a@ @demo@ @file@ @for@ @the@ translate@_task@ @missing_token@.
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/translate.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/translate.xml
new file mode 100644
index 00000000..e6debd50
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/i18n/translate/translate.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="translate-test" default="test1" basedir=".">
+ <property name="input.dir" value="input"/>
+ <property name="expected.dir" value="expected"/>
+ <import file="../../../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}/de"/>
+ </target>
+
+ <target name="test1" depends="setUp">
+ <translate toDir="${output}/de"
+ starttoken="@"
+ endtoken="@"
+ bundle="${input.dir}/resources"
+ bundlecountry="DE"
+ bundlelanguage="ger"
+ forceoverwrite="yes"
+ srcencoding="ISO8859_1"
+ destencoding="ISO8859_1"
+ bundleencoding="Cp1252">
+ <fileset dir="${input.dir}">
+ <include name="template.txt"/>
+ </fileset>
+ </translate>
+ </target>
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/image.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/image.xml
new file mode 100644
index 00000000..2fefa04c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/image.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="image-test" default="main" basedir=".">
+
+ <import file="../../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ <property name="src.dir" location="${basedir}/src"/>
+ </target>
+
+ <target name="main" depends="testSimpleScale">
+ </target>
+
+ <!-- this should produce a single file in the dest dir -->
+ <target name="testSimpleScale" depends="setUp">
+ <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="no" failonerror="no">
+ <scale width="300" proportions="width"/>
+ </image>
+ </target>
+
+ <!-- this should put some text in the log -->
+ <target name="testEchoToLog" depends="setUp">
+ <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="no" failonerror="no">
+ <scale width="300" proportions="width"/>
+ </image>
+ </target>
+
+ <!-- this should produce a single file in the dest dir -->
+ <target name="testFailOnError" depends="setUp">
+ <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="no" failonerror="yes">
+ <scale width="300" proportions="width"/>
+ </image>
+ </target>
+
+ <!-- this should produce a single file in the dest dir, overwriting any existing file -->
+ <target name="testOverwriteTrue" depends="setUp">
+ <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="true" failonerror="no">
+ <scale width="300" proportions="width"/>
+ </image>
+ </target>
+
+ <!-- this should not overwrite the existing file -->
+ <target name="testOverwriteFalse" depends="setUp">
+ <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="false" failonerror="no">
+ <scale width="300" proportions="width"/>
+ </image>
+ </target>
+
+ <target name="testSimpleScaleWithMapper" depends="setUp">
+ <image includes="*.jpg" srcdir="${src.dir}"
+ destdir="${output}" overwrite="no" failonerror="no">
+ <scale width="300" proportions="width"/>
+ <globmapper from="*" to="scaled-*"/>
+ </image>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/badimage.jpg b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/badimage.jpg
new file mode 100644
index 00000000..43a786e1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/badimage.jpg
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/largeimage.jpg b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/largeimage.jpg
new file mode 100644
index 00000000..91040552
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/image/src/largeimage.jpg
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/build.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/build.xml
new file mode 100644
index 00000000..ea70b9e5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/build.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="no">
+
+ <import file="../../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <property name="in" location="input"/>
+
+ <target name="no">
+ <fail>For tests only</fail>
+ </target>
+
+ <target name="compile" depends="setUp">
+ <javac srcdir="${in}" destdir="${output}"/>
+ </target>
+
+ <target name="simple-compile" depends="compile">
+ <javah destdir="${output}">
+ <class name="org.example.Foo"/>
+ <classpath>
+ <pathelement location="${output}"/>
+ </classpath>
+ </javah>
+ </target>
+
+ <target name="test-fileset" depends="compile">
+ <javah destdir="${output}">
+ <fileset dir="${output}">
+ <include name="**/*.class"/>
+ </fileset>
+ <classpath>
+ <pathelement location="${output}"/>
+ </classpath>
+ </javah>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/input/org/example/Foo.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/input/org/example/Foo.java
new file mode 100644
index 00000000..59d03f70
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/javah/input/org/example/Foo.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.example;
+
+public class Foo {
+
+ public Foo() {}
+
+ public native String bar(Object baz);
+
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jdepend/jdepend.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jdepend/jdepend.xml
new file mode 100644
index 00000000..8418226b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jdepend/jdepend.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <property name="testclasses" location="../../../../../../build/testcases"/>
+
+ <path id="all-test-classes.id">
+ <pathelement location="../../../../build/testcases" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <path id="example-classes.id">
+ <pathelement location="${testclasses}/org/apache/tools/ant/util/facade" />
+ </path>
+
+ <path id="test-classes.id">
+ <pathelement location="${testclasses}" />
+ </path>
+
+ <target name="simple">
+ <jdepend>
+ <classespath refid="example-classes.id"/>
+ </jdepend>
+ </target>
+
+ <target name="xml">
+ <jdepend format="xml">
+ <classespath refid="example-classes.id"/>
+ </jdepend>
+ </target>
+
+ <target name="fork">
+ <jdepend fork="yes" includeruntime="yes">
+ <classespath refid="example-classes.id"/>
+ </jdepend>
+ </target>
+
+ <target name="fork-xml">
+ <jdepend fork="yes" format="xml" includeruntime="yes">
+ <classespath refid="example-classes.id"/>
+ </jdepend>
+ </target>
+
+ <target name="fork-timeout">
+ <jdepend fork="yes" timeout="10" includeruntime="yes">
+ <classespath refid="test-classes.id"/>
+ </jdepend>
+ </target>
+
+ <target name="fork-timeout-not">
+ <jdepend fork="yes" timeout="100000" includeruntime="yes">
+ <classespath refid="example-classes.id"/>
+ </jdepend>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/1nvalid-classname.jsp b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/1nvalid-classname.jsp
new file mode 100644
index 00000000..f5b42e2b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/1nvalid-classname.jsp
@@ -0,0 +1,25 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<%@ page language="java" %>
+<html>
+<head/>
+<body>
+
+my name is <%= this.getClass().getName() %>
+
+</body>
+</html>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/WEB-INF/web.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/WEB-INF/web.xml
new file mode 100644
index 00000000..2ef199d0
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/WEB-INF/web.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
+ "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
+<web-app/>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/default.jsp b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/default.jsp
new file mode 100644
index 00000000..c7296b2c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/default.jsp
@@ -0,0 +1,25 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<%@ page language="java" %>
+<html>
+<head/>
+<body>
+
+It is now <%= System.currentTimeMillis() %>
+
+</body>
+</html>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/missing_tld.jsp b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/missing_tld.jsp
new file mode 100644
index 00000000..b837fb1f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/missing_tld.jsp
@@ -0,0 +1,32 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<%@ page language="java" %>
+<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
+<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
+<%@ taglib uri="/WEB-INF/tlds/struts-template.tld" prefix="template" %>
+<html:html locale="true">
+<head>
+<title>shouldnt compile</title>
+<html:base/>
+</head>
+<body>
+
+This page should not compile because refers to TLDs that arent around.
+
+</body>
+
+</html:html>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/simple.jsp b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/simple.jsp
new file mode 100644
index 00000000..c7296b2c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/simple.jsp
@@ -0,0 +1,25 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<%@ page language="java" %>
+<html>
+<head/>
+<body>
+
+It is now <%= System.currentTimeMillis() %>
+
+</body>
+</html>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/uriroot.jsp b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/uriroot.jsp
new file mode 100644
index 00000000..c7296b2c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/uriroot.jsp
@@ -0,0 +1,25 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<%@ page language="java" %>
+<html>
+<head/>
+<body>
+
+It is now <%= System.currentTimeMillis() %>
+
+</body>
+</html>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/xml.jsp b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/xml.jsp
new file mode 100644
index 00000000..7bb9e49c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jsp/xml.jsp
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- :mode=xml:indentSize=2 -->
+<!-- note the lack of a language setting here. crimson whined when ISO-8859-1 was set,
+ that it thought it was loading a file of type ISO_8859_1 and
+ so there was a mismatch, even though the mismatch is only
+ between hyphen types -->
+<jsp:root
+ xmlns:jsp="http://java.sun.com/JSP/Page"
+ version="1.2"
+ >
+<jsp:directive.page language="java" />
+<jsp:directive.page contentType="application/xml" />
+<timestamp>
+<jsp:expression>System.currentTimeMillis()</jsp:expression>
+</timestamp>
+</jsp:root>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jspc.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jspc.xml
new file mode 100644
index 00000000..f1207908
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/jspc.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="jspc-test" default="main" basedir=".">
+
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ <property name="jsp.dir" location="jsp"/>
+ <property name="jsp.output.dir" location="${output}"/>
+ <property name="jsp.verbosity" value="3"/>
+ <property name="jsp.compiler" value="jasper41"/>
+ <mkdir dir="${jsp.output.dir}"/>
+ </target>
+
+ <target name="main" depends="testSimple">
+ </target>
+
+
+ <!-- this should fail -->
+ <!-- it should not create an output file, but it does, which needs
+ cleanup -->
+ <target name="testNoTld" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ srcdir="${jsp.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <include
+ name="missing_tld.jsp"/>
+ </jspc>
+ </target>
+
+ <!-- this should compile to simple.java -->
+ <!-- also, stick to the default compiler here to ensure it still works-->
+ <target name="testSimple" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ srcdir="${jsp.dir}"
+ verbose="${jsp.verbosity}">
+ <include
+ name="simple.jsp"/>
+ </jspc>
+ </target>
+
+ <!-- this should compile to uriroot.java -->
+ <target name="testUriroot" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ uriroot="${jsp.dir}"
+ srcdir="${jsp.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <include
+ name="uriroot.jsp"/>
+ </jspc>
+ </target>
+
+ <!-- this should compile an xml format jsp page to xml.java -->
+ <target name="testXml" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ uriroot="${jsp.dir}"
+ srcdir="${jsp.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <include name="xml.jsp"/>
+ </jspc>
+ </target>
+
+ <!-- this should compile default.jsp to mangled(%default).java -->
+ <target name="testKeyword" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ srcdir="${jsp.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <include
+ name="default.jsp"/>
+ </jspc>
+ </target>
+
+ <!-- this should compile default.jsp to mangled(%default).java -->
+ <target name="testInvalidClassname" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ srcdir="${jsp.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <include
+ name="1nvalid-classname.jsp"/>
+ </jspc>
+ </target>
+
+ <!-- non jsp pages should be ignored -->
+ <target name="testNotAJspFile" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ srcdir="${jsp.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <include
+ name="wrong_type.txt"/>
+ </jspc>
+ </target>
+
+ <!-- test for webapp compilation -->
+ <target name="testWebapp" depends="setUp">
+ <jspc
+ destdir="${jsp.output.dir}"
+ compiler="${jsp.compiler}"
+ verbose="${jsp.verbosity}">
+ <webapp basedir="${jsp.dir}"/>
+ </jspc>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit.xml
new file mode 100644
index 00000000..cc66e20e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit.xml
@@ -0,0 +1,361 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="junit-test" basedir="." default="outputTests">
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <property name="showoutput" value="false" />
+ <path id="test">
+ <pathelement path="${java.class.path}" />
+ <pathelement location="../../../../../build/testcases" />
+ </path>
+
+ <target name="testForkedOutput">
+ <junit fork="yes" haltonerror="true" haltonfailure="true"
+ showoutput="${showoutput}">
+ <test name="org.example.junit.Output" />
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="testNonForkedOutput">
+ <junit fork="false" haltonerror="true" haltonfailure="true"
+ showoutput="${showoutput}">
+ <test name="org.example.junit.Output" />
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="testForkedThreadedOutput">
+ <junit fork="yes" haltonerror="true" haltonfailure="true"
+ showoutput="${showoutput}">
+ <test name="org.example.junit.ThreadedOutput" />
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="testNonForkedThreadedOutput">
+ <junit fork="false" haltonerror="true" haltonfailure="true"
+ showoutput="${showoutput}">
+ <test name="org.example.junit.ThreadedOutput" />
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="outputTests"
+ depends="testForkedOutput,testNonForkedOutput,testForkedThreadedOutput,testNonForkedThreadedOutput" />
+
+ <target name="crash">
+ <junit fork="true" errorproperty="crashed">
+ <test name="org.apache.tools.ant.taskdefs.optional.junit.VmCrash"/>
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="nocrash">
+ <junit fork="true" errorproperty="crashed">
+ <test name="org.apache.tools.ant.taskdefs.optional.junit.NoVmCrash"/>
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="timeout">
+ <junit fork="true" errorproperty="timeout" timeout="1000">
+ <test name="org.apache.tools.ant.taskdefs.optional.junit.Sleeper"/>
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="notimeout">
+ <junit fork="true" errorproperty="timeout" timeout="15000">
+ <test name="org.apache.tools.ant.taskdefs.optional.junit.Sleeper"/>
+ <classpath refid="test" />
+ </junit>
+ </target>
+
+ <target name="capture" depends="setUp">
+ <property name="fork" value="false"/>
+ <junit fork="${fork}">
+ <test
+ name="org.apache.tools.ant.taskdefs.optional.junit.Printer"
+ todir="${output}"
+ outfile="testlog"/>
+ <formatter type="plain"/>
+ <classpath refid="test"/>
+ </junit>
+ </target>
+
+ <target name="captureToSummary">
+ <property name="fork" value="true"/>
+ <property name="enableEvents" value="false"/>
+ <junit fork="${fork}" printSummary="withOutAndErr"
+ enableTestListenerEvents="${enableEvents}">
+ <test name="org.apache.tools.ant.taskdefs.optional.junit.Printer"/>
+ <classpath refid="test"/>
+ </junit>
+ </target>
+
+ <target name="testBatchTestForkOnceToDir" depends="setUp">
+ <junit fork="true" forkmode="once">
+ <formatter type="xml"/>
+ <classpath refid="test"/>
+ <batchtest todir="${output}">
+ <fileset dir="../../../../tests/junit">
+ <include
+ name="org/apache/tools/ant/taskdefs/optional/junit/*Test.java"/>
+ <!-- tests remove out-dir on tearDown -->
+ <exclude name="**/JUnitTestListenerTest.java"/>
+ <exclude name="**/JUnitTaskTest.java"/>
+ <exclude name="**/JUnitReportTest.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <!-- Bugzilla Report 32973 -->
+ <target name="testBatchTestForkOnceExtension">
+ <mkdir dir="${output}"/>
+ <junit fork="true" forkmode="once">
+ <formatter type="xml" extension=".foo"/>
+ <classpath refid="test"/>
+ <batchtest todir="${output}">
+ <fileset dir="../../../../tests/junit">
+ <include
+ name="org/apache/tools/ant/taskdefs/optional/junit/*Test.java"/>
+ <!-- tests remove out-dir on tearDown -->
+ <exclude name="**/JUnitTestListenerTest.java"/>
+ <exclude name="**/JUnitTaskTest.java"/>
+ <exclude name="**/JUnitReportTest.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="testBatchTestForkOnceCustomFormatter">
+ <mkdir dir="${output}"/>
+ <junit fork="true" forkmode="once">
+ <formatter extension="foo"
+ classname="org.apache.tools.ant.taskdefs.optional.junit.TestFormatter"/>
+ <classpath refid="test"/>
+ <batchtest todir="${output}">
+ <fileset dir="../../../../tests/junit">
+ <include
+ name="org/apache/tools/ant/taskdefs/optional/junit/*Test.java"/>
+ <!-- tests remove out-dir on tearDown -->
+ <exclude name="**/JUnitTestListenerTest.java"/>
+ <exclude name="**/JUnitTaskTest.java"/>
+ <exclude name="**/JUnitReportTest.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="failureRecorder.prepare">
+ <property name="tmp.dir" value="${output}"/>
+ <mkdir dir="${tmp.dir}/org"/>
+ <echo file="${tmp.dir}/A.java">
+ import junit.framework.*;
+ public class A extends TestCase {
+ public A(String s) { super(s); }
+ public void test01() { System.out.println("A.test01"); }
+ public void test02() { System.out.println("A.test02"); fail(); }
+ public void test03() { System.out.println("A.test03"); fail(); }
+ }
+ </echo>
+ <echo file="${tmp.dir}/B.java">
+ import junit.framework.*;
+ public class B extends TestCase {
+ public B(String s) { super(s); }
+ public void test04() { System.out.println("B.test04"); fail(); }
+ public void test05() { System.out.println("B.test05"); }
+ public void test06() { System.out.println("B.test06"); }
+ }
+ </echo>
+ <echo file="${tmp.dir}/C.java">
+ import junit.framework.*;
+ public class C extends TestCase {
+ public C(String s) { super(s); }
+ public void test07() { System.out.println("C.test07"); }
+ public void test08() { System.out.println("C.test08"); }
+ public void test09() { System.out.println("C.test09"); }
+ }
+ </echo>
+ <echo file="${tmp.dir}/org/D.java">
+ package org;
+ import junit.framework.*;
+ public class D extends TestCase {
+ public D(String s) { super(s); }
+ public void test10() { System.out.println("D.test10"); fail(); }
+ }
+ </echo>
+ <javac srcdir="${tmp.dir}" destdir="${tmp.dir}"/>
+ </target>
+
+ <target name="failureRecorder.internal">
+ <property name="tmp.dir" value="${output}"/>
+ <delete>
+ <fileset dir="${tmp.dir}" includes="FailedTests*.class"/>
+ </delete>
+ <!-- compile the FailedTests class if present -->
+ <javac srcdir="${tmp.dir}" destdir="${tmp.dir}"/>
+ <available file="${tmp.dir}/FailedTests.class" property="hasFailingTests"/>
+
+ <property name="ant.junit.failureCollector" value="${tmp.dir}/FailedTests"/>
+ <junit haltonerror="false" haltonfailure="false">
+ <classpath>
+ <pathelement location="${tmp.dir}"/>
+ </classpath>
+ <batchtest todir="${tmp.dir}" unless="hasFailingTests">
+ <fileset dir="${tmp.dir}" includes="**/*.java" excludes="**/FailedTests.*"/>
+ <!-- for initial creation of the FailingTests.java -->
+ <formatter type="failure"/>
+ <!-- I want to see something ... -->
+ <formatter type="plain" usefile="false"/>
+ </batchtest>
+ <test name="FailedTests" if="hasFailingTests" todir="${tmp.dir}">
+ <!-- update the FailingTests.java -->
+ <formatter type="failure"/>
+ <!-- again, I want to see something -->
+ <formatter type="plain" usefile="false"/>
+ </test>
+ </junit>
+ </target>
+
+ <target name="failureRecorder.runtest">
+ <ant target="failureRecorder.internal"
+ antfile="junit.xml"
+ inheritAll="false"
+ inheritRefs="false"
+ />
+ </target>
+
+ <target name="failureRecorder.fixing">
+ <property name="tmp.dir" value="${output}"/>
+ <echo file="${tmp.dir}/A.java">
+ import junit.framework.*;
+ public class A extends TestCase {
+ public A(String s) { super(s); }
+ public void test01() { System.out.println("A.test01"); }
+ public void test02() { System.out.println("A.test02"); }
+ public void test03() { System.out.println("A.test03"); }
+ }
+ </echo>
+ </target>
+
+ <!-- Bugzilla Issue 45411 -->
+ <target name="testMultilineAssertsNoFork">
+ <junit>
+ <test name="org.example.junit.MultilineAsserts"/>
+ <classpath refid="test"/>
+ </junit>
+ </target>
+
+ <!-- Bugzilla Issue 45411 -->
+ <target name="testMultilineAssertsFork">
+ <junit fork="true">
+ <test name="org.example.junit.MultilineAsserts"/>
+ <classpath refid="test"/>
+ </junit>
+ </target>
+
+ <!-- JUnit4 Ignore and Assume for skipping tests -->
+ <target name="testSkippableTests">
+ <mkdir dir="${output}"/>
+ <junit>
+ <formatter type="xml"/>
+ <classpath refid="test"/>
+ <batchtest todir="${output}">
+ <fileset dir="../../../../tests/junit">
+ <include name="org/example/junit/JUnit4Skippable.java"/>
+ <!-- tests remove out-dir on tearDown -->
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+
+ <!-- Skipping classes that are not tests -->
+ <target name="testNonTests">
+ <mkdir dir="${output}"/>
+ <junit>
+ <formatter type="xml"/>
+ <classpath refid="test"/>
+ <batchtest todir="${output}" skipNonTests="true">
+ <fileset dir="../../../../tests/junit">
+ <include name="org/example/junit/*Missed.java"/>
+ <!-- tests remove out-dir on tearDown -->
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <!-- Not skipping classes that are not tests -->
+ <target name="testNonTestsRun">
+ <mkdir dir="${output}"/>
+ <junit>
+ <formatter type="xml"/>
+ <classpath refid="test"/>
+ <batchtest todir="${output}" skipNonTests="false">
+ <fileset dir="../../../../tests/junit">
+ <include name="org/example/junit/*Missed.java"/>
+ <!-- tests remove out-dir on tearDown -->
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="testTestMethods" >
+ <property name="tmp.dir" value="${output}"/>
+ <echo file="${tmp.dir}/T1.java">public class T1 extends
+ junit.framework.TestCase {
+ public void testOK() {}
+ public void testBad() {throw new RuntimeException("failed");}
+ }</echo>
+ <echo file="${tmp.dir}/T2.java">
+ import org.junit.Test;
+ public class T2 {
+ @Test
+ public void ok() {}
+ @Test
+ public void bad() {
+ throw new RuntimeException("failed");}
+ }</echo>
+ <available property="jdk1.6+" classname="java.net.CookieStore"/>
+ <condition property="source" value="6">
+ <isset property="jdk1.6+"/>
+ </condition>
+ <property name="source" value="5"/>
+ <javac srcdir="${tmp.dir}" destdir="${tmp.dir}" includes="T1.java,T2.java"
+ source="${source}">
+
+ </javac>
+ <junit fork="false" printsummary="true" haltonerror="true">
+ <classpath>
+ <pathelement location="${tmp.dir}" />
+ <path refid="test" />
+ </classpath>
+ <test name="T1" methods="testOK" />
+ <test name="T2" methods="ok" />
+ </junit>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/cdataoutput.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/cdataoutput.xml
new file mode 100644
index 00000000..ab5409b3
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/cdataoutput.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project basedir=".">
+ <target name="run-junit">
+ <junit fork="true">
+ <classpath path="${tests-classpath.value}"/>
+ <sysproperty key="cdata.inner" value="true"/>
+ <test
+ name="org.apache.tools.ant.taskdefs.optional.junit.XMLFormatterWithCDATAOnSystemOut"/>
+ <formatter type="xml"/>
+ </junit>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/matches.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/matches.xml
new file mode 100644
index 00000000..2451cf89
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/matches.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<matches>
+ <foo>
+ <abc>
+ <foo/>
+ <foo/>
+ </abc>
+ </foo>
+</matches> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/teardownlistener.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/teardownlistener.xml
new file mode 100644
index 00000000..abb6a410
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junit/teardownlistener.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+
+ <path id="test">
+ <pathelement path="${java.class.path}" />
+ <pathelement location="../../../../../../build/testcases" />
+ </path>
+
+ <target name="testNoTeardown">
+ <junit haltonerror="false" errorproperty="error" fork="true" timeout="1000">
+ <formatter type="plain" usefile="false"/>
+ <batchtest>
+ <fileset dir="../../../../../../build/testcases">
+ <include name="org/example/junit/Timeout*"/>
+ </fileset>
+ </batchtest>
+ <classpath refid="test"/>
+ </junit>
+ </target>
+
+ <target name="testTeardown">
+ <junit haltonerror="false" errorproperty="error" fork="true" timeout="1000">
+ <formatter type="plain" usefile="false"/>
+ <formatter classname="org.apache.tools.ant.taskdefs.optional.junit.TearDownOnVmCrash"
+ usefile="false"/>
+ <batchtest>
+ <fileset dir="../../../../../../build/testcases">
+ <include name="org/example/junit/Timeout*"/>
+ </fileset>
+ </batchtest>
+ <classpath refid="test"/>
+ </junit>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl
new file mode 100644
index 00000000..3c0d85aa
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl
@@ -0,0 +1,879 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
+ extension-element-prefixes="redirect">
+<xsl:import href="junit-import.xsl"/>
+<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
+<xsl:decimal-format decimal-separator="." grouping-separator=","/>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!--
+
+ Sample stylesheet to be used with Ant JUnitReport output.
+
+ It creates a set of HTML files a la javadoc where you can browse easily
+ through all packages and classes.
+
+-->
+<xsl:param name="output.dir" select="'.'"/>
+<xsl:param name="key1" select="'defaultValue1'"/>
+<xsl:param name="key2" select="'defaultValue2'"/>
+
+<xsl:template match="testsuites">
+ <!-- create the index.html -->
+ <redirect:write file="{$output.dir}/index.html">
+ <xsl:call-template name="index.html"/>
+ </redirect:write>
+
+ <!-- create the stylesheet.css -->
+ <redirect:write file="{$output.dir}/stylesheet.css">
+ <xsl:call-template name="stylesheet.css"/>
+ </redirect:write>
+
+ <!-- create the overview-packages.html at the root -->
+ <redirect:write file="{$output.dir}/overview-summary.html">
+ <xsl:apply-templates select="." mode="overview.packages"/>
+ </redirect:write>
+
+ <!-- create the all-packages.html at the root -->
+ <redirect:write file="{$output.dir}/overview-frame.html">
+ <xsl:apply-templates select="." mode="all.packages"/>
+ </redirect:write>
+
+ <!-- create the all-classes.html at the root -->
+ <redirect:write file="{$output.dir}/allclasses-frame.html">
+ <xsl:apply-templates select="." mode="all.classes"/>
+ </redirect:write>
+
+ <!-- create the all-tests.html at the root -->
+ <redirect:write file="{$output.dir}/all-tests.html">
+ <xsl:apply-templates select="." mode="all.tests"/>
+ </redirect:write>
+
+ <!-- create the alltests-fails.html at the root -->
+ <redirect:write file="{$output.dir}/alltests-fails.html">
+ <xsl:apply-templates select="." mode="all.tests">
+ <xsl:with-param name="type" select="'fails'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+
+ <!-- create the alltests-errors.html at the root -->
+ <redirect:write file="{$output.dir}/alltests-errors.html">
+ <xsl:apply-templates select="." mode="all.tests">
+ <xsl:with-param name="type" select="'errors'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+
+ <!-- process all packages -->
+ <xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
+ <xsl:call-template name="package">
+ <xsl:with-param name="name" select="@package"/>
+ </xsl:call-template>
+ </xsl:for-each>
+</xsl:template>
+ <xsl:template name="package">
+ <xsl:param name="name"/>
+ <xsl:variable name="package.dir">
+ <xsl:if test="not($name = '')"><xsl:value-of select="translate($name,'.','/')"/></xsl:if>
+ <xsl:if test="$name = ''">.</xsl:if>
+ </xsl:variable>
+ <!--Processing package <xsl:value-of select="@name"/> in <xsl:value-of select="$output.dir"/> -->
+ <!-- create a classes-list.html in the package directory -->
+ <redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
+ <xsl:call-template name="classes.list">
+ <xsl:with-param name="name" select="$name"/>
+ </xsl:call-template>
+ </redirect:write>
+
+ <!-- create a package-summary.html in the package directory -->
+ <redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
+ <xsl:call-template name="package.summary">
+ <xsl:with-param name="name" select="$name"/>
+ </xsl:call-template>
+ </redirect:write>
+
+ <!-- for each class, creates a @name.html -->
+ <!-- @bug there will be a problem with inner classes having the same name, it will be overwritten -->
+ <xsl:for-each select="/testsuites/testsuite[@package = $name]">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}.html">
+ <xsl:apply-templates select="." mode="class.details"/>
+ </redirect:write>
+ <xsl:if test="string-length(./system-out)!=0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-out.txt">
+ <xsl:value-of disable-output-escaping="yes" select="./system-out"/>
+ </redirect:write>
+ </xsl:if>
+ <xsl:if test="string-length(./system-err)!=0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-err.txt">
+ <xsl:value-of disable-output-escaping="yes" select="./system-err"/>
+ </redirect:write>
+ </xsl:if>
+ <xsl:if test="@failures != 0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-fails.html">
+ <xsl:apply-templates select="." mode="class.details">
+ <xsl:with-param name="type" select="'fails'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+ </xsl:if>
+ <xsl:if test="@errors != 0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-errors.html">
+ <xsl:apply-templates select="." mode="class.details">
+ <xsl:with-param name="type" select="'errors'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+
+<xsl:template name="index.html">
+<html>
+ <head>
+ <title>
+ Unit Test Results. key1=<xsl:value-of select="$key1"/>,key2=<xsl:value-of select="$key2"/>
+ </title>
+ </head>
+ <frameset cols="20%,80%">
+ <frameset rows="30%,70%">
+ <frame src="overview-frame.html" name="packageListFrame"/>
+ <frame src="allclasses-frame.html" name="classListFrame"/>
+ </frameset>
+ <frame src="overview-summary.html" name="classFrame"/>
+ <noframes>
+ <h2>Frame Alert</h2>
+ <p>
+ This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+ </p>
+ </noframes>
+ </frameset>
+</html>
+</xsl:template>
+
+<!-- this is the stylesheet css to use for nearly everything -->
+<xsl:template name="stylesheet.css">
+body {
+ font:normal 68% verdana,arial,helvetica;
+ color:#000000;
+}
+table tr td, table tr th {
+ font-size: 68%;
+}
+table.details tr th{
+ font-weight: bold;
+ text-align:left;
+ background:#a6caf0;
+}
+table.details tr td{
+ background:#eeeee0;
+}
+
+p {
+ line-height:1.5em;
+ margin-top:0.5em; margin-bottom:1.0em;
+}
+h1 {
+ margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
+}
+h2 {
+ margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
+}
+h3 {
+ margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
+}
+h4 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+h5 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+h6 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+.Error {
+ font-weight:bold; color:red;
+}
+.Failure {
+ font-weight:bold; color:purple;
+}
+.Properties {
+ text-align:right;
+}
+</xsl:template>
+
+<!-- Create list of all/failed/errored tests -->
+<xsl:template match="testsuites" mode="all.tests">
+ <xsl:param name="type" select="'all'"/>
+ <html>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <xsl:text>All Failures</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <xsl:text>All Errors</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>All Tests</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <head>
+ <title>Unit Test Results: <xsl:value-of select="$title"/></title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
+ <xsl:call-template name="pageHeader"/>
+ <h2><xsl:value-of select="$title"/></h2>
+
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testcase.test.header">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:call-template>
+ <!--
+ test can even not be started at all (failure to load the class)
+ so report the error directly
+ -->
+ <xsl:if test="./error">
+ <tr class="Error">
+ <td colspan="4">
+ <xsl:apply-templates select="./error"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <xsl:apply-templates select=".//testcase[failure]" mode="print.test">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <xsl:apply-templates select=".//testcase[error]" mode="print.test">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select=".//testcase" mode="print.test">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+
+<!-- ======================================================================
+ This page is created for every testsuite class.
+ It prints a summary of the testsuite and detailed information about
+ testcase methods.
+ ====================================================================== -->
+<xsl:template match="testsuite" mode="class.details">
+ <xsl:param name="type" select="'all'"/>
+ <xsl:variable name="package.name" select="@package"/>
+ <xsl:variable name="class.name"><xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></xsl:variable>
+ <html>
+ <head>
+ <title>Unit Test Results: <xsl:value-of select="$class.name"/></title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name" select="$package.name"/>
+ </xsl:call-template>
+ <script type="text/javascript" language="JavaScript">
+ var TestCases = new Array();
+ var cur;
+ <xsl:apply-templates select="properties"/>
+ </script>
+ <script type="text/javascript" language="JavaScript"><![CDATA[
+ function displayProperties (name) {
+ var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
+ var doc = win.document;
+ doc.open();
+ doc.write("<html><head><title>Properties of " + name + "</title>");
+ doc.write("<style type=\"text/css\">");
+ doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
+ doc.write("table tr td, table tr th { font-size: 68%; }");
+ doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
+ doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
+ doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
+ doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
+ doc.write("</style>");
+ doc.write("</head><body>");
+ doc.write("<h3>Properties of " + name + "</h3>");
+ doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
+ doc.write("<table class='properties'>");
+ doc.write("<tr><th>Name</th><th>Value</th></tr>");
+ for (prop in TestCases[name]) {
+ doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
+ }
+ doc.write("</table>");
+ doc.write("</body></html>");
+ doc.close();
+ win.focus();
+ }
+ ]]>
+ </script>
+ </head>
+ <body>
+ <xsl:call-template name="pageHeader"/>
+ <h3>Class <xsl:value-of select="$class.name"/></h3>
+
+
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testsuite.test.header"/>
+ <xsl:apply-templates select="." mode="print.test"/>
+ </table>
+
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <h2>Failures</h2>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <h2>Errors</h2>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2>Tests</h2>
+ </xsl:otherwise>
+ </xsl:choose>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testcase.test.header"/>
+ <!--
+ test can even not be started at all (failure to load the class)
+ so report the error directly
+ -->
+ <xsl:if test="./error">
+ <tr class="Error">
+ <td colspan="4"><xsl:apply-templates select="./error"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <xsl:apply-templates select="./testcase[failure]" mode="print.test"/>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <xsl:apply-templates select="./testcase[error]" mode="print.test"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="./testcase" mode="print.test"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ <div class="Properties">
+ <a>
+ <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
+ Properties &#187;
+ </a>
+ </div>
+ <xsl:if test="string-length(./system-out)!=0">
+ <div class="Properties">
+ <a>
+ <xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-out.txt</xsl:attribute>
+ System.out &#187;
+ </a>
+ </div>
+ </xsl:if>
+ <xsl:if test="string-length(./system-err)!=0">
+ <div class="Properties">
+ <a>
+ <xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-err.txt</xsl:attribute>
+ System.err &#187;
+ </a>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+</xsl:template>
+
+ <!--
+ Write properties into a JavaScript data structure.
+ This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
+ -->
+ <xsl:template match="properties">
+ cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
+ <xsl:for-each select="property">
+ <xsl:sort select="@name"/>
+ cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
+ </xsl:for-each>
+ </xsl:template>
+
+
+<!-- ======================================================================
+ This page is created for every package.
+ It prints the name of all classes that belongs to this package.
+ @param name the package name to print classes.
+ ====================================================================== -->
+<!-- list of classes in a package -->
+<xsl:template name="classes.list">
+ <xsl:param name="name"/>
+ <html>
+ <head>
+ <title>Unit Test Classes: <xsl:value-of select="$name"/></title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name" select="$name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <table width="100%">
+ <tr>
+ <td nowrap="nowrap">
+ <h2><a href="package-summary.html" target="classFrame">
+ <xsl:value-of select="$name"/>
+ <xsl:if test="$name = ''">&lt;none&gt;</xsl:if>
+ </a></h2>
+ </td>
+ </tr>
+ </table>
+
+ <h2>Classes</h2>
+ <table width="100%">
+ <xsl:for-each select="/testsuites/testsuite[./@package = $name]">
+ <xsl:sort select="@name"/>
+ <tr>
+ <td nowrap="nowrap">
+ <a href="{@id}_{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+
+<!--
+ Creates an all-classes.html file that contains a link to all package-summary.html
+ on each class.
+-->
+<xsl:template match="testsuites" mode="all.classes">
+ <html>
+ <head>
+ <title>All Unit Test Classes</title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <h2>Classes</h2>
+ <table width="100%">
+ <xsl:apply-templates select="testsuite" mode="all.classes">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="testsuite" mode="all.classes">
+ <xsl:variable name="package.name" select="@package"/>
+ <tr>
+ <td nowrap="nowrap">
+ <a target="classFrame">
+ <xsl:attribute name="href">
+ <xsl:if test="not($package.name='')">
+ <xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
+ </xsl:if><xsl:value-of select="@id"/>_<xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </a>
+ </td>
+ </tr>
+</xsl:template>
+
+
+<!--
+ Creates an html file that contains a link to all package-summary.html files on
+ each package existing on testsuites.
+ @bug there will be a problem here, I don't know yet how to handle unnamed package :(
+-->
+<xsl:template match="testsuites" mode="all.packages">
+ <html>
+ <head>
+ <title>All Unit Test Packages</title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
+ <h2>Packages</h2>
+ <table width="100%">
+ <xsl:apply-templates select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]" mode="all.packages">
+ <xsl:sort select="@package"/>
+ </xsl:apply-templates>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="testsuite" mode="all.packages">
+ <tr>
+ <td nowrap="nowrap">
+ <a href="./{translate(@package,'.','/')}/package-summary.html" target="classFrame">
+ <xsl:value-of select="@package"/>
+ <xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
+ </a>
+ </td>
+ </tr>
+</xsl:template>
+
+
+<xsl:template match="testsuites" mode="overview.packages">
+ <html>
+ <head>
+ <title>Unit Test Results: Summary</title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
+ <xsl:call-template name="pageHeader"/>
+ <h2>Summary</h2>
+ <xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
+ <xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
+ <xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
+ <xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
+ <xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <tr valign="top">
+ <th>Tests</th>
+ <th>Failures</th>
+ <th>Errors</th>
+ <th>Success rate</th>
+ <th>Time</th>
+ </tr>
+ <tr valign="top">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="$errorCount &gt; 0">Error</xsl:when>
+ <xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
+ <xsl:otherwise>Pass</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><a title="Display all tests" href="all-tests.html"><xsl:value-of select="$testCount"/></a></td>
+ <td><a title="Display all failures" href="alltests-fails.html"><xsl:value-of select="$failureCount"/></a></td>
+ <td><a title="Display all errors" href="alltests-errors.html"><xsl:value-of select="$errorCount"/></a></td>
+ <td>
+ <xsl:call-template name="display-percent">
+ <xsl:with-param name="value" select="$successRate"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="$timeCount"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </table>
+ <table border="0" width="95%">
+ <tr>
+ <td style="text-align: justify;">
+ Note: <em>failures</em> are anticipated and checked for with assertions while <em>errors</em> are unanticipated.
+ </td>
+ </tr>
+ </table>
+
+ <h2>Packages</h2>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testsuite.test.header"/>
+ <xsl:for-each select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
+ <xsl:sort select="@package" order="ascending"/>
+ <!-- get the node set containing all testsuites that have the same package -->
+ <xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = current()/@package]"/>
+ <tr valign="top">
+ <!-- display a failure if there is any failure/error in the package -->
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="sum($insamepackage/@errors) &gt; 0">Error</xsl:when>
+ <xsl:when test="sum($insamepackage/@failures) &gt; 0">Failure</xsl:when>
+ <xsl:otherwise>Pass</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><a href="./{translate(@package,'.','/')}/package-summary.html">
+ <xsl:value-of select="@package"/>
+ <xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
+ </a></td>
+ <td><xsl:value-of select="sum($insamepackage/@tests)"/></td>
+ <td><xsl:value-of select="sum($insamepackage/@errors)"/></td>
+ <td><xsl:value-of select="sum($insamepackage/@failures)"/></td>
+ <td>
+ <xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="sum($insamepackage/@time)"/>
+ </xsl:call-template>
+ </td>
+ <td><xsl:value-of select="$insamepackage/@timestamp"/></td>
+ <td><xsl:value-of select="$insamepackage/@hostname"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+
+<xsl:template name="package.summary">
+ <xsl:param name="name"/>
+ <html>
+ <head>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name" select="$name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
+ <xsl:call-template name="pageHeader"/>
+ <h3>Package <xsl:value-of select="$name"/></h3>
+
+ <!--table border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="class.metrics.header"/>
+ <xsl:apply-templates select="." mode="print.metrics"/>
+ </table-->
+
+ <xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/>
+ <xsl:if test="count($insamepackage) &gt; 0">
+ <h2>Classes</h2>
+ <p>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testsuite.test.header"/>
+ <xsl:apply-templates select="$insamepackage" mode="print.test">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </table>
+ </p>
+ </xsl:if>
+ </body>
+ </html>
+</xsl:template>
+
+
+<!--
+ transform string like a.b.c to ../../../
+ @param path the path to transform into a descending directory path
+-->
+<xsl:template name="path">
+ <xsl:param name="path"/>
+ <xsl:if test="contains($path,'.')">
+ <xsl:text>../</xsl:text>
+ <xsl:call-template name="path">
+ <xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not(contains($path,'.')) and not($path = '')">
+ <xsl:text>../</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+
+<!-- create the link to the stylesheet based on the package name -->
+<xsl:template name="create.stylesheet.link">
+ <xsl:param name="package.name"/>
+ <link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link>
+</xsl:template>
+
+
+<!-- Page HEADER -->
+<xsl:template name="pageHeader">
+ <h1>Unit Test Results</h1>
+ <table width="100%">
+ <tr>
+ <td align="left"></td>
+ <td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://ant.apache.org/">Ant</a>.</td>
+ </tr>
+ </table>
+ <hr size="1"/>
+</xsl:template>
+
+ <xsl:template name="testsuite.test.header">
+ <tr valign="top">
+ <th width="80%">Name</th>
+ <th>Tests</th>
+ <th>Errors</th>
+ <th>Failures</th>
+ <th nowrap="nowrap">Time(s)</th>
+ <th nowrap="nowrap">Time Stamp</th>
+ <th>Host</th>
+ </tr>
+ </xsl:template>
+<!-- method header -->
+<xsl:template name="testcase.test.header">
+ <xsl:param name="show.class" select="''"/>
+ <tr valign="top">
+ <xsl:if test="boolean($show.class)">
+ <th>Class</th>
+ </xsl:if>
+ <th>Name</th>
+ <th>Status</th>
+ <th width="80%">Type</th>
+ <th nowrap="nowrap">Time(s)</th>
+ </tr>
+</xsl:template>
+
+
+<!-- class information -->
+<xsl:template match="testsuite" mode="print.test">
+ <tr valign="top">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="@errors[.&gt; 0]">Error</xsl:when>
+ <xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
+ <xsl:otherwise>Pass</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:value-of select="@name"/></a></td>
+ <td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:apply-templates select="@tests"/></a></td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@errors != 0">
+ <a title="Display only errors" href="{@id}_{@name}-errors.html"><xsl:apply-templates select="@errors"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="@errors"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@failures != 0">
+ <a title="Display only failures" href="{@id}_{@name}-fails.html"><xsl:apply-templates select="@failures"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="@failures"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td><xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="@time"/>
+ </xsl:call-template>
+ </td>
+ <td><xsl:apply-templates select="@timestamp"/></td>
+ <td><xsl:apply-templates select="@hostname"/></td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="testcase" mode="print.test">
+ <xsl:param name="show.class" select="''"/>
+ <tr valign="top">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="error">Error</xsl:when>
+ <xsl:when test="failure">Failure</xsl:when>
+ <xsl:otherwise>TableRowColor</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:variable name="class.href">
+ <xsl:value-of select="concat(translate(../@package,'.','/'), '/', ../@id, '_', ../@name, '.html')"/>
+ </xsl:variable>
+ <xsl:if test="boolean($show.class)">
+ <td><a href="{$class.href}"><xsl:value-of select="../@name"/></a></td>
+ </xsl:if>
+ <td>
+ <a name="{@name}"/>
+ <xsl:choose>
+ <xsl:when test="boolean($show.class)">
+ <a href="{concat($class.href, '#', @name)}"><xsl:value-of select="@name"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <xsl:choose>
+ <xsl:when test="failure">
+ <td>Failure</td>
+ <td><xsl:apply-templates select="failure"/></td>
+ </xsl:when>
+ <xsl:when test="error">
+ <td>Error</td>
+ <td><xsl:apply-templates select="error"/></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>Success</td>
+ <td></td>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td>
+ <xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="@time"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+</xsl:template>
+
+
+<!-- Note : the below template error and failure are the same style
+ so just call the same style store in the toolkit template -->
+<xsl:template match="failure">
+ <xsl:call-template name="display-failures"/>
+</xsl:template>
+
+<xsl:template match="error">
+ <xsl:call-template name="display-failures"/>
+</xsl:template>
+
+<!-- Style for the error and failure in the testcase template -->
+<xsl:template name="display-failures">
+ <xsl:choose>
+ <xsl:when test="not(@message)">N/A</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@message"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- display the stacktrace -->
+ <br/><br/>
+ <code>
+ <xsl:call-template name="br-replace">
+ <xsl:with-param name="word" select="."/>
+ </xsl:call-template>
+ </code>
+ <!-- the latter is better but might be problematic for non-21" monitors... -->
+ <!--pre><xsl:value-of select="."/></pre-->
+</xsl:template>
+
+<xsl:template name="JS-escape">
+ <xsl:param name="string"/>
+ <xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
+ <xsl:param name="tmp2" select="stringutils:replace(string($tmp1),&quot;'&quot;,&quot;\&apos;&quot;)"/>
+ <xsl:value-of select="$tmp2"/>
+</xsl:template>
+
+
+<!--
+ template that will convert a carriage return into a br tag
+ @param word the text from which to convert CR to BR tag
+-->
+<xsl:template name="br-replace">
+ <xsl:param name="word"/>
+ <xsl:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"&#xA;","&lt;br/>")'/>
+</xsl:template>
+
+<xsl:template name="display-time">
+ <xsl:param name="value"/>
+ <xsl:value-of select="format-number($value,'0.000')"/>
+</xsl:template>
+
+<xsl:template name="display-percent">
+ <xsl:param name="value"/>
+ <xsl:value-of select="format-number($value,'0.00%')"/>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl
new file mode 100644
index 00000000..ecba47bb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
+ extension-element-prefixes="redirect">
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+ <!-- class header -->
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport.xml
new file mode 100644
index 00000000..60806625
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport.xml
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="junitreport-test" basedir="." default="reports1">
+
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+
+ <property name="jrdir" location="junitreport"/>
+
+ <!-- reports1 take care of transformation of 2 test result files and
+ produce reports according to the default format (frames)
+ needed for testNoFileJUnitNoFrames -->
+ <target name="reports1">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testEmptyFile">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="ZEROBYTES-*.xml"/>
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testIncompleteFile">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="INCOMPLETE-*.xml"/>
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testWrongElement">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="WRONGELEMENT-*.xml"/>
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testNamespace">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="NAMESPACE-*.xml"/>
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testStackTraceLineBreaks">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testSpecialSignsInSrcPath">
+ <mkdir dir="${output}/html"/>
+ <mkdir dir="${output}/test# $$%§&amp;-!cases"/>
+ <copy todir="${output}/test# $$%§&amp;-!cases">
+ <fileset dir="junitreport" includes="TEST-*.xml"/>
+ </copy>
+ <junitreport todir="${output}/html">
+ <fileset dir="${output}/test# $$%§&amp;-!cases">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testSpecialSignsInHtmlPath">
+ <mkdir dir="${output}/html# $$%§&amp;-!report"/>
+ <mkdir dir="${output}/test"/>
+ <copy todir="${output}/test">
+ <fileset dir="junitreport" includes="TEST-*.xml"/>
+ </copy>
+ <junitreport todir="${output}/html# $$%§&amp;-!report">
+ <fileset dir="${output}/test">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html# $$%§&amp;-!report"/>
+ </junitreport>
+ </target>
+
+ <target name="testWithStyleFromClasspath">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"/>
+ </junitreport>
+ </target>
+
+ <target name="testNoFrames">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html" format="noframes"/>
+ </junitreport>
+ </target>
+
+ <target name="testWithStyleFromDir">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"
+ styledir="junitreport"
+ format="frames"/>
+ </junitreport>
+ </target>
+
+ <!-- bug report 40022 -->
+ <target name="testWithStyleFromDirAndXslImport">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"
+ styledir="junitreport-with-include"
+ format="frames"/>
+ </junitreport>
+ </target>
+
+ <target name="testWithParams">
+ <mkdir dir="${output}/html"/>
+ <junitreport todir="${output}">
+ <fileset dir="${jrdir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report todir="${output}/html"
+ styledir="junitreport"
+ format="frames">
+ <param name="key1" expression="value1"/>
+ <param name="key2" expression="value2"/>
+ </report>
+ </junitreport>
+ <concat>
+ <fileset file="${output}/html/index.html"/>
+ </concat>
+ </target>
+
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/INCOMPLETE-sampleproject.incomplete.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/INCOMPLETE-sampleproject.incomplete.xml
new file mode 100644
index 00000000..56af0146
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/INCOMPLETE-sampleproject.incomplete.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<testsuite errors="0" failures="0" name="sampleproject.incomplete" tests="5" time="0.038">
+ </properties>
+ <testcase name="testEquals" time="0.0"></testcase>
+ <testcase name="testHashCode" time="0.0"></testcase>
+ <testcase name="testToString" time="0.0010"></testcase>
+ <testcase name="testgetUniqueString" time="0.0"></testcase>
+ <testcase name="testSerialization" time="0.024"></testcase>
+ <system-out><![CDATA[testEquals
+testHashCode
+testToString
+testgetUniqueString
+testSerialization
+]]></system-out>
+ <system-err>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/NAMESPACE-sampleproject.namespace.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/NAMESPACE-sampleproject.namespace.xml
new file mode 100644
index 00000000..41e7dbff
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/NAMESPACE-sampleproject.namespace.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<ns:testsuite errors="1" failures="1" name="sampleproject.namespace" tests="11" time="0.171" xmlns:ns="funny-namespace">
+ <properties>
+ <property name="testsrc" value="test/"></property>
+ <property name="java.runtime.name" value="Java(TM) 2 Runtime Environment, Standard Edition"></property>
+ <property name="sun.boot.library.path" value="/usr/java/jdk1.3.1_03/jre/lib/i386"></property>
+ <property name="java.vm.version" value="1.3.1_03-b03"></property>
+ <property name="ant.version" value="Apache Ant version 1.5 compiled on July 9 2002"></property>
+ <property name="ant.java.version" value="1.3"></property>
+ <property name="java.vm.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.vendor.url" value="http://java.sun.com/"></property>
+ <property name="path.separator" value=":"></property>
+ <property name="java.vm.name" value="Java HotSpot(TM) Client VM"></property>
+ <property name="file.encoding.pkg" value="sun.io"></property>
+ <property name="classes" value="classes"></property>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"></property>
+ <property name="user.dir" value="/home/jkf/programming/gretant_sourceforge/sampleproject"></property>
+ <property name="java.runtime.version" value="1.3.1_03-b03"></property>
+ <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"></property>
+ <property name="basedir" value="/home/jkf/programming/gretant_sourceforge/sampleproject"></property>
+ <property name="os.arch" value="i386"></property>
+ <property name="java.io.tmpdir" value="/tmp"></property>
+ <property name="line.separator" value="
+"></property>
+ <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.awt.fonts" value=""></property>
+ <property name="os.name" value="Linux"></property>
+ <property name="ant.home" value="/opt/jakarta-ant-1.5/"></property>
+ <property name="ant.project.name" value="sample"></property>
+ <property name="reportdir" value="reports"></property>
+ <property name="java.library.path" value="/usr/java/jdk1.3.1_03/jre/lib/i386:/usr/java/jdk1.3.1_03/jre/lib/i386/native_threads/:/usr/java/jdk1.3.1_03/jre/lib/i386/client:/usr/java/jdk1.3.1_03/jre/../lib/i386"></property>
+ <property name="src" value="code/"></property>
+ <property name="debug" value="on"></property>
+ <property name="java.specification.name" value="Java Platform API Specification"></property>
+ <property name="java.class.version" value="47.0"></property>
+ <property name="os.version" value="2.4.18-5"></property>
+ <property name="ant.file" value="/home/jkf/programming/gretant_sourceforge/sampleproject/build.xml"></property>
+ <property name="unitreport" value="cl-unit.xml"></property>
+ <property name="user.home" value="/home/jkf"></property>
+ <property name="user.timezone" value="Europe/Amsterdam"></property>
+ <property name="java.awt.printerjob" value="sun.awt.motif.PSPrinterJob"></property>
+ <property name="java.specification.version" value="1.3"></property>
+ <property name="file.encoding" value="ISO-8859-15"></property>
+ <property name="java.class.path" value="/opt/jakarta-ant-1.5//lib/xml-apis.jar:/opt/jakarta-ant-1.5//lib/xercesImpl.jar:/opt/jakarta-ant-1.5//lib/xalan.jar:/opt/jakarta-ant-1.5//lib/optional.jar:/opt/jakarta-ant-1.5//lib/junit.jar:/opt/jakarta-ant-1.5//lib/Gretel.jar:/opt/jakarta-ant-1.5//lib/gretant.jar:/opt/jakarta-ant-1.5//lib/cup-runtime.jar:/opt/jakarta-ant-1.5//lib/bcel.jar:/opt/jakarta-ant-1.5//lib/ant.jar:/usr/java/jdk1.3/lib/tools.jar"></property>
+ <property name="user.name" value="jkf"></property>
+ <property name="coverreport" value="cl-cover.xml"></property>
+ <property name="java.vm.specification.version" value="1.0"></property>
+ <property name="java.home" value="/usr/java/jdk1.3.1_03/jre"></property>
+ <property name="java.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="user.language" value="en"></property>
+ <property name="java.vm.info" value="mixed mode"></property>
+ <property name="java.version" value="1.3.1_03"></property>
+ <property name="java.ext.dirs" value="/usr/java/jdk1.3.1_03/jre/lib/ext"></property>
+ <property name="sun.boot.class.path" value="/usr/java/jdk1.3.1_03/jre/lib/rt.jar:/usr/java/jdk1.3.1_03/jre/lib/i18n.jar:/usr/java/jdk1.3.1_03/jre/lib/sunrsasign.jar:/usr/java/jdk1.3.1_03/jre/classes"></property>
+ <property name="java.vendor" value="Sun Microsystems Inc."></property>
+ <property name="file.separator" value="/"></property>
+ <property name="testclasses" value="testclasses"></property>
+ <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"></property>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"></property>
+ <property name="sun.cpu.endian" value="little"></property>
+ <property name="gretclasses" value="gretclasses"></property>
+ <property name="user.region" value="US"></property>
+ <property name="sun.cpu.isalist" value=""></property>
+ </properties>
+ <testcase name="testEquals" time="0.014"></testcase>
+ <testcase name="testHashCode" time="0.0010"></testcase>
+ <testcase name="testToString" time="0.0010"></testcase>
+ <testcase name="testGetImageURL" time="0.0"></testcase>
+ <testcase name="testGetCountry" time="0.0010"></testcase>
+ <testcase name="testGetDenomination" time="0.0"></testcase>
+ <testcase name="testGetYear" time="0.0"></testcase>
+ <testcase name="testGetSubType" time="0.0"></testcase>
+ <testcase name="testFail" time="0.0080">
+ <failure message="DOEG" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: DOEG
+ at sampleproject.coins.CoinTest.testFail(CoinTest.java:229)
+</failure>
+ </testcase>
+ <testcase name="testException" time="0.0010">
+ <error message="RTE" type="java.lang.RuntimeException">java.lang.RuntimeException: RTE
+ at sampleproject.coins.CoinTest.testException(CoinTest.java:234)
+</error>
+ </testcase>
+ <testcase name="testSuccess" time="0.0"></testcase>
+ <system-out><![CDATA[testEquals
+testHashCode
+Hashcodes: 1434557225 1434557225 1434557226 1463186376 1434556908 1516980401 1434557225
+testToString
+<Coin=NL,1 Euro,1999,Var a/>
+<Coin=NL,1 Euro,1999,null/>
+testGetImageURL
+testGetCountry
+testGetDenomination
+testGetYear
+testGetSubType
+testFail
+testException
+testSuccess
+]]></system-out>
+ <system-err><![CDATA[]]></system-err>
+</ns:testsuite>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.coins.CoinTest.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.coins.CoinTest.xml
new file mode 100644
index 00000000..6bc99f29
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.coins.CoinTest.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<testsuite errors="1" failures="1" name="sampleproject.coins.CoinTest" tests="11" time="0.171">
+ <properties>
+ <property name="testsrc" value="test/"></property>
+ <property name="java.runtime.name" value="Java(TM) 2 Runtime Environment, Standard Edition"></property>
+ <property name="sun.boot.library.path" value="/usr/java/jdk1.3.1_03/jre/lib/i386"></property>
+ <property name="java.vm.version" value="1.3.1_03-b03"></property>
+ <property name="ant.version" value="Apache Ant version 1.5 compiled on July 9 2002"></property>
+ <property name="ant.java.version" value="1.3"></property>
+ <property name="java.vm.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.vendor.url" value="http://java.sun.com/"></property>
+ <property name="path.separator" value=":"></property>
+ <property name="java.vm.name" value="Java HotSpot(TM) Client VM"></property>
+ <property name="file.encoding.pkg" value="sun.io"></property>
+ <property name="classes" value="classes"></property>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"></property>
+ <property name="user.dir" value="/home/jkf/programming/gretant_sourceforge/sampleproject"></property>
+ <property name="java.runtime.version" value="1.3.1_03-b03"></property>
+ <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"></property>
+ <property name="basedir" value="/home/jkf/programming/gretant_sourceforge/sampleproject"></property>
+ <property name="os.arch" value="i386"></property>
+ <property name="java.io.tmpdir" value="/tmp"></property>
+ <property name="line.separator" value="&#xd;&#xa;"></property>
+ <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.awt.fonts" value=""></property>
+ <property name="os.name" value="Linux"></property>
+ <property name="ant.home" value="/opt/jakarta-ant-1.5/"></property>
+ <property name="ant.project.name" value="sample"></property>
+ <property name="reportdir" value="reports"></property>
+ <property name="java.library.path" value="/usr/java/jdk1.3.1_03/jre/lib/i386:/usr/java/jdk1.3.1_03/jre/lib/i386/native_threads/:/usr/java/jdk1.3.1_03/jre/lib/i386/client:/usr/java/jdk1.3.1_03/jre/../lib/i386"></property>
+ <property name="src" value="code/"></property>
+ <property name="debug" value="on"></property>
+ <property name="java.specification.name" value="Java Platform API Specification"></property>
+ <property name="java.class.version" value="47.0"></property>
+ <property name="os.version" value="2.4.18-5"></property>
+ <property name="ant.file" value="/home/jkf/programming/gretant_sourceforge/sampleproject/build.xml"></property>
+ <property name="unitreport" value="cl-unit.xml"></property>
+ <property name="user.home" value="/home/jkf"></property>
+ <property name="user.timezone" value="Europe/Amsterdam"></property>
+ <property name="java.awt.printerjob" value="sun.awt.motif.PSPrinterJob"></property>
+ <property name="java.specification.version" value="1.3"></property>
+ <property name="file.encoding" value="ISO-8859-15"></property>
+ <property name="java.class.path" value="/opt/jakarta-ant-1.5//lib/xml-apis.jar:/opt/jakarta-ant-1.5//lib/xercesImpl.jar:/opt/jakarta-ant-1.5//lib/xalan.jar:/opt/jakarta-ant-1.5//lib/optional.jar:/opt/jakarta-ant-1.5//lib/junit.jar:/opt/jakarta-ant-1.5//lib/Gretel.jar:/opt/jakarta-ant-1.5//lib/gretant.jar:/opt/jakarta-ant-1.5//lib/cup-runtime.jar:/opt/jakarta-ant-1.5//lib/bcel.jar:/opt/jakarta-ant-1.5//lib/ant.jar:/usr/java/jdk1.3/lib/tools.jar"></property>
+ <property name="user.name" value="jkf"></property>
+ <property name="coverreport" value="cl-cover.xml"></property>
+ <property name="java.vm.specification.version" value="1.0"></property>
+ <property name="java.home" value="/usr/java/jdk1.3.1_03/jre"></property>
+ <property name="java.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="user.language" value="en"></property>
+ <property name="java.vm.info" value="mixed mode"></property>
+ <property name="java.version" value="1.3.1_03"></property>
+ <property name="java.ext.dirs" value="/usr/java/jdk1.3.1_03/jre/lib/ext"></property>
+ <property name="sun.boot.class.path" value="/usr/java/jdk1.3.1_03/jre/lib/rt.jar:/usr/java/jdk1.3.1_03/jre/lib/i18n.jar:/usr/java/jdk1.3.1_03/jre/lib/sunrsasign.jar:/usr/java/jdk1.3.1_03/jre/classes"></property>
+ <property name="java.vendor" value="Sun Microsystems Inc."></property>
+ <property name="file.separator" value="/"></property>
+ <property name="testclasses" value="testclasses"></property>
+ <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"></property>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"></property>
+ <property name="sun.cpu.endian" value="little"></property>
+ <property name="gretclasses" value="gretclasses"></property>
+ <property name="user.region" value="US"></property>
+ <property name="sun.cpu.isalist" value=""></property>
+ </properties>
+ <testcase name="testEquals" time="0.014"></testcase>
+ <testcase name="testHashCode" time="0.0010"></testcase>
+ <testcase name="testToString" time="0.0010"></testcase>
+ <testcase name="testGetImageURL" time="0.0"></testcase>
+ <testcase name="testGetCountry" time="0.0010"></testcase>
+ <testcase name="testGetDenomination" time="0.0"></testcase>
+ <testcase name="testGetYear" time="0.0"></testcase>
+ <testcase name="testGetSubType" time="0.0"></testcase>
+ <testcase name="testFail" time="0.0080">
+ <failure message="DOEG" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: DOEG
+ at sampleproject.coins.CoinTest.testFail(CoinTest.java:229)
+</failure>
+ </testcase>
+ <testcase name="testException" time="0.0010">
+ <error message="RTE" type="java.lang.RuntimeException">java.lang.RuntimeException: RTE
+ at sampleproject.coins.CoinTest.testException(CoinTest.java:234)
+</error>
+ </testcase>
+ <testcase name="testSuccess" time="0.0"></testcase>
+ <system-out><![CDATA[testEquals
+testHashCode
+Hashcodes: 1434557225 1434557225 1434557226 1463186376 1434556908 1516980401 1434557225
+testToString
+<Coin=NL,1 Euro,1999,Var a/>
+<Coin=NL,1 Euro,1999,null/>
+testGetImageURL
+testGetCountry
+testGetDenomination
+testGetYear
+testGetSubType
+testFail
+testException
+testSuccess
+]]></system-out>
+ <system-err><![CDATA[]]></system-err>
+</testsuite>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.util.UniqueStringTest.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.util.UniqueStringTest.xml
new file mode 100644
index 00000000..f4016c26
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/TEST-sampleproject.util.UniqueStringTest.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<testsuite errors="0" failures="0" name="sampleproject.util.UniqueStringTest" tests="5" time="0.038">
+ <properties>
+ <property name="testsrc" value="test/"></property>
+ <property name="java.runtime.name" value="Java(TM) 2 Runtime Environment, Standard Edition"></property>
+ <property name="sun.boot.library.path" value="/usr/java/jdk1.3.1_03/jre/lib/i386"></property>
+ <property name="java.vm.version" value="1.3.1_03-b03"></property>
+ <property name="ant.version" value="Apache Ant version 1.5 compiled on July 9 2002"></property>
+ <property name="ant.java.version" value="1.3"></property>
+ <property name="java.vm.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.vendor.url" value="http://java.sun.com/"></property>
+ <property name="path.separator" value=":"></property>
+ <property name="java.vm.name" value="Java HotSpot(TM) Client VM"></property>
+ <property name="file.encoding.pkg" value="sun.io"></property>
+ <property name="classes" value="classes"></property>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"></property>
+ <property name="user.dir" value="/home/jkf/programming/gretant_sourceforge/sampleproject"></property>
+ <property name="java.runtime.version" value="1.3.1_03-b03"></property>
+ <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"></property>
+ <property name="basedir" value="/home/jkf/programming/gretant_sourceforge/sampleproject"></property>
+ <property name="os.arch" value="i386"></property>
+ <property name="java.io.tmpdir" value="/tmp"></property>
+ <property name="line.separator" value="
+"></property>
+ <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.awt.fonts" value=""></property>
+ <property name="os.name" value="Linux"></property>
+ <property name="ant.home" value="/opt/jakarta-ant-1.5/"></property>
+ <property name="ant.project.name" value="sample"></property>
+ <property name="reportdir" value="reports"></property>
+ <property name="java.library.path" value="/usr/java/jdk1.3.1_03/jre/lib/i386:/usr/java/jdk1.3.1_03/jre/lib/i386/native_threads/:/usr/java/jdk1.3.1_03/jre/lib/i386/client:/usr/java/jdk1.3.1_03/jre/../lib/i386"></property>
+ <property name="src" value="code/"></property>
+ <property name="debug" value="on"></property>
+ <property name="java.specification.name" value="Java Platform API Specification"></property>
+ <property name="java.class.version" value="47.0"></property>
+ <property name="os.version" value="2.4.18-5"></property>
+ <property name="ant.file" value="/home/jkf/programming/gretant_sourceforge/sampleproject/build.xml"></property>
+ <property name="unitreport" value="cl-unit.xml"></property>
+ <property name="user.home" value="/home/jkf"></property>
+ <property name="user.timezone" value="Europe/Amsterdam"></property>
+ <property name="java.awt.printerjob" value="sun.awt.motif.PSPrinterJob"></property>
+ <property name="java.specification.version" value="1.3"></property>
+ <property name="file.encoding" value="ISO-8859-15"></property>
+ <property name="java.class.path" value="/opt/jakarta-ant-1.5//lib/xml-apis.jar:/opt/jakarta-ant-1.5//lib/xercesImpl.jar:/opt/jakarta-ant-1.5//lib/xalan.jar:/opt/jakarta-ant-1.5//lib/optional.jar:/opt/jakarta-ant-1.5//lib/junit.jar:/opt/jakarta-ant-1.5//lib/Gretel.jar:/opt/jakarta-ant-1.5//lib/gretant.jar:/opt/jakarta-ant-1.5//lib/cup-runtime.jar:/opt/jakarta-ant-1.5//lib/bcel.jar:/opt/jakarta-ant-1.5//lib/ant.jar:/usr/java/jdk1.3/lib/tools.jar"></property>
+ <property name="user.name" value="jkf"></property>
+ <property name="coverreport" value="cl-cover.xml"></property>
+ <property name="java.vm.specification.version" value="1.0"></property>
+ <property name="java.home" value="/usr/java/jdk1.3.1_03/jre"></property>
+ <property name="java.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="user.language" value="en"></property>
+ <property name="java.vm.info" value="mixed mode"></property>
+ <property name="java.version" value="1.3.1_03"></property>
+ <property name="java.ext.dirs" value="/usr/java/jdk1.3.1_03/jre/lib/ext"></property>
+ <property name="sun.boot.class.path" value="/usr/java/jdk1.3.1_03/jre/lib/rt.jar:/usr/java/jdk1.3.1_03/jre/lib/i18n.jar:/usr/java/jdk1.3.1_03/jre/lib/sunrsasign.jar:/usr/java/jdk1.3.1_03/jre/classes"></property>
+ <property name="java.vendor" value="Sun Microsystems Inc."></property>
+ <property name="file.separator" value="/"></property>
+ <property name="testclasses" value="testclasses"></property>
+ <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"></property>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"></property>
+ <property name="sun.cpu.endian" value="little"></property>
+ <property name="gretclasses" value="gretclasses"></property>
+ <property name="user.region" value="US"></property>
+ <property name="sun.cpu.isalist" value=""></property>
+ </properties>
+ <testcase name="testEquals" time="0.0"></testcase>
+ <testcase name="testHashCode" time="0.0"></testcase>
+ <testcase name="testToString" time="0.0010"></testcase>
+ <testcase name="testgetUniqueString" time="0.0"></testcase>
+ <testcase name="testSerialization" time="0.024"></testcase>
+ <system-out><![CDATA[testEquals
+testHashCode
+testToString
+testgetUniqueString
+testSerialization
+]]></system-out>
+ <system-err><![CDATA[]]></system-err>
+</testsuite>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/WRONGELEMENT-sampleproject.wrongelement.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/WRONGELEMENT-sampleproject.wrongelement.xml
new file mode 100644
index 00000000..9cb5a147
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/WRONGELEMENT-sampleproject.wrongelement.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<wildebeast/>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/ZEROBYTES-sampleproject.package.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/ZEROBYTES-sampleproject.package.xml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/ZEROBYTES-sampleproject.package.xml
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/junit-frames.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/junit-frames.xsl
new file mode 100644
index 00000000..ca313af9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/junitreport/junit-frames.xsl
@@ -0,0 +1,879 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
+ extension-element-prefixes="redirect">
+<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
+<xsl:decimal-format decimal-separator="." grouping-separator=","/>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!--
+
+ Sample stylesheet to be used with Ant JUnitReport output.
+
+ It creates a set of HTML files a la javadoc where you can browse easily
+ through all packages and classes.
+
+-->
+<xsl:param name="output.dir" select="'.'"/>
+<xsl:param name="key1" select="'defaultValue1'"/>
+<xsl:param name="key2" select="'defaultValue2'"/>
+
+<xsl:template match="testsuites">
+ <!-- create the index.html -->
+ <redirect:write file="{$output.dir}/index.html">
+ <xsl:call-template name="index.html"/>
+ </redirect:write>
+
+ <!-- create the stylesheet.css -->
+ <redirect:write file="{$output.dir}/stylesheet.css">
+ <xsl:call-template name="stylesheet.css"/>
+ </redirect:write>
+
+ <!-- create the overview-packages.html at the root -->
+ <redirect:write file="{$output.dir}/overview-summary.html">
+ <xsl:apply-templates select="." mode="overview.packages"/>
+ </redirect:write>
+
+ <!-- create the all-packages.html at the root -->
+ <redirect:write file="{$output.dir}/overview-frame.html">
+ <xsl:apply-templates select="." mode="all.packages"/>
+ </redirect:write>
+
+ <!-- create the all-classes.html at the root -->
+ <redirect:write file="{$output.dir}/allclasses-frame.html">
+ <xsl:apply-templates select="." mode="all.classes"/>
+ </redirect:write>
+
+ <!-- create the all-tests.html at the root -->
+ <redirect:write file="{$output.dir}/all-tests.html">
+ <xsl:apply-templates select="." mode="all.tests"/>
+ </redirect:write>
+
+ <!-- create the alltests-fails.html at the root -->
+ <redirect:write file="{$output.dir}/alltests-fails.html">
+ <xsl:apply-templates select="." mode="all.tests">
+ <xsl:with-param name="type" select="'fails'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+
+ <!-- create the alltests-errors.html at the root -->
+ <redirect:write file="{$output.dir}/alltests-errors.html">
+ <xsl:apply-templates select="." mode="all.tests">
+ <xsl:with-param name="type" select="'errors'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+
+ <!-- process all packages -->
+ <xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
+ <xsl:call-template name="package">
+ <xsl:with-param name="name" select="@package"/>
+ </xsl:call-template>
+ </xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="package">
+ <xsl:param name="name"/>
+ <xsl:variable name="package.dir">
+ <xsl:if test="not($name = '')"><xsl:value-of select="translate($name,'.','/')"/></xsl:if>
+ <xsl:if test="$name = ''">.</xsl:if>
+ </xsl:variable>
+ <!--Processing package <xsl:value-of select="@name"/> in <xsl:value-of select="$output.dir"/> -->
+ <!-- create a classes-list.html in the package directory -->
+ <redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
+ <xsl:call-template name="classes.list">
+ <xsl:with-param name="name" select="$name"/>
+ </xsl:call-template>
+ </redirect:write>
+
+ <!-- create a package-summary.html in the package directory -->
+ <redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
+ <xsl:call-template name="package.summary">
+ <xsl:with-param name="name" select="$name"/>
+ </xsl:call-template>
+ </redirect:write>
+
+ <!-- for each class, creates a @name.html -->
+ <!-- @bug there will be a problem with inner classes having the same name, it will be overwritten -->
+ <xsl:for-each select="/testsuites/testsuite[@package = $name]">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}.html">
+ <xsl:apply-templates select="." mode="class.details"/>
+ </redirect:write>
+ <xsl:if test="string-length(./system-out)!=0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-out.txt">
+ <xsl:value-of disable-output-escaping="yes" select="./system-out"/>
+ </redirect:write>
+ </xsl:if>
+ <xsl:if test="string-length(./system-err)!=0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-err.txt">
+ <xsl:value-of disable-output-escaping="yes" select="./system-err"/>
+ </redirect:write>
+ </xsl:if>
+ <xsl:if test="@failures != 0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-fails.html">
+ <xsl:apply-templates select="." mode="class.details">
+ <xsl:with-param name="type" select="'fails'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+ </xsl:if>
+ <xsl:if test="@errors != 0">
+ <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-errors.html">
+ <xsl:apply-templates select="." mode="class.details">
+ <xsl:with-param name="type" select="'errors'"/>
+ </xsl:apply-templates>
+ </redirect:write>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="index.html">
+<html>
+ <head>
+ <title>
+ Unit Test Results. key1=<xsl:value-of select="$key1"/>,key2=<xsl:value-of select="$key2"/>
+ </title>
+ </head>
+ <frameset cols="20%,80%">
+ <frameset rows="30%,70%">
+ <frame src="overview-frame.html" name="packageListFrame"/>
+ <frame src="allclasses-frame.html" name="classListFrame"/>
+ </frameset>
+ <frame src="overview-summary.html" name="classFrame"/>
+ <noframes>
+ <h2>Frame Alert</h2>
+ <p>
+ This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+ </p>
+ </noframes>
+ </frameset>
+</html>
+</xsl:template>
+
+<!-- this is the stylesheet css to use for nearly everything -->
+<xsl:template name="stylesheet.css">
+body {
+ font:normal 68% verdana,arial,helvetica;
+ color:#000000;
+}
+table tr td, table tr th {
+ font-size: 68%;
+}
+table.details tr th{
+ font-weight: bold;
+ text-align:left;
+ background:#a6caf0;
+}
+table.details tr td{
+ background:#eeeee0;
+}
+
+p {
+ line-height:1.5em;
+ margin-top:0.5em; margin-bottom:1.0em;
+}
+h1 {
+ margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
+}
+h2 {
+ margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
+}
+h3 {
+ margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
+}
+h4 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+h5 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+h6 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+.Error {
+ font-weight:bold; color:red;
+}
+.Failure {
+ font-weight:bold; color:purple;
+}
+.Properties {
+ text-align:right;
+}
+</xsl:template>
+
+<!-- Create list of all/failed/errored tests -->
+<xsl:template match="testsuites" mode="all.tests">
+ <xsl:param name="type" select="'all'"/>
+ <html>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <xsl:text>All Failures</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <xsl:text>All Errors</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>All Tests</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <head>
+ <title>Unit Test Results: <xsl:value-of select="$title"/></title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
+ <xsl:call-template name="pageHeader"/>
+ <h2><xsl:value-of select="$title"/></h2>
+
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testcase.test.header">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:call-template>
+ <!--
+ test can even not be started at all (failure to load the class)
+ so report the error directly
+ -->
+ <xsl:if test="./error">
+ <tr class="Error">
+ <td colspan="4">
+ <xsl:apply-templates select="./error"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <xsl:apply-templates select=".//testcase[failure]" mode="print.test">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <xsl:apply-templates select=".//testcase[error]" mode="print.test">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select=".//testcase" mode="print.test">
+ <xsl:with-param name="show.class" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+
+<!-- ======================================================================
+ This page is created for every testsuite class.
+ It prints a summary of the testsuite and detailed information about
+ testcase methods.
+ ====================================================================== -->
+<xsl:template match="testsuite" mode="class.details">
+ <xsl:param name="type" select="'all'"/>
+ <xsl:variable name="package.name" select="@package"/>
+ <xsl:variable name="class.name"><xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></xsl:variable>
+ <html>
+ <head>
+ <title>Unit Test Results: <xsl:value-of select="$class.name"/></title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name" select="$package.name"/>
+ </xsl:call-template>
+ <script type="text/javascript" language="JavaScript">
+ var TestCases = new Array();
+ var cur;
+ <xsl:apply-templates select="properties"/>
+ </script>
+ <script type="text/javascript" language="JavaScript"><![CDATA[
+ function displayProperties (name) {
+ var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
+ var doc = win.document;
+ doc.open();
+ doc.write("<html><head><title>Properties of " + name + "</title>");
+ doc.write("<style type=\"text/css\">");
+ doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
+ doc.write("table tr td, table tr th { font-size: 68%; }");
+ doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
+ doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
+ doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
+ doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
+ doc.write("</style>");
+ doc.write("</head><body>");
+ doc.write("<h3>Properties of " + name + "</h3>");
+ doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
+ doc.write("<table class='properties'>");
+ doc.write("<tr><th>Name</th><th>Value</th></tr>");
+ for (prop in TestCases[name]) {
+ doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
+ }
+ doc.write("</table>");
+ doc.write("</body></html>");
+ doc.close();
+ win.focus();
+ }
+ ]]>
+ </script>
+ </head>
+ <body>
+ <xsl:call-template name="pageHeader"/>
+ <h3>Class <xsl:value-of select="$class.name"/></h3>
+
+
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testsuite.test.header"/>
+ <xsl:apply-templates select="." mode="print.test"/>
+ </table>
+
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <h2>Failures</h2>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <h2>Errors</h2>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2>Tests</h2>
+ </xsl:otherwise>
+ </xsl:choose>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testcase.test.header"/>
+ <!--
+ test can even not be started at all (failure to load the class)
+ so report the error directly
+ -->
+ <xsl:if test="./error">
+ <tr class="Error">
+ <td colspan="4"><xsl:apply-templates select="./error"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$type = 'fails'">
+ <xsl:apply-templates select="./testcase[failure]" mode="print.test"/>
+ </xsl:when>
+ <xsl:when test="$type = 'errors'">
+ <xsl:apply-templates select="./testcase[error]" mode="print.test"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="./testcase" mode="print.test"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ <div class="Properties">
+ <a>
+ <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
+ Properties &#187;
+ </a>
+ </div>
+ <xsl:if test="string-length(./system-out)!=0">
+ <div class="Properties">
+ <a>
+ <xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-out.txt</xsl:attribute>
+ System.out &#187;
+ </a>
+ </div>
+ </xsl:if>
+ <xsl:if test="string-length(./system-err)!=0">
+ <div class="Properties">
+ <a>
+ <xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-err.txt</xsl:attribute>
+ System.err &#187;
+ </a>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+</xsl:template>
+
+ <!--
+ Write properties into a JavaScript data structure.
+ This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
+ -->
+ <xsl:template match="properties">
+ cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
+ <xsl:for-each select="property">
+ <xsl:sort select="@name"/>
+ cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
+ </xsl:for-each>
+ </xsl:template>
+
+
+<!-- ======================================================================
+ This page is created for every package.
+ It prints the name of all classes that belongs to this package.
+ @param name the package name to print classes.
+ ====================================================================== -->
+<!-- list of classes in a package -->
+<xsl:template name="classes.list">
+ <xsl:param name="name"/>
+ <html>
+ <head>
+ <title>Unit Test Classes: <xsl:value-of select="$name"/></title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name" select="$name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <table width="100%">
+ <tr>
+ <td nowrap="nowrap">
+ <h2><a href="package-summary.html" target="classFrame">
+ <xsl:value-of select="$name"/>
+ <xsl:if test="$name = ''">&lt;none&gt;</xsl:if>
+ </a></h2>
+ </td>
+ </tr>
+ </table>
+
+ <h2>Classes</h2>
+ <table width="100%">
+ <xsl:for-each select="/testsuites/testsuite[./@package = $name]">
+ <xsl:sort select="@name"/>
+ <tr>
+ <td nowrap="nowrap">
+ <a href="{@id}_{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+
+<!--
+ Creates an all-classes.html file that contains a link to all package-summary.html
+ on each class.
+-->
+<xsl:template match="testsuites" mode="all.classes">
+ <html>
+ <head>
+ <title>All Unit Test Classes</title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <h2>Classes</h2>
+ <table width="100%">
+ <xsl:apply-templates select="testsuite" mode="all.classes">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="testsuite" mode="all.classes">
+ <xsl:variable name="package.name" select="@package"/>
+ <tr>
+ <td nowrap="nowrap">
+ <a target="classFrame">
+ <xsl:attribute name="href">
+ <xsl:if test="not($package.name='')">
+ <xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
+ </xsl:if><xsl:value-of select="@id"/>_<xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </a>
+ </td>
+ </tr>
+</xsl:template>
+
+
+<!--
+ Creates an html file that contains a link to all package-summary.html files on
+ each package existing on testsuites.
+ @bug there will be a problem here, I don't know yet how to handle unnamed package :(
+-->
+<xsl:template match="testsuites" mode="all.packages">
+ <html>
+ <head>
+ <title>All Unit Test Packages</title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
+ <h2>Packages</h2>
+ <table width="100%">
+ <xsl:apply-templates select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]" mode="all.packages">
+ <xsl:sort select="@package"/>
+ </xsl:apply-templates>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="testsuite" mode="all.packages">
+ <tr>
+ <td nowrap="nowrap">
+ <a href="./{translate(@package,'.','/')}/package-summary.html" target="classFrame">
+ <xsl:value-of select="@package"/>
+ <xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
+ </a>
+ </td>
+ </tr>
+</xsl:template>
+
+
+<xsl:template match="testsuites" mode="overview.packages">
+ <html>
+ <head>
+ <title>Unit Test Results: Summary</title>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
+ <xsl:call-template name="pageHeader"/>
+ <h2>Summary</h2>
+ <xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
+ <xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
+ <xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
+ <xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
+ <xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <tr valign="top">
+ <th>Tests</th>
+ <th>Failures</th>
+ <th>Errors</th>
+ <th>Success rate</th>
+ <th>Time</th>
+ </tr>
+ <tr valign="top">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="$errorCount &gt; 0">Error</xsl:when>
+ <xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
+ <xsl:otherwise>Pass</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><a title="Display all tests" href="all-tests.html"><xsl:value-of select="$testCount"/></a></td>
+ <td><a title="Display all failures" href="alltests-fails.html"><xsl:value-of select="$failureCount"/></a></td>
+ <td><a title="Display all errors" href="alltests-errors.html"><xsl:value-of select="$errorCount"/></a></td>
+ <td>
+ <xsl:call-template name="display-percent">
+ <xsl:with-param name="value" select="$successRate"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="$timeCount"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </table>
+ <table border="0" width="95%">
+ <tr>
+ <td style="text-align: justify;">
+ Note: <em>failures</em> are anticipated and checked for with assertions while <em>errors</em> are unanticipated.
+ </td>
+ </tr>
+ </table>
+
+ <h2>Packages</h2>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testsuite.test.header"/>
+ <xsl:for-each select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
+ <xsl:sort select="@package" order="ascending"/>
+ <!-- get the node set containing all testsuites that have the same package -->
+ <xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = current()/@package]"/>
+ <tr valign="top">
+ <!-- display a failure if there is any failure/error in the package -->
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="sum($insamepackage/@errors) &gt; 0">Error</xsl:when>
+ <xsl:when test="sum($insamepackage/@failures) &gt; 0">Failure</xsl:when>
+ <xsl:otherwise>Pass</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><a href="./{translate(@package,'.','/')}/package-summary.html">
+ <xsl:value-of select="@package"/>
+ <xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
+ </a></td>
+ <td><xsl:value-of select="sum($insamepackage/@tests)"/></td>
+ <td><xsl:value-of select="sum($insamepackage/@errors)"/></td>
+ <td><xsl:value-of select="sum($insamepackage/@failures)"/></td>
+ <td>
+ <xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="sum($insamepackage/@time)"/>
+ </xsl:call-template>
+ </td>
+ <td><xsl:value-of select="$insamepackage/@timestamp"/></td>
+ <td><xsl:value-of select="$insamepackage/@hostname"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+
+
+<xsl:template name="package.summary">
+ <xsl:param name="name"/>
+ <html>
+ <head>
+ <xsl:call-template name="create.stylesheet.link">
+ <xsl:with-param name="package.name" select="$name"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
+ <xsl:call-template name="pageHeader"/>
+ <h3>Package <xsl:value-of select="$name"/></h3>
+
+ <!--table border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="class.metrics.header"/>
+ <xsl:apply-templates select="." mode="print.metrics"/>
+ </table-->
+
+ <xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/>
+ <xsl:if test="count($insamepackage) &gt; 0">
+ <h2>Classes</h2>
+ <p>
+ <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+ <xsl:call-template name="testsuite.test.header"/>
+ <xsl:apply-templates select="$insamepackage" mode="print.test">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </table>
+ </p>
+ </xsl:if>
+ </body>
+ </html>
+</xsl:template>
+
+
+<!--
+ transform string like a.b.c to ../../../
+ @param path the path to transform into a descending directory path
+-->
+<xsl:template name="path">
+ <xsl:param name="path"/>
+ <xsl:if test="contains($path,'.')">
+ <xsl:text>../</xsl:text>
+ <xsl:call-template name="path">
+ <xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not(contains($path,'.')) and not($path = '')">
+ <xsl:text>../</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+
+<!-- create the link to the stylesheet based on the package name -->
+<xsl:template name="create.stylesheet.link">
+ <xsl:param name="package.name"/>
+ <link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link>
+</xsl:template>
+
+
+<!-- Page HEADER -->
+<xsl:template name="pageHeader">
+ <h1>Unit Test Results</h1>
+ <table width="100%">
+ <tr>
+ <td align="left"></td>
+ <td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://ant.apache.org/">Ant</a>.</td>
+ </tr>
+ </table>
+ <hr size="1"/>
+</xsl:template>
+
+<!-- class header -->
+<xsl:template name="testsuite.test.header">
+ <tr valign="top">
+ <th width="80%">Name</th>
+ <th>Tests</th>
+ <th>Errors</th>
+ <th>Failures</th>
+ <th nowrap="nowrap">Time(s)</th>
+ <th nowrap="nowrap">Time Stamp</th>
+ <th>Host</th>
+ </tr>
+</xsl:template>
+
+<!-- method header -->
+<xsl:template name="testcase.test.header">
+ <xsl:param name="show.class" select="''"/>
+ <tr valign="top">
+ <xsl:if test="boolean($show.class)">
+ <th>Class</th>
+ </xsl:if>
+ <th>Name</th>
+ <th>Status</th>
+ <th width="80%">Type</th>
+ <th nowrap="nowrap">Time(s)</th>
+ </tr>
+</xsl:template>
+
+
+<!-- class information -->
+<xsl:template match="testsuite" mode="print.test">
+ <tr valign="top">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="@errors[.&gt; 0]">Error</xsl:when>
+ <xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
+ <xsl:otherwise>Pass</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:value-of select="@name"/></a></td>
+ <td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:apply-templates select="@tests"/></a></td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@errors != 0">
+ <a title="Display only errors" href="{@id}_{@name}-errors.html"><xsl:apply-templates select="@errors"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="@errors"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@failures != 0">
+ <a title="Display only failures" href="{@id}_{@name}-fails.html"><xsl:apply-templates select="@failures"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="@failures"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td><xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="@time"/>
+ </xsl:call-template>
+ </td>
+ <td><xsl:apply-templates select="@timestamp"/></td>
+ <td><xsl:apply-templates select="@hostname"/></td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="testcase" mode="print.test">
+ <xsl:param name="show.class" select="''"/>
+ <tr valign="top">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="error">Error</xsl:when>
+ <xsl:when test="failure">Failure</xsl:when>
+ <xsl:otherwise>TableRowColor</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:variable name="class.href">
+ <xsl:value-of select="concat(translate(../@package,'.','/'), '/', ../@id, '_', ../@name, '.html')"/>
+ </xsl:variable>
+ <xsl:if test="boolean($show.class)">
+ <td><a href="{$class.href}"><xsl:value-of select="../@name"/></a></td>
+ </xsl:if>
+ <td>
+ <a name="{@name}"/>
+ <xsl:choose>
+ <xsl:when test="boolean($show.class)">
+ <a href="{concat($class.href, '#', @name)}"><xsl:value-of select="@name"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <xsl:choose>
+ <xsl:when test="failure">
+ <td>Failure</td>
+ <td><xsl:apply-templates select="failure"/></td>
+ </xsl:when>
+ <xsl:when test="error">
+ <td>Error</td>
+ <td><xsl:apply-templates select="error"/></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>Success</td>
+ <td></td>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td>
+ <xsl:call-template name="display-time">
+ <xsl:with-param name="value" select="@time"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+</xsl:template>
+
+
+<!-- Note : the below template error and failure are the same style
+ so just call the same style store in the toolkit template -->
+<xsl:template match="failure">
+ <xsl:call-template name="display-failures"/>
+</xsl:template>
+
+<xsl:template match="error">
+ <xsl:call-template name="display-failures"/>
+</xsl:template>
+
+<!-- Style for the error and failure in the testcase template -->
+<xsl:template name="display-failures">
+ <xsl:choose>
+ <xsl:when test="not(@message)">N/A</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@message"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- display the stacktrace -->
+ <br/><br/>
+ <code>
+ <xsl:call-template name="br-replace">
+ <xsl:with-param name="word" select="."/>
+ </xsl:call-template>
+ </code>
+ <!-- the latter is better but might be problematic for non-21" monitors... -->
+ <!--pre><xsl:value-of select="."/></pre-->
+</xsl:template>
+
+<xsl:template name="JS-escape">
+ <xsl:param name="string"/>
+ <xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
+ <xsl:param name="tmp2" select="stringutils:replace(string($tmp1),&quot;'&quot;,&quot;\&apos;&quot;)"/>
+ <xsl:value-of select="$tmp2"/>
+</xsl:template>
+
+
+<!--
+ template that will convert a carriage return into a br tag
+ @param word the text from which to convert CR to BR tag
+-->
+<xsl:template name="br-replace">
+ <xsl:param name="word"/>
+ <xsl:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"&#xA;","&lt;br/>")'/>
+</xsl:template>
+
+<xsl:template name="display-time">
+ <xsl:param name="value"/>
+ <xsl:value-of select="format-number($value,'0.000')"/>
+</xsl:template>
+
+<xsl:template name="display-percent">
+ <xsl:param name="value"/>
+ <xsl:value-of select="format-number($value,'0.00%')"/>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/build.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/build.xml
new file mode 100644
index 00000000..27b40313
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/build.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="no">
+
+ <import file="../../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <property name="in" location="input"/>
+
+ <target name="no">
+ <fail>For tests only</fail>
+ </target>
+
+ <target name="testIso8859-1" depends="setUp">
+ <native2ascii encoding="ISO8859-1" dest="${output}"
+ src="${in}" includes="iso8859-1.*"/>
+ </target>
+</project>
+ \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/expected/iso8859-1.test b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/expected/iso8859-1.test
new file mode 100644
index 00000000..d60acc83
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/expected/iso8859-1.test
@@ -0,0 +1 @@
+\u00e4\u00f6\u00fc\u00c4\u00d6\u00dc\u00df
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/input/iso8859-1.test b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/input/iso8859-1.test
new file mode 100644
index 00000000..d5b3934f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/native2ascii/input/iso8859-1.test
@@ -0,0 +1 @@
+äöüÄÖÜß \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/net/ftp.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/net/ftp.xml
new file mode 100644
index 00000000..aaf4b8e6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/net/ftp.xml
@@ -0,0 +1,331 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="ftp-test" basedir=".">
+ <property file="../../../../../../ftp.properties"/>
+ <property environment="env"/>
+ <property file="${env.HOME}/ant-ftp.properties"/>
+ <property name="ftp.user" value="${user.name}"/>
+ <property name="ftp.host" value="localhost"/>
+ <property name="ftp.port" value="21" />
+ <property name="ftp.password" value="sunshine" />
+ <property name="ftp.filesep" value="/"/>
+ <property name="tmp.dir" location="tmp"/>
+ <property name="tmp.get.dir" location="tmp.get"/>
+ <property name="tmp.local" location="${tmp.get.dir}"/>
+ <property name="tmp.remote" location="${tmp.dir}"/>
+ <property name="tstamp.format" value="yyyy-MM-dd HH:mm"/>
+ <property name="server.timestamp.granularity.millis" value="60000"/>
+ <property name="ftp.server.timezone" value="GMT"/>
+ <property name="ftp.listing.file" value="/dev/null"/>
+ <property name="ftp.retries" value="2"/>
+
+ <fileset dir="${tmp.get.dir}" id="fileset-destination-with-selector">
+ <include name="alpha/**"/>
+ <filename name="**/alpha.xml" />
+ </fileset>
+ <fileset dir="${tmp.dir}" id="fileset-source-without-selector">
+ <include name="alpha/**"/>
+ </fileset>
+ <fileset dir="${tmp.get.dir}" id="fileset-destination-without-selector">
+ <include name="alpha/**"/>
+ </fileset>
+ <fileset dir="${tmp.get.dir}" id="fileset-destination-followsymlinks" followsymlinks="true">
+ <include name="alpha/**"/>
+ </fileset>
+ <fileset dir="${tmp.get.dir}" id="fileset-destination-nofollowsymlinks" followsymlinks="false">
+ <include name="alpha/**"/>
+ </fileset>
+
+ <filelist dir="${tmp.local}" id="timed-files" files="A.timed,B.timed,C.timed,D.timed"/>
+
+ <patternset id="timed-test-files">
+ <include name="A.timed"/>
+ <include name="B.timed"/>
+ <include name="C.timed"/>
+ <include name="D.timed"/>
+ </patternset>
+
+ <target name="setup">
+ <mkdir dir="${tmp.get.dir}"/>
+ <mkdir dir="${tmp.dir}/alpha/beta/gamma"/>
+ <touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
+ <touch file="${tmp.dir}/alpha/beta/beta.xml"/>
+ </target>
+
+ <target name="ftp-get-with-selector">
+ <ftp action="get"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.dir}">
+ <fileset refid="fileset-destination-with-selector"/>
+ </ftp>
+ </target>
+ <target name="children-of-excluded-dir-setup" depends="setup">
+ <mkdir dir="${tmp.dir}/delta"/>
+ <touch file="${tmp.dir}/delta/delta.xml"/>
+ </target>
+ <target name="cleanup">
+ <delete dir="${tmp.dir}" quiet="true"/>
+ <delete dir="${tmp.get.dir}" quiet="true"/>
+ </target>
+ <target name="symlink-setup" depends="setup">
+ <mkdir dir="${tmp.dir}/epsilon/gamma"/>
+ <delete dir="${tmp.dir}/alpha/beta"/>
+ <symlink link="${tmp.dir}/alpha/beta" resource="${tmp.dir}/epsilon"/>
+ <touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
+ </target>
+ <target name="ftp-get-directory-symbolic-link" depends="symlink-setup">
+ <ftp action="get"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.dir}"
+ >
+ <fileset refid="fileset-destination-followsymlinks"/>
+ </ftp>
+ </target>
+ <target name="ftp-get-directory-no-symbolic-link" depends="symlink-setup">
+ <ftp action="get"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.dir}"
+ >
+ <fileset refid="fileset-destination-nofollowsymlinks"/>
+ </ftp>
+ </target>
+ <target name="symlink-file-setup" depends="setup">
+ <delete file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
+ <symlink link="${tmp.dir}/alpha/beta/gamma/gamma.xml"
+ resource="${tmp.dir}/alpha/beta/beta.xml"/>
+ </target>
+ <target name="ftp-delete">
+ <!-- this target can produce an error if the rmdir does not work -->
+ <!-- there can be problems with the rmdir action if the directories are not removed in a proper order -->
+ <!-- which means beginning by the leaves of the tree, going back to the trunk -->
+ <ftp action="del"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ remotedir="${tmp.dir}">
+ <fileset dir="${tmp.get.dir}">
+ <include name="**"/>
+ </fileset>
+ </ftp>
+ <ftp action="rmdir"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ remotedir="${tmp.dir}">
+ <fileset dir="${tmp.get.dir}">
+ <include name="**"/>
+ </fileset>
+ </ftp>
+ </target>
+
+ <target name="timed.test.setup">
+ <touch>
+ <filelist refid="timed-files"/>
+ </touch>
+ <ftp action="put"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ >
+ <fileset dir="${tmp.local}">
+ <patternset refid="timed-test-files"/>
+ </fileset>
+ </ftp>
+ </target>
+
+ <target name="timed.test.put.older">
+ <tstamp>
+ <format property="one.minute.older" pattern="${tstamp.format}" offset="-60" unit="second"/>
+ </tstamp>
+
+ <touch datetime="${one.minute.older}" pattern="${tstamp.format}" verbose="true">
+ <fileset dir="${tmp.remote}">
+ <include name="A.timed"/>
+ </fileset>
+ </touch>
+ <ftp action="put"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ newer="true"
+ serverTimeZoneConfig="${ftp.server.timezone}"
+ >
+ <fileset dir="${tmp.local}">
+ <patternset refid="timed-test-files"/>
+ </fileset>
+ </ftp>
+ </target>
+ <target name="timed.test.get.older">
+ <tstamp>
+ <format property="five.minutes.older" pattern="${tstamp.format}" offset="-5" unit="minute"/>
+ </tstamp>
+
+ <touch datetime="${five.minutes.older}" pattern="${tstamp.format}" verbose="true">
+ <fileset dir="${tmp.local}">
+ <include name="A.timed"/>
+ <include name="C.timed"/>
+ <include name="D.timed"/>
+ </fileset>
+ </touch>
+ <ftp action="get"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ preservelastmodified="true"
+ newer="true"
+ serverTimeZoneConfig="${ftp.server.timezone}"
+ >
+ <fileset dir="${tmp.local}">
+ <patternset refid="timed-test-files"/>
+ </fileset>
+ </ftp>
+ </target>
+
+ <target name="configuration.1">
+ <ftp action="list"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ serverTimeZoneConfig="${ftp.server.timezone}"
+ listing="${ftp.listing.file}"
+ >
+ <fileset dir="${tmp.local}"/>
+ </ftp>
+ </target>
+ <target name="configuration.2">
+ <ftp action="list"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ serverTimeZoneConfig="${ftp.server.timezone}"
+ listing="${ftp.listing.file}"
+ systemTypeKey="WINDOWS"
+ >
+ <fileset dir="${tmp.local}"/>
+ </ftp>
+ </target>
+ <target name="configuration.3">
+ <ftp action="list"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ defaultDateFormatConfig="yyyy/MM/dd HH:mm"
+ listing="${ftp.listing.file}"
+ systemTypeKey="UNIX"
+ >
+ <fileset dir="${tmp.local}"/>
+ </ftp>
+ </target>
+ <target name="configuration.lang.good">
+ <ftp action="list"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ serverLanguageCodeConfig="de"
+ listing="${ftp.listing.file}"
+ >
+ <fileset dir="${tmp.local}"/>
+ </ftp>
+ </target>
+ <target name="configuration.lang.bad">
+ <ftp action="list"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ serverLanguageCodeConfig="QQ"
+ listing="${ftp.listing.file}"
+ >
+ <fileset dir="${tmp.local}"/>
+ </ftp>
+ </target>
+ <target name="configuration.none">
+ <ftp action="list"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ listing="${ftp.listing.file}"
+ >
+ <fileset dir="${tmp.local}"/>
+ </ftp>
+ </target>
+ <target name="ftp-get-with-selector-retryable">
+ <ftp action="get"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.dir}"
+ retriesAllowed="${ftp.retries}"
+ >
+ <fileset refid="fileset-destination-with-selector"/>
+ </ftp>
+ </target>
+ <target name="test-initial-command">
+ <ftp action="put"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ initialSiteCommand="umask 222"
+ >
+ <fileset dir="${tmp.local}">
+ <patternset refid="timed-test-files"/>
+ </fileset>
+ </ftp>
+ </target>
+
+ <target name="test-site-action">
+ <ftp action="site"
+ server="${ftp.host}"
+ userid="${ftp.user}"
+ password="${ftp.password}"
+ separator="${ftp.filesep}"
+ remotedir="${tmp.remote}"
+ siteCommand="umask 222"
+ >
+ </ftp>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/propertyfile.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/propertyfile.xml
new file mode 100644
index 00000000..20a17271
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/propertyfile.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="propertyfile-test" default="main" basedir=".">
+
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <property file="${output}/propertyfile.build.properties"/>
+
+ <target name="main">
+ <fail>
+ This file is for testing purposes only...
+ @see PropertyFileTest.java for more info.
+ </fail>
+ </target>
+
+ <target name="update-existing-properties">
+ <propertyfile
+ file="${output}/${test.propertyfile}"
+ comment="unit test for the property file task..." >
+ <entry key="firstname" value="${firstname}" />
+ <entry key="lastname" value="${lastname}" />
+ <entry key="email" value="${email}" />
+ <entry key="phone" default="${phone}" />
+ <entry key="age" default="${age}" type="int"/>
+ <entry key="date" default="${date}" type="date"/>
+ </propertyfile>
+ </target>
+
+ <target name="delete-properties">
+ <echoproperties/>
+ <propertyfile
+ file="${output}/${test.propertyfile}"
+ comment="unit test for the property file task..." >
+ <entry key="firstname" operation="del" />
+ </propertyfile>
+ </target>
+
+ <target name="exercise">
+ <propertyfile file="${output}/${test.propertyfile}">
+ <entry key="existing.prop"
+ type="int"
+ default="23"/>
+ <entry key="ethans.birth"
+ value="2002/01/21 12:18"
+ type="date"/>
+ <entry key="first.birthday"
+ value="1"
+ default="2002/01/21"
+ pattern="yyyy/MM/dd"
+ unit="year"
+ type="date"
+ operation="+"/>
+ <entry key="int.with.default"
+ value="1"
+ default="2"
+ operation="+"
+ type="int"/>
+ <entry key="int.without.value"
+ default="5"
+ operation="+"
+ type="int"/>
+ <entry key="int.without.default"
+ value="1"
+ operation="+"
+ type="int"/>
+ <entry key="string.with.default"
+ value="&gt;"
+ default="--"
+ operation="+"/>
+ <entry key="string.without.default"
+ value="."
+ operation="+"/>
+ <entry key="olderThanAWeek"
+ type="date"
+ default="0201"
+ operation="-"
+ value="8"
+ pattern="MMdd"/>
+ </propertyfile>
+ <property file="${output}/${test.propertyfile}"/>
+ </target>
+
+ <target name="createfile">
+ <echo file="${output}/${overwrite.test.propertyfile}">
+ foo=3
+ </echo>
+ </target>
+
+ <target name="bugDemo1" depends="createfile,bugDemoInit"/>
+
+ <target name="bugDemo2" depends="bugDemoInit">
+ <property file="${output}/${overwrite.test.propertyfile}"/>
+ </target>
+
+ <target name="bugDemoInit">
+ <propertyfile file="${output}/${overwrite.test.propertyfile}">
+ <entry key="foo" default="0" value="1" operation="+" type="int"/>
+ </propertyfile>
+ </target>
+
+</project>
+
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/pvcs.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/pvcs.xml
new file mode 100644
index 00000000..99bfcff4
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/pvcs.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="pvcs-test" basedir="." default="test1">
+
+ <taskdef name="pvcs" classname="org.apache.tools.ant.taskdefs.Pvcs"/>
+
+ <target name="test1">
+ <pvcs/>
+ </target>
+
+ <target name="test2">
+ <pvcs pvcsbin="/home/tc/projects/pvcsant/src/etc/testcases/taskdefs" repository="/mnt/pvcs"/>
+ </target>
+
+ <target name="test3">
+ <pvcs pvcsbin="\home\cvs\pvcsant\src\etc\testcases\taskdefs" repository="/mnt/pvcs" pvcsproject="/qviknet"/>
+ </target>
+
+ <target name="test4">
+ <pvcs pvcsbin="\home\cvs\pvcsant\src\etc\testcases\taskdefs" repository="/mnt/pvcs" pvcsproject="/qviknet" workspace="/@/Public/buildws"/>
+ </target>
+
+ <target name="test5" description="Get the latest from PVCS">
+ <pvcs pvcsbin="/home/cvs/pvcsant/src/etc/testcases/taskdefs"
+ repository="//ct4serv2/pvcs/monitor"/>
+ </target>
+
+ <target name="test6" description="No pcli to be found">
+ <pvcs pvcsbin="/never/heard/of/a/directory/structure/like/this"
+ repository="//ct4serv2/pvcs/monitor"/>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.properties
new file mode 100644
index 00000000..d7f057e6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+OldAbc=Def
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.xml
new file mode 100644
index 00000000..58fdc59c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" default="def" basedir=".">
+ <import file="../../buildfiletest-base.xml"/>
+
+ <property name="root" location="../../../../.."/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ <copy file="replaceregexp.properties" tofile="${output}/test.properties" />
+ </target>
+
+ <target name="def">
+ <fail>This build file should only be run from within the testcase</fail>
+ </target>
+
+ <target name="setUp-nl">
+ <mkdir dir="${output}" />
+ <copy file="replaceregexp2.properties" tofile="${output}/test.properties" />
+ </target>
+
+ <target name="testReplace" depends="setUp">
+ <replaceregexp file="${output}/test.properties" byline="true">
+ <regexp pattern="Old(.*)=(.*)" />
+ <substitution expression="NewProp=\1\2" />
+ </replaceregexp>
+ </target>
+ <!-- use in conjunction with testDirectoryDateDoesNotChange to make sure something will happen -->
+ <target name="touchDirectory">
+ <copy file="replaceregexp.properties" tofile="${output}/test.properties" />
+
+ </target>
+ <target name="testDirectoryDateDoesNotChange">
+ <replaceregexp file="${output}/test.properties" byline="true">
+ <regexp pattern="foo" />
+ <substitution expression="bar"/>
+ </replaceregexp>
+ </target>
+
+ <target name="testDontAddNewline1" depends="setUp-nl">
+ <replaceregexp file="${output}/test.properties" byline="false">
+ <regexp pattern="Old(.*)=(.*)" />
+ <substitution expression="NewProp=\1\2" />
+ </replaceregexp>
+ </target>
+
+ <target name="testDontAddNewline2" depends="setUp-nl">
+ <replaceregexp file="${output}/test.properties" byline="true">
+ <regexp pattern="Old(.*)=(.*)" />
+ <substitution expression="NewProp=\1\2" />
+ </replaceregexp>
+ </target>
+
+ <target name="lastModifiedSetup">
+ <echo file="${output}/test.txt">Hello, world!</echo>
+ </target>
+
+ <target name="testNoPreserve">
+ <replaceregexp match="world" replace="Ant" file="${output}/test.txt"/>
+ </target>
+
+ <target name="testPreserve">
+ <replaceregexp match="world" replace="Ant" file="${output}/test.txt"
+ preserveLastModified="true"/>
+ </target>
+
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.properties
new file mode 100644
index 00000000..ada77277
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.properties
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+OldAbc=Def \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties
new file mode 100644
index 00000000..6393cd7a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+NewProp=AbcDef \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/schemavalidate.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/schemavalidate.xml
new file mode 100644
index 00000000..f43201e7
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/schemavalidate.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="validate" default="default" basedir=".">
+
+
+ <property name="doc.xsd" location="xml/doc.xsd"/>
+ <property name="doc-in-ns.xsd" location="xml/doc-in-ns.xsd"/>
+ <property name="namespace" value="http://apache.org/ant/doc/" />
+
+ <property name="endpiece-ns-no-location.xml"
+ location="xml/endpiece-ns-no-location.xml"/>
+
+ <target name="testNoNamespace">
+ <schemavalidate
+ noNamespaceFile="${doc.xsd}"
+ file="xml/endpiece-noSchema.xml">
+ </schemavalidate>
+ </target>
+
+ <target name="testNSMapping">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" />
+ <schema namespace="http://apache.org/ant/2"
+ url="http://ant.apache.org/" />
+ </schemavalidate>
+ </target>
+
+ <target name="testNoEmptySchemaNamespace">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="" file="${doc-in-ns.xsd}" />
+ </schemavalidate>
+ </target>
+
+ <target name="testNoEmptySchemaLocation">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="${namespace}" />
+ </schemavalidate>
+ </target>
+
+ <target name="testNoFile">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="${namespace}" file="${namespace}" />
+ </schemavalidate>
+ </target>
+
+ <target name="testNoDoubleSchemaLocation">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" url="${namespace}"/>
+ </schemavalidate>
+ </target>
+
+ <target name="testNoDuplicateSchema">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" />
+ <schema namespace="${namespace}"
+ url="http://ant.apache.org/" />
+ </schemavalidate>
+ </target>
+
+ <target name="testEqualsSchemasOK">
+ <schemavalidate
+ file="${endpiece-ns-no-location.xml}">
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" />
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" />
+ </schemavalidate>
+ </target>
+
+ <target name="testFileset">
+ <schemavalidate noNamespaceFile="${doc.xsd}"
+ >
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" />
+ <fileset dir="xml"
+ includes="endpiece.xml, endpiece-ns-no-location.xml, endpiece-no-schema.xml" />
+ </schemavalidate>
+ </target>
+
+
+ <target name="default" depends="testNoNamespace,testNSMapping" />
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script.xml
new file mode 100644
index 00000000..841f70d2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="testproject" default="def" basedir=".">
+
+ <target name="def">
+ <fail>This build-file is intended to be run from the test cases</fail>
+ </target>
+
+ <target name="setup1">
+
+ <script language="javascript"> <![CDATA[
+
+ for (i=1; i<=10; i++) {
+ echo = testproject.createTask("echo");
+ setup1.addTask(echo);
+ echo.setMessage(i*i);
+ }
+
+ ]]> </script>
+
+ </target>
+
+ <target name="example1" depends="setup1"/>
+
+ <target name="useBeanshell">
+ <script language="beanshell"><![CDATA[
+ self.log("I'm here", org.apache.tools.ant.Project.MSG_INFO);
+ ]]></script>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script/scriptdef.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script/scriptdef.xml
new file mode 100644
index 00000000..0d051eae
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script/scriptdef.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="testproject" default="def" basedir=".">
+
+ <target name="def">
+ <fail>This build-file is intended to be run from the test cases</fail>
+ </target>
+
+ <target name="simple">
+ <scriptdef name="scripttest" language="javascript">
+ <attribute name="attr1"/>
+ <element name="fileset" type="fileset"/>
+ <![CDATA[
+
+ project.log("Attribute attr1 = " + attributes.get("attr1"));
+ project.log("Fileset basedir = "
+ + elements.get("fileset").get(0).getDir(project));
+
+ ]]>
+ </scriptdef>
+
+ <fileset id="testfileset" dir="."/>
+ <scripttest attr1="test">
+ <fileset refid="testfileset"/>
+ </scripttest>
+ </target>
+
+ <target name="nolang">
+ <scriptdef name="nolang">
+ <![CDATA[
+ java.lang.System.out.println("Hello");
+ ]]>
+ </scriptdef>
+ </target>
+
+ <target name="noname">
+ <scriptdef language="javascript">
+ <![CDATA[
+ java.lang.System.out.println("Hello");
+ ]]>
+ </scriptdef>
+ </target>
+
+ <target name="nestedbyclassname">
+ <scriptdef name="scripttest" language="javascript">
+ <attribute name="attr1"/>
+ <element name="fileset" classname="org.apache.tools.ant.types.FileSet"/>
+ <![CDATA[
+
+ project.log("Attribute attr1 = " + attributes.get("attr1"));
+ project.log("Fileset basedir = "
+ + elements.get("fileset").get(0).getDir(project));
+
+ ]]>
+ </scriptdef>
+
+ <fileset id="testfileset" dir="."/>
+ <scripttest attr1="test">
+ <fileset refid="testfileset"/>
+ </scripttest>
+ </target>
+
+ <target name="noelement">
+ <scriptdef name="scripttest" language="javascript">
+ <attribute name="attr1"/>
+ <element name="fileset" type="fileset"/>
+ <![CDATA[
+ java.lang.System.out.println("Attribute attr1 = " + attributes.get("attr1"));
+ ]]>
+ </scriptdef>
+
+ <scripttest attr1="test">
+ </scripttest>
+ </target>
+
+ <target name="exception">
+ <scriptdef name="scripttest" language="javascript">
+ <attribute name="attr1"/>
+ <element name="fileset" classname="org.apache.tools.ant.types.FileSet"/>
+ <![CDATA[
+
+ java.lang.System.out.println("Attribute attr1 = " + attributes.get("attr1"));
+ java.lang.System.out.println("Fileset basedir = "
+ + elements.get("fileset").get(0).getDir(project));
+
+ ]]>
+ </scriptdef>
+
+ <scripttest attr1="test">
+ </scripttest>
+ </target>
+
+ <target name="doubledef">
+ <scriptdef name="task1" language="javascript">
+ <![CDATA[
+ project.log("Task1");
+ ]]>
+ </scriptdef>
+ <scriptdef name="task2" language="javascript">
+ <![CDATA[
+ project.log("Task2");
+ ]]>
+ </scriptdef>
+ <task1/>
+ <task2/>
+ </target>
+
+ <target name="doubleAttributeDef">
+ <scriptdef name="scripttest" language="javascript">
+ <attribute name="attr1"/>
+ <attribute name="attr1"/>
+ </scriptdef>
+ </target>
+
+ <target name="property">
+ <scriptdef name="scripttest" language="javascript">
+ <attribute name="attr1"/>
+ <![CDATA[
+
+ project.log("Attribute value = " + attributes.get("attr1"));
+ ]]>
+ </scriptdef>
+
+ <property name="testproperty" value="test"/>
+ <scripttest attr1="${testproperty}">
+ </scripttest>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script_reference.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script_reference.xml
new file mode 100644
index 00000000..82ccb1ff
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/script_reference.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test-reference" default="script">
+ <target name="script">
+ <script language="javascript">
+ </script>
+ </target>
+ <target name="def">
+ <taskdef name="my.echo" classname="org.apache.tools.ant.taskdefs.Echo"/>
+ <my.echo id="my.echo.ref" message="hello world"/>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/sos/sos.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/sos/sos.xml
new file mode 100644
index 00000000..982b47ca
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/sos/sos.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="sos-test" basedir="." default="sosget.1">
+
+ <!--
+ ===========================================================================
+ Test SOSGet missing attributes
+ ===========================================================================
+ -->
+ <target name="sosget.1">
+ <sosget/>
+ </target>
+
+ <target name="sosget.2">
+ <sosget sosserverpath="192.168.0.1:8888"/>
+ </target>
+
+ <target name="sosget.3">
+ <sosget sosserverpath="192.168.0.1:8888"
+ username="ant"/>
+ </target>
+
+ <target name="sosget.4">
+ <sosget sosserverpath="192.168.0.1:8888"
+ username="ant"
+ vssserverpath="\\server\vss\srcsafe.ini"/>
+ </target>
+
+ <!--
+ ===========================================================================
+ Test SOSCheckin missing attributes
+ ===========================================================================
+ -->
+ <target name="soscheckin.1">
+ <soscheckin/>
+ </target>
+
+ <target name="soscheckin.2">
+ <soscheckin sosserverpath="192.168.0.1:8888"/>
+ </target>
+
+ <target name="soscheckin.3">
+ <soscheckin sosserverpath="192.168.0.1:8888"
+ username="ant"/>
+ </target>
+
+ <target name="soscheckin.4">
+ <soscheckin sosserverpath="192.168.0.1:8888"
+ username="ant"
+ vssserverpath="\\server\vss\srcsafe.ini"/>
+ </target>
+
+ <!--
+ ===========================================================================
+ Test SOSCheckout missing attributes
+ ===========================================================================
+ -->
+ <target name="soscheckout.1">
+ <soscheckout/>
+ </target>
+
+ <target name="soscheckout.2">
+ <soscheckout sosserverpath="192.168.0.1:8888"/>
+ </target>
+
+ <target name="soscheckout.3">
+ <soscheckout sosserverpath="192.168.0.1:8888"
+ username="ant"/>
+ </target>
+
+ <target name="soscheckout.4">
+ <soscheckout sosserverpath="192.168.0.1:8888"
+ username="ant"
+ vssserverpath="\\server\vss\srcsafe.ini"/>
+ </target>
+
+ <!--
+ ===========================================================================
+ Test SOSLabel missing attributes
+ ===========================================================================
+ -->
+ <target name="soslabel.1">
+ <soslabel/>
+ </target>
+
+ <target name="soslabel.2">
+ <soslabel sosserverpath="192.168.0.1:8888"/>
+ </target>
+
+ <target name="soslabel.3">
+ <soslabel sosserverpath="192.168.0.1:8888"
+ username="ant"/>
+ </target>
+
+ <target name="soslabel.4">
+ <soslabel sosserverpath="192.168.0.1:8888"
+ username="ant"
+ vssserverpath="\\server\vss\srcsafe.ini"/>
+ </target>
+
+ <target name="soslabel.5">
+ <soslabel sosserverpath="192.168.0.1:8888"
+ username="ant"
+ vssserverpath="\\server\vss\srcsafe.ini"
+ projectpath="$/SourceRoot/Project"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/splash-test.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/splash-test.xml
new file mode 100644
index 00000000..5b5bbe28
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/splash-test.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="test_new_features" name="splash-test" basedir=".">
+
+ <target name="test_old_behaviour">
+ <echo>Old behaviour</echo>
+ <splash showduration="0"/>
+ <sleep seconds="1"/>
+ <sleep seconds="1"/>
+ <sleep seconds="1"/>
+ <sleep seconds="1"/>
+ <sleep seconds="1"/>
+ </target>
+
+ <target name="test_new_features">
+ <echo>New features</echo>
+ <splash progressregexp="Progress: (.*)%" showduration="0" displayText="Test text"/>
+ <sleep seconds="1"/>
+ <echo>Progress: 10%</echo>
+ <sleep seconds="1"/>
+ <echo>Progress: 20%</echo>
+ <sleep seconds="1"/>
+ <echo>Progress: 50%</echo>
+ <sleep seconds="1"/>
+ <echo>Progress: 70%</echo>
+ <sleep seconds="1"/>
+ <echo>Progress: 100%</echo>
+ <sleep seconds="3"/>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/unix/symlink.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/unix/symlink.xml
new file mode 100644
index 00000000..f039a622
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/unix/symlink.xml
@@ -0,0 +1,354 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+
+/*
+ * Since the initial version of this file was deveolped on the clock on
+ * an NSF grant I should say the following boilerplate:
+ *
+ * This material is based upon work supported by the National Science
+ * Foundaton under Grant No. EIA-0196404. Any opinions, findings, and
+ * conclusions or recommendations expressed in this material are those
+ * of the author and do not necessarily reflect the views of the
+ * National Science Foundation.
+ */
+
+-->
+
+<project name="symlink-test" basedir="." default="all">
+
+ <!--
+ Since the symlink task and some of these targets rely on
+ calls to exec, it may be possible for the JVM to outrun the
+ execution of the command line system calls, so this value is
+ the number of seconds we give the operating system to
+ catch up before executing a task that depends on the
+ completion of previous tasks. This delay is also added to
+ the end of each target so junit doesn't go testing things
+ before they have finnished (hopefully). Tweak if needed.
+ -->
+
+ <property name="delay" value="0"/>
+
+ <import file="../../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+
+ <target name="all"
+ depends="setUp, test-single, test-delete, test-record, test-recreate, tearDown"/>
+
+ <!-- test for action = single -->
+ <!--
+ Creates:
+ File: ${output}/symlink.test
+ Link: ${output}/singletest
+ -->
+ <target name="test-single">
+ <touch file="${output}/symlink.test"/>
+ <symlink resource="${output}/symlink.test"
+ link="${output}/singletest"
+ failonerror="yes"/>
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+ <available file="${output}/symlink.test"
+ property="test.single.file.created"/>
+ <available file="${output}/singletest"
+ property="test.single.link.created"/>
+ </target>
+
+
+
+ <!-- test for action = delete (no calls to command line so no sleep) -->
+
+ <!--
+ Creates:
+ (none)
+ Deletes:
+ Link: ${output}/singletest
+ -->
+
+ <target name="test-delete">
+ <touch file="${output}/symlink.test"/>
+ <symlink resource="${output}/symlink.test"
+ link="${output}/singletest"
+ failonerror="yes"/>
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <symlink action="delete" link="${output}/singletest" failonerror="yes"/>
+ <symlink action="delete" link="${output}/symlink.test" failonerror="no"/>
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <available file="${output}/symlink.test"
+ property="test.delete.file.still.there"/>
+ <available file="${output}/singletest"
+ property="test.delete.link.still.there"
+ value="ERROR: link deletion failed"/>
+
+ </target>
+
+
+
+ <!-- test for action = record -->
+
+ <!--
+ Creates:
+ Dir: ${output}/symtest1
+ Dir: ${output}/symtest1/symtest2
+ Dir: ${output}/symtest1/symtest3
+ File: ${output}/symtest1/file1
+ File: ${output}/symtest1/symtest2/file2
+ File: ${output}/symtest1/symtest3/fileA
+ File: ${output}/symtest1/symtest3/fileB
+ File: ${output}/symtest1/symtest3/fileC
+ Link: ${output}/symtest1/link1==>${output}/symtest1/file1
+ Link: ${output}/symtest1/link2==>${output}/symtest1/symtest2/file2
+ Link: ${output}/symtest1/symtest2/link3==>
+ ${output}/symtest1/symtest2/file2
+ Link: ${output}/symtest1/dirlink==>${output}/symtest1/symtest3
+ Link: ${output}/symtest1/dirlink2==>${output}/symtest1/symtest3
+ Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest3
+ File: ${output}/symtest1/recorded.links
+ File: ${output}/symtest1/symtest2/recorded.links
+ Deletes:
+ (none)
+ -->
+
+ <target name="test-record">
+
+ <mkdir dir="${output}/symtest1"/>
+ <mkdir dir="${output}/symtest1/symtest2"/>
+ <mkdir dir="${output}/symtest1/symtest3"/>
+ <touch file="${output}/symtest1/file1"/>
+ <touch file="${output}/symtest1/symtest2/file2"/>
+
+ <touch file="${output}/symtest1/symtest3/fileA"/>
+ <touch file="${output}/symtest1/symtest3/fileB"/>
+ <touch file="${output}/symtest1/symtest3/fileC"/>
+
+ <symlink resource="${output}/symtest1/file1"
+ link="${output}/symtest1/link1"
+ failonerror="no" />
+ <symlink resource="${output}/symtest1/symtest2/file2"
+ link="${output}/symtest1/link2"
+ failonerror="no" />
+ <symlink resource="${output}/symtest1/symtest2/file2"
+ link="${output}/symtest1/symtest2/link3"
+ failonerror="no" />
+ <symlink resource="${output}/symtest1/symtest3"
+ link="${output}/symtest1/dirlink"
+ failonerror="no" />
+ <symlink resource="${output}/symtest1/symtest3"
+ link="${output}/symtest1/dirlink2"
+ failonerror="no"/>
+ <symlink resource="${output}/symtest1/symtest3"
+ link="${output}/symtest1/dirlink3"
+ failonerror="no"/>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <symlink action="record" linkfilename="recorded.links">
+ <fileset dir="${output}/symtest1" includes="**/**"/>
+ </symlink>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <!-- Test to see if the directories were created -->
+
+ <available file="${output}/symtest1"
+ type="dir"
+ property="test.record.dir1.created"/>
+
+ <available file="${output}/symtest1/symtest2"
+ type="dir"
+ property="test.record.dir2.created"/>
+
+ <available file="${output}/symtest1/symtest3"
+ type="dir"
+ property="test.record.dir3.created"/>
+
+ <!-- Test to see if the Files were created -->
+
+ <available file="${output}/symtest1/file1"
+ property="test.record.file1.created"/>
+
+ <available file="${output}/symtest1/symtest2/file2"
+ property="test.record.file2.created"/>
+
+ <available file="${output}/symtest1/symtest3/fileA"
+ property="test.record.fileA.created"/>
+
+ <available file="${output}/symtest1/symtest3/fileB"
+ property="test.record.fileB.created"/>
+
+ <available file="${output}/symtest1/symtest3/fileC"
+ property="test.record.fileC.created"/>
+
+ <!-- Test to see if the links were created -->
+
+ <available file="${output}/symtest1/link1"
+ property="test.record.link1.created"/>
+
+ <available file="${output}/symtest1/link2"
+ property="test.record.link2.created"/>
+
+ <available file="${output}/symtest1/symtest2/link3"
+ property="test.record.link3.created"/>
+
+ <available file="${output}/symtest1/dirlink"
+ property="test.record.dirlink.created"/>
+
+ <!-- this is redundant for this test, but used in the recreate test -->
+
+ <available file="${output}/symtest1/dirlink2"
+ property="test.record.dirlink2.created"/>
+
+ <!-- Test to see if the linkfiles were created -->
+
+ <available file="${output}/symtest1/recorded.links"
+ property="test.record.dir1.recorded"/>
+
+ <available file="${output}/symtest1/symtest2/recorded.links"
+ property="test.record.dir2.recorded"/>
+
+ <!-- THIS should not be set -->
+
+ <available file="${output}/symtest1/symtest3/recorded.links"
+ property="test.record.dir3.recorded"
+ value="ERROR: symtest3/recorded.links should not exist"/>
+
+
+ </target>
+
+ <!-- test for action = recreate -->
+
+ <!--
+ Deletes:
+ Link: ${output}/symtest1/link1==>${output}/symtest1/file1
+ Link: ${output}/symtest1/link2==>${output}/symtest1/symtest2/file2
+ Link: ${output}/symtest1/symtest2/link3==>
+ ${output}/symtest1/symtest2/file2
+ Link: ${output}/symtest1/dirlink==>${output}/symtest1/symtest3
+ Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest3
+
+ Creates
+ Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest2
+
+ Recreates:
+ Link: ${output}/symtest1/link1==>${output}/symtest1/file1
+ Link: ${output}/symtest1/link2==>${output}/symtest1/symtest2/file2
+ Link: ${output}/symtest1/symtest2/link3==>
+ ${output}/symtest1/symtest2/file2
+ Link: ${output}/symtest1/dirlink==>${output}/symtest1/symtest3
+
+ Should Change:
+ Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest2
+ to
+ ${output}/symtest1/dirlink3==>${output}/symtest1/symtest3
+
+ Should Not Create (bug 25181):
+ Link: ${output}/symtest1/symtest3/dirlink2==>${output}/symtest1/symtest3
+ -->
+
+ <target name="test-recreate" depends="test-record">
+
+ <symlink action="delete" link="${output}/symtest1/link1"/>
+ <symlink action="delete" link="${output}/symtest1/link2"/>
+ <symlink action="delete" link="${output}/symtest1/symtest2/link3"/>
+ <symlink action="delete" link="${output}/symtest1/dirlink"/>
+ <!-- dirlink2 intentionally not deleted to test bug 25181 -->
+ <symlink action="delete" link="${output}/symtest1/dirlink3"/>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <symlink resource="${output}/symtest1/symtest2"
+ link="${output}/symtest1/dirlink3"
+ failonerror="no"/>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <available file="${output}/symtest1/link1"
+ property="test.recreate.link1.not.removed"
+ value="ERROR: rm -f symtest1/link1 failed"/>
+
+ <available file="${output}/symtest1/link2"
+ property="test.recreate.link2.not.removed"
+ value="ERROR: rm -f symtest1/link2 failed"/>
+
+ <available file="${output}/symtest1/symtest2/link3"
+ property="test.recreate.link3.not.removed"
+ value="ERROR: rm -f symtest1/symtest2/link3 failed"/>
+
+ <available file="${output}/symtest1/zdirlink"
+ property="test.recreate.zdirlink.not.removed"
+ value="ERROR: rm -f symtest1/zdirlink failed"/>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to do the execs -->
+
+ <symlink action="recreate">
+ <fileset dir="${output}/symtest1" includes="**/recorded.links"/>
+ </symlink>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
+
+ <available file="${output}/symtest1/link1"
+ property="test.recreate.link1.recreated"/>
+
+ <available file="${output}/symtest1/link2"
+ property="test.recreate.link2.recreated"/>
+
+ <available file="${output}/symtest1/symtest2/link3"
+ property="test.recreate.link3.recreated"/>
+
+ <available file="${output}/symtest1/dirlink"
+ property="test.recreate.dirlink.recreated"/>
+
+ <!-- this should not get set -->
+ <available file="${output}/symtest1/symtest3/symtest3"
+ property="test.recreate.dirlink2.recreated.twice"
+ value="ERROR: dirlink2 was created a second time (bug 25181)"/>
+
+ <touch file="${output}/symtest1/dirlink3/WhereAmI"/>
+
+ <sleep seconds="${delay}"/> <!-- make sure OS has time to do the execs -->
+
+ <available file="${output}/symtest1/symtest3/WhereAmI"
+ property="test.recreate.dirlink3.was.altered"/>
+ </target>
+
+
+ <!-- actually tests the symlink methods in FileUtils, but this
+ testfixture already has all the necessary envirnment in place
+ -->
+ <target name="test-fileutils" depends="setUp">
+ <mkdir dir="${output}/dir1"/>
+ <mkdir dir="${output}/dir2"/>
+ <touch file="${output}/file1"/>
+ <touch file="${output}/file2"/>
+ <symlink link="${output}/dir.there" resource="${output}/dir1"/>
+ <symlink link="${output}/dir.notthere" resource="${output}/dir2"/>
+ <symlink link="${output}/file.there" resource="${output}/file1"/>
+ <symlink link="${output}/file.notthere" resource="${output}/file2"/>
+ <delete dir="${output}/dir2"/>
+ <delete file="${output}/file2"/>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/vss/vss.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/vss/vss.xml
new file mode 100644
index 00000000..7c6c0d39
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/vss/vss.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="vss-test" basedir="." default="vssget.1">
+
+ <!--
+ ===========================================================================
+ Test required attributes
+ ===========================================================================
+ -->
+ <target name="vssget.1">
+ <vssget/>
+ </target>
+
+ <target name="vsslabel.1">
+ <vsslabel/>
+ </target>
+
+ <target name="vsslabel.2">
+ <vsslabel vsspath="$/SourceRoot/Project"/>
+ </target>
+
+ <target name="vsshistory.1">
+ <vsshistory/>
+ </target>
+
+ <target name="vsscheckin.1">
+ <vsscheckin/>
+ </target>
+
+ <target name="vsscheckout.1">
+ <vsscheckout/>
+ </target>
+
+ <target name="vsscheckout.2">
+ <vsscheckout
+ vsspath="$/SourceRoot/Project"
+ filetimestamp="blah"/>
+ </target>
+
+ <target name="vssadd.1">
+ <vssadd/>
+ </target>
+
+ <target name="vsscp.1">
+ <vsscp/>
+ </target>
+
+ <target name="vsscreate.1">
+ <vsscreate/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xalan-redirect-in.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xalan-redirect-in.xsl
new file mode 100644
index 00000000..b9d07949
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xalan-redirect-in.xsl
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ extension-element-prefixes="redirect">
+<!--
+This is a test to ensure that systemid is set correctly
+for a xsl...the behavior might be dependent on Xalan1
+and Xalan2...this will be a problem to erase the files :(
+Can take as a systemid the base for the xsl document or
+the base or the JVM working dir just like: new File("xalan-redirect-out.tmp")
+-->
+<xsl:param name="xalan-version" select="'x'"/>
+
+<xsl:template match="/">
+<redirect:write file="./xalan{$xalan-version}-redirect-out.tmp">
+ <test>This should be written to the file</test>
+</redirect:write>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/about.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/about.xml
new file mode 100644
index 00000000..f6a9dab5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/about.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE doc PUBLIC
+ "-//stevo//DTD doc 1.0//EN"
+ "http://chemical/brothers"
+ >
+<doc>
+ <section title="About">
+ in the absence of technology, there is only marketing
+ </section>
+</doc>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/apache.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/apache.xsl
new file mode 100644
index 00000000..120addf8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/apache.xsl
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:output method="xml"/>
+
+ <xsl:template match="/">
+ <authors>
+ <xsl:apply-templates/>
+ </authors>
+ </xsl:template>
+ <xsl:template match="author">
+ <author>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ </author>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/books.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/books.xml
new file mode 100644
index 00000000..17923d7d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/books.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<books>
+ <book name="hamlet">
+ <author name="shakespeare"/>
+ </book>
+ <book name="the lord of rings">
+ <author name="tolkien"/>
+ </book>
+ <book name="le malade imaginaire">
+ <author name="moliere"/>
+ </book>
+</books> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/catalog b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/catalog
new file mode 100644
index 00000000..1c9bddf2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/catalog
@@ -0,0 +1,2 @@
+PUBLIC "-//stevo//DTD doc 1.0//EN" "doc.dtd"
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc-in-ns.xsd b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc-in-ns.xsd
new file mode 100644
index 00000000..b34147c4
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc-in-ns.xsd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://apache.org/ant/doc/"
+ xmlns:tns="http://apache.org/ant/doc/"
+ elementFormDefault="qualified">
+ <xs:element name="doc">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:section"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="section">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="title" type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.dtd b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.dtd
new file mode 100644
index 00000000..51629d58
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.dtd
@@ -0,0 +1,24 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!ELEMENT doc (section) >
+<!ELEMENT section (#PCDATA)>
+<!ATTLIST section title CDATA #IMPLIED>
+
+
+
+
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsd b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsd
new file mode 100644
index 00000000..eeedbcaf
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+ <xs:element name="doc">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="section"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="section">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="title" type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsl
new file mode 100644
index 00000000..3d9c2a4e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/doc.xsl
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:template="struts template"
+ version="1.0">
+<xsl:output method="text"/>
+<xsl:template match="/">
+<xsl:value-of select="/doc/section"/>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/docwithentity.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/docwithentity.xml
new file mode 100644
index 00000000..6435c328
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/docwithentity.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE books [
+ <!ENTITY globaldefinitions SYSTEM "entity.xml">
+]>
+<books>
+ &globaldefinitions;
+ <book name="the lord of rings">
+ <author name="tolkien"/>
+ </book>
+ <book name="le malade imaginaire">
+ <author name="moliere"/>
+ </book>
+</books> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema-invalid.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema-invalid.xml
new file mode 100644
index 00000000..ec580854
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema-invalid.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+ Invalid test XML file without any schema refeferences
+-->
+<doc>
+ <section title="endpiece">
+ With a little luck, the network will pick me up.
+ This is Ripley - last survivor of The Nostromo - signing off.
+ </section>
+
+ <invalidelement/>
+
+</doc>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema.xml
new file mode 100644
index 00000000..7ae559d9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-noSchema.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+ Test XML file without any schema refeferences
+-->
+<doc>
+ <section title="endpiece">
+ With a little luck, the network will pick me up.
+ This is Ripley - last survivor of The Nostromo - signing off.
+ </section>
+
+</doc>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-ns-no-location.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-ns-no-location.xml
new file mode 100644
index 00000000..3fe93c7c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece-ns-no-location.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="doc-in-ns.xsd" xmlns="http://apache.org/ant/doc/">
+ <section title="endpiece">
+ With a little luck, the network will pick me up.
+ This is Ripley - last survivor of The Nostromo - signing off.
+ </section>
+</doc>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece.xml
new file mode 100644
index 00000000..3fe93c7c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="doc-in-ns.xsd" xmlns="http://apache.org/ant/doc/">
+ <section title="endpiece">
+ With a little luck, the network will pick me up.
+ This is Ripley - last survivor of The Nostromo - signing off.
+ </section>
+</doc>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece2.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece2.xml
new file mode 100644
index 00000000..eec49f6f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/endpiece2.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="doc.xsd"
+ xmlns="http://Massive/Attack+Mezzanine">
+ <section title="endpiece">
+ With a little luck, the network will pick me up.
+ This is Ripley - last survivor of The Nostromo - signing off.
+ <illegal-element/>
+ </section>
+</doc>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/entity.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/entity.xml
new file mode 100644
index 00000000..a9340e56
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/entity.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+ <book name="hamlet">
+ <author name="shakespeare"/>
+ </book>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/iso-2022-jp.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/iso-2022-jp.xml
new file mode 100644
index 00000000..b325e6da
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/iso-2022-jp.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE test [
+ <!ELEMENT test (#PCDATA)>
+]>
+<test>
+ISO-2022-JP $B$N%U%!%$%k!#(B
+</test>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_include.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_include.xsl
new file mode 100644
index 00000000..9c1ffad7
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_include.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:template match="author">
+ <author>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ </author>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_with_include.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_with_include.xsl
new file mode 100644
index 00000000..b1feaca8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/stylesheet_with_include.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:output method="xml"/>
+ <xsl:include href="stylesheet_include.xsl"/>
+ <xsl:template match="/">
+ <authors>
+ <xsl:apply-templates/>
+ </authors>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xml
new file mode 100644
index 00000000..7f2abe00
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<root>
+ <a>this is the first line</a>
+ <b><c>not indented</c></b>
+ <b>
+ <c>indented</c>
+ </b>
+</root>
+ \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xsl
new file mode 100644
index 00000000..8d28eb3f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/test.xsl
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!-- Copy every node and attributes recursively -->
+ <xsl:template match="node()|@*">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/utf-8.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/utf-8.xml
new file mode 100644
index 00000000..db442a36
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/utf-8.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE test [
+ <!ELEMENT test (#PCDATA)>
+]>
+<test>
+Liberté, égalité, fraternité!
+</test>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/validate.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/validate.xml
new file mode 100644
index 00000000..cade722a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xml/validate.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="validate" default="testValidate" basedir=".">
+
+ <target name="testValidate">
+ <xmlvalidate warn="false">
+ <fileset dir="." includes="about.xml"/>
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="doc.dtd"/>
+ </xmlvalidate>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xmlvalidate.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xmlvalidate.xml
new file mode 100644
index 00000000..cd7cc45e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xmlvalidate.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="validate" default="testValidate" basedir=".">
+
+ <target name="testValidate">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="xml/doc.dtd"/>
+ </xmlvalidate>
+ </target>
+
+ <target name="testDeepValidate">
+ <ant dir="xml"
+ antfile="validate.xml"
+ target="testValidate"/>
+ </target>
+
+ <target name="xmlcatalog">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <xmlcatalog classpath="xml">
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="doc.dtd"/>
+ </xmlcatalog>
+ </xmlvalidate>
+ </target>
+
+ <target name="xmlcatalogViaRefid">
+ <xmlcatalog classpath="xml" id="cat">
+ <dtd publicID="-//stevo//DTD doc 1.0//EN" location="doc.dtd"/>
+ </xmlcatalog>
+ <xmlvalidate warn="false">
+ <xmlcatalog refid="cat"/>
+ <fileset dir="xml" includes="**/about.xml"/>
+ </xmlvalidate>
+ </target>
+
+ <target name="xmlcatalognested">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <xmlcatalog classpath="xml">
+ <entity publicID = "bogusImage"
+ location = "/i/dont/exist.jpg"/>
+ <xmlcatalog>
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="doc.dtd"/>
+ </xmlcatalog>
+ </xmlcatalog>
+ </xmlvalidate>
+ </target>
+
+ <!-- The -override tests should pass without resolver.jar -->
+ <target name="xmlcatalogfiles-override">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <xmlcatalog classpath="xml">
+ <catalogpath>
+ <fileset dir="xml" includes="catalog"/>
+ </catalogpath>
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="doc.dtd"/>
+ </xmlcatalog>
+ </xmlvalidate>
+ </target>
+
+ <target name="xmlcatalogpath-override">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <xmlcatalog classpath="xml">
+ <catalogpath>
+ <pathelement location="xml/catalog"/>
+ </catalogpath>
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="doc.dtd"/>
+ </xmlcatalog>
+ </xmlvalidate>
+ </target>
+
+ <target name="xmlcatalogfiles">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <xmlcatalog classpath="xml">
+ <catalogpath>
+ <fileset dir="xml" includes="catalog"/>
+ </catalogpath>
+ </xmlcatalog>
+ </xmlvalidate>
+ </target>
+
+ <target name="xmlcatalogpath">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="**/about.xml"/>
+ <xmlcatalog classpath="xml">
+ <catalogpath>
+ <pathelement location="xml/catalog"/>
+ </catalogpath>
+ </xmlcatalog>
+ </xmlvalidate>
+ </target>
+
+ <target name="testSchemaGood">
+ <xmlvalidate warn="false" lenient="no" >
+ <fileset dir="xml" includes="endpiece.xml"/>
+
+ <attribute name="http://xml.org/sax/features/validation"
+ value="false"/>
+ <attribute name="http://apache.org/xml/features/validation/schema"
+ value="false"/>
+
+ </xmlvalidate>
+ </target>
+
+ <target name="testSchemaBad">
+ <xmlvalidate warn="false">
+ <fileset dir="xml" includes="endpiece2.xml"/>
+
+ <attribute name="http://xml.org/sax/features/validation"
+ value="true"/>
+ <attribute name="http://apache.org/xml/features/validation/schema"
+ value="true"/>
+ </xmlvalidate>
+ </target>
+
+ <target name="testIso2022Jp">
+ <xmlvalidate warn="false" file="xml/iso-2022-jp.xml"/>
+ </target>
+
+ <target name="testUtf8">
+ <xmlvalidate warn="false" file="xml/utf-8.xml"/>
+ </target>
+
+
+ <!-- Tests property element with XML file that satisfies schema -->
+ <target name="testProperty.validXML">
+
+ <!-- Converts path to URL format -->
+ <pathconvert dirsep="/" property="xsd.file">
+ <path>
+ <pathelement location="xml/doc.xsd"/>
+ </path>
+ </pathconvert>
+
+ <xmlvalidate file="xml/endpiece-noSchema.xml" lenient="false"
+ failonerror="true" warn="true">
+
+ <attribute name="http://apache.org/xml/features/validation/schema"
+ value="true"/>
+
+ <property
+ name="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+ value="${xsd.file}"/>
+ </xmlvalidate>
+ </target>
+
+
+ <!-- Tests property element with XML file that fails schema validation -->
+ <target name="testProperty.invalidXML">
+
+ <!-- Converts path to URL format -->
+ <pathconvert dirsep="/" property="xsd.file">
+ <path>
+ <pathelement location="xml/doc.xsd"/>
+ </path>
+ </pathconvert>
+
+ <xmlvalidate file="xml/endpiece-noSchema-invalid.xml" lenient="false"
+ failonerror="true" warn="true">
+
+ <attribute name="http://apache.org/xml/features/validation/schema"
+ value="true"/>
+
+ <property
+ name="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+ value="${xsd.file}"/>
+ </xmlvalidate>
+ </target>
+
+ <target name="testSchemaWithXSD">
+ <xmlvalidate warn="false" lenient="false"
+ file="xml/endpiece-noSchema.xml">
+
+ <attribute name="http://apache.org/xml/features/validation/schema"
+ value="true"/>
+ <property
+ name="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+ value="${xsd.file}"/>
+
+ </xmlvalidate>
+ </target>
+
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xslt.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xslt.xml
new file mode 100644
index 00000000..d872ea8c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xslt.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xslt" default="tearDown" basedir=".">
+
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <target name="initNonAscii" depends="setUp">
+ <property name="nonasciidir" value="${output}/&#0227;nt"/>
+ <mkdir dir="${nonasciidir}"/>
+ <copy todir="${nonasciidir}">
+ <fileset dir="xml">
+ <include name="docwithentity.xml"/>
+ <include name="entity.xml"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="testCatchNoDtd" depends="setUp">
+ <xslt basedir="xml" destdir="${output}"
+ includes="about.xml"
+ extension=".txt"
+ style="xml/doc.xsl">
+ </xslt>
+ </target>
+
+ <xmlcatalog id="xdocs.catalog">
+ <dtd publicID="-//stevo//DTD doc 1.0//EN"
+ location="xml/doc.dtd"/>
+ </xmlcatalog>
+
+ <target name="testCatalog" depends="setUp">
+ <xslt destdir="${output}"
+ includes="about.xml"
+ extension=".txt"
+ style="xml/doc.xsl">
+ <xmlcatalog refid="xdocs.catalog"/>
+ </xslt>
+ </target>
+
+ <target name="testOutputProperty" depends="setUp">
+ <xslt in="xml/test.xml"
+ out="${output}/test-out.xml"
+ style="xml/test.xsl">
+ <outputproperty name="method" value="xml"/>
+ <outputproperty name="standalone" value="yes"/>
+ <outputproperty name="encoding" value="iso8859_1"/>
+ <outputproperty name="indent" value="yes"/>
+ </xslt>
+ </target>
+
+
+ <target name="testFactory" depends="setUp">
+ <xslt in="xml/test.xml"
+ out="${output}/test-out.xml"
+ style="xml/test.xsl">
+ <factory name="org.apache.xalan.processor.TransformerFactoryImpl"/>
+ </xslt>
+ </target>
+
+ <target name="testAttribute" depends="setUp">
+ <xslt in="xml/test.xml"
+ out="${output}/test-out.xml"
+ style="xml/test.xsl">
+ <factory name="org.apache.xalan.processor.TransformerFactoryImpl">
+ <attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
+ </factory>
+ </xslt>
+ </target>
+ <!-- inspired by bug report 37348 -->
+ <target name="testXMLWithEntitiesInNonAsciiPath" depends="initNonAscii">
+ <xslt in="${nonasciidir}/docwithentity.xml"
+ out="${output}/test-out.xml"
+ style="xml/apache.xsl">
+ </xslt>
+ </target>
+ <target name="testStyleSheetWithInclude" depends="setUp">
+ <xslt in="xml/books.xml"
+ out="${output}/test-out.xml"
+ style="xml/stylesheet_with_include.xsl">
+ </xslt>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xml
new file mode 100644
index 00000000..80d93369
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<root>
+ <message>éàèïù</message>
+</root>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xsl
new file mode 100644
index 00000000..f19bf820
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-encoding-in.xsl
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template match="/">
+ <root>
+ <xsl:for-each select="/root/message">
+ <message><xsl:value-of select="."/></message>
+ </xsl:for-each>
+ </root>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xml
new file mode 100644
index 00000000..a4b0247b
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE project [
+ <!ENTITY include SYSTEM "xsltliaison-include.xml">
+]>
+<project>
+ &include;
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xsl
new file mode 100644
index 00000000..852d38af
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-in.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:include href="xsltliaison-include.xsl"/>
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xml
new file mode 100644
index 00000000..aebef339
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- to be included by xsltliaison-include.xsl -->
+<task/>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xsl
new file mode 100644
index 00000000..986f1b3e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/optional/xsltliaison-include.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!-- to be included by xsltliaison-in.xsl -->
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/parallel.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/parallel.xml
new file mode 100644
index 00000000..9a3434c1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/parallel.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="parallel-test" basedir="." default="help">
+ <target name="testBasic">
+ <parallel>
+ <sequential>
+ <sleep seconds="1"/>
+ <echo message="${test.delayed}"/>
+ </sequential>
+ <echo message="${test.direct}"/>
+ </parallel>
+ </target>
+
+ <target name="testFail">
+ <parallel>
+ <sequential>
+ <sleep seconds="1"/>
+ <echo message="${test.delayed}"/>
+ </sequential>
+ <fail message="${test.failure}"/>
+ </parallel>
+ </target>
+
+ <target name="testThreadCount">
+ <echo>|1/</echo>
+ <parallel threadCount='1' pollInterval="60">
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="30"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="60"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="90"/>
+ <echo message="-"/>
+ </sequential>
+ </parallel>
+ <echo>|2/</echo>
+ <parallel threadCount='2' pollInterval="30">
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="30"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="60"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="90"/>
+ <echo message="-"/>
+ </sequential>
+ </parallel>
+ <echo>|3/</echo>
+ <parallel threadCount='3' pollInterval="30">
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="30"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="60"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="90"/>
+ <echo message="-"/>
+ </sequential>
+ </parallel>
+ <echo>|4/</echo>
+ <parallel threadCount='4' pollInterval="30">
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="30"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="60"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="90"/>
+ <echo message="-"/>
+ </sequential>
+ </parallel>
+ <echo>|4/</echo>
+ <parallel threadsPerProcessor='1' threadcount='4' pollInterval="30">
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="30"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="60"/>
+ <echo message="-"/>
+ </sequential>
+ <sequential>
+ <echo message="+"/>
+ <sleep milliseconds="90"/>
+ <echo message="-"/>
+ </sequential>
+ </parallel>
+ <echo>|</echo>
+
+ </target>
+
+ <target name="testDemux">
+ <parallel>
+ <demuxtest/>
+ <demuxtest/>
+ <demuxtest/>
+ <demuxtest/>
+ <demuxtest/>
+ </parallel>
+ </target>
+
+ <target name="testSingleExit">
+ <parallel>
+ <echo message="all is well"/>
+ <fail message="no it isn't" status="42"/>
+ </parallel>
+ </target>
+
+ <target name="testExitAndOtherException">
+ <parallel>
+ <fail message="no it isn't"/>
+ <fail message="no it isn't" status="42"/>
+ </parallel>
+ </target>
+
+ <target name="help">
+ <echo>Test build file for the &lt;parallel&gt; task.</echo>
+ <echo>Use the various targets to run the tests.</echo>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/pathconvert.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/pathconvert.xml
new file mode 100644
index 00000000..1cdcc8cd
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/pathconvert.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="pathconvert">
+
+ <path id="testpath">
+ <pathelement path="${ant.file}" />
+ </path>
+
+ <target name="testmap">
+ <pathconvert property="result" dirsep="#">
+ <path refid="testpath" />
+ <map from="${basedir}" to="test" />
+ </pathconvert>
+ </target>
+
+ <target name="testmapper">
+ <pathconvert property="result" dirsep="#">
+ <path refid="testpath" />
+ <mapper type="glob" from="${basedir}*" to="test*" />
+ </pathconvert>
+ </target>
+
+ <target name="testnotargetos">
+ <pathconvert property="result" refid="testpath" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/presetdef.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/presetdef.xml
new file mode 100644
index 00000000..695747eb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/presetdef.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project>
+ <path id="test-classes">
+ <pathelement location="../../../../build/testcases" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <target name="simple">
+ <presetdef name="my.echo">
+ <echo message="Hello world"/>
+ </presetdef>
+ <my.echo/>
+ </target>
+
+ <target name="text">
+ <presetdef name="my.echo">
+ <echo>Inner Text</echo>
+ </presetdef>
+ <my.echo/>
+ </target>
+
+ <target name="uri">
+ <presetdef name="echo" uri="abc">
+ <echo message="Hello world"/>
+ </presetdef>
+ <x:echo xmlns:x="abc"/>
+ </target>
+
+ <target name="defaulttest">
+ <taskdef name="defaulttest"
+ classname="org.apache.tools.ant.taskdefs.PreSetDefTest$DefaultTest"
+ classpathref="test-classes"/>
+ <presetdef name="d">
+ <defaulttest attribute="true"/>
+ </presetdef>
+ <d attribute="false"/>
+ </target>
+
+ <target name="doubledefault">
+ <taskdef name="defaulttest"
+ classname="org.apache.tools.ant.taskdefs.PreSetDefTest$DefaultTest"
+ classpathref="test-classes"/>
+ <presetdef name="d">
+ <defaulttest attribute="true"/>
+ </presetdef>
+ <presetdef name="dd">
+ <d attribute="false"/>
+ </presetdef>
+ <dd/>
+ <dd attribute="true"/>
+ </target>
+
+ <target name="antTypeTest">
+ <taskdef name="anttypetest"
+ classname="org.apache.tools.ant.taskdefs.PreSetDefTest$AntTypeTest"
+ classpathref="test-classes"/>
+ <presetdef name="java.fileset">
+ <fileset>
+ <include name="**/*.java"/>
+ </fileset>
+ </presetdef>
+
+ <anttypetest>
+ <fileset ant-type="java.fileset" dir="."/>
+ <configured ant-type="java.fileset" dir="."/>
+ </anttypetest>
+ </target>
+
+ <target name="text.optional">
+ <presetdef name="echo.mytext">
+ <echo>MyText</echo>
+ </presetdef>
+ <echo.mytext/>
+ <echo.mytext>override text</echo.mytext>
+ </target>
+
+ <target name="element.order">
+ <presetdef name="el.order">
+ <sequential>
+ <echo>Line 1</echo>
+ </sequential>
+ </presetdef>
+ <el.order>
+ <echo>Line 2</echo>
+ </el.order>
+ </target>
+
+ <target name="element.order2">
+ <presetdef name="el.order">
+ <sequential>
+ <echo>Line 1</echo>
+ </sequential>
+ </presetdef>
+ <presetdef name="el.order2">
+ <el.order>
+ <echo>Line 2</echo>
+ </el.order>
+ </presetdef>
+ <el.order2>
+ <echo>Line 3</echo>
+ </el.order2>
+ </target>
+
+ <target name="correct_taskname_badattr">
+ <presetdef name="mytask">
+ <javac srcdir="whatever"/>
+ </presetdef>
+
+ <javac srcdir="whatever" badattr="whatever"/>
+ </target>
+
+ <target name="correct_taskname_badel">
+ <presetdef name="mytask">
+ <javac srcdir="whatever"/>
+ </presetdef>
+
+ <javac srcdir="whatever">
+ <badel/>
+ </javac>
+ </target>
+
+ <target name="presetdef-with-nested-element-twice">
+ <copy todir=".">
+ <fileset dir="." includes="nonexistent"/>
+ </copy>
+ <presetdef name="copy">
+ <copy verbose="true"/>
+ </presetdef>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property.xml
new file mode 100644
index 00000000..87cda8b0
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="property-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+ <available property="java5+" classname="java.lang.Iterable"/>
+
+ <target name="test1">
+ <property environment="testenv"/>
+ </target>
+
+ <target name="test2">
+ <property name="testprop1" value="aa"/>
+ <property file="property1.properties"/>
+ <echo message="testprop1=${testprop1}, testprop3=${testprop3}, testprop4=${testprop4}"/>
+ </target>
+
+ <target name="test3">
+ <property file="property2.properties"/>
+ </target>
+
+ <target name="test4">
+ <property name="http.port" value="999" />
+ <property file="property3.properties"/>
+ <echo message="http.url is ${http.url}"/>
+ </target>
+
+ <target name="test5">
+ <property name="http.port" value="999" />
+ <property url="${test5.url}"/>
+ <echo message="http.url is ${http.url}"/>
+ </target>
+
+ <target name="prefix.success">
+ <property file="property3.properties" prefix="server1"/>
+ </target>
+
+ <target name="prefix.fail">
+ <property name="someprop" value="value" prefix="prefix"/>
+ </target>
+
+ <!-- caused an endless loop, PR 21825 -->
+ <target name="testCircularReference">
+ <property file="property4.properties"/>
+ </target>
+
+ <target name="thisIsNotACircularReference">
+ <property file="property5.properties"/>
+ <echo>b is ${b}</echo>
+ </target>
+
+ <target name="genXmlPropFile">
+ <echo file="${output}/props.xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE properties SYSTEM &quot;http://java.sun.com/dtd/properties.dtd&quot;&gt;
+&lt;properties version=&quot;1.0&quot;&gt;
+ &lt;comment&gt;
+ Example of property definition according to Suns DTD as
+ specified in the Java5 docs and http://java.sun.com/dtd/properties.dtd.
+ &lt;/comment&gt;
+ &lt;entry key=&quot;xml.one&quot;&gt;ONE&lt;/entry&gt;
+ &lt;entry key=&quot;xml.two&quot;&gt;TWO&lt;/entry&gt;
+&lt;/properties&gt;
+ </echo>
+ </target>
+
+ <target name="testXmlProperty.internal" depends="genXmlPropFile" if="java5+">
+ <property file="${output}/props.xml"/>
+ </target>
+ <target name="testXmlProperty" depends="testXmlProperty.internal"/>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property1.properties
new file mode 100644
index 00000000..ef3ebd30
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property1.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+testprop2=xx
+testprop3=${testprop2}yy
+testprop4=${testprop1}zz
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property2.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property2.properties
new file mode 100644
index 00000000..81253120
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property2.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+testprop1=aa${testprop2}bb
+testprop2=cc${testprop1}dd
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property3.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property3.properties
new file mode 100644
index 00000000..ac21612f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property3.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+http.port = 80
+http.url = http://localhost:${http.port}
+
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property4.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property4.properties
new file mode 100644
index 00000000..65527105
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property4.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+a=${a}
+b=${a}/b
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property5.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property5.properties
new file mode 100644
index 00000000..e1ebcd37
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/property5.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+a=A
+b=${a}/${c}/${a}
+c=${a}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder.xml
new file mode 100644
index 00000000..1c073118
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="recorder-test" default="all" basedir=".">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <property name="recin" location="recorder"/>
+
+ <target name="all" depends="noappend,append,restart,deleterestart"/>
+
+ <target name="noappend">
+ <copy file="${recin}/rectest2.result" tofile="${output}/rectest1.log"/>
+ <record name="${output}/rectest1.log" action="start"/>
+ <echo message="some message1"/>
+ <record name="${output}/rectest1.log" action="stop"/>
+ </target>
+
+ <target name="append">
+ <copy file="${recin}/rectest1.result" tofile="${output}/rectest2.log"/>
+ <record name="${output}/rectest2.log" append="true" action="start"/>
+ <echo message="some message2"/>
+ <record name="${output}/rectest2.log" action="stop"/>
+ </target>
+
+ <target name="restart">
+ <record name="${output}/rectest3.log" action="start"/>
+ <echo message="some message1"/>
+ <record name="${output}/rectest3.log" action="stop"/>
+ <echo message="some message2"/>
+ <record name="${output}/rectest3.log" action="start"/>
+ <echo message="some message3"/>
+ <record name="${output}/rectest3.log" action="stop"/>
+ </target>
+
+ <target name="deleterestart">
+ <record name="${output}/rectest4.log" action="start"/>
+ <echo message="some message1"/>
+ <record name="${output}/rectest4.log" action="stop"/>
+ <delete file="${output}/rectest4.log"/>
+ <echo message="some message2"/>
+ <record name="${output}/rectest4.log" action="start"/>
+ <echo message="some message3"/>
+ <record name="${output}/rectest4.log" action="stop"/>
+ </target>
+
+ <target name="subbuild">
+ <record name="${output}/rectest5.log" action="start"/>
+ <echo message="some message5"/>
+ <ant antfile="recorder2.xml"/>
+ <record name="${output}/rectest5.log" action="stop"/>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest1.result b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest1.result
new file mode 100644
index 00000000..0f8013f3
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest1.result
@@ -0,0 +1 @@
+ [echo] some message1
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest2.result b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest2.result
new file mode 100644
index 00000000..80550fdd
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest2.result
@@ -0,0 +1,2 @@
+ [echo] some message1
+ [echo] some message2
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest3.result b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest3.result
new file mode 100644
index 00000000..e4961774
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest3.result
@@ -0,0 +1,2 @@
+ [echo] some message1
+ [echo] some message3
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest4.result b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest4.result
new file mode 100644
index 00000000..db6239e0
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest4.result
@@ -0,0 +1 @@
+ [echo] some message3
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest5.result b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest5.result
new file mode 100644
index 00000000..7f58ebf8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest5.result
@@ -0,0 +1,5 @@
+ [echo] some message5
+
+test6:
+ [echo] some message6
+ [echo] some message8
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest6.result b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest6.result
new file mode 100644
index 00000000..c9ceb0b5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder/rectest6.result
@@ -0,0 +1,3 @@
+ [echo] some message6
+ [echo] some message7
+ [echo] some message8
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder2.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder2.xml
new file mode 100644
index 00000000..e093cf51
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/recorder2.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="recorder-test" default="test6" basedir=".">
+
+ <target name="test6">
+ <record name="${output}/rectest6.log" action="start" />
+ <echo message="some message6"/>
+ <record name="${output}/rectest5.log" action="stop" />
+ <echo message="some message7"/>
+ <record name="${output}/rectest5.log" action="start" />
+ <echo message="some message8"/>
+ <record name="${output}/rectest6.log" action="stop" />
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rename.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rename.xml
new file mode 100644
index 00000000..a23a81e1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rename.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <target name="test1">
+ <rename/>
+ </target>
+
+ <target name="test2">
+ <rename src=""/>
+ </target>
+
+ <target name="test3">
+ <rename dest=""/>
+ </target>
+
+ <target name="test4">
+ <rename src="testdir"
+ dest="testdir"/>
+ </target>
+
+ <target name="test5">
+ <rename src="template.xml"
+ dest="."/>
+ </target>
+
+ <target name="test6">
+ <rename src="template.xml"
+ dest="template.tmp"/>
+ <rename src="template.tmp"
+ dest="template.xml"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace.xml
new file mode 100644
index 00000000..a4039e53
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+
+ <target name="test1">
+ <replace/>
+ </target>
+
+ <target name="test2">
+ <replace file=""/>
+ </target>
+
+ <target name="test3">
+ <replace file="template.xml"/>
+ </target>
+
+ <target name="test4">
+ <replace file="template.xml" token=""/>
+ </target>
+
+ <target name="test5">
+ <replace file="template.xml"
+ token="dont_want_to_really_replace_something"/>
+ </target>
+
+ <target name="test6">
+ <replace file="template.xml">
+ <replacefilter />
+ </replace>
+ </target>
+
+ <target name="test7">
+ <replace file="template.xml">
+ <replacefilter token="" />
+ </replace>
+ </target>
+
+ <target name="test8">
+ <replace file="template.xml">
+ <replacefilter token="dont_want_to_really_replace_something" />
+ </replace>
+ </target>
+
+ <target name="test9-setup">
+ <!-- this fixing of line endings is necessary because the replace task is transforming the line endings -->
+ <!-- of the replacement tokens and values to the platform default -->
+ <!-- in certain cases (checkout done with cvs of cygwin, the line endings of the various files do not match-->
+ <!-- the system property line.separator -->
+ <copy file="replace/source.txt" tofile="${output}/output.txt"/>
+ <copy file="replace/value.txt" tofile="${output}/value.txt" />
+ <copy file="replace/result.txt" tofile="${output}/result.txt" />
+ <fixcrlf srcdir="${output}" includes="*.txt"/>
+ </target>
+ <target name="test9" depends="test9-setup">
+ <loadfile srcFile="${output}/value.txt" property="content"/>
+ <replace file="${output}/output.txt" token="@@@Replace this@@@" value="${content}"/>
+ </target>
+
+ <target name="lastModifiedSetup">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/test.txt">Hello, world!</echo>
+ </target>
+ <target name="testNoPreserve">
+ <replace token="world" value="Ant" file="${output}/test.txt"/>
+ </target>
+ <target name="testPreserve">
+ <replace token="world" value="Ant" file="${output}/test.txt"
+ preserveLastModified="true"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/result.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/result.txt
new file mode 100644
index 00000000..a74e06ea
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/result.txt
@@ -0,0 +1,7 @@
+This is line one
+This is line two
+This is line three
+This is line four
+This is line five
+This is line six
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/source.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/source.txt
new file mode 100644
index 00000000..8d73f317
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/source.txt
@@ -0,0 +1,4 @@
+This is line one
+This is line two
+This is line three
+@@@Replace this@@@
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/value.txt b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/value.txt
new file mode 100644
index 00000000..c75b5529
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/replace/value.txt
@@ -0,0 +1,3 @@
+This is line four
+This is line five
+This is line six \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/rmic.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/rmic.xml
new file mode 100644
index 00000000..757fca51
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/rmic.xml
@@ -0,0 +1,499 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="rmic" default="tearDown" basedir=".">
+
+ <property name="rmic.dir" location="." />
+ <property name="src.dir" location="${rmic.dir}/src"/>
+
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ <property name="build.dir" location="${output}/build"/>
+ <property name="dest.dir" location="${output}/dest"/>
+ </target>
+
+
+
+ <!-- init builds the java source -->
+ <target name="init" depends="probe-rmic,setUp">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${dest.dir}"/>
+
+ <javac
+ destdir="${build.dir}"
+ srcdir="${src.dir}"
+ includes="Remote*.java">
+ </javac>
+
+ <presetdef name="base-rmic">
+ <rmic
+ base="${build.dir}"
+ verify="true"
+ includes="**/*.class"/>
+ </presetdef>
+
+ <presetdef name="rmic-bad-class">
+ <rmic
+ base="${build.dir}"
+ verify="false"
+ classname="unimplemented.class"
+ />
+ </presetdef>
+
+ <presetdef name="dest-rmic">
+ <rmic
+ base="${build.dir}"
+ destdir="${dest.dir}"
+ verify="true"
+ includes="**/*.class"/>
+ </presetdef>
+
+ <macrodef name="assertFileCreated">
+ <attribute name="file" />
+ <sequential>
+ <fail>Not found : ${build.dir}/@{file}
+ <condition>
+ <not><available file="${build.dir}/@{file}"/></not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertFileCreatedInDest">
+ <attribute name="file" />
+ <sequential>
+ <fail>Not found : ${dest.dir}/@{file}
+ <condition>
+ <not><available file="${dest.dir}/@{file}"/></not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertFileAbsent">
+ <attribute name="file" />
+ <sequential>
+ <fail>Expected to be missing : ${build.dir}/@{file}
+ <condition>
+ <available file="${build.dir}/@{file}"/>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertFileAbsentInDest">
+ <attribute name="file" />
+ <sequential>
+ <fail>Expected to be missing : ${dest.dir}/@{file}
+ <condition>
+ <available file="${dest.dir}/@{file}"/>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertStubCompiled">
+ <sequential>
+ <assertFileCreated file="RemoteTimestampImpl_Stub.class" />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertStubCompiledInDest">
+ <sequential>
+ <assertFileCreatedInDest file="RemoteTimestampImpl_Stub.class" />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertSkelCompiled">
+ <sequential>
+ <assertFileCreated file="RemoteTimestampImpl_Skel.class" />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertSkelCompiledInDest">
+ <sequential>
+ <assertFileCreatedInDest file="RemoteTimestampImpl_Skel.class" />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertSkelAbsent">
+ <sequential>
+ <assertFileAbsent file="RemoteTimestampImpl_Skel.class" />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertSkelAbsentInDest">
+ <sequential>
+ <assertFileAbsentInDest file="RemoteTimestampImpl_Skel.class" />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertBaseCompiled">
+ <sequential>
+ <assertStubCompiled />
+ <assertSkelCompiled />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertBaseCompiledInDest">
+ <sequential>
+ <assertStubCompiledInDest />
+ <assertSkelCompiledInDest />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertAntStubCompiled">
+ <sequential>
+ <assertFileCreated file="AntTimestamp_Stub.class"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertAntStubCompiledInDest">
+ <sequential>
+ <assertFileCreatedInDest file="AntTimestamp_Stub.class"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertAntSkelCompiled">
+ <sequential>
+ <assertFileCreated file="AntTimestamp_Skel.class"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertAntSkelCompiledInDest">
+ <sequential>
+ <assertFileCreatedInDest file="AntTimestamp_Skel.class"/>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertAntCompiled">
+ <sequential>
+ <assertAntStubCompiled />
+ <assertAntSkelCompiled />
+ </sequential>
+ </macrodef>
+
+ <macrodef name="assertAntCompiledInDest">
+ <sequential>
+ <assertAntStubCompiledInDest />
+ <assertAntSkelCompiledInDest />
+ </sequential>
+ </macrodef>
+
+ </target>
+
+ <target name="probe-rmic">
+ <available property="kaffe.present" classname="jkaffe.rmi.rmic.RMIC"/>
+ <available property="rmic.present" classname="sun.rmi.rmic.Main"/>
+ <available property="wlrmic.present" classname="weblogic.rmic"/>
+ <condition property="rmic5.present">
+ <and>
+ <isset property="rmic.present"/>
+ <available classname="java.net.Proxy"/>
+ </and>
+ </condition>
+ <condition property="rmic6.present">
+ <and>
+ <isset property="rmic.present"/>
+ <available classname="java.util.ServiceLoader"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="testDefault" depends="init">
+ <base-rmic compiler="default" listfiles="true"/>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testDefaultDest" depends="init">
+ <dest-rmic compiler="default"/>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testEmpty" depends="init">
+ <base-rmic compiler=""/>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testEmptyDest" depends="init">
+ <dest-rmic compiler=""/>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testVersion11" depends="init">
+ <base-rmic compiler="default" stubversion="1.1" />
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testVersion11Dest" depends="init">
+ <dest-rmic compiler="default" stubversion="1.1" />
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testVersion12" depends="init">
+ <base-rmic compiler="default" stubversion="1.2" />
+ <assertStubCompiled/>
+ <assertSkelAbsent/>
+ </target>
+
+ <target name="testVersion12Dest" depends="init">
+ <dest-rmic compiler="default" stubversion="1.2" />
+ <assertStubCompiledInDest/>
+ <assertSkelAbsentInDest/>
+ </target>
+
+ <target name="testVersionCompat" depends="init">
+ <base-rmic compiler="default" stubversion="compat" />
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testVersionCompatDest" depends="init">
+ <dest-rmic compiler="default" stubversion="compat" />
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testRmic" if="rmic.present" depends="init">
+ <base-rmic compiler="sun"/>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testRmicDest" if="rmic.present" depends="init">
+ <dest-rmic compiler="sun"/>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testRmicJArg" if="rmic.present" depends="init">
+ <base-rmic compiler="sun">
+ <compilerarg value="-J-mx256m" />
+ </base-rmic>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testRmicJArgDest" if="rmic.present" depends="init">
+ <dest-rmic compiler="sun">
+ <compilerarg value="-J-mx256m" />
+ </dest-rmic>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testKaffe" if="kaffe.present" depends="init">
+ <base-rmic
+ compiler="kaffe"
+ />
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testKaffeDest" if="kaffe.present" depends="init">
+ <dest-rmic
+ compiler="kaffe"
+ />
+ <assertBaseCompiledInDest/>
+ </target>
+
+<!-- weblogic.rmic doesn't work without a global CLASSPATH
+ <target name="testWlrmic" if="wlrmic.present" depends="init">
+ <base-rmic
+ compiler="weblogic"
+ />
+ </target>
+
+ <target name="testWlrmicJArg" if="wlrmic.present" depends="init">
+ <base-rmic
+ compiler="weblogic"
+ >
+ <compilerarg value="-J-mx256m" />
+ </base-rmic>
+ </target>
+-->
+ <target name="testForking" if="rmic.present" depends="init">
+ <base-rmic
+ compiler="forking"
+ />
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testBadName" if="rmic.present" depends="init">
+ <base-rmic
+ compiler="no-such-compiler"
+ />
+ </target>
+
+ <target name="testExplicitClass" if="rmic.present" depends="init">
+ <base-rmic
+ compiler="org.apache.tools.ant.taskdefs.rmic.SunRmic"
+ />
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testWrongClass" if="rmic.present" depends="init">
+ <base-rmic
+ compiler="org.apache.tools.ant.BuildException"
+ />
+ </target>
+
+ <target name="testNoBase" depends="init">
+ <rmic
+ verify="true"
+ includes="**/*.class"/>
+ </target>
+
+ <target name="testBaseDoesntExist" depends="init">
+ <rmic
+ base="${build.dir}/classes"
+ verify="true"
+ includes="**/*.class"/>
+ </target>
+
+ <target name="testBaseIsntDir" depends="init">
+ <rmic
+ base="${ant.file}"
+ verify="true"
+ includes="**/*.class"/>
+ </target>
+
+ <target name="testFailingAdapter" depends="init">
+ <base-rmic
+ compiler="org.apache.tools.ant.taskdefs.rmic.RmicAdvancedTest$FailingRmicAdapter"
+ />
+ </target>
+
+ <target name="compileAntTimestamp" depends="init">
+ <javac
+ destdir="${build.dir}"
+ srcdir="${src.dir}"
+ includes="Ant*.java">
+ </javac>
+ </target>
+
+ <target name="testAntClasspath" depends="compileAntTimestamp">
+ <base-rmic
+ compiler="default"
+ />
+ <assertAntCompiled/>
+ </target>
+
+ <target name="testAntClasspathDest" depends="compileAntTimestamp">
+ <dest-rmic
+ compiler="default"
+ />
+ <assertAntCompiledInDest/>
+ </target>
+
+ <target name="testForkingAntClasspath" if="rmic.present" depends="compileAntTimestamp">
+ <base-rmic
+ compiler="forking"
+ />
+ <assertAntCompiled />
+ </target>
+
+ <target name="testForkingAntClasspathDest" if="rmic.present" depends="compileAntTimestamp">
+ <dest-rmic
+ compiler="forking"
+ />
+ <assertAntCompiledInDest />
+ </target>
+
+ <target name="testDefaultBadClass" depends="init">
+ <rmic-bad-class compiler="default"/>
+ </target>
+
+ <target name="testMagicProperty" depends="init">
+ <property name="build.rmic" value="no-such-adapter"/>
+ <base-rmic
+ />
+ </target>
+
+ <target name="testMagicPropertyOverridesEmptyString" depends="init">
+ <property name="build.rmic" value="no-such-adapter"/>
+ <base-rmic compiler=""
+ />
+ </target>
+
+ <target name="testMagicPropertyIsEmptyString" depends="init">
+ <property name="build.rmic" value=""/>
+ <base-rmic />
+ <assertBaseCompiled/>
+ </target>
+
+ <!--
+ This test stamps on the XML parser settings on java6, so it is disabled.
+ -->
+ <target name="testXnew" if="rmic5.present" unless="rmic6.present" depends="init">
+ <base-rmic compiler="sun">
+ <compilerarg value="-Xnew"/>
+ </base-rmic>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testXnewDest" if="rmic5.present" unless="rmic6.present" depends="init">
+ <dest-rmic compiler="sun">
+ <compilerarg value="-Xnew"/>
+ </dest-rmic>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testXnewForked" if="rmic5.present" depends="init">
+ <base-rmic compiler="forking">
+ <compilerarg value="-Xnew"/>
+ </base-rmic>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testXnewForkedDest" if="rmic5.present" depends="init">
+ <dest-rmic compiler="forking">
+ <compilerarg value="-Xnew"/>
+ </dest-rmic>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testXnewCompiler" if="rmic5.present" depends="init">
+ <base-rmic compiler="xnew">
+ </base-rmic>
+ <assertBaseCompiled/>
+ </target>
+
+ <target name="testXnewCompilerDest" if="rmic5.present" depends="init">
+ <dest-rmic compiler="xnew">
+ </dest-rmic>
+ <assertBaseCompiledInDest/>
+ </target>
+
+ <target name="testIDL" depends="init">
+ <base-rmic compiler="default" idl="true"/>
+ <assertFileCreated file="RemoteTimestamp.idl"/>
+ </target>
+
+ <target name="testIDLDest" depends="init">
+ <dest-rmic compiler="default" idl="true"/>
+ <assertFileCreatedInDest file="RemoteTimestamp.idl"/>
+ </target>
+
+ <target name="testIIOP" depends="init">
+ <base-rmic compiler="default" iiop="true"/>
+ <assertFileCreated file="_RemoteTimestamp_Stub.class"/>
+ <assertFileCreated file="_RemoteTimestampImpl_Tie.class"/>
+ </target>
+
+ <target name="testIIOPDest" depends="init">
+ <dest-rmic compiler="default" iiop="true"/>
+ <assertFileCreatedInDest file="_RemoteTimestamp_Stub.class"/>
+ <assertFileCreatedInDest file="_RemoteTimestampImpl_Tie.class"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java
new file mode 100644
index 00000000..d9ba7854
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.util.Calendar;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.util.DateUtils;
+
+
+/**
+ * This class imports a dependency on the Ant runtime classes,
+ * so tests that classpath setup include them
+ */
+public class AntTimestamp implements RemoteTimestamp {
+
+
+ /**
+ * return the phase of the moon.
+ * Note the completely different semantics of the other implementation,
+ * which goes to show why signature is an inadequate way of verifying
+ * how well an interface is implemented.
+ *
+ * @return
+ * @throws RemoteException
+ */
+ public long when() throws RemoteException {
+ Calendar cal=Calendar.getInstance();
+ return DateUtils.getPhaseOfMoon(cal);
+ }
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestamp.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestamp.java
new file mode 100644
index 00000000..1834e4a1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestamp.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+/**
+ * this is the interface we remote
+ */
+public interface RemoteTimestamp extends Remote {
+ long when() throws RemoteException ;
+}
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestampImpl.java b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestampImpl.java
new file mode 100644
index 00000000..f361452e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/rmic/src/RemoteTimestampImpl.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+/**
+ * this is the implementation
+ */
+public class RemoteTimestampImpl implements RemoteTimestamp {
+
+ public long when() throws RemoteException {
+ return System.currentTimeMillis();
+ }
+}
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/signjar.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/signjar.xml
new file mode 100644
index 00000000..38a13592
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/signjar.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="signjartest" default="help" basedir="..">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ <property name="subdir" location="${output}/subdir" />
+ <property name="classes.dir" value="../../../build/classes"/>
+ <property name="test.jar" location="${output}/signtest.jar" />
+ <property name="subdirtest.jar" location="${subdir}/signtest.jar" />
+
+ </target>
+
+
+ <macrodef name="assertSigned">
+ <attribute name="jar" default="${test.jar}" />
+ <sequential>
+ <fail message="not signed: @{jar}" >
+ <condition>
+ <not><issigned file="@{jar}" /></not>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <presetdef name="sign-base">
+ <signjar alias="testonly" keystore="testkeystore"
+ storepass="apacheant"/>
+ </presetdef>
+
+ <presetdef name="verify-base">
+ <verifyjar keystore="testkeystore"
+ storepass="apacheant"/>
+ </presetdef>
+
+ <presetdef name="sign">
+ <sign-base jar="${test.jar}" />
+ </presetdef>
+
+ <target name="jar" depends="setUp">
+ <jar jarfile="${test.jar}" basedir="${classes.dir}" includes="**/Task.class"/>
+ </target>
+
+ <target name="help">
+ <echo>This build is for use with Ant's test cases</echo>
+ </target>
+
+ <target name="basic" depends="jar">
+ <sign />
+ <assertSigned/>
+ </target>
+
+ <target name="sigfile" depends="jar">
+ <sign sigfile="TEST"/>
+ <assertSigned/>
+ </target>
+
+ <target name="invalidchars" depends="jar">
+ <sign alias="test@nly"/>
+ <assertSigned/>
+ </target>
+
+ <target name="urlKeystoreFile" depends="jar">
+ <sign keystore="file://../testkeystore"
+ maxmemory="128m"/>
+ <assertSigned/>
+ </target>
+
+ <target name="urlKeystoreHTTP" depends="jar">
+ <sign
+ keystore="http://ant.apache.org/webtest/testkeystore"
+ />
+ <assertSigned/>
+ </target>
+
+ <target name="testTsaLocalhost" depends="jar">
+ <sign tsaurl="http://localhost:0/" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/skinconfig.dtd b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/skinconfig.dtd
new file mode 100644
index 00000000..ba1b4de6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/skinconfig.dtd
@@ -0,0 +1,19 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!ELEMENT skinconfig (foo, bar?)>
+<!ELEMENT foo (#PCDATA)>
+<!ELEMENT bar (#PCDATA)>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sleep.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sleep.xml
new file mode 100644
index 00000000..e1613227
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sleep.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="sleeptest" default="all" >
+
+ <target name="test1">
+ <sleep />
+ </target>
+
+ <target name="test2">
+ <sleep milliseconds="10"/>
+ </target>
+
+ <target name="test3">
+ <sleep seconds="2"/>
+ </target>
+
+ <target name="test4">
+ <sleep hours="1" minutes="-59" seconds="-58"/>
+ </target>
+
+ <target name="test5">
+ <sleep minutes="-59" seconds="-58"/>
+ </target>
+
+ <target name="test6">
+ <sleep minutes="-59" seconds="-58" failonerror="no"/>
+ </target>
+
+ <target name="all"
+ depends="test1,test2,test3,test4,test5" />
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/build.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/build.xml
new file mode 100644
index 00000000..c91d10f6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/build.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xslt-test" basedir="." default="tearDown">
+
+ <import file="../../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+
+ <target name="testStyleIsSet">
+ <xslt in="data.xml" out="${output}/out.xml"/>
+ </target>
+
+ <target name="testTransferParameterSet">
+ <property name="value" value="myvalue"/>
+ <xslt in="data.xml" out="${output}/out.xml" style="printParams.xsl">
+ <param name="set" expression="${value}"/>
+ </xslt>
+ </target>
+
+ <target name="testTransferParameterEmpty">
+ <property name="value" value=""/>
+ <xslt in="data.xml" out="${output}/out.xml" style="printParams.xsl">
+ <param name="empty" expression="${value}"/>
+ </xslt>
+ </target>
+
+ <target name="testTransferParameterUnset">
+ <xslt in="data.xml" out="${output}/out.xml" style="printParams.xsl">
+ <param name="undefined" expression="${value}"/>
+ </xslt>
+ </target>
+
+ <target name="testTransferParameterUnsetWithIf">
+ <xslt in="data.xml" out="${output}/out.xml" style="printParams.xsl">
+ <param name="undefined" expression="${value}" if="value" />
+ </xslt>
+ </target>
+
+ <target name="testDefaultMapper">
+ <property name="value" value="myvalue"/>
+ <xslt style="printParams.xsl" destDir="${output}" basedir=".">
+ <param name="set" expression="${value}"/>
+ </xslt>
+ </target>
+
+ <target name="testCustomMapper">
+ <property name="value" value="myvalue"/>
+ <xslt style="printParams.xsl" destDir="${output}" basedir=".">
+ <param name="set" expression="${value}"/>
+ <mapper type="glob" from="data.*" to="out.*"/>
+ </xslt>
+ </target>
+
+ <target name="testTypedMapper">
+ <property name="value" value="myvalue"/>
+ <xslt style="printParams.xsl" destDir="${output}" basedir=".">
+ <param name="set" expression="${value}"/>
+ <globmapper from="data.*" to="out.*"/>
+ </xslt>
+ </target>
+
+ <target name="testExplicitFileset">
+ <property name="value" value="myvalue"/>
+ <xslt style="printParams.xsl" destDir="${output}"
+ useImplicitFileset="false" basedir="..">
+ <param name="set" expression="${value}"/>
+ <fileset dir="."/>
+ </xslt>
+ </target>
+
+ <target name="testNewerStylesheet">
+ <antcall target="copyXsl">
+ <param name="xsl.value" value="old-value"/>
+ </antcall>
+ <xslt in="data.xml" out="${output}/out.xml" style="tmp.xsl"/>
+
+ <antcall target="copyXsl">
+ <param name="xsl.value" value="new-value"/>
+ </antcall>
+ <xslt in="data.xml" out="${output}/out.xml" style="tmp.xsl"/>
+ <delete file="tmp.xsl"/>
+ </target>
+
+ <target name="testDirectoryHierarchyWithDirMatching">
+ <mkdir dir="${output}/src/level1/"/>
+ <copy file="data.xml" todir="${output}/src/level1/"/>
+ <xslt basedir="${output}/src" destdir="${output}/dest"
+ style="printParams.xsl"/>
+ </target>
+
+ <target name="testDirsWithSpaces">
+ <mkdir dir="${output}/s rc/"/>
+ <copy file="data.xml" todir="${output}/s rc/"/>
+ <xslt basedir="${output}/s rc" destdir="${output}/d est"
+ style="printParams.xsl"/>
+ </target>
+
+ <target name="copyXsl" if="xsl.value">
+ <copy file="testNewerStylesheet.xsl" tofile="tmp.xsl" overwrite="true">
+ <filterchain><expandproperties/></filterchain>
+ </copy>
+ </target>
+
+ <target name="testWithStyleAttrAndResource">
+ <!-- also testing style as resources, with refid -->
+ <file id="xslFile" file="printParams.xsl"/>
+ <xslt in="data.xml" out="${output}/out.xml" style="printParams.xsl">
+ <style refid="xslFile" />
+ </xslt>
+ </target>
+
+ <target name="testWithFileResource">
+ <xslt in="data.xml" out="${output}/out.xml">
+ <style>
+ <file file="printParams.xsl"/>
+ </style>
+ <param name="set" expression="value"/>
+ </xslt>
+ </target>
+
+ <target name="testWithUrlResource">
+ <makeurl file="printParams.xsl" property="printParams.xsl.url"/>
+ <xslt in="data.xml" out="${output}/out.xml">
+ <style>
+ <url url="${printParams.xsl.url}"/>
+ </style>
+ <param name="set" expression="value"/>
+ </xslt>
+ </target>
+
+ <target name="testFilenameAndFiledirAsParam">
+ <mkdir dir="${output}/xml/dir"/>
+ <copy file="data.xml" tofile="${output}/xml/one.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/two.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/three.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/dir/four.xml"/>
+ <xslt style="printFilename.xsl"
+ destdir="${output}"
+ basedir="${output}/xml"
+ includes="**/*.xml"
+ extension=".txt"
+
+ filenameparameter="filename"
+ filedirparameter="filedir"
+ />
+ </target>
+
+ <target name="testFilenameAsParam">
+ <mkdir dir="${output}/xml/dir"/>
+ <copy file="data.xml" tofile="${output}/xml/one.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/two.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/three.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/dir/four.xml"/>
+ <xslt style="printFilename.xsl"
+ destdir="${output}"
+ basedir="${output}/xml"
+ includes="**/*.xml"
+ extension=".txt"
+
+ filenameparameter="filename"
+ />
+ </target>
+
+ <target name="testFilenameAsParamNoSetting">
+ <mkdir dir="${output}/xml/dir"/>
+ <copy file="data.xml" tofile="${output}/xml/one.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/two.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/three.xml"/>
+ <copy file="data.xml" tofile="${output}/xml/dir/four.xml"/>
+ <xslt style="printFilename.xsl"
+ destdir="${output}"
+ basedir="${output}/xml"
+ includes="**/*.xml"
+ extension=".txt"
+ /> <!-- without 'filenameparameter' to check, that the xsl:param is NOT set -->
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/data.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/data.xml
new file mode 100644
index 00000000..21e2397f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/data.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<data/> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printFilename.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printFilename.xsl
new file mode 100644
index 00000000..eb2cbc7d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printFilename.xsl
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:output indent="no" method="text"/>
+ <xsl:strip-space elements="*"/>
+
+ <xsl:param name="filename">-not-set-</xsl:param>
+ <xsl:param name="filedir">-not-set-</xsl:param>
+
+<!-- use the xsl-parameter -->
+<xsl:template match="/">
+ filename='<xsl:value-of select="$filename"/>'
+ filedir ='<xsl:value-of select="$filedir"/>'
+</xsl:template>
+
+<!-- delete the raw xml data -->
+<xsl:template match="*"/>
+
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printParams.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printParams.xsl
new file mode 100644
index 00000000..110e49ce
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/printParams.xsl
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<!-- get the xsl-parameter -->
+<xsl:param name="set">set default value</xsl:param>
+<xsl:param name="empty">empty default value</xsl:param>
+<xsl:param name="undefined">undefined default value</xsl:param>
+
+<!-- use the xsl-parameter -->
+<xsl:template match="/">
+set='<xsl:value-of select="$set"/>'
+empty='<xsl:value-of select="$empty"/>'
+undefined='<xsl:value-of select="$undefined"/>'
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/testNewerStylesheet.xsl b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/testNewerStylesheet.xsl
new file mode 100644
index 00000000..dff81209
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/style/testNewerStylesheet.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="text"/>
+
+<xsl:template match="/">
+${xsl.value}
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant.xml
new file mode 100644
index 00000000..7db547a3
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="subant-test" basedir="." default="testgenericantfile">
+ <target name="testnodirs" depends="tearDown">
+ <subant genericantfile="subant/genericsubant.xml">
+ <dirset dir="." includes="subant-test*"/>
+ </subant>
+ </target>
+
+ <target name="testgenericantfile">
+ <subant genericantfile="subant/genericsubant.xml">
+ <dirset dir="subant" includes="subant-test*"/>
+ </subant>
+ </target>
+
+ <target name="testantfile">
+ <subant antfile="mysubant.xml">
+ <dirset dir="." includes="subant/subant-test*"/>
+ </subant>
+ </target>
+
+ <target name="multipleTargets">
+ <subant antfile="mysubant.xml">
+ <dirset dir="." includes="subant/subant-test*"/>
+ <target name="one"/>
+ <target name="two"/>
+ </subant>
+ </target>
+
+ <target name="multipleTargetsOneDoesntExist_FOEfalse">
+ <subant antfile="mysubant.xml" failonerror="false">
+ <dirset dir="." includes="subant/subant-test*"/>
+ <target name="one"/>
+ <target name="three"/>
+ </subant>
+ </target>
+
+ <target name="multipleTargetsOneDoesntExist_FOEtrue">
+ <subant antfile="mysubant.xml" failonerror="true">
+ <dirset dir="." includes="subant/subant-test*"/>
+ <target name="one"/>
+ <target name="three"/>
+ </subant>
+ </target>
+
+ <target name="tearDown">
+ <!-- nothing to do -->
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/genericsubant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/genericsubant.xml
new file mode 100644
index 00000000..c5bfbe2c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/genericsubant.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="genericsubant" basedir=".." default="mysubant">
+ <target name="mysubant">
+ <echo message="${basedir}"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test1/mysubant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test1/mysubant.xml
new file mode 100644
index 00000000..ecc62883
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test1/mysubant.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="mysubant" basedir="." default="mysubant">
+ <target name="mysubant">
+ <echo message="${basedir}"/>
+ </target>
+ <target name="one">
+ <echo message="test1-one"/>
+ </target>
+ <target name="two">
+ <echo message="test1-two"/>
+ </target>
+ <target name="three">
+ <echo message="test1-three"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test2/mysubant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test2/mysubant.xml
new file mode 100644
index 00000000..5ee875fe
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/subant/subant-test2/mysubant.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="subant" basedir=".." default="mysubant">
+ <target name="mysubant">
+ <echo message="${basedir}"/>
+ </target>
+ <target name="one">
+ <echo message="test2-one"/>
+ </target>
+ <target name="two">
+ <echo message="test2-two"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sync.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sync.xml
new file mode 100644
index 00000000..d2eb126e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/sync.xml
@@ -0,0 +1,141 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="sync-test" default="not-me">
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ <property name="src" location="${output}/source"/>
+ <property name="dest" location="${output}/target"/>
+ <mkdir dir="${src}"/>
+ <mkdir dir="${dest}"/>
+ </target>
+
+ <target name="not-me">
+ <fail>This file must be used from a test case</fail>
+ </target>
+
+ <target name="simplecopy" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <sync todir="${dest}">
+ <fileset dir="${src}"/>
+ </sync>
+ </target>
+
+ <target name="copyandremove" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e"/>
+ <touch file="${dest}/e/f"/>
+ <sync todir="${dest}">
+ <fileset dir="${src}"/>
+ </sync>
+ </target>
+
+ <target name="copyandremove-with-filelist" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e"/>
+ <touch file="${dest}/e/f"/>
+ <sync todir="${dest}">
+ <filelist dir="${src}">
+ <file name="a/b/c/d"/>
+ <file name="not-there"/>
+ </filelist>
+ </sync>
+ </target>
+
+ <target name="copyandremove-with-zipfileset" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e"/>
+ <touch file="${dest}/e/f"/>
+ <zip destfile="${src}/test.zip">
+ <fileset dir="${src}" excludes="*.zip"/>
+ </zip>
+ <sync todir="${dest}">
+ <zipfileset src="${src}/test.zip"/>
+ </sync>
+ </target>
+
+ <target name="copyandremove-emptypreserve" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e"/>
+ <touch file="${dest}/e/f"/>
+ <sync todir="${dest}">
+ <fileset dir="${src}"/>
+ <preserveintarget/>
+ </sync>
+ </target>
+
+ <target name="emptycopy" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <sync todir="${dest}">
+ <fileset dir="${src}" excludes="**/d"/>
+ </sync>
+ </target>
+
+ <target name="emptydircopy" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <sync todir="${dest}"
+ includeemptydirs="true">
+ <fileset dir="${src}" excludes="**/d"/>
+ </sync>
+ </target>
+
+ <target name="emptydircopyandremove" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e/f"/>
+ <sync todir="${dest}"
+ includeemptydirs="true">
+ <fileset dir="${src}" excludes="**/d"/>
+ </sync>
+ </target>
+
+ <target name="copynoremove" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e"/>
+ <touch file="${dest}/e/f"/>
+ <sync todir="${dest}">
+ <fileset dir="${src}"/>
+ <preserveintarget>
+ <include name="e/f"/>
+ </preserveintarget>
+ </sync>
+ </target>
+
+ <target name="copynoremove-selectors" depends="setUp">
+ <mkdir dir="${src}/a/b/c"/>
+ <touch file="${src}/a/b/c/d"/>
+ <mkdir dir="${dest}/e"/>
+ <touch file="${dest}/e/f"/>
+ <sync todir="${dest}">
+ <fileset dir="${src}"/>
+ <preserveintarget>
+ <filename name="e/f"/>
+ </preserveintarget>
+ </sync>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/tar.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/tar.xml
new file mode 100644
index 00000000..2eda0b54
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/tar.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="tar-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ <mkdir dir="${output}/untar"/>
+ </target>
+
+ <target name="test1">
+ <tar/>
+ </target>
+
+ <target name="test2">
+ <tar tarfile=""/>
+ </target>
+
+ <target name="test3">
+ <tar basedir=""/>
+ </target>
+
+ <target name="test4">
+ <touch file="${output}/test4.tar"/>
+ <tar destfile="${output}/test4.tar"
+ basedir="${output}"/>
+ </target>
+
+ <target name="test5">
+ <mkdir dir="${output}/test5dir"/>
+ <tar destfile="${output}/test5.tar"
+ basedir="${output}"
+ includes="test5dir"/>
+ </target>
+
+ <target name="test6">
+ <tar destfile="${output}/blah" longfile="Foo"/>
+ </target>
+
+ <target name="test7">
+ <copy todir="${output}">
+ <fileset dir="."/>
+ </copy>
+ <mkdir dir="${output}/test7dir"/>
+ <tar destfile="${output}/test7.tar">
+ <tarfileset dir="${output}" prefix="test7-prefix/">
+ <include name="test7dir"/>
+ </tarfileset>
+ <tarfileset dir="${output}" prefix="">
+ <include name="test7dir"/>
+ </tarfileset>
+ </tar>
+ <untar src="${output}/test7.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test7UsingPlainFileSet">
+ <copy todir="${output}">
+ <fileset dir="."/>
+ </copy>
+ <mkdir dir="${output}/test7dir"/>
+ <tar destfile="${output}/test7.tar">
+ <tarfileset dir="${output}" prefix="test7-prefix/">
+ <include name="test7dir"/>
+ </tarfileset>
+ <fileset dir="${output}">
+ <include name="test7dir"/>
+ </fileset>
+ </tar>
+ <untar src="${output}/test7.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test7UsingFileList">
+ <copy todir="${output}">
+ <fileset dir="."/>
+ </copy>
+ <mkdir dir="${output}/test7dir"/>
+ <tar destfile="${output}/test7.tar">
+ <tarfileset dir="${output}" prefix="test7-prefix/">
+ <include name="test7dir"/>
+ </tarfileset>
+ <filelist dir="${output}">
+ <file name="test7dir"/>
+ </filelist>
+ </tar>
+ <untar src="${output}/test7.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test8">
+ <tar destfile="${output}/test8.tar">
+ <tarfileset dir="." fullpath="/test8.xml">
+ <include name="tar.xml"/>
+ </tarfileset>
+ </tar>
+ <untar src="${output}/test8.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test8UsingZipFileset">
+ <tar destfile="${output}/test8.tar">
+ <zipfileset dir="." fullpath="/test8.xml">
+ <include name="tar.xml"/>
+ </zipfileset>
+ </tar>
+ <untar src="${output}/test8.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test8UsingZipFilesetSrc">
+ <zip destfile="${output}/test7.tar" basedir="." includes="tar.xml"/>
+ <tar destfile="${output}/test8.tar">
+ <zipfileset src="${output}/test7.tar" fullpath="/test8.xml">
+ <include name="tar.xml"/>
+ </zipfileset>
+ </tar>
+ <untar src="${output}/test8.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test8UsingTarFilesetSrc">
+ <tar destfile="${output}/test7.tar" basedir="." includes="tar.xml"/>
+ <tar destfile="${output}/test8.tar">
+ <tarfileset src="${output}/test7.tar" fullpath="/test8.xml">
+ <include name="tar.xml"/>
+ </tarfileset>
+ </tar>
+ <untar src="${output}/test8.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test8UsingZipEntry">
+ <zip destfile="${output}/test7.tar">
+ <zipfileset dir="." includes="tar.xml" fullpath="/test8.xml"/>
+ </zip>
+ <tar destfile="${output}/test8.tar">
+ <zipentry archive="${output}/test7.tar" name="/test8.xml"/>
+ </tar>
+ <untar src="${output}/test8.tar" dest="${output}/untar"/>
+ </target>
+
+ <target name="test9">
+ <tar destfile="${output}/blah" compression="Foo"/>
+ </target>
+
+ <target name="test10">
+ <tar destfile="${output}/test10.tar.gz" compression="gzip">
+ <tarfileset dir="." fullpath="/test10.xml">
+ <include name="tar.xml"/>
+ </tarfileset>
+ </tar>
+ <untar src="${output}/test10.tar.gz" dest="${output}/untar" compression="gzip"/>
+ </target>
+
+ <target name="test11">
+ <tar destfile="${output}/test11.tar.bz2" compression="bzip2">
+ <tarfileset dir="." fullpath="/test11.xml">
+ <include name="tar.xml"/>
+ </tarfileset>
+ </tar>
+ <untar src="${output}/test11.tar.bz2" dest="${output}/untar" compression="bzip2"/>
+ </target>
+
+
+ <target name="feather">
+ <tar destfile="${output}/asf-logo.gif.tar"
+ basedir=".."
+ includes="asf-logo.gif" />
+ <tar destfile="${output}/asf-logo.gif.tar.gz"
+ basedir=".."
+ includes="asf-logo.gif"
+ compression="gzip"/>
+ <tar destfile="${output}/asf-logo.gif.tar.bz2"
+ basedir=".."
+ includes="asf-logo.gif"
+ compression="bzip2" />
+ </target>
+
+ <target name="testGZipResource">
+ <mkdir dir="${output}/testout"/>
+ <tar destfile="${output}/testout/test.tar">
+ <gzipresource>
+ <file file="expected/asf-logo.gif.gz"/>
+ </gzipresource>
+ </tar>
+ <untar src="${output}/testout/test.tar" dest="${output}/untar"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/taskdef.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/taskdef.xml
new file mode 100644
index 00000000..4b0658e4
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/taskdef.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <path id="testclasses">
+ <pathelement location="../../../../build/testcases" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <taskdef name="global"
+ classname="org.example.tasks.TaskdefTestContainerTask">
+ <classpath refid="testclasses" />
+ </taskdef>
+
+ <target name="test1">
+ <taskdef/>
+ </target>
+
+ <target name="test2">
+ <taskdef name=""/>
+ </target>
+
+ <target name="test3">
+ <taskdef classname=""/>
+ </target>
+
+ <target name="test4">
+ <taskdef name="" classname="oops"/>
+ </target>
+
+ <target name="test5">
+ <taskdef name="test" classname="org.apache.tools.ant.Project" />
+ </target>
+
+ <target name="test5a">
+ <taskdef name="test" classname="org.apache.tools.ant.taskdefs.Copy" />
+ </target>
+
+ <target name="test6">
+ <taskdef name="test6"
+ classname="org.example.tasks.TaskdefTestSimpleTask">
+ <classpath refid="testclasses" />
+ </taskdef>
+ <test6>
+ <echo message="worked" />
+ </test6>
+ </target>
+
+ <target name="test7">
+ <taskdef name="test7"
+ classname="org.example.tasks.TaskdefTestContainerTask">
+ <classpath refid="testclasses" />
+ </taskdef>
+ <test7>
+ <echo message="worked" />
+ </test7>
+ </target>
+
+ <target name="testGlobal">
+ <global>
+ <echo message="worked" />
+ </global>
+ </target>
+
+ <target name="testOverride">
+ <taskdef name="copy" classname="org.apache.tools.ant.taskdefs.Echo" />
+ <copy>In target</copy>
+ <sequential>
+ <copy>In TaskContainer</copy>
+ </sequential>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/template.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/template.xml
new file mode 100644
index 00000000..9f351c73
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/template.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test.antlib.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test.antlib.xml
new file mode 100644
index 00000000..37ff7f8e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test.antlib.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<antlib>
+ <typedef
+ name="mytask" onerror="ignore"
+ classname="org.apache.tools.ant.taskdefs.AntlibTest$MyTask"/>
+</antlib>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test2.antlib.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test2.antlib.xml
new file mode 100644
index 00000000..9a2509ec
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/test2.antlib.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<antlib>
+ <typedef
+ name="mytask2" onerror="ignore"
+ classname="org.apache.tools.ant.taskdefs.AntlibTest$MyTask2"/>
+</antlib>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelant.xml
new file mode 100644
index 00000000..e6b466a6
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelant.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="ant-test" basedir="." default="bar">
+ <ant antfile="toplevelant.xml" target="foo"/>
+
+ <target name="foo"/>
+ <target name="bar"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelantcall.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelantcall.xml
new file mode 100644
index 00000000..2ccabe7f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelantcall.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="ant-test" basedir="." default="bar">
+ <antcall target="foo"/>
+
+ <target name="foo"/>
+ <target name="bar"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelsubant.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelsubant.xml
new file mode 100644
index 00000000..b7a3a351
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/toplevelsubant.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="ant-test" basedir="." default="bar">
+ <subant target="foo">
+ <fileset dir="." includes="toplevelsubant.xml"/>
+ </subant>
+
+ <target name="foo"/>
+ <target name="bar"/>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/touch.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/touch.xml
new file mode 100644
index 00000000..3b426d90
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/touch.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="cleanup" basedir=".">
+
+ <property name="mappermillis" value="1072224000000" />
+
+ <selector id="map.selector">
+ <date millis="${mappermillis}" />
+ </selector>
+
+ <target name="cleanup">
+ <delete>
+ <fileset dir="." includes="touchtest*" />
+ </delete>
+ </target>
+
+ <target name="noSeconds">
+ <touch file="touchtest" datetime="06/24/2003 2:20 pm"/>
+ </target>
+
+ <target name="seconds">
+ <touch file="touchtest" datetime="06/24/2003 2:20:12 pm"/>
+ </target>
+
+ <target name="testNow">
+ <touch file="touchtest" />
+ </target>
+
+ <target name="testMillis">
+ <!-- this one is about 21 years after the epoch -->
+ <!-- less than 20 years after the epoch, test does not pass on my Win2K/FAT -->
+ <!-- Antoine February 8, 2004 -->
+ <!-- see http://developer.java.sun.com/developer/bugParade/bugs/4177432.html -->
+ <!-- and http://developer.java.sun.com/developer/bugParade/bugs/4697792.html -->
+ <!-- not sure why -->
+ <touch file="touchtest" millis="662256000000" />
+ </target>
+
+ <target name="test2000">
+ <!-- this number of milliseconds is 30 * 365 * 24 * 3600 * 1000 -->
+ <!-- so the corresponding time is at the end of 1999 -->
+ <touch file="touchtest" millis="946080000000" />
+ </target>
+
+ <target name="testFilelist">
+ <touch millis="662256000000" >
+ <filelist dir="." files="touchtest"/>
+ </touch>
+ </target>
+
+ <target name="testFileset" depends="testNow">
+ <touch millis="946080000000" >
+ <fileset dir="." includes="touchtest"/>
+ </touch>
+ </target>
+
+ <target name="testResourceCollection">
+ <touch millis="1662256000000">
+ <file file="touchtest"/>
+ </touch>
+ </target>
+
+ <target name="testMappedFileset">
+ <touch file="touchtest" millis="${mappermillis}" />
+ <touch>
+ <fileset file="touchtest" />
+ <compositemapper>
+ <globmapper from="*" to="*foo" />
+ <globmapper from="*" to="*bar" />
+ </compositemapper>
+ </touch>
+
+ <fileset id="touchtest" file="touchtest">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <fileset id="touchtestfoo" file="touchtestfoo">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <fileset id="touchtestbar" file="touchtestbar">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <pathconvert property="touchtest" pathsep=" "
+ refid="touchtest" setonempty="false" />
+
+ <pathconvert property="touchtestfoo" pathsep=" "
+ refid="touchtestfoo" setonempty="false" />
+
+ <pathconvert property="touchtestbar" pathsep=" "
+ refid="touchtestbar" setonempty="false" />
+
+ <fail>
+ <condition>
+ <not>
+ <and>
+ <isset property="touchtest" />
+ <isset property="touchtestfoo" />
+ <isset property="touchtestbar" />
+ </and>
+ </not>
+ </condition>
+ </fail>
+
+ </target>
+
+ <target name="testExplicitMappedFileset">
+ <touch file="touchtest" millis="${mappermillis}" />
+ <touch>
+ <fileset file="touchtest" />
+ <mapper>
+ <compositemapper>
+ <globmapper from="*" to="*foo" />
+ <globmapper from="*" to="*bar" />
+ </compositemapper>
+ </mapper>
+ </touch>
+
+ <fileset id="touchtest" file="touchtest">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <fileset id="touchtestfoo" file="touchtestfoo">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <fileset id="touchtestbar" file="touchtestbar">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <pathconvert property="touchtest" pathsep=" "
+ refid="touchtest" setonempty="false" />
+
+ <pathconvert property="touchtestfoo" pathsep=" "
+ refid="touchtestfoo" setonempty="false" />
+
+ <pathconvert property="touchtestbar" pathsep=" "
+ refid="touchtestbar" setonempty="false" />
+
+ <fail>
+ <condition>
+ <not>
+ <and>
+ <isset property="touchtest" />
+ <isset property="touchtestfoo" />
+ <isset property="touchtestbar" />
+ </and>
+ </not>
+ </condition>
+ </fail>
+
+ </target>
+
+ <target name="testMappedFilelist">
+ <touch millis="${mappermillis}">
+ <filelist dir="." files="idonotexist" />
+ <mergemapper to="touchtest" />
+ </touch>
+
+ <fileset id="touchtest" file="touchtest">
+ <selector refid="map.selector" />
+ </fileset>
+
+ <pathconvert property="touchtest" pathsep=" "
+ refid="touchtest" setonempty="false" />
+
+ <fail>
+ <condition>
+ <not>
+ <isset property="touchtest" />
+ </not>
+ </condition>
+ </fail>
+
+ </target>
+
+ <target name="testGoodPattern">
+ <touch file="touchtest" datetime="06242003142012GMTfoo" pattern="MMddyyyyHHmmssz'foo'" />
+
+ <fileset id="touchtest" file="touchtest">
+ <date millis="1056464412000" />
+ </fileset>
+
+ <pathconvert property="touchtest" pathsep=" "
+ refid="touchtest" setonempty="false" />
+
+ <fail>
+ <condition>
+ <not>
+ <isset property="touchtest" />
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testBadPattern">
+ <touch file="touchtest" datetime="06242003142012GMTfoo" pattern="MMddyyyyHHmmssz'bar'" />
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typeadapter.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typeadapter.xml
new file mode 100644
index 00000000..c2aa70e1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typeadapter.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="test" basedir="." default="invalid">
+ <property name="testcases.dir" location="../../../../build/testcases"/>
+ <path id="testclasses">
+ <pathelement location="${testcases.dir}" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <target name="taskadapter">
+ <typedef name="myexec"
+ classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyExec"
+ classpathref="testclasses"
+ adapter="org.apache.tools.ant.TaskAdapter"/>
+ <myexec/>
+ </target>
+
+ <target name="runadapter">
+ <typedef
+ name="myrunnable"
+ classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyRunnable"
+ classpathref="testclasses"
+ adapter="org.apache.tools.ant.taskdefs.TypeAdapterTest$RunnableAdapter"/>
+ <myrunnable/>
+ </target>
+
+ <target name="runadaptererror">
+ <typedef
+ name="myrunnable"
+ classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyExec"
+ classpathref="testclasses"
+ adapter="org.apache.tools.ant.taskdefs.TypeAdapterTest$RunnableAdapter"/>
+ <myrunnable/>
+ </target>
+
+ <target name="delay">
+ <typedef
+ name="mytask"
+ classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyTask"
+ classpathref="testclasses"
+ onerror="ignore"/>
+ <mytask/>
+ </target>
+
+ <target name="onerror.report">
+ <typedef
+ name="mytask"
+ classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyTaskNotPresent"
+ classpathref="testclasses"
+ onerror="report"/>
+ </target>
+
+ <target name="onerror.ignore">
+ <typedef
+ name="mytask"
+ classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyTaskNotPresent"
+ classpathref="testclasses"
+ onerror="ignore"/>
+ </target>
+
+
+</project>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typedef.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typedef.xml
new file mode 100644
index 00000000..1c7922b9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/typedef.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="test" basedir="." default="invalid">
+
+ <target name="invalid">
+ <fail>This file should only be run via a testcase</fail>
+ </target>
+
+ <target name="empty">
+ <typedef />
+ </target>
+
+ <target name="noClassname">
+ <typedef name="dummy" />
+ </target>
+
+ <target name="noName">
+ <typedef classname="org.example.types.TypedefTestType">
+ <classpath refid="testclasses" />
+ </typedef>
+ </target>
+
+ <target name="classNotFound">
+ <typedef name="" classname="oops"/>
+ </target>
+
+ <path id="testclasses">
+ <pathelement location="../../../../build/testcases" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <typedef name="global"
+ classname="org.example.types.TypedefTestType">
+ <classpath refid="testclasses" />
+ </typedef>
+
+ <target name="testGlobal">
+ <global id="global" />
+ </target>
+
+ <target name="testLocal">
+ <typedef name="localtype"
+ classname="org.example.types.TypedefTestType">
+ <classpath refid="testclasses" />
+ </typedef>
+ <localtype id="local" />
+ </target>
+
+ <target name="double-notpresent">
+ <typedef name="mytask" classname="notpresent" onerror="ignore"/>
+ <typedef name="mytask" classname="notpresent" onerror="ignore"/>
+ <typedef name="mytask" classname="org.apache.tools.ant.taskdefs.Echo"
+ onerror="ignore"/>
+ <mytask>hi</mytask>
+ </target>
+
+ <target name="noresourcefailall">
+ <typedef resource="somenotpresentfile.properties" onerror="failall"/>
+ </target>
+
+ <target name="noresourcefail">
+ <typedef resource="somenotpresentfile.properties" onerror="fail"/>
+ </target>
+
+ <target name="noresourcenotfail">
+ <typedef resource="somenotpresentfile.properties" />
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/untar.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/untar.xml
new file mode 100644
index 00000000..04d44b37
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/untar.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project basedir="." default="tearDown">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ <mkdir dir="${output}/untar"/>
+ </target>
+
+ <target name="testTarTask">
+ <ant antfile="tar.xml" target="feather" />
+ <untar src="${output}/asf-logo.gif.tar" dest="${output}/untar" />
+ </target>
+
+ <target name="testGzipTarTask">
+ <ant antfile="tar.xml" target="feather" />
+ <untar src="${output}/asf-logo.gif.tar.gz" dest="${output}/untar" compression="gzip" />
+ </target>
+
+ <target name="testBzip2TarTask">
+ <ant antfile="tar.xml" target="feather" />
+ <untar src="${output}/asf-logo.gif.tar.bz2" dest="${output}/untar" compression="bzip2"/>
+ </target>
+
+ <target name="realTest">
+ <untar src="expected/asf-logo.gif.tar" dest="${output}/untar" />
+ </target>
+
+ <target name="realGzipTest">
+ <untar src="expected/asf-logo.gif.tar.gz" dest="${output}/untar" compression="gzip" />
+ </target>
+
+ <target name="realBzip2Test">
+ <untar src="expected/asf-logo.gif.tar.bz2" dest="${output}/untar" compression="bzip2"/>
+ </target>
+
+
+ <target name="srcDirTest">
+ <untar src="." dest="${output}/untar" />
+ </target>
+
+ <target name="encodingTest">
+ <mkdir dir="${output}/untartestin"/>
+ <touch file="${output}/untartestin/foo"/>
+ <tar tarfile="${output}/untartest.tar" basedir="${output}/untartestin" encoding="UnicodeBig"/>
+ <mkdir dir="${output}/untartestout"/>
+ <untar src="${output}/untartest.tar" dest="${output}/untartestout" encoding="UnicodeBig"/>
+ </target>
+
+ <target name="resourceCollection">
+ <mkdir dir="${output}/untartestout"/>
+ <zip destfile="${output}/untartestout/test.zip">
+ <fileset dir="expected">
+ <include name="asf-logo.gif.tar"/>
+ </fileset>
+ </zip>
+ <untar dest="${output}/untar">
+ <zipfileset src="${output}/untartestout/test.zip">
+ <include name="*.tar"/>
+ </zipfileset>
+ </untar>
+ </target>
+
+ <target name="prepareTestTar">
+ <mkdir dir="${output}/untartestin/1"/>
+ <mkdir dir="${output}/untartestin/2"/>
+ <touch file="${output}/untartestin/1/foo"/>
+ <touch file="${output}/untartestin/2/bar"/>
+ <copy todir="${output}/untartestin/2">
+ <fileset dir="expected" includes="*md5*"/>
+ </copy>
+ <tar destfile="${output}/untartest.tar" basedir="${output}/untartestin"/>
+ </target>
+
+ <target name="testDocumentationClaimsOnCopy" depends="prepareTestTar">
+ <copy todir="${output}/untar" preservelastmodified="true">
+ <tarfileset src="${output}/untartest.tar">
+ <patternset>
+ <include name="2/"/>
+ </patternset>
+ </tarfileset>
+ </copy>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/unzip.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/unzip.xml
new file mode 100644
index 00000000..ee96ee1f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/unzip.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="xxx-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+
+ <target name="test1">
+ <unzip/>
+ </target>
+
+ <target name="test2">
+ <unzip src=""/>
+ </target>
+
+ <target name="test3">
+ <unzip dest=""/>
+ </target>
+
+ <target name="testZipTask">
+ <ant antfile="zip.xml" target="feather" />
+ <unzip src="${output}/asf-logo.gif.zip" dest="${output}" />
+ </target>
+
+ <target name="testUncompressedZipTask">
+ <ant antfile="zip.xml" target="uncompressed-feather" />
+ <unzip src="${output}/asf-logo.gif.zip" dest="${output}" />
+ </target>
+
+ <target name="realTest">
+ <unzip src="expected/asf-logo.gif.zip" dest="${output}" />
+ </target>
+
+ <target name="prepareTestZip">
+ <mkdir dir="${output}/unziptestin/1"/>
+ <mkdir dir="${output}/unziptestin/2"/>
+ <touch file="${output}/unziptestin/1/foo"/>
+ <touch file="${output}/unziptestin/2/bar"/>
+ <zip destfile="${output}/unziptest.zip" basedir="${output}/unziptestin"/>
+ </target>
+
+ <target name="testPatternSetExcludeOnly" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <exclude name="1/**"/>
+ </patternset>
+ </unzip>
+ </target>
+
+ <target name="testPatternSetIncludeOnly" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="2/**"/>
+ </patternset>
+ </unzip>
+ </target>
+
+ <target name="testPatternSetIncludeAndExclude" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="2/**"/>
+ <exclude name="2/**"/>
+ </patternset>
+ </unzip>
+ </target>
+
+ <target name="testTwoPatternSets" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="2/**"/>
+ </patternset>
+ <patternset>
+ <include name="3/**"/>
+ </patternset>
+ </unzip>
+ </target>
+
+ <target name="testTwoPatternSetsWithExcludes" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="2/**"/>
+ </patternset>
+ <patternset>
+ <exclude name="1/**"/>
+ <exclude name="2/**"/>
+ </patternset>
+ </unzip>
+ </target>
+
+ <target name="selfExtractingArchive">
+ <mkdir dir="${output}/unziptestout"/>
+ <unzip dest="${output}/unziptestout" src="zip/test.exe"/>
+ </target>
+
+ <!-- Bugzilla Report 20969 -->
+ <target name="testPatternSetSlashOnly" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="2/"/>
+ </patternset>
+ </unzip>
+ </target>
+
+ <!-- Bugzilla Report 10504 -->
+ <target name="encodingTest">
+ <mkdir dir="${output}/unziptestin"/>
+ <touch file="${output}/unziptestin/foo"/>
+ <zip zipfile="${output}/unziptest.zip" basedir="${output}/unziptestin" encoding="UnicodeBig"/>
+ <mkdir dir="${output}/unziptestout"/>
+ <unzip src="${output}/unziptest.zip" dest="${output}/unziptestout" encoding="UnicodeBig"/>
+ </target>
+
+ <!-- Bugzilla Report 21996 -->
+ <target name="testFlattenMapper" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="1/**"/>
+ </patternset>
+ <mapper type="flatten"/>
+ </unzip>
+ </target>
+
+ <!-- Bugzilla Report 21996 -->
+ <target name="testGlobMapper" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="1/**"/>
+ </patternset>
+ <mapper type="glob" from="*" to="*.txt"/>
+ </unzip>
+ </target>
+
+ <target name="testTwoMappers" depends="prepareTestZip">
+ <unzip dest="${output}/unziptestout" src="${output}/unziptest.zip">
+ <patternset>
+ <include name="1/**"/>
+ </patternset>
+ <mapper type="glob" from="*" to="*.txt"/>
+ <mapper type="flatten"/>
+ </unzip>
+ </target>
+
+ <target name="testResourceCollection">
+ <unzip dest="${output}/unziptestout">
+ <patternset>
+ <include name="junit/**"/>
+ </patternset>
+ <restrict>
+ <path path="${java.class.path}"/>
+ <type type="file" xmlns="antlib:org.apache.tools.ant.types.resources.selectors"/>
+ </restrict>
+ </unzip>
+ </target>
+
+ <target name="testDocumentationClaimsOnCopy" depends="prepareTestZip">
+ <copy todir="${output}/unziptestout" preservelastmodified="true">
+ <zipfileset src="${output}/unziptest.zip">
+ <patternset>
+ <include name="2/"/>
+ </patternset>
+ </zipfileset>
+ </copy>
+ </target>
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/uptodate.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/uptodate.xml
new file mode 100644
index 00000000..04bb3707
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/uptodate.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project basedir=".">
+
+ <target name="setUp">
+ <touch file="source"/>
+ <touch file="target"/>
+ </target>
+
+ <target name="tearDown">
+ <delete file="source"/>
+ <delete file="target"/>
+ </target>
+
+ <target name="testFilesetUpToDate">
+ <uptodate property="foo" targetfile="target">
+ <srcfiles dir="." includes="source"/>
+ </uptodate>
+ </target>
+
+ <target name="testFilesetOutOfDate">
+ <uptodate property="foo" targetfile="source">
+ <srcfiles dir="." includes="target"/>
+ </uptodate>
+ </target>
+
+ <target name="testRCUpToDate">
+ <uptodate property="foo" targetfile="target">
+ <srcresources>
+ <fileset dir="." includes="source"/>
+ </srcresources>
+ </uptodate>
+ </target>
+
+ <target name="testRCOutOfDate">
+ <uptodate property="foo" targetfile="source">
+ <srcresources>
+ <fileset dir="." includes="target"/>
+ </srcresources>
+ </uptodate>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/war.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/war.xml
new file mode 100644
index 00000000..b000ecf5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/war.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="war-test" basedir="." default="help">
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}" />
+ </target>
+
+
+ <target name="help">
+ <echo message="Test file for the war task"/>
+ </target>
+
+ <target name="testlibrefs" depends="setUp">
+ <fileset id="test" dir="." includes="war.xml"/>
+ <war webxml="war.xml" destfile="${output}/test.war">
+ <lib refid="test"/>
+ </war>
+ <unzip src="${output}/test.war" dest="${output}"/>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/whichresource.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/whichresource.xml
new file mode 100644
index 00000000..352e9c0e
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/whichresource.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project default="fail">
+ <target name="fail">
+ <fail>Run via testcases only</fail>
+ </target>
+
+ <target name="testClassname">
+ <whichresource class="org.apache.tools.ant.Main"
+ property="antmain"/>
+ </target>
+
+ <target name="testResourcename">
+ <whichresource resource="org/apache/tools/ant/taskdefs/defaults.properties"
+ property="defaults"/>
+ </target>
+
+ <target name="testResourcenameWithLeadingSlash">
+ <whichresource resource="/org/apache/tools/ant/taskdefs/defaults.properties"
+ property="defaults"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlns.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlns.xml
new file mode 100644
index 00000000..e6991661
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlns.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" xmlns:other="this is the other uri"
+ other:attr="this should be ignored by ant">
+
+ <property name="testcases.dir" location="../../../../build/testcases"/>
+
+ <path id="testclasses">
+ <pathelement location="${testcases.dir}" />
+ <pathelement path="${java.class.path}" />
+ </path>
+
+ <target name="xmlns" xmlns:test="this.is.another.test.uri">
+ <typedef classname="org.apache.tools.ant.taskdefs.XmlnsTest$MyTask"
+ classpathref="testclasses"
+ name="mytask"
+ uri="this.is.another.test.uri" />
+ <test:mytask/>
+ </target>
+
+ <target name="other" other:a="this is another attribute">
+ <echo other:g="abc" message="a message"/>
+ </target>
+
+ <target name="ns.attributes">
+ <taskdef name="my.echo" classname="org.apache.tools.ant.taskdefs.Echo"
+ uri="x-uri"/>
+ <x:my.echo x:message="hello world" xmlns:x="x-uri"/>
+ </target>
+
+ <target name="xmlns.file" xmlns:test="this.is.a.test.uri">
+ <typedef file="test.antlib.xml"
+ classpathref="testclasses"
+ uri="this.is.a.test.uri" />
+ <test:mytask/>
+ </target>
+
+ <target name="core">
+ <typedef file="test.antlib.xml"
+ classpathref="testclasses"
+ uri="antlib:org.apache.tools.ant" />
+ <mytask/>
+ </target>
+
+ <target name="excluded">
+ <typedef file="test.antlib.xml"
+ classpathref="testclasses"
+ uri="ant:notallowed" />
+ </target>
+
+
+</project> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty.xml
new file mode 100644
index 00000000..a19eb6ce
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="test" default="test" basedir=".">
+
+ <target name="test">
+ <xmlproperty file="xmlproperty_data.xml"/>
+ </target>
+
+ <target name="testdtd">
+ <xmlproperty file="xmlproperty_withdtd.xml"/>
+ </target>
+
+ <target name="testResource">
+ <loadfile srcfile="xmlproperty_data.xml" property="prop"/>
+ <xmlproperty>
+ <string value="${prop}"/>
+ </xmlproperty>
+ </target>
+
+ <target name="testneedscat">
+ <xmlproperty file="xmlproperty_needscat.xml">
+ <xmlcatalog>
+ <dtd publicId="-//FOO//DTD Skin Configuration V0.1//EN"
+ location="skinconfig.dtd"/>
+ </xmlcatalog>
+ </xmlproperty>
+ </target>
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-input1.properties
new file mode 100644
index 00000000..d60cbab5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-input1.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+properties.root=foo,bar
+properties.a.b.c=d
+properties.a.b=e
+properties.foo.bar=quux,quux1
+properties.foo.quux=bar
+properties.tag.value=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-original.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-original.properties
new file mode 100644
index 00000000..ce05e187
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-original.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+root-tag.myattr=true
+root-tag.inner-tag=Text
+root-tag.inner-tag.someattr=val
+root-tag.a2.a3.a4=false
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-override.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-override.properties
new file mode 100644
index 00000000..33f8611a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-collapse-override.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Match value hardwired in code, NOT in the input...
+override.property.test=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-input1.properties
new file mode 100644
index 00000000..153ac765
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-input1.properties
@@ -0,0 +1,8 @@
+properties.root=foo,bar
+properties.a.b(c)=d
+properties.a.b=e
+properties.foo(bar)=quux
+properties.foo.bar=quux1
+properties.foo.quux=bar
+properties.tag(value)=foo
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-original.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-original.properties
new file mode 100644
index 00000000..47e0c2de
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-nocollapse-original.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+root-tag(myattr)=true
+root-tag.inner-tag=Text
+root-tag.inner-tag(someattr)=val
+root-tag.a2.a3.a4=false
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-include.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-include.properties
new file mode 100644
index 00000000..d60cbab5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-include.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+properties.root=foo,bar
+properties.a.b.c=d
+properties.a.b=e
+properties.foo.bar=quux,quux1
+properties.foo.quux=bar
+properties.tag.value=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-input1.properties
new file mode 100644
index 00000000..46b807ba
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-input1.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+properties.root=foo,bar
+properties.a.b.c=d
+properties.a.b=e
+properties.foo.bar=quux,quux1
+properties.foo.quux=bar
+properties.tag=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-override.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-override.properties
new file mode 100644
index 00000000..33f8611a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/keeproot-semantic-override.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Match value hardwired in code, NOT in the input...
+override.property.test=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-input1.properties
new file mode 100644
index 00000000..7cfd29e8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-input1.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+root=foo,bar
+a.b.c=d
+a.b=e
+foo.bar=quux,quux1
+foo.quux=bar
+tag.value=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-original.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-original.properties
new file mode 100644
index 00000000..5842c38f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-collapse-original.properties
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+inner-tag=Text
+inner-tag.someattr=val
+a2.a3.a4=false
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-input1.properties
new file mode 100644
index 00000000..3eca3683
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-input1.properties
@@ -0,0 +1,7 @@
+root=foo,bar
+a.b(c)=d
+a.b=e
+foo(bar)=quux
+foo.bar=quux1
+foo.quux=bar
+tag(value)=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-multi.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-multi.properties
new file mode 100644
index 00000000..9ef90efb
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-multi.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+foo.bar=1,2,3,4 \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-original.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-original.properties
new file mode 100644
index 00000000..550f2130
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-nocollapse-original.properties
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+inner-tag=Text
+inner-tag(someattr)=val
+a2.a3.a4=false
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-include-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-include-input1.properties
new file mode 100644
index 00000000..7cfd29e8
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-include-input1.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+root=foo,bar
+a.b.c=d
+a.b=e
+foo.bar=quux,quux1
+foo.quux=bar
+tag.value=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-input1.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-input1.properties
new file mode 100644
index 00000000..5dfcfb53
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-input1.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+root=foo,bar
+a.b.c=d
+a.b=e
+foo.bar=quux,quux1
+foo.quux=bar
+tag=foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-locations.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-locations.properties
new file mode 100644
index 00000000..f945d7ca
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-locations.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+file=FILE.foo \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-paths.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-paths.properties
new file mode 100644
index 00000000..1bf51de9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-paths.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+foo=ID.path \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-references.properties b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-references.properties
new file mode 100644
index 00000000..e55913a1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/goldfiles/nokeeproot-semantic-references.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+property=foo
+foo.bar=foo
+foo.quux=foo
+foo.thunk=foo
+foo.property=ID.foo
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/input1.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/input1.xml
new file mode 100644
index 00000000..28328c56
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/input1.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<properties>
+ <root>foo</root>
+ <root>bar</root>
+ <a><b c="d">e</b></a>
+ <foo bar="quux">
+ <bar>quux1</bar>
+ <quux>bar</quux>
+ </foo>
+ <tag value="foo"/>
+</properties>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/locations.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/locations.xml
new file mode 100644
index 00000000..d5cace80
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/locations.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<locations>
+ <file location="foo"/>
+</locations> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/multi.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/multi.xml
new file mode 100644
index 00000000..66904d6a
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/multi.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<properties>
+ <foo>
+ <bar>1</bar>
+ <bar>2</bar>
+ <bar>3</bar>
+ <bar>4</bar>
+ </foo>
+</properties> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/original.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/original.xml
new file mode 100644
index 00000000..ef2603cc
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/original.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<root-tag myattr="true">
+ <inner-tag someattr="val">Text</inner-tag>
+ <a2><a3><a4>false</a4></a3></a2>
+</root-tag>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/override.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/override.xml
new file mode 100644
index 00000000..c7da9c48
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/override.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<root>
+ <override>
+ <!-- This property should not get set. The
+ XmlPropertyTest code explicitly sets
+ override.property.test to foo to make
+ sure that attempts to reset it via
+ property file loads *fail*. -->
+ <property test="bar"/>
+ </override>
+</root> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/paths.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/paths.xml
new file mode 100644
index 00000000..83422d9d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/paths.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<paths>
+ <classpath pathid="foo">
+ <path value="bar"/>
+ </classpath>
+</paths> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/references.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/references.xml
new file mode 100644
index 00000000..7e88b7b1
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty/inputs/references.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<references>
+ <property value="foo" id="foo.property"/>
+ <foo bar="${property}">
+ <quux refid="foo.property"/>
+ <thunk>${property}</thunk>
+ </foo>
+</references> \ No newline at end of file
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.dtd b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.dtd
new file mode 100644
index 00000000..5d75d6e5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.dtd
@@ -0,0 +1,30 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!ELEMENT root-tag (inner-tag, a2, cdatatag)>
+<!ATTLIST root-tag myattr CDATA "">
+
+<!ELEMENT inner-tag (#PCDATA)>
+<!ATTLIST inner-tag someattr CDATA "">
+
+<!ELEMENT a2 (a3)>
+
+<!ELEMENT a3 (a4)>
+
+<!ELEMENT a4 (#PCDATA)>
+
+<!ELEMENT cdatatag (#PCDATA)>
+
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.xml
new file mode 100644
index 00000000..5f922214
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_data.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+ <root-tag myattr="true">
+ <inner-tag someattr="val">Text</inner-tag>
+ <a2><a3><a4>false</a4></a3></a2>
+ <cdatatag><![CDATA[<test>]]></cdatatag>
+ </root-tag>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_needscat.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_needscat.xml
new file mode 100644
index 00000000..942a183f
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_needscat.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE skinconfig PUBLIC "-//FOO//DTD Skin Configuration V0.1//EN" "http://example-no-dtd.com/dtd/skinconfig.dtd">
+<skinconfig>
+ <foo>true</foo>
+ <bar>false</bar>
+</skinconfig>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_withdtd.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_withdtd.xml
new file mode 100644
index 00000000..1e96cdb3
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/xmlproperty_withdtd.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE root-tag SYSTEM "xmlproperty_data.dtd">
+
+ <root-tag myattr="true">
+ <inner-tag someattr="val">Text</inner-tag>
+ <a2><a3><a4>false</a4></a3></a2>
+ <cdatatag><![CDATA[<test>]]></cdatatag>
+ </root-tag>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip.xml b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip.xml
new file mode 100644
index 00000000..4fa6de6c
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="zip-test" basedir="." default="test1">
+
+ <import file="../buildfiletest-base.xml"/>
+
+ <target name="setUp">
+ <mkdir dir="${output}"/>
+ </target>
+
+ <target name="test1">
+ <zip/>
+ </target>
+
+ <target name="test2">
+ <zip destFile="${output}/zip.tmp"/>
+ </target>
+
+ <!-- Test when the zip file includes itself
+ when target file exists before the zip task is run -->
+ <target name="test3">
+ <touch file="${output}/test3.zip"/>
+ <zip destFile="${output}/test3.zip"
+ basedir="${output}/"/>
+ </target>
+
+ <!-- Test when the zip file includes itself
+ when target file does not exist before the zip task is run
+ <target name="test4">
+ <zip destFile="${output}/test4.zip"
+ basedir="."/>
+ </target>
+ -->
+
+ <target name="test5">
+ <zip zipfile="${output}/test5.zip" basedir="." >
+ <exclude name="test5.zip" />
+ </zip>
+ </target>
+
+ <target name="test6">
+ <zip destFile="${output}/test6.zip" basedir=".">
+ <include name="*.xml" />
+ <exclude name="zip.*" />
+ </zip>
+ </target>
+
+ <target name="test7">
+ <copy todir="${output}">
+ <fileset dir="."/>
+ </copy>
+ <zip destFile="${output}/inner7.zip" basedir="${output}" >
+ <exclude name="inner7.zip" />
+ </zip>
+ <zip destFile="${output}/test7.zip" basedir=".">
+ <exclude name="**/*.*" />
+ <zipfileset src="${output}/inner7.zip" />
+ </zip>
+ </target>
+
+ <target name="feather">
+ <zip destFile="${output}/asf-logo.gif.zip"
+ basedir=".."
+ includes="asf-logo.gif" />
+ </target>
+
+ <target name="uncompressed-feather">
+ <zip destFile="${output}/asf-logo.gif.zip"
+ basedir=".."
+ includes="asf-logo.gif" compress="false"/>
+ </target>
+
+ <!-- legacy attribute support -->
+ <target name="test8">
+ <zip zipfile="${output}/test8.zip" basedir="." >
+ <exclude name="test8.zip" />
+ </zip>
+ </target>
+
+ <target name="testZipgroupfileset">
+
+ <zip zipfile="${output}/zipgroupfileset.zip" basedir=".">
+ <zipgroupfileset dir="zip"
+ includes="zipgroupfileset*.zip"
+ excludes="zipgroupfileset3.zip" />
+ <include name="zip/zipgroupfileset3.zip" />
+ </zip>
+ </target>
+
+ <target name="testDuplicateFail">
+
+ <zip zipfile="${output}/duplicateFail.zip" basedir="." duplicate="fail">
+ <zipgroupfileset dir="duplicate" includes="duplicate*.zip" />
+ </zip>
+ </target>
+
+ <target name="testUpdateNotNecessary" depends="feather">
+ <zip destFile="${output}/asf-logo.gif.zip"
+ basedir=".."
+ includes="asf-logo.gif"
+ update="true" />
+ </target>
+
+ <target name="testUpdateIsNecessary" depends="feather">
+ <touch file="${output}/dummyfile" />
+ <copy file="../asf-logo.gif" todir="${output}"/>
+ <zip destFile="${output}/asf-logo.gif.zip"
+ basedir="${output}"
+ includes="asf-logo.gif,dummyfile"
+ update="true" />
+ </target>
+
+ <!-- Bugzilla Report 18403 -->
+ <target name="testPrefixAddsDir">
+ <zip destFile="${output}/test3.zip" filesonly="false">
+ <zipfileset dir="." prefix="test" includes="zip.xml"/>
+ </zip>
+ </target>
+
+ <!-- Bugzilla Report 19449 -->
+ <target name="testFilesOnlyDoesntCauseRecreateSetup">
+ <mkdir dir="${output}/ziptest"/>
+ <touch file="${output}/ziptest/ziptest"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}"
+ includes="ziptest/**" filesonly="true"/>
+ </target>
+
+ <!-- Bugzilla Report 19449 -->
+ <target name="testFilesOnlyDoesntCauseRecreate">
+ <zip destFile="${output}/test3.zip" basedir="."
+ includes="ziptest/**" filesonly="true"/>
+ </target>
+
+ <!-- Bugzilla Report 22865 -->
+ <target name="testEmptySkip">
+ <mkdir dir="${output}/ziptest"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/ziptest" whenempty="skip"/>
+ <fail message="archive should get skipped">
+ <condition>
+ <available file="${output}/test3.zip" />
+ </condition>
+ </fail>
+ </target>
+
+ <!-- Bugzilla Report 30365 -->
+ <target name="zipEmptyDir">
+ <mkdir dir="${output}/empty/empty2"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/empty" update="true"/>
+ <fail message="single-directory archive should be created">
+ <condition>
+ <or>
+ <not>
+ <available file="${output}/test3.zip" />
+ </not>
+ <resourcecount when="gt" count="0">
+ <zipfileset src="${output}/test3.zip" />
+ </resourcecount>
+ <resourcecount when="ne" count="1">
+ <restrict>
+ <exists xmlns="antlib:org.apache.tools.ant.types.resources.selectors" />
+ <zipentry zipfile="${output}/test3.zip" name="empty2/" />
+ </restrict>
+ </resourcecount>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+ <!-- Bugzilla Report 40258 -->
+ <target name="zipEmptyDirFilesOnly">
+ <mkdir dir="${output}/empty/empty2" />
+ <zip destFile="${output}/test3.zip" basedir="${output}/empty" update="true" filesonly="true" />
+ <fail message="archive should get skipped">
+ <condition>
+ <available file="${output}/test3.zip" />
+ </condition>
+ </fail>
+ </target>
+
+ <target name="zipEmptyCreate">
+ <mkdir dir="${output}/empty"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/empty" whenempty="create" includes="*.xyz"/>
+ <fail message="empty archive should be created">
+ <condition>
+ <or>
+ <not>
+ <available file="${output}/test3.zip" />
+ </not>
+ <resourcecount when="gt" count="0">
+ <zipfileset src="${output}/test3.zip" />
+ </resourcecount>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="testCompressionLevel" depends="test6">
+ <length property="test6.length" file="${output}/test6.zip" />
+ <copy todir="${output}">
+ <fileset dir=".">
+ <include name="*.xml"/>
+ </fileset>
+ </copy>
+ <zip destFile="${output}/testLevel.zip" basedir="${output}" level="9">
+ <include name="*.xml" />
+ <exclude name="zip.*" />
+ </zip>
+ <fail>
+ <condition>
+ <not>
+ <isfileselected file="${output}/testLevel.zip">
+ <size when="less" value="${test6.length}" />
+ </isfileselected>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
+ <!-- Bugzilla Report 33412 -->
+ <target name="testDefaultExcludesAndUpdate">
+ <mkdir dir="${output}/ziptest"/>
+ <touch file="${output}/ziptest/ziptest~"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/ziptest"
+ defaultexcludes="false"/>
+ <touch file="${output}/ziptest/ziptest2"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/ziptest"
+ defaultexcludes="false"
+ update="true"/>
+ </target>
+
+ <target name="testFileResource">
+ <zip destFile="${output}/test3.zip">
+ <file file="zip.xml"/>
+ </zip>
+ </target>
+
+ <target name="testNonFileResource">
+ <zip destFile="${output}/test3.zip">
+ <javaresource name="META-INF/MANIFEST.MF"/>
+ </zip>
+ </target>
+
+ <target name="testTarFileSet">
+ <ant antfile="tar.xml" target="feather"/>
+ <zip destFile="${output}/test3.zip">
+ <tarfileset src="${output}/asf-logo.gif.tar" filemode="446"/>
+ </zip>
+ </target>
+
+ <target name="rewriteZeroPermissions">
+ <zip destFile="${output}/test3.zip">
+ <zipfileset src="nopermissions.zip"/>
+ </zip>
+ </target>
+
+ <target name="acceptZeroPermissions">
+ <zip destFile="${output}/test3.zip" preserve0permissions="true">
+ <zipfileset src="nopermissions.zip"/>
+ </zip>
+ </target>
+
+ <target name="testForBugzilla34764">
+ <mkdir dir="${output}/ziptest"/>
+ <touch file="${output}/ziptest/file1"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/ziptest"/>
+ <touch file="${output}/ziptest/file2"/>
+ <zip destFile="${output}/test3.zip" basedir="${output}/ziptest" update="true"/>
+ </target>
+
+
+</project>
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset1.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset1.zip
new file mode 100644
index 00000000..f3b96ffc
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset1.zip
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset2.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset2.zip
new file mode 100644
index 00000000..89e09fd5
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset2.zip
Binary files differ
diff --git a/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset3.zip b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset3.zip
new file mode 100644
index 00000000..dead9c12
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/etc/testcases/taskdefs/zip/zipgroupfileset3.zip
Binary files differ