diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-04-10 13:03:30 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-04-10 13:03:30 +0700 |
commit | 3612f72740b56204ee0d3563171a2c0209c3694c (patch) | |
tree | c917d935468560aa0ed20a737e4e86acba3b8c0a | |
parent | 34cda077348a5af1f9ec85b60803bb067ef33d38 (diff) | |
download | aspectj-3612f72740b56204ee0d3563171a2c0209c3694c.tar.gz aspectj-3612f72740b56204ee0d3563171a2c0209c3694c.zip |
Switch from 'libx' to 'lib', delete all obsolete binaries
Because 'cd lib && mvn compile' can now download and (un)zip many
previously SCM-committed third-party dependencies, the following 'lib'
subdirectories have been deleted:
- ant
- asm
- commons
- jarjar
- junit
- regexp
- saxon
This one is new (but not stored in SCM):
- jdtcore-aj
For each of them, there now is a .gitignore entry, so as to prevent
developers from accidentally committing the downloaded binaries again.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
95 files changed, 25 insertions, 11092 deletions
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 5ab310b94..bd6b9de64 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -32,7 +32,7 @@ jobs: ant -version - name: Download + install test libraries - run: ./mvnw -B --settings .mvn/settings-read-github-packages.xml --file libx/pom.xml compile + run: ./mvnw -B --settings .mvn/settings-read-github-packages.xml --file lib/pom.xml compile - name: Compile + package code run: ./mvnw -B --settings .mvn/settings-read-github-packages.xml --file pom.xml -DskipTests package diff --git a/.gitignore b/.gitignore index 72aa1c74c..0d4b7bbc9 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,16 @@ log.txt # No idea where these come from bin/ +# Downloaded libraries used during tests +/lib/ant/ +/lib/asm/ +/lib/commons/ +/lib/jarjar/ +/lib/jdtcore-aj/ +/lib/junit/ +/lib/regexp/ +/lib/saxon/ + # When using a RAM disk to speed up development, see how-to in docs/developer/ram-disk/settings-ramdisk.xml /.mvn/maven.config /.mvn/settings-ramdisk.xml diff --git a/aspectjtools/pom.xml b/aspectjtools/pom.xml index 9073483a0..bf098e2cc 100644 --- a/aspectjtools/pom.xml +++ b/aspectjtools/pom.xml @@ -66,7 +66,7 @@ <target> <echo message="unzip patched jdtcore" /> <unzip - src="${project.basedir}/../libx/jdtcore-aj/jdtcore-for-aspectj.jar" + src="${project.basedir}/../lib/jdtcore-aj/jdtcore-for-aspectj.jar" dest="target/jdtcore-unzipped" /> </target> </configuration> @@ -82,7 +82,7 @@ <target> <echo message="unzip patched jdtcore sources" /> <unzip - src="${project.basedir}/../libx/jdtcore-aj/jdtcore-for-aspectj-src.zip" + src="${project.basedir}/../lib/jdtcore-aj/jdtcore-for-aspectj-src.zip" dest="target/jdtcore-unzipped-src" /> </target> </configuration> diff --git a/build/build.xml b/build/build.xml index 68405e117..49b5b1979 100644 --- a/build/build.xml +++ b/build/build.xml @@ -566,7 +566,7 @@ To use testing client jar in tests, </jar> <!-- missing from this are the jdtDepends.jar src files --> - <unzip dest="${aj.src.dir}/jdtsrc" src="${aspectj.modules.dir}/libx/jdtcore-aj/jdtcore-for-aspectj-src.zip"/> + <unzip dest="${aj.src.dir}/jdtsrc" src="${aspectj.modules.dir}/lib/jdtcore-aj/jdtcore-for-aspectj-src.zip"/> <!-- ajde/ajde.core/ajdoc/asm/bridge/loadtime/org.aspectj.ajdt.core/taskdefs/util/weaver5 --> <jar destfile="${aj.src.dir}/aspectjtools${build.version}-src.jar"> <fileset dir="${aj.src.dir}/jdtsrc"> diff --git a/build/scripts/compileTest.sh b/build/scripts/compileTest.sh index f6a5b3a17..e86304310 100644 --- a/build/scripts/compileTest.sh +++ b/build/scripts/compileTest.sh @@ -22,7 +22,7 @@ ajdir=`echo "$ajdir" | sed 's|/cygdrive/\([a-zA-Z]\)/|\1:/|'` allfiles="$ajdir/allfiles.lst" onefile="$ajdir/onefile.lst" srcdirs="ajbrowser ajde asm bridge org.aspectj.ajdt.core runtime taskdefs util weaver" -libs="lib/ant/lib/ant.jar lib/bcel/bcel.jar libx/jdtcore-aj/jdtcore-for-aspectj.jar" +libs="lib/ant/lib/ant.jar lib/bcel/bcel.jar lib/jdtcore-aj/jdtcore-for-aspectj.jar" classesDir="$ajdir/classes" ajc110=$aj110/bin/ajc diff --git a/build/scripts/jikesInc.sh b/build/scripts/jikesInc.sh index 209aeadfc..3c8b1a54f 100644 --- a/build/scripts/jikesInc.sh +++ b/build/scripts/jikesInc.sh @@ -14,7 +14,7 @@ ajdir=`cd "$ajdir"; pwd` ajdir=`echo "$ajdir" | sed 's|/cygdrive/\([a-zA-Z]\)/|\1:/|'` allfiles="$ajdir/allfiles.lst" srcdirs="ajbrowser ajde asm bridge org.aspectj.ajdt.core runtime taskdefs util weaver" -libs="lib/ant/lib/ant.jar lib/bcel/bcel.jar libx/jdtcore-aj/jdtcore-for-aspectj.jar" +libs="lib/ant/lib/ant.jar lib/bcel/bcel.jar lib/jdtcore-aj/jdtcore-for-aspectj.jar" classesDir="$ajdir/classes" diff --git a/build/scripts/makeAspectjtoolsLstFile.sh b/build/scripts/makeAspectjtoolsLstFile.sh index 9ed7d8ad3..5c453ef06 100644 --- a/build/scripts/makeAspectjtoolsLstFile.sh +++ b/build/scripts/makeAspectjtoolsLstFile.sh @@ -96,7 +96,7 @@ getInjars() { cp="" sep="" for i in "$1" ../lib/bcel/bcel.jar \ - ../libx/jdtcore-aj/jdtcore-for-aspectj.jar \ + ../lib/jdtcore-aj/jdtcore-for-aspectj.jar \ ; do cp="${cp}${sep}`canonicalPath "$i"`" [ -z "${sep}" ] && sep=";" diff --git a/lib/ant/INSTALL b/lib/ant/INSTALL deleted file mode 100644 index 83c11675a..000000000 --- a/lib/ant/INSTALL +++ /dev/null @@ -1,2 +0,0 @@ -For installation instructions see the manual in the docs subdirectory -or online at <http://ant.apache.org/manual/index.html>. diff --git a/lib/ant/KEYS b/lib/ant/KEYS deleted file mode 100644 index 2be9dfdac..000000000 --- a/lib/ant/KEYS +++ /dev/null @@ -1,310 +0,0 @@ -This file contains the PGP keys of various developers. - -Users: pgp < KEYS - gpg --import KEYS -Developers: - pgp -kxa <your name> and append it to this file. - (pgpk -ll <your name> && pgpk -xa <your name>) >> this file. - (gpg --list-sigs <your name> - && gpg --armor --export <your name>) >> this file. - -Type Bits/KeyID Date User ID -pub 1024/FEECAAED 1998/11/11 Stefan Bodewig <bodewig@bost.de> - Stefan Bodewig <bodewig@apache.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3i - -mQCNAzZJoiMAAAEEAMzhUxTOC20Nprp6K4nLTiARt+EXii/dovNWWcfzZcYXi/lX -r3zpUTTZxlKQpd4RaHjFmGgoOraZE4jCRFARVcFJgYmGUKpcWJZO7YKL36WUizTM -+dyB2ycOtzlty1W5VmRL3FGqo67pKA9F/QHg3NSu9hY1W9xPPK7Kq3f+7KrtAAUR -tCBTdGVmYW4gQm9kZXdpZyA8Ym9kZXdpZ0Bib3N0LmRlPokAlQIFEDZSrGXHcgyK -jiW9zQEBshEEAMlG4qVjKp4/agdJG56M6izx9oaKecFLXHQJrFUy3w2PvZHFYtXc -osXKorX6bPrE8uB57MxbY2WapKeVRodlG0+j39vAf501duK8q2rktfWt9Cl4JjJ4 -DbWhSWfV1ci62u2gCxwYQe22F9Wh+vhOR5NK9RTbSKhupdlFsnrk/i7xiQCVAwUQ -NkmiI67Kq3f+7KrtAQGdxQQAlcFOzSv7G6M4uGbgvw7IGgrhx7rawtIyv9hLXgVC -7ua9xaZV8G0Fl9gh8RnbdcZ4R/aT+KIiAFaslfZ3t6hlC4MTbnAJqvdS/NO98ZkJ -YvnzZSKHflAbd5gyE7IVxBC9/xRlF/Wls5sYNwb6RjoRCaOjxN/y3WCLa3Va101v -zNy0I1N0ZWZhbiBCb2Rld2lnIDxib2Rld2lnQGFwYWNoZS5vcmc+iQCVAwUQOxIo -BK7Kq3f+7KrtAQGn6gP/SBACdHakA4H//otpyESSrk4PmyOaYF0Kyok43Gee2mT+ -m9+jZ3jLcC0oav6iH+otL/lhk9t/JDM8LjD2kAkdWWoIvvuPyCx97gOzojIo0Ve2 -1wuxJTF/VIjwyOtE8FzE7p4tkc6EubVpeZkV9Pq9HFRBCUcyKJDLnF4tbstScLU= -=OBLe ------END PGP PUBLIC KEY BLOCK----- - - -pub 1024D/51898504 2001-05-29 Conor MacNeill <conor@cortexebusiness.com.au> -sig 3 51898504 2001-05-29 Conor MacNeill <conor@cortexebusiness.com.au> -sig 5F6B8B72 2002-01-11 Stefan Bodewig <bodewig@apache.org> -uid Conor MacNeill <conor@apache.org> -sig 3 51898504 2001-05-29 Conor MacNeill <conor@cortexebusiness.com.au> -sig 5F6B8B72 2002-01-11 Stefan Bodewig <bodewig@apache.org> -sub 1024g/D1ECBA5D 2001-05-29 -sig 51898504 2001-05-29 Conor MacNeill <conor@cortexebusiness.com.au> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.0 (GNU/Linux) - -mQGiBDsTqygRBACiZckNdclTlQFonLaIKBFGhMy0KKByw0x8XA4iwdbCXuF6xNIc -HIFHajJ74AHchQ4d8xtomBy6b8yvFgWVeaZensvn69BlLeqGdyeJRzfPt6TgRnzZ -2eWhb0HXdG3JwxL/2BabDhHfs4YJOrgB/vhRFQku6oCMRiBPtJj2werD6wCg0/zp -jacYTw6+CR+sVvneCNyySFED/R3j10c4RnR8djgv1jKT8CKPuHYraupI9INEe+I6 -7qWjtJ02GzvMO6TElAtUsf4aysu45GgwkwEBnuG6mYb3Pq0V2c5tJc2A3Tj3DrdR -i3HUNwurbus76I0sPyyENPu12QPeC6mvWLEsxVJ9o0hRKFayGvYUmrwWK9UFLjvp -p9cXBACDHgLn7MAVLqUdYhRrUj/M+GOUpvBikEgoJJrEUmb5X4+++dffMh5HBIO4 -5LA11qEKuM2xnKqOilP7NLYXz1Fe0ocqv0jsHB4SprFTTai7ma31uwuRQvCQXVv1 -yJ5CLqYda64h/UA2kmmR2dfopmvDogYEMz/HU5voozxe7BEI7bQhQ29ub3IgTWFj -TmVpbGwgPGNvbm9yQGFwYWNoZS5vcmc+iFcEExECABcFAjsTqygFCwcKAwQDFQMC -AxYCAQIXgAAKCRCBBGRPUYmFBDgIAKCZztXqKhK6kXOnoGy7opCNmWU0lwCgsPDa -4m+ruW3ch0rfbqtR75S52R+IRgQQEQIABgUCPD6eTgAKCRCiEVrhX2uLcqCcAKCr -1Wylqju9YjBi5Twej9ze69JFBQCeOaMgo6yjnkcV3PnVInLlaMwPr5q0LUNvbm9y -IE1hY05laWxsIDxjb25vckBjb3J0ZXhlYnVzaW5lc3MuY29tLmF1PohXBBMRAgAX -BQI7E6xMBQsHCgMEAxUDAgMWAgECF4AACgkQgQRkT1GJhQTY0ACgmZmKheHzjPJs -5hybpyvnvEiPYqYAn2+ryxdtz8XyOMExGRmHNlhG7svsiEYEEBECAAYFAjw+nlUA -CgkQohFa4V9ri3JYYACg1WN+NCptfKVP1mbrIa+0ajztsiIAnAn+m70iwRRFZCxr -jcULoY5SjyTLuQENBDsTqy0QBACfsCxJ6iCtgX8zjlVtMsMfDqu72x5sYatWKn8c -u+4Oj5mi0x6azZIhwCa+K3ihLVOyG1mCRnzztGTIxWYRhq3TESIVOfgm+NgLGrmA -XUTFyCT+21TExLCpuVZKmUHsWXLxDtfQ1diPeQpiQ8+Fvb/4jLGFjFIrQ2VjtFQn -kumkSwADBgP9H0bF4hdMuVEcSJ9imxSoJshcOOA3Vd2+YiCTZhBygWM49wY5jNos -/DArIjNCE53IlOu/UtHB2jqkSqjF0soGYsUjeCWouiTP9hLuMKPjnqj9ryJPTDKz -nTCZ4TuB5CtzrKTlWLmPCPpFsGqe4KjMeKg/mqGqjPKl97xgStK9N9GIRgQYEQIA -BgUCOxOrLQAKCRCBBGRPUYmFBMM6AJsF3FFyZGEmbt9aGG1W/u0oI9mcLgCfQyJ+ -aalbspazea4J9zgi59SSwOM= -=cBdR ------END PGP PUBLIC KEY BLOCK----- - -pub 1024D/5F6B8B72 2001-05-28 Stefan Bodewig <bodewig@apache.org> -sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bodewig@apache.org> -sig 51898504 2002-01-11 Conor MacNeill <conor@cortexebusiness.com.au> -sig 3 F88341D9 2003-03-17 Lars Eilebrecht <lars@eilebrecht.org> -sig 3 2261D073 2003-03-17 Astrid Keáler (Kess) <kess@kess-net.de> -sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik <dirkx@apache.org> -sig 75A67692 2003-03-18 Erik Abele <erik@codefaktor.de> -sig B3B2A12C 2003-05-20 ct magazine CERTIFICATE <pgpCA@ct.heise.de> -sig 3 8103A37E 2003-04-04 Andre Malo <nd@apache.org> -uid Stefan Bodewig <bodewig@bost.de> -sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bodewig@apache.org> -sig 51898504 2002-01-11 Conor MacNeill <conor@cortexebusiness.com.au> -sig 3 F88341D9 2003-03-17 Lars Eilebrecht <lars@eilebrecht.org> -sig 3 2261D073 2003-03-17 Astrid Keáler (Kess) <kess@kess-net.de> -sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik <dirkx@apache.org> -sig 75A67692 2003-03-18 Erik Abele <erik@codefaktor.de> -sig B3B2A12C 2003-05-20 ct magazine CERTIFICATE <pgpCA@ct.heise.de> -sig 3 8103A37E 2003-04-04 Andre Malo <nd@apache.org> -uid Stefan Bodewig <stefan.bodewig@freenet.de> -sig 3 5F6B8B72 2003-03-07 Stefan Bodewig <bodewig@apache.org> -sig 3 F88341D9 2003-03-17 Lars Eilebrecht <lars@eilebrecht.org> -sig 3 2261D073 2003-03-17 Astrid Keáler (Kess) <kess@kess-net.de> -sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik <dirkx@apache.org> -sig 75A67692 2003-03-18 Erik Abele <erik@codefaktor.de> -sig B3B2A12C 2003-05-20 ct magazine CERTIFICATE <pgpCA@ct.heise.de> -sig 3 8103A37E 2003-04-04 Andre Malo <nd@apache.org> -sub 1024g/24774157 2001-05-28 -sig 5F6B8B72 2001-05-28 Stefan Bodewig <bodewig@apache.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.0 (GNU/Linux) - -mQGiBDsSIk4RBADSCj6rUjV64tYCGT1DYKYR7GthyWpNdGHSYLbETBcDatAe1dzQ -5NsCgfrlybfyeY+y1lxr3T9bqf6zJWDw/718wff96qmmv1qzexSYtmIrj+h53V82 -EXwWOFuYMJisuxdT940iQzosm3GOv4MJdEg3oI2SgfEyRQQ6vO4Ob5rHDwCg5taZ -nrHOrXx2dIGHxpxRZ0SUl30D/jmtttFjYOQ3LBMriikz5mh2sK3ZnoSRF4o5O0zW -Ve6e2SFXOEjVjImKsH6KCbdQNelrAdgiyOoXClyQKsQ27pncbdWo6bO0E3POJZVm -XaeW7iudHVr63rU5PViXObIQrdQl0D59j5brKj4vdlTyUw8kaHPvbKPDEOwvZq4Y -LJQ5BACA1YilTeXRJqwFsNlpcxCHwlULD4QUVP496prQWf1B7Z6g0KvLGrQsO0Vn -Jcn+fEqukysTJixSXCPebosltd4RalJIupVYkp4w6MJ7biaDAlLuNhDcI/AiXTmV -dXUedVXIaM8I3Ne23gucwbAyc0Hvb+3cSAKRhl/azFQhuHBvlrQjU3RlZmFuIEJv -ZGV3aWcgPGJvZGV3aWdAYXBhY2hlLm9yZz6IWgQTEQIAGgULBwoDBAMVAwIDFgIB -AheAAhkBBQI7EiJPAAoJEKIRWuFfa4tyjzgAn3a+nFeNb3mAZQR4lRcXy3F+8eTh -AJ4iuLt4No6TUB9xNETrm3Y/0TvkU4hGBBARAgAGBQI8PtWPAAoJEIEEZE9RiYUE -nZIAnjOkQx1BfxN9+E7Yiz4MOxqZjSUpAKDQi0Alv/VR61fmR7KHZ11J2g+HSIiZ -BBMBAgAGBQI+dd8MAAoJED6Pt/L4g0HZJ2QD5RzYjJ0fi1Gr6NsjmIiU/lvfvPqj -bNoK2A2flkmLo2lk9jSa1AmF0ETOoCg8hZZHCbxyPZRdsmDJFXrZZWVTdUyZHhHb -Wx53DR3HavmVEEdDZBSkxfXdSu1CNq31sbdcumtd03FI6SV827cPzl1/RGUiOkEL -eK0hZb3IvSd5iEYEExECAAYFAj512sEACgkQ7tHqOSJh0HNFuACfb7quMJZHOk5p -pmTxf4GVS5bh3E4AniLa5788ktdcZCBE5Or+G+yuIGooiD8DBRA+daoa/W+IxiHQ -pxsRAkQFAKDmlWVuQnWfaGK9z8CP4vESTfiXyQCgpnf1yJWDgqWvUHOAvOeaTPDR -cOmIRgQQEQIABgUCPnekEAAKCRAVP6DNdaZ2ki/rAJ9Q0x5m4SE3hMNGUoMgS0MN -mYXDOQCdGa0QW2fZW4B1wSjiUIi6VgY+F7GIRgQQEQIABgUCPsoulgAKCRDb0kX8 -s7KhLBfwAKDV6uwqf9AMBJlr4aE45rWOnlWAeQCgjBYQVHWFjV1cmpT06vE4bMDV -J6+IRgQTEQIABgUCPo3OLAAKCRDKaTl0gQOjfpFKAJ9TY+mKmq0INLC9iqxbEETj -NwOn0gCgspeNEqX1SUjt932Lj3IvXR6fkAi0IFN0ZWZhbiBCb2Rld2lnIDxib2Rl -d2lnQGJvc3QuZGU+iFcEExECABcFAjsSOYEFCwcKAwQDFQMCAxYCAQIXgAAKCRCi -EVrhX2uLcsm6AKDaA//SYJv2pcXwGBC89OSzGvxy3gCg1kx6qu6zJKaWaE1L9oFq -Vc65OUSIRgQQEQIABgUCPD7VlQAKCRCBBGRPUYmFBNCzAJ9tv7tNS6NwaOZQ8cR0 -pGslJGKtuQCgpttMmhhRrUwyVuEXc+dKX7rdQMKImQQTAQIABgUCPnXfDwAKCRA+ -j7fy+INB2Vm6A+IDxiYtMvd/mad+7hRoKXvD5AddB1SwnvQdJe0ewStFBYZxZdNO -LXdkVngCwAJziPGZcQmocEHVMrN+Mxe+3OX0PEZ+3KOOsAUi+fTov2xvf8EWKgX9 -d0li9iEytVA4M0c52a3bPTC0Kki/KAY3m8oNvAmTwWB9dBSooFFDMIhGBBMRAgAG -BQI+ddrHAAoJEO7R6jkiYdBzruYAnAzvTrvDQNvoAoaDQJ+o/ydqMA8ZAJwNEOQD -Hsz+6ynbMPoQmKmUqfEISIg/AwUQPnWqIf1viMYh0KcbEQIkpwCeInf4o3C5Ykh/ -xBodVImrp2Cvcy8AoMn3me5p4Sl2rm2tjVxTJZt2sUr7iEYEEBECAAYFAj53pBoA -CgkQFT+gzXWmdpIpGgCgiTARP6Cf+JKOxUaVFr0L9DC5oUcAoIxF7D5mOVK/AFcp -1cxNk3BLtdq3iEYEEBECAAYFAj7KLjIACgkQ29JF/LOyoSwAbACglNp7V2Pw4U57 -5IuooM677bZf8pwAn2U2TcHj7PYprU+qYRkyJ3pa7FyyiEYEExECAAYFAj6NzjUA -CgkQymk5dIEDo35YPwCeJIU/monN96nP4jJjAuflEXMbemUAoJXq7oVCYuOCqWr/ -T3VW0DM3W+dntCpTdGVmYW4gQm9kZXdpZyA8c3RlZmFuLmJvZGV3aWdAZnJlZW5l -dC5kZT6IXAQTEQIAHAUCPmiBXAIbAwQLBwMCAxUCAwMWAgECHgECF4AACgkQohFa -4V9ri3JPKACfXhFOr4gMMIQwEGvUb6J/X4asuzIAnje2H9T1r/jSVi1NbIEtQfbp -myQXiJkEEwECAAYFAj513w8ACgkQPo+38viDQdmGkgPnUYJfHlDrQ2jYJWuPDve9 -n4pV9OvyIllKyLdfULjsLWXw4Jm+fMQJgWr2GEov1ZYIyS2+rGDZpbz/vxaBVbgq -M8TPdiXzxwU8AFq4k+Em4fKXR58ByLSJjvLLza61spNHJennEUFp3tTpEsr4bNuu -aoRYhtiKzTqNuoC+0x+IRgQTEQIABgUCPnXaxwAKCRDu0eo5ImHQc5lcAJ9FOoAL -4uHMuqHXrrxsEVPJvEJ2/ACggaOR62EziUqcqpdm/1Zy3P4T22iIPwMFED51qjj9 -b4jGIdCnGxECWssAoKnkR63bWGCFDB5YJtfZJ+nQq3TAAKD1bzG/kITQpIHsT2vC -Y1yBmlWbBYhGBBARAgAGBQI+d6QaAAoJEBU/oM11pnaS+9IAn0kFlXAzOhhu4r5f -glMVuw5bTAd0AKCtYRX2ESU/+tsE8vuXWtsMCGeI5YhGBBARAgAGBQI+yi67AAoJ -ENvSRfyzsqEsSccAoKqG39X2y6xoQa56nviF5iCj/oTFAJwLKx9GyKEUbSM9f/IQ -7AsZPhHT54hGBBMRAgAGBQI+jc41AAoJEMppOXSBA6N+xYgAn1HbGamcXTDYSFjn -3U5ik2vQa8nuAKC/uUM01gsdn+71EiAkmrjlH6H9MLkBDQQ7EiJUEAQAzVKWS8Qr -kysydbTJu2/14wIbz2Coi93aAGelwCwXSxf50JpYdY3Lkcvd0FqT8bcEnz43MCSx -8vlKubQtUpx9WMGIb4ixtShLJ4lAa6FJldhychz/dnxSNyz5N8W6sby4dTVxac0r -loxjAOurGanhG7TMtgfDi0cEEoXRyAVoKyMAAwUD/j1pJm4Npq2mlJoE7MK3vAhg -KwYHFflmJusmqvSAtRuFdT15pbMJrA5bAK+lA3SVOOhhWTCItlphSR2qxJCAcBTe -OMqUi5ohFcCkSRNvwmDtH+80B3BehlEsEKNk8Z3moa2ch7Oxnb6XEXH5tGJ5Qvx9 -Qid6ZfBaXx7bc8yKyCb4iEYEGBECAAYFAjsSIlQACgkQohFa4V9ri3INMgCgnc22 -kj8TfjktU6u4SUUqud25ZZcAn0B2b0zPjKjGuiwdKSnkFbNcFS3g -=9dY9 ------END PGP PUBLIC KEY BLOCK----- - -pub 1024R/697ECEDD 2000-04-06 Henri Gomez <hgomez@slib.fr> -sig 697ECEDD 2000-04-06 Henri Gomez <hgomez@slib.fr> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.0 (GNU/Linux) - -mQCNAzjsydwAAAEEAMpwFU/ci3/wR3ryCGp9Exr+Rx/hTQ7hWAJcVw8ejlBXlT4T -yITlRUs0HGfRWxME2J55PuXXsIEPZzjfozNtvOyq8WlLlJ7iaiyWxVRoPJ25sSEj -C9etm6wjj4E66ZgzuElZkm1m69uEsCHPPNuz1oQ/g1O+SmIVxIYirlxpfs7dAAUR -tBxIZW5yaSBHb21leiA8aGdvbWV6QHNsaWIuZnI+iQCVAwUQOOzJ3IYirlxpfs7d -AQFQyQQAj0D9G0hEL7SQGaSCkkoXwvamQw42N8+tNm+jfWHWdE4HAiVlhJmI2GyD -sdcXVAcR8R7ILIRB5AY7a3bF+qMk0r+vO6oR878RKKn9AvtaAIOnrh6tr0tiPwf5 -XDUMySxIWJEF3SmJAy9Lq3bAl5GMzZCFHiS0NW2gtWgmr/u1RuM= -=6l+I ------END PGP PUBLIC KEY BLOCK----- - -pub 1024R/397DCAD5 2002-07-03 Henri Gomez <hgomez@users.sourceforge.net> -sig 397DCAD5 2002-07-03 Henri Gomez <hgomez@users.sourceforge.net> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.0 (GNU/Linux) - -mQCNAz0i0UUAAAEEALXePN6IHne0W96YRMnR+4EXB6402QY5f8ZLcnSUZUH55Fb1 -qcZGBc3WRKlPiUvwBD+eVYgCpNSXF/H+oV1mawxNJN5XwqBEpfYmY8MRIPcqa61h -bJc3LBSm1qNf05G5Cwxeed+OgVm0r1HBy6DAgDHAqNlkC8DZ/BVgqMA5fcrVAAUR -tCpIZW5yaSBHb21leiA8aGdvbWV6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD6JAJUD -BRA9ItFFFWCowDl9ytUBASNyA/458T84LUVhqq6Y9fPBAfcFMWY2kehuDWsQEXkO -46XoK+AnFZCkKuyDLqPHchVUO5pK/gZYsDK/xJkfh3u4FTDTsecb9wFmIeyayVIN -SI8o6l8EZzDX/PGwqEwzxHrbQkIgIktNn5ApIoazvdBpbkQfNj1vr2wWoMYPLAWM -8xzecA== -=UmZ8 ------END PGP PUBLIC KEY BLOCK----- - -pub 1024D/307A10A5 2002-07-18 Henri Gomez <hgomez@users.sourceforge.net> -sig 3 307A10A5 2002-07-18 Henri Gomez <hgomez@users.sourceforge.net> -sub 2048g/862B8F70 2002-07-18 -sig 307A10A5 2002-07-18 Henri Gomez <hgomez@users.sourceforge.net> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.0 (GNU/Linux) - -mQGiBD02vbERBAC1v8fR6gjERpaz4UMfdy0hRVWCPSbOdF+Swm/IenjVzErco6zb -MTa13umUNrDPBy/tTWiCCZrOnqi7fgDzWqPEqrXJjKAFVLEWE6MmKylPPEPG1/bm -idkNGERSAZduvhKv777PzvEJJ/8eGe3wy/O8NbgIjCPtr4UklwCZS8cFuwCg8oMO -UdT8qZRtzdxdAyu1m5fUb+MD/3IKJYWXsdtb6iBphCU4f/BoyjVC9EZJ1ywLuiVM -siKbuaDUaXU9nWcbNKv+fx8uZ1NaadpfLokqqhnWcpnSiqw8HNR7SwsF1D33rkXK -O4FSuVss/tIoqGdWFcJyPkP4yP5shxqR335narVw2vDa0+BiWkALbA2qVsSIdZDB -LeFZA/47AMBS0U2BRk2rQT8LmMuFl7mR+wNBM4n7FUGdxsGn3TcYd4pXTNrEQPrV -YNdooKlikgGk4hgFnIFX09Spmimqgq0goFue81rttVdZZ4uep8dTghY6gwmvcOxX -jATbhWStBhdu9B35kzfHc+1QihD5Z94u4uyWIVBIzikcdiY8LbQqSGVucmkgR29t -ZXogPGhnb21lekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+iFcEExECABcFAj02vbEF -CwcKAwQDFQMCAxYCAQIXgAAKCRAZMdaEMHoQpYijAKCCP68ndU/kTXR9XAKLvibC -3S8+1QCfUFQYte3Jo+MHKaWjsu9JGptRzo+5Ag0EPTa93RAIAKlsRJ5gOGTFsmaR -W9k6MIh4c/MCy7J7HUxT5xTdHROa+3zUh+FAE/JaOx9ZtZtH863DFHA8cP4L+tpi -PjBT6g2E94dwGcuH/OiSSCT4JSBukbGbOuLLdmFXqUl8+4gsL90Xal67FtNLwyLG -1n7geLir0byD+OT7VLA5w+6G0NOpJEveV/FIa2qLgdRZ8vz73ybgMh18hBUrUmro -jncp0rln2VU7VCH1C2aClKm7kK4mGAjIFIzKbguK+kM3b8NDHmXKpT6syyCtIM3h -prkV1TUCAFqLI32aSdlTN79lpeA2zDga9k4/4X/RDHsFpRN2neRFGTNUtuUgYpQQ -E5zWBmMAAwUH/RiGxyeBsad923IwE1+GAjxFl2tqF9xWk0J6yTnSK4nfhYAE9evV -jwDEok9jRl4ILCcXx6YN/d/lWNuSbARKHz/3hLiTouPpwd3SSJ8is2x9PgpJz5JX -cD0y1SkbPLvs3jH3ZmdcxZpuAmJeI/typqFKK5pWP44oXIH+XH/8nWDtmLEBkgKQ -/ATQWenMTmZ6MIJ6aWKWGkO9QS6iYRz3PPPGQ1O8W02CeprM2wBtlb8J1Z3RxNhM -rZcg/1Qi3V3D1HI4zw6tAFmDeBb8J4PaBQzqlhzx2EBTbfwNPhV8AlPvpxHEeGGn -v+O1yhZr33SnyZdINNoNDn+owVMdmkobe9GIRgQYEQIABgUCPTa93QAKCRAZMdaE -MHoQpRsTAJ4qst3MhLm48fBAEnzuzi/BIKr+AgCfYaCB/AvPoncQbHc8BcNGRimR -P9A= -=hQhz ------END PGP PUBLIC KEY BLOCK----- - -pub 1024D/EDF62C35 2002-04-10 Magesh Umasankar <umagesh@apache.org> -sig 3 EDF62C35 2002-04-10 Magesh Umasankar <umagesh@apache.org> -sig 3 5F6B8B72 2003-03-07 Stefan Bodewig <bodewig@apache.org> -sub 1024g/B5FFC53F 2002-04-10 -sig EDF62C35 2002-04-10 Magesh Umasankar <umagesh@apache.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.0 (GNU/Linux) - -mQGiBDy0ebgRBADuKIKD8PuJ4wKEV1h2AprwJjxCRx8vn48XNwfLZuvhw8cpArtK -rZwhoGPPUPEEXgtTNerlKq4VwpAwcnvRz7oC/7aWkUbcR2sAyhfe2scohwPgw7Xv -+isWC0NDPdrxvXG/PUOG/cnELunr51ymybBqBxUd2gMhYIxPo67D+YPYLwCgwcZp -yc/6kJa116ESWHrti342GD8D/1srpnRs9CiS1DQF1uZ1wW4vzj4VD61tKsjdWD8D -V573R22iMDLSj4oMB536WxUH7snz8XsAKm/peqJ6G9m0smtmWA1ago5yzQj70WqF -xzWBhHn2I/YfAQ8pb2s9q1lClj8elnCxT65L27ydBAZteejb2VqjtQ6iGy86PUT2 -wRUvBADZmoV1eIZJEM5NnxBv1EtvRYZtIQEzZ8dO2A1LOS7qlVr8IypljNPLGhzX -VHNvVsjC9QMUSWeBsDedvQHQ3hJpIMnTI32XE1V4gX06gfVTZdhf2fLTtwnsHZp0 -oumqshGDVRhNJJdDYLikxWOxOfkNveKEqJFvtuBR+ZqqluQKebQlTWFnZXNoIFVt -YXNhbmthciA8dW1hZ2VzaEBhcGFjaGUub3JnPohXBBMRAgAXBQI8tHm4BQsHCgME -AxUDAgMWAgECF4AACgkQ76Pnee32LDWSRwCfeASWXvpdt7bSFPMtszU/7uPEktsA -n23mYUN5WKJA1ZreW+0CcZ2ESnOviEYEExECAAYFAj5ogYgACgkQohFa4V9ri3IW -YACgsxGig0PL0M86rJsA/IpXjBdg3ysAoJzsoUZ/7s2BxDfzF/FRTVIzS+TMuQEN -BDy0eb8QBACBVb9YDJRp9Irzmq71Jf9FIPw+4g/cWpF3t/Eb7eSzMcOvTAXyNIWz -aaOjHre7lFctHfq8ls/6gR7uqajiAnfQcfTcu7pp+F5KsU0Embt83SFzZ3aoJwET -mB/LqUyrrGDiue3lU+flJO7UmcsRvtk0+BDkyCeB9HgfdpXbBLCyuwADBQP+PNxX -4e1tg3ZJo/xNEnD2Re3HjmQRrr0RYJLUGjgQrAEONSgowx3IW8/JssmNJVjnYm0q -jSKsb8rergCFJhPNZ8Dd/k00pKcrq+IN6j7WTYLqPce87zrGAZUtmDwDSp5mxy5E -xWJJxsgBPk4YBQLzJt21A3BgK/i24Sze2VLbaZuIRgQYEQIABgUCPLR5vwAKCRDv -o+d57fYsNa8xAJ4mLfonZbd64+YY9rfvhIh3Vsl3AACeLPPKtma2K6XCfhTBEDnj -hzSr4vo= -=lBfF ------END PGP PUBLIC KEY BLOCK----- -pub 1024D/265B4C63 2003-08-18 Antoine Levy-Lambert (Apache Ant Committer) <antoine@apache.org> -sig 3 265B4C63 2003-12-06 Antoine Levy-Lambert (Apache Ant Committer) <antoine@apache.org> -sig 3 5F6B8B72 2003-12-12 Stefan Bodewig <bodewig@apache.org> -uid Antoine Levy-Lambert (Apache Ant Committer) <antoine@antbuild.com> -sig 3 265B4C63 2003-08-18 Antoine Levy-Lambert (Apache Ant Committer) <antoine@apache.org> -sig 3 5F6B8B72 2003-12-12 Stefan Bodewig <bodewig@apache.org> -sub 1024g/A3060393 2003-08-18 -sig 265B4C63 2003-08-18 Antoine Levy-Lambert (Apache Ant Committer) <antoine@apache.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.2 (MingW32) - -mQGiBD9AzmcRBACMqgb7IFvC/nLxw7mUAgHENeZXY3JOQJ8wVBevIbbMEeFvzHE2 -diFydqUXocPexduYr0ahkf033WvWdAiNqDLfVW/HFOsc1TpjbHkqPUHtJ62Ya5tg -nH4UGN9BYZfMbfVDOSz41lYwmfK5HYgpZN/sBQBSKf2qgoFB+LxYaae8YwCgrWlu -fYhf7fkKbbdSf3BGS67ggNkD/0VvkXkw1SEnPaqrkKGkPKomCTb2auGxcYYI3/rP -1m+SGRf0gE1NtocmIEitiR6WvfKUjoMAXSCp5KdnUXmO9rwzkM002KCA7K5CY+e/ -2bLDuiQ3rNiD4mFfG6M+UnmZ+GMFba1p9Cp4PqLNLsCHz67t7hEsscTZQ8mZ9xKM -+GCsA/9P+XFM7JDn9MLhYab9qo1CkceBkthUP6jWGjuAZ00elmBCkpkzNv5aIzss -xih2GpaU/tmcMjw8FGp0dTwzqdpmbZBLjunRnuBTir4m4l5G9rwl4JbfK1PVqk4a -VKkh9W7/yqBcEfNcsfJO9cqaQ+PzcnCoDiD9UHEBYzUhrCKwhLRCQW50b2luZSBM -ZXZ5LUxhbWJlcnQgKEFwYWNoZSBBbnQgQ29tbWl0dGVyKSA8YW50b2luZUBhbnRi -dWlsZC5jb20+iFsEExECABsFAj9AzmcGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ -hhTWqyZbTGMnOgCeJV2gI+1CIxMR7dcIhXjPkiusreIAn2SGOsPS0o89l0EIVuc9 -J2F03aB+iEYEExECAAYFAj/ZwioACgkQohFa4V9ri3J8CACgiGlh+td0BAnJPq19 -ovEQR2DJ02MAoLP203EF+BLPpykeTcGp8UEWmeGQtEBBbnRvaW5lIExldnktTGFt -YmVydCAoQXBhY2hlIEFudCBDb21taXR0ZXIpIDxhbnRvaW5lQGFwYWNoZS5vcmc+ -iF4EExECAB4FAj/SSwYCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQhhTWqyZb -TGOh/QCfbrSoipMlizyGT6c8BOPEd9zzfi0AnRRTqTDzXzsGk4CG/BJME9CCm7Ts -iEYEExECAAYFAj/ZwiMACgkQohFa4V9ri3IOVACgh2QHS1+cVjvM4eLjls1bJwWi -o5IAoLtAszHrwHS5qrhvr2rtnlyyyV2guQENBD9AzmkQBACNpBfqi2PweozCtxoX -PqzKdRDKqCw7TOrDR6lbP3z/ov/1SN5Vc0XqNzBSGqwBcmGWtneABkX7n4uzJrC5 -wvX/TZ/DkMvypPyeNVMu+/ZMlzdbx06OUDKr6Fy/NtaI7cN1rw+Igyv22Q8ilhhg -s/5Rdj84EtJkWQjVRml6wXSAZwADBwP/TqyhOC4sA5YrePYGH8i46h0SU9dXjfEF -JijC8vXZ+BNQHQVK3fjEXedZL8Zvvp1bsMu7Muz9SMnqygM1unp2NGxLRd/9315p -Qh0VStYKn0xq13ybOKr0Gsyx5yyl3Nzlu/1qAR0es/zN4jV7/IQi3R2GOvezcpHX -mkbsYiZAhu2IRgQYEQIABgUCP0DOaQAKCRCGFNarJltMYxcsAKCSJJUABlXYnLBj -b+WtmAzu0JjZNACdFJ4KIATJDK/5ajFq5+irOpodoHc= -=UomR ------END PGP PUBLIC KEY BLOCK----- diff --git a/lib/ant/LICENSE b/lib/ant/LICENSE deleted file mode 100644 index f820d4bd3..000000000 --- a/lib/ant/LICENSE +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Apache License - * Version 2.0, January 2004 - * http://www.apache.org/licenses/ - * - * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - * - * 1. Definitions. - * - * "License" shall mean the terms and conditions for use, reproduction, - * and distribution as defined by Sections 1 through 9 of this document. - * - * "Licensor" shall mean the copyright owner or entity authorized by - * the copyright owner that is granting the License. - * - * "Legal Entity" shall mean the union of the acting entity and all - * other entities that control, are controlled by, or are under common - * control with that entity. For the purposes of this definition, - * "control" means (i) the power, direct or indirect, to cause the - * direction or management of such entity, whether by contract or - * otherwise, or (ii) ownership of fifty percent (50%) or more of the - * outstanding shares, or (iii) beneficial ownership of such entity. - * - * "You" (or "Your") shall mean an individual or Legal Entity - * exercising permissions granted by this License. - * - * "Source" form shall mean the preferred form for making modifications, - * including but not limited to software source code, documentation - * source, and configuration files. - * - * "Object" form shall mean any form resulting from mechanical - * transformation or translation of a Source form, including but - * not limited to compiled object code, generated documentation, - * and conversions to other media types. - * - * "Work" shall mean the work of authorship, whether in Source or - * Object form, made available under the License, as indicated by a - * copyright notice that is included in or attached to the work - * (an example is provided in the Appendix below). - * - * "Derivative Works" shall mean any work, whether in Source or Object - * form, that is based on (or derived from) the Work and for which the - * editorial revisions, annotations, elaborations, or other modifications - * represent, as a whole, an original work of authorship. For the purposes - * of this License, Derivative Works shall not include works that remain - * separable from, or merely link (or bind by name) to the interfaces of, - * the Work and Derivative Works thereof. - * - * "Contribution" shall mean any work of authorship, including - * the original version of the Work and any modifications or additions - * to that Work or Derivative Works thereof, that is intentionally - * submitted to Licensor for inclusion in the Work by the copyright owner - * or by an individual or Legal Entity authorized to submit on behalf of - * the copyright owner. For the purposes of this definition, "submitted" - * means any form of electronic, verbal, or written communication sent - * to the Licensor or its representatives, including but not limited to - * communication on electronic mailing lists, source code control systems, - * and issue tracking systems that are managed by, or on behalf of, the - * Licensor for the purpose of discussing and improving the Work, but - * excluding communication that is conspicuously marked or otherwise - * designated in writing by the copyright owner as "Not a Contribution." - * - * "Contributor" shall mean Licensor and any individual or Legal Entity - * on behalf of whom a Contribution has been received by Licensor and - * subsequently incorporated within the Work. - * - * 2. Grant of Copyright License. Subject to the terms and conditions of - * this License, each Contributor hereby grants to You a perpetual, - * worldwide, non-exclusive, no-charge, royalty-free, irrevocable - * copyright license to reproduce, prepare Derivative Works of, - * publicly display, publicly perform, sublicense, and distribute the - * Work and such Derivative Works in Source or Object form. - * - * 3. Grant of Patent License. Subject to the terms and conditions of - * this License, each Contributor hereby grants to You a perpetual, - * worldwide, non-exclusive, no-charge, royalty-free, irrevocable - * (except as stated in this section) patent license to make, have made, - * use, offer to sell, sell, import, and otherwise transfer the Work, - * where such license applies only to those patent claims licensable - * by such Contributor that are necessarily infringed by their - * Contribution(s) alone or by combination of their Contribution(s) - * with the Work to which such Contribution(s) was submitted. If You - * institute patent litigation against any entity (including a - * cross-claim or counterclaim in a lawsuit) alleging that the Work - * or a Contribution incorporated within the Work constitutes direct - * or contributory patent infringement, then any patent licenses - * granted to You under this License for that Work shall terminate - * as of the date such litigation is filed. - * - * 4. Redistribution. You may reproduce and distribute copies of the - * Work or Derivative Works thereof in any medium, with or without - * modifications, and in Source or Object form, provided that You - * meet the following conditions: - * - * (a) You must give any other recipients of the Work or - * Derivative Works a copy of this License; and - * - * (b) You must cause any modified files to carry prominent notices - * stating that You changed the files; and - * - * (c) You must retain, in the Source form of any Derivative Works - * that You distribute, all copyright, patent, trademark, and - * attribution notices from the Source form of the Work, - * excluding those notices that do not pertain to any part of - * the Derivative Works; and - * - * (d) If the Work includes a "NOTICE" text file as part of its - * distribution, then any Derivative Works that You distribute must - * include a readable copy of the attribution notices contained - * within such NOTICE file, excluding those notices that do not - * pertain to any part of the Derivative Works, in at least one - * of the following places: within a NOTICE text file distributed - * as part of the Derivative Works; within the Source form or - * documentation, if provided along with the Derivative Works; or, - * within a display generated by the Derivative Works, if and - * wherever such third-party notices normally appear. The contents - * of the NOTICE file are for informational purposes only and - * do not modify the License. You may add Your own attribution - * notices within Derivative Works that You distribute, alongside - * or as an addendum to the NOTICE text from the Work, provided - * that such additional attribution notices cannot be construed - * as modifying the License. - * - * You may add Your own copyright statement to Your modifications and - * may provide additional or different license terms and conditions - * for use, reproduction, or distribution of Your modifications, or - * for any such Derivative Works as a whole, provided Your use, - * reproduction, and distribution of the Work otherwise complies with - * the conditions stated in this License. - * - * 5. Submission of Contributions. Unless You explicitly state otherwise, - * any Contribution intentionally submitted for inclusion in the Work - * by You to the Licensor shall be under the terms and conditions of - * this License, without any additional terms or conditions. - * Notwithstanding the above, nothing herein shall supersede or modify - * the terms of any separate license agreement you may have executed - * with Licensor regarding such Contributions. - * - * 6. Trademarks. This License does not grant permission to use the trade - * names, trademarks, service marks, or product names of the Licensor, - * except as required for reasonable and customary use in describing the - * origin of the Work and reproducing the content of the NOTICE file. - * - * 7. Disclaimer of Warranty. Unless required by applicable law or - * agreed to in writing, Licensor provides the Work (and each - * Contributor provides its Contributions) on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied, including, without limitation, any warranties or conditions - * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - * PARTICULAR PURPOSE. You are solely responsible for determining the - * appropriateness of using or redistributing the Work and assume any - * risks associated with Your exercise of permissions under this License. - * - * 8. Limitation of Liability. In no event and under no legal theory, - * whether in tort (including negligence), contract, or otherwise, - * unless required by applicable law (such as deliberate and grossly - * negligent acts) or agreed to in writing, shall any Contributor be - * liable to You for damages, including any direct, indirect, special, - * incidental, or consequential damages of any character arising as a - * result of this License or out of the use or inability to use the - * Work (including but not limited to damages for loss of goodwill, - * work stoppage, computer failure or malfunction, or any and all - * other commercial damages or losses), even if such Contributor - * has been advised of the possibility of such damages. - * - * 9. Accepting Warranty or Additional Liability. While redistributing - * the Work or Derivative Works thereof, You may choose to offer, - * and charge a fee for, acceptance of support, warranty, indemnity, - * or other liability obligations and/or rights consistent with this - * License. However, in accepting such obligations, You may act only - * on Your own behalf and on Your sole responsibility, not on behalf - * of any other Contributor, and only if You agree to indemnify, - * defend, and hold each Contributor harmless for any liability - * incurred by, or claims asserted against, such Contributor by reason - * of your accepting any such warranty or additional liability. - * - * END OF TERMS AND CONDITIONS - * - * APPENDIX: How to apply the Apache License to your work. - * - * To apply the Apache License to your work, attach the following - * boilerplate notice, with the fields enclosed by brackets "[]" - * replaced with your own identifying information. (Don't include - * the brackets!) The text should be enclosed in the appropriate - * comment syntax for the file format. We also recommend that a - * file or class name and description of purpose be included on the - * same "printed page" as the copyright notice for easier - * identification within third-party archives. - * - * Copyright [yyyy] [name of copyright owner] - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT 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/lib/ant/LICENSE.dom b/lib/ant/LICENSE.dom deleted file mode 100644 index 05013f198..000000000 --- a/lib/ant/LICENSE.dom +++ /dev/null @@ -1,71 +0,0 @@ -This license came from: -http://www.w3.org/Consortium/Legal/copyright-software-19980720 - - -W3C® SOFTWARE NOTICE AND LICENSE -Copyright © 1994-2001 World -Wide Web Consortium, <a href="http://www.w3.org/">World -Wide Web Consortium</a>, (<a href= -"http://www.lcs.mit.edu/">Massachusetts Institute of -Technology</a>, <a href="http://www.inria.fr/">Institut National de -Recherche en Informatique et en Automatique</a>, <a href= -"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved. -http://www.w3.org/Consortium/Legal/ - -This W3C work (including software, documents, or other related -items) is being provided by the copyright holders under the -following license. By obtaining, using and/or copying this work, -you (the licensee) agree that you have read, understood, and will -comply with the following terms and conditions: -Permission to use, copy, modify, and distribute this software -and its documentation, with or without modification, for any -purpose and without fee or royalty is hereby granted, provided that -you include the following on ALL copies of the software and -documentation or portions thereof, including modifications, that -you make: - -The full text of this NOTICE in a location viewable to users of -the redistributed or derivative work. - -Any pre-existing intellectual property disclaimers, notices, or -terms and conditions. If none exist, a short notice of the -following form (hypertext is preferred, text is permitted) should -be used within the body of any redistributed or derivative code: -"Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of -Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. -http://www.w3.org/Consortium/Legal/" - -Notice of any changes or modifications to the W3C files, -including the date changes were made. (We recommend you provide -URIs to the location from which the code is derived.) - -THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND -COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF -MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE -USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD -PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. -COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, -SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE -SOFTWARE OR DOCUMENTATION. - -The name and trademarks of copyright holders may NOT be used in -advertising or publicity pertaining to the software without -specific, written prior permission. Title to copyright in this -software and any associated documentation will at all times remain -with copyright holders. -____________________________________ -This formulation of W3C's notice and license became active on -August 14 1998 so as to improve compatibility with GPL. This -version ensures that W3C software licensing terms are no more -restrictive than GPL and consequently W3C software may be -distributed in GPL packages. See the older formulation for the -policy prior to this date. Please see our Copyright FAQ for common -questions about using materials from -our site, including specific terms and conditions for packages like -libwww, Amaya, and Jigsaw. -Other questions about this notice can be -directed to site-policy@w3.org. - -webmaster diff --git a/lib/ant/LICENSE.sax b/lib/ant/LICENSE.sax deleted file mode 100644 index 006c924b2..000000000 --- a/lib/ant/LICENSE.sax +++ /dev/null @@ -1,20 +0,0 @@ -This license came from: http://www.megginson.com/SAX/copying.html - However please note future versions of SAX may be covered - under http://saxproject.org/?selected=pd - - -This page is now out of date -- see the new SAX site at -http://www.saxproject.org/ for more up-to-date -releases and other information. Please change your bookmarks. - - -SAX2 is Free! - -I hereby abandon any property rights to SAX 2.0 (the Simple API for -XML), and release all of the SAX 2.0 source code, compiled code, and -documentation contained in this distribution into the Public Domain. -SAX comes with NO WARRANTY or guarantee of fitness for any -purpose. - -David Megginson, david@megginson.com -2000-05-05
\ No newline at end of file diff --git a/lib/ant/LICENSE.xerces b/lib/ant/LICENSE.xerces deleted file mode 100644 index 70cb54a0d..000000000 --- a/lib/ant/LICENSE.xerces +++ /dev/null @@ -1,56 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * - * Copyright (c) 1999-2002 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Xerces" and "Apache Software Foundation" must - * not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", - * nor may "Apache" appear in their name, without prior written - * permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation and was - * originally based on software copyright (c) 1999, International - * Business Machines, Inc., http://www.ibm.com. For more - * information on the Apache Software Foundation, please see - * <http://www.apache.org/>. - */ diff --git a/lib/ant/NOTICE b/lib/ant/NOTICE deleted file mode 100644 index 1fb6dde47..000000000 --- a/lib/ant/NOTICE +++ /dev/null @@ -1,15 +0,0 @@ - ========================================================================= - == NOTICE file corresponding to the section 4 d of == - == the Apache License, Version 2.0, == - == in this case for the Apache Ant distribution. == - ========================================================================= - - This product includes software developed by - The Apache Software Foundation (http://www.apache.org/). - - This product includes also software developed by : - - the W3C consortium (http://www.w3c.org) , - - the SAX project (http://www.saxproject.org) - - Please read the different LICENSE files present in the root directory of - this distribution. diff --git a/lib/ant/README b/lib/ant/README deleted file mode 100644 index 263c111d5..000000000 --- a/lib/ant/README +++ /dev/null @@ -1,70 +0,0 @@ - - A N T - - - What is it? - ----------- - - Ant is a Java based build tool. In theory it is kind of like "make" - without makes wrinkles and with the full portability of pure java code. - - - Why? - ---- - - Why another build tool when there is already make, gnumake, nmake, jam, - and others? Because all of those tools have limitations that its original - author couldn't live with when developing software across multiple platforms. - - Make-like tools are inherently shell based. They evaluate a set of - dependencies and then execute commands not unlike what you would issue on a - shell. This means that you can easily extend these tools by using or writing - any program for the OS that you are working on. However, this also means that - you limit yourself to the OS, or at least the OS type such as Unix, that you - are working on. - - Makefiles are inherently evil as well. Anybody who has worked on them for any - time has run into the dreaded tab problem. "Is my command not executing - because I have a space in front of my tab!!!" said the original author of Ant - way too many times. Tools like Jam took care of this to a great degree, but - still use yet another format to use and remember. - - Ant is different. Instead a model where it is extended with shell based - commands, it is extended using Java classes. Instead of writing shell - commands, the configuration files are XML based calling out a target tree - where various tasks get executed. Each task is run by an object which - implements a particular Task interface. - - Granted, this removes some of the expressive power that is inherent by being - able to construct a shell command such as `find . -name foo -exec rm {}` but - it gives you the ability to be cross platform. To work anywhere and - everywhere. And hey, if you really need to execute a shell command, Ant has - an exec rule that allows different commands to be executed based on the OS - that it is executing on. - - The Latest Version - ------------------ - - Details of the latest version can be found on the Apache Ant - Project web site <http://ant.apache.org/>. - - - Documentation - ------------- - - Documentation is available in HTML format, in the docs/ directory. - For information about building and installing Ant, see - docs/manual/index.html - - - Licensing - --------- - - This software is licensed under the terms you may find in the file - named "LICENSE" in this directory. - - - Thanks for using Ant. - - The Apache Ant Project - <http://ant.apache.org/> diff --git a/lib/ant/TODO b/lib/ant/TODO deleted file mode 100644 index 8bbbc3d6a..000000000 --- a/lib/ant/TODO +++ /dev/null @@ -1,9 +0,0 @@ -Things that are scheduled for Ant 1.6.2. Once this list is empty, we -can roll the first beta. - -Please go ahead and assign things that are not already assigned to -anybody else (assignments look like [Stefan]) to yourself - and please -remove items from this list once they are complete. - - - diff --git a/lib/ant/WHATSNEW b/lib/ant/WHATSNEW deleted file mode 100644 index 1d8d85e3f..000000000 --- a/lib/ant/WHATSNEW +++ /dev/null @@ -1,2901 +0,0 @@ -Changes from Ant 1.6.2 to Ant 1.6.3 -=================================== - -Changes that could break older environments: --------------------------------------------- - -* The subant task used the canonical version of a file path. This - has been changed to use the absolute path. Bugzilla 30438. - -* Tar now writes two EOF blocks rather than one. - Bugzilla report 28776 - -* The Reference object now has a project field which it uses in preference - to the project passed in. This allows composite references to be - handled to nested projects. - Bugzilla report 25777 - -* <junit> with filtertrace="true" will now also swallow lines for the - sun.reflect package. If you need to see them in your stack trace, - you must set filtertrace to false. - Bugzilla Report 22758 - -* The jikes compiler adapter now supports -bootclasspath, -extdirs and - -sourcepath and also uses the same logic for debug flags as javac. - This means, the jikes compiler adapter now requires Jikes 1.15 or later. - Bugzilla Reports 25868, 26404 and 32609. - -* Targets with identical name work in imported project. Bugzilla Report 34566. - -* The gcj compiler adapter used to include the Java runtime classes - even if includeJavaRuntime was set to false, unless the - bootclasspath has been specified as well. It will now always adhere - to includeJavaRuntime, you may need to set it to true explicitly now - if you relied on the old behavior. - -Other changes: --------------- - -* <javadoc> can now take an attribute 'executable'. Bugzilla report 30606. - -* New attribute ignorecontents for <different> selector - -* Javadoc fixes for Location, Project, and RuntimeConfigurable - Bugzilla 30160. - -* Enable to choose the regexp implementation without system property. - Bugzilla Report 15390. - -* Expose objects and methods in IntrospectionHelper. Bugzilla Report 30794. - -* Allow file attribute of <move> to rename a directory. - Bugzilla Report 22863. - -* Add xmlcatalog nested element to XmlProperty. Bugzilla report 27053. - -* New attribute alwayslog for <redirector> type. - -* Added <target> nested elements to <ant> and <antcall> to allow - specification of multiple sub-build targets, which are executed - with a single dependency analysis. - -* Refactored Target invocation into org.apache.tools.ant.Executor - implementations. Bugzilla Reports 21421, 29248. - -* <rmic> now also supports Kaffe's rmic version shipping with Kaffe - 1.1.2 and above. - -* added casesensitive attribute to <globmapper> and <regexpmapper> - Bugzilla report 16686 - -* added handledirsep attribute to <globmapper> and <regexpmapper> - Bugzilla report 32487 - -* added a new mapper <filtermapper> - -* When a BuildListener tried to access System.err or System.out, Ant - would have thrown an exception - this has been changed. Ant now - silently ignores the message. BuildListeners still should avoid - accessing either stream. - -* Added a comment attribute to the zip task. - Bugzilla report 22793. - -* Overloaded FileUtils.createNewFile with a boolean mkdirs attribute - to create nonexistent parent directories. - -* <apply> has a new "force" attribute that, when true, disables - checking of target files. - -* Made the dest attribute of the apply task optional; mapped target - filenames will be interpreted as absolute pathnames when dest is omitted. - -* Changed default tempdir for <javac> from user.dir to java.io.tmpdir. - -* Added searchpath attribute to <exec> for searching path variable(s) - when resolveexecutable = true. - -* Added revision and userid attributes to <pvcs> documentation. - -* Added support to the touch task for a mkdirs attribute to create - nonexistent parent directories before touching new files. - -* Added support to the touch task for a pattern attribute to allow - alternate datetime formats. - -* Added support to the touch task to map touched files using a nested - mapper element. - -* Added support to the touch task for a verbose attribute to suppress - logging of new file creation. - -* bad link in docs to the enhancement page in bugzilla. - Bugzilla report 33252. - -* Added length task to get strings' and files' lengths. - -* <native2ascii> and <javah> now also support Kaffe's versions. - -* Recursive token expansion in a filterset can now be disabled by - setting its recurse attribute to false. - -* Pathconvert no longer requires that one of (targetos|pathsep|dirsep) - be set; platform defaults are used when this is the case. - -* Added preservelastmodified attribute to fixcrlf task. Bugzilla 25770. - -* Added isfileselected condition. - -* Added verbose="true|false" attribute to <subant>. When verbose is enabled, - the directory name is logged on entry and exit of the sub-build. Bugzilla 33787. - -* Added -nouserlib option to allow running ant without automatically loading - up ${user.home}/.lib/ant. This is useful when compiling ant, and antlibs. - Modified the build.sh and build.bat to use the option. - -* Added -noclasspath option to allow running ant WITHOUT using CLASSPATH env - variable. Modified ant.bat to do this so that %CLASSPATH% is not looked at. - -* Add else attribute to the condition task, which specifies an - optional alternate value to set the property to if the nested - condition evaluates to false. Bugzilla report 33074. - -* Ant generated jar files should now be detected as jar files by - Solaris. Bugzilla Report 32649. - -* Added two tutorials - - beginner: introduction into Ant - - task developers: using path, fileset etc - -* <rpm> has new attributes failonerror and quiet. - -Fixed bugs: ------------ - -* Do not pass on ThreadDeath when halting <java fork="false">. Bugzilla - 32941. - -* Killing a thread running <java fork="true"> (e.g. from an IDE) would - not stop the forked process. Bugzilla 31928. - -* Programs run with <java fork="true"> can now accept standard input - from the Ant console. (Programs run with <java fork="false"> could - already do so.) Bugzilla 24918. - -* AbstractCvsTask prematurely closed its outputStream and errorStream. - Bugzilla 30097. - -* Impossible to use implicit classpath for <taskdef> - when Ant core loader != Java application loader and - Path.systemClassPath taken from ${java.class.path} Bugzilla 30161. - -* MacroInstance did not clean up nested elements correctly in the execute - method, causing multiple use of the same macro instance with nested - elements to fail. - -* checksum fileext property doc wrong. Bugzilla 30787. - -* FTP task, getTimeDiff method was returning wrong value. Bugzilla 30595. - -* Zip task was not zipping when only empty directories were found. - Bugzilla 30365. - -* Jar task was not including manifest files when duplicate="preserve" was - chosen. Bugzilla 32802. - -* Classpath was treated in the same way as -lib options. Bugzilla 28046. - -* Manual page for cvsversion contained incorrect attributes and did not - say since 1.6.1. Bugzilla 31408. - -* Typo in definition of <cvsversion> task causing it not to be defined. - Bugzilla 31403. - -* Execution of top level tasks in imported files get delayed by targets. - Bugzilla report 31487. - -* ExecTask executes checkConfiguration() even though os does not match. - Bugzilla report 31805. - -* Concat task instance could not be run twice. - Bugzilla report 31814. - -* NPE using XmlLogger and antlib. - Bugzilla report 31840. - -* Properties.propertyNames() should be used instead of .keys(). - Bugzilla report 27261. - -* Target location is not set for default target. - Bugzilla report 32267. - -* Incorrect classloader parent in junittask when using with - ant-junit.jar and junit.jar not in the project classloader. Bugzilla - report 28474. - -* getResources() on the classloader returned by ClasspathUtils would - see each resource twice - if the resource is in the project - classpath and if the classloader is requested with a null path. - -* XMLValidate used URL#getFile rather than the ant method FileUtils#fromURI - Bugzilla report 32508 - -* fixed Regexp-Mapper docs which gave outdated instructions (optional.jar) - Bugzilla report 28584 - -* <scp> using <fileset> didn't work with OpenSSH 3.9 and later. - Bugzilla report 31939 - -* <setproxy> failed to set user/password on some JDKs. - Bugzilla report 32667 - -* untar would go into infinite loop for some invalid tar files. - Bugzilla report 29877 - -* forked <javac> won't pass -source to a JDK 1.1 or 1.2 javac anymore. - Bugzilla report 32948 - -* propertyset references did not handle nested propertyset references. - -* oata.types.Description.getDescription(Project) would throw a - NullPointerException when the "ant.targets" reference was unset. - -* Wrapper scripts did not detect WINNT value of dynamic OS environment - variable when logged into workstations using Novell authentication. - Bugzilla Report 30366. - -* DependScanner.getResource() always returned nonexistent resources, - even when the resource actually existed. Bugzilla Report 30558. - -* <apply> was broken with classfilesets. Bugzilla Report 30567. - -* <available> returned false positives when checking a file - passed in with the current basedir leading twice: - e.g. ${basedir}${file.separator}${basedir}${file.separator}foo . - -* The first file open that took place when using input files with the - <exec>, <apply>, or <java> tasks was always logged to System.out - instead of to the managing Task. - -* <telnet> and <rexec> would try to disconnect from servers they never - connetced to, potentially leading to exceptions in commons-net. - Bugzilla Report 33618. - -* <zip> would drop files matched by defaultexcludes during updates. - Bugzilla Report 33412. - -* <zip> couldn't store files with size between 2GB and 4GB (the - upper limit set by the ZIP format itself). Bugzilla Report 33310. - -* NPE when when <presetdef> tries to configure a task that - cannot be instantiated. Bugzilla Report 33689. - -* <javac debug="false"> created an invalid command line when running - the Symantec Java compiler. - -* Get with usetimestamp did not work on Java 1.2. - -* Get with usetimestamp did not work when local timestamp roughly >= now. - -* The framed JUnit report now handles multiple reports for the same - testcase properly. Bugzilla Report 32745. - -* <cab> didn't work for files with spaces in their names on Windows. - Bugzilla Report 17182. - -* The VAJ tasks could fail if the project name contained characters - that need to get URL encoded. Bugzilla Report 23322. - -* The FTP task could crash with an ArrayIndexOutOfBoundsException - Bugzilla Report 28797 - -* Improved handling of paths on cygwin - Bugzilla Report 31245 - -* TarInputStream#read() wasn't implemented correctly. Bugzilla Report - 34097. - -* <xslt> failed to process file-hierarchies of more than one level if - scanincludeddirectories was true. Bugzilla Report 24866. - -* forkmode="perBatch" or "once" would ignore extension attributes that - had been specified for <formatter>s. Bugzilla Report 32973. - -* minor performance update of Locator.fromUri. Bugzilla Report 34529. - -* The refid attribute of the I/O redirector was not functional. - -* SQL task would try access result sets of statements that didn't - return any, causing problems with Informix IDS 9.2 and IBM DB2 8.1 - FixPak 6 (or later). Bugzilla Reports 27162 and 29954. - -* make sure that Zip and its derivates call the createEmptyZip method when - there are no resources to zip/jar/... - -* ant.bat was missing runAntNoClasspath label for goto. - Bugzilla 34510. - - -Changes from Ant 1.6.1 to Ant 1.6.2 -=================================== - -Changes that could break older environments: --------------------------------------------- - -* The import task used the canonical version of a file path. This - has been changed to use the absolute path. Bugzilla 28505. - -* ant-xalan2.jar has been removed since the only class contained in it - didn't depend on Xalan-J 2 at all. Its sole dependency has always - been TraX and so it has been merged into ant-trax.jar. - -* All exceptions thrown by tasks are now wrapped in a buildexception - giving the location in the buildfile of the task. - -* Nested elements for namespaced tasks and types may belong to the - Ant default namespace as well as the task's or type's namespace. - -* <junitreport> will very likely no longer work with Xalan-J 1. - - Note that Xalan-J 1 has been deprecated for a very long time and we - highly recommend that you upgrade. - - If you really need to continue using Xalan-J 1, please copy the - junit-frames-xalan1.xsl from the distribution's etc directory as - junit-frames.xsl into a new directory and use the task's styledir - attribute to point to. This is the last version of the XSLT - stylesheet that is expected to be compatible with Xalan-J 1. - -* <csc>'s extraoptions can now contain multiple arguments. - Bugzilla Report 23599. - -* <macrodef> with default values set by properties would be - seen as new definitions when called twice with different properties. - This was confusing so the definitions are now treated as similar. - Bugzilla Report 31215. - -* <javadoc> has a new attribute "includenosourcepackages" that can be - used to document packages that don't hold source files but a - package.html file. Bugzilla Report 25339. - -Fixed bugs: ------------ - -* eliminate memory leak in AntClassLoader. Bugzilla Report 8689. - -* subant haltonfailure=false did not catch all failures. Bugzilla Report 27007. - -* macrodef @@ escaping was broken. Bugzilla Report 27069. - -* SQL task did not work with Informix IDS 9.2. Bugzilla Report 27162. - -* MacroDef did not allow attributes named 'description'. Bugzilla Report 27175. - -* Throw build exception if name attribute missing from patternset#NameEntry. - Bugzilla Report 25982. - -* Throw build exception if target repeated in build file, but allow targets - to be repeated in imported files. - -* <apply> didn't compare timestamps of source and targetfiles when - using a nested <filelist>. Bugzilla Report 26985. - -* tagdiff.xml was broken in ant 1.6.1. Bugzilla Report 27057. - -* if the basedir contained .. or . dirs, and the build file name contained - .. or ., the basedir was set incorrectly. Bugzilla Report 26765. - -* regression from ant 1.5, exec task outputted two redundant trailing newlines. - Bugzilla Report 27546. - -* NPE when running commons listener. Bugzilla Report 27373. - -* <java> swallowed the stack trace of exceptions thrown by the - executed program if run in the same VM. - -* -projecthelp swallowed (configuration) errors silently. - Bugzilla report 27732. - -* filterset used by filtertask doesn't respect loglevel. Bugzilla Report 27568. - -* wrong compare used in ProjectComponent for logging. Bugzilla Report 28070. - -* failOnAny attribute for <parallel> was broken. Bugzilla Report 28122. - -* If <javac> uses gcj and any of the nested <compilerarg>s implies - compilation to native code (like -o or --main), Ant will not pass - the -C switch to gcj. This means you can now compile to native code - with gcj which has been impossible in Ant < 1.6.2. - -* <import optional="false"> and <import optional="true"> - behaved identically. - -* <xslt> now sets the context classloader if you've specified a nested - <classpath>. Bugzilla Report 24802. - -* <zip> and friends would delete the original file when trying to update - a read-only archive. Bugzilla Report 28419. - -* <junit> and <assertions> are working together. Bugzilla report 27218 - -* AntClassLoader#getResource could return invalid URLs. Bugzilla - Report 28060. - -* Ant failed to locate tools.jar if the jre directory name wasn't all - lowercase. Bugzilla Report 25798. - -* Redirector exhibited inconsistent behavior with regard to split - output. When sent to file only, files would be created in all - cases; when split file-property, files were only created if - writes were performed. - -* fixed case handling of scriptdef attributes and elements. - -* UNC pathnames did not work for ANT_HOME or -lib locations on Windows. - Bugzilla report 27922. - -* replacestring tokenfilter only replaced the first occurrence. - -* AntLikeTasksAtTopLevelTest failed on cygwin. - -* I/O-intensive processes hung when executed via <exec spawn="true">. - Bugzilla reports 23893/26852. - -* JDependTask did not close an output file. Bugzilla Report 28557. - -* Using <macrodef> could break XmlLogger. Bugzilla Report 28993. - -* <genkey> no longer requires keytool to be in your PATH. Bugzilla - Report 29382. - -* <symlink> could create cyclic links. Bugzilla Report 25181. - -* <zip whenempty="skip"> didn't work in a common situation. Bugzilla - Report 22865. - -* <scp> now properly handles remote files and directories with spaces - in their names. Bugzilla Report 26097. - -* <scp> now has (local|remote)tofile attributes to rename files on the - fly. Bugzilla Report 26758. - -* <telnet> and <rexec> didn't close the session. Bugzilla Report 25935. - -* <subant> and XmlLogger didn't play nicley together. - -Other changes: --------------- -* doc fix concerning the dependencies of the ftp task - Bugzilla Report 29334. - -* <xmlvalidate> has now a property nested element, - allowing to set string properties for the parser - Bugzilla Report 23395. - -* Docs fixes for xmlvalidate.html, javadoc.html, starteam. - Bugzilla Reports 27092, 27284, 27554. - -* <pathconvert> now accepts nested <mapper>s. Bugzilla Report 26364. - -* Shipped XML parser is now Xerces-J 2.6.2. - -* Added nested file element to filelist. - -* spelling fixes, occurred. Bugzilla Report 27282. - -* add uid and gid to tarfileset. Bugzilla Report 19120. - -* <scp> has a verbose attribute to get some feedback during the - transfer and new [local|remote][File|Todir] alternatives to file and - todir that explicitly state the direction of the transfer. - -* The OS/2 wrapper scripts have been adapted to use the new launcher. - Bugzilla Report 28226. - -* <sshexec> now also captures stderr output. Bugzilla Report 28349. - -* <xslt> now supports a nested <mapper>. Bugzilla Report 11249. - -* <touch> has filelist support. - -* <nice> task lets you set the priority of the current thread; non-forking - <java> code will inherit this priority in their main thread. - -* New attribute "negate" on <propertyset> to invert selection criteria. - -* Target now supports a Location member. Bugzilla Report 28599. - -* New "pattern" attribute for <date> selector. - -* <junit> has a new forkmode attribute that controls the number of - Java VMs that get created when forking tests. This allows you to - run all tests in a single forked JVM reducing the overhead of VM - creation a lot. Bugzilla Report 24697. - -* <jar> can now optionally create an index for jars different than the - one it currently builds as well. See the new <indexjars> element - for details. Bugzilla Report 14255. - -* Permit building under JDK 1.5. Bugzilla Report 28996. - -* minor Javadoc changes. Bugzilla Report 28998. - -* Misc. corrections in SignJar.java. Bugzilla Report 28999. - -* Remove redundant <hr> from javah.html. Bugzilla Report 28995. - -* Ignore built distributions. Bugzilla Report 28997. - -* A new roundup attribute on <zip> and related task can be used to - control whether the file modification times inside the archive will - be rounded up or down (since zips only store modification times with - a granularity of two seconds). The default remains to round up. - Bugzilla Report 17934. - -* A binary option has been added to <concat>. Bugzilla Report 26312. - -* Added DynamicConfiguratorNS, an namespace aware version of - DynamicConfigurator. Bugzilla Report 28436. - -* Add implicit nested element to <macrodef>. Bugzilla Report 25633. - -* Add deleteonexit attribute to <delete>. - -* Added Target.getIf/Unless(). Bugzilla Report 29320. - -* <fail> has a status attribute that can be used to pass an exit - status back to the command line. - -* <fail> accepts a nested <condition>. - -* <loadproperties> supports loading from a resource. - Bugzilla Report 28340. - -* Nested file mappers and a container mapper implementation have been - introduced. Additionally, the <mapper> element now accepts "defined" - nested FileNameMapper implementations directly, allowing a usage - comparable to those of <condition>, <filter>, and <selector>. - -* New <redirector> type introduced to provide extreme I/O flexibility. - Initial support for <exec>, <apply>, and <java> tasks. - -* <apply> has a new ignoremissing attribute (default true for BC) - which will allow nonexistent files specified via <filelist>s to - be passed to the executable. Bugzilla Report 29585. - -* <junitreport> now also works with Xalan XSLTC and/or JDK 1.5. - Bugzilla Report 27541. - -* <jspc> doesn't work properly with Tomcat 5.x. We've implemented a - work-around but don't intend to support future changes in Tomcat - 5.x. Please use the jspc task that ships with Tomcat instead of - Ant's. - -Changes from Ant 1.6.0 to Ant 1.6.1 -============================================= - -Changes that could break older environments: --------------------------------------------- - -* License is now Apache Software License 2.0 - see http://www.apache.org/licenses/ for more information - -Fixed bugs: ------------ -* Remove a recursive template call in the junit xsls that could trigger a stack - overflow. It now uses Xalan extensions to call a Java class directly. - Bugzilla Report 19301 - -* Fix spurious infinite loop detection for filters (introduced in ant 1.6.0). - Bugzilla Report 23154. - -* Fix handling of default ant namespace for nested elements. - -* Fix jboss element of ejb task (introduced in ant 1.6.0). - -* <whichresource> failed to load classes correctly. - -* Ant could fail to start with a NullPointerException if - ANT_HOME/lib/ant-launcher.jar was part of the system CLASSPATH. - -* presetdef'ed types did not work with the ant-type attribute - -* fixed case handling of macrodef attributes and elements. Bugzilla - Reports 25687 and 26225. - -* <java> ignored the append attribute, Bugzilla Report 26137. - -* The gcj compiler adapter for <javac> failed if the destination - directory didn't exist. Bugzilla Report 25856. - -* Ant now fails with a more useful message if a new process will be - forked in a directory and that directory doesn't exist. - -* <splash> used to break the build on non-GUI environments. Bugzilla - report 11482. - -* Ant 1.6.0 cannot run build scripts in directories with non-ASCII names. - Bugzilla Report 26642. - -Other changes: --------------- -* Shipped XML parser is now Xerces-J 2.6.1 - -* Translate task logs a debug message specifying the number of files - that it processed. Bugzilla Report 13938. - -* <fixcrlf> has a new attribute - fixlast. Bugzilla Report 23262. - -* <p4submit> has 2 new attributes, needsresolveproperty and changeproperty. - Bugzilla Report 25711. - -* add description attributes to macrodef attributes and elements. - Bugzilla Report 24711. - -* Extending ClearCase Tasks : - - Added an extra option to 'failonerr' to each ClearCase task/command. - - Extended the functionality of cccheckout. It can check (notco) to see if - the desired element is already checked out to the current view. Thus it - won't attempt to check it out again. - - Added three new ClearCase commands: ccmkattr, ccmkdir, ccmkelem - Bugzilla Report 26253. - -* New condition <typefound> that can be used to probe for the declaration - and implementation of a task, type, preset, macro, scriptdef, whatever. - As it tests for the implementation, it can be used to check for optional - tasks being available. - -* added nested text support to <macrodef> - -* added initial support for Java 1.5. Java 1.5 is now correctly - detected by Ant and treated just like Java 1.4. You can now specify - source="1.5" in the <javac> task. - -* created new task <cvsversion> - -* added support for branch logging via the tag attribute in <cvschangelog> - Bugzilla Report 13510. - -* added support the groovy language in the script and scriptdef tasks - -Changes from Ant 1.5.4 to Ant 1.6.0 -=================================== - -Changes that could break older environments: --------------------------------------------- - -* This version of Ant can not be built with JDK 1.1 and requires at - least Java 1.2 at runtime as well. Compiling for a 1.1 target is - still supported. - -* Targets cannot have the empty string as their name any longer. - -* ant.jar's manifest does no longer include a Class-Path entry, so it - is no longer possible to run Ant via "java -jar ant.jar" without - manually altering the CLASSPATH. Instead of that a file - ant-bootstrap.jar is included in the etc directory of the binary - distribution, copy this to the lib directory and use - "java -jar ant-bootstrap.jar" instead if you want to run Ant without - the wrapper script (not recommended). - -* The <script> task now requires Apache BSF instead of the older IBM - version. See <http://jakarta.apache.org/bsf/> - -* <xmlproperty> will no longer fail if the file to be loaded doesn't exist. - -* XML namespaces are now enabled in the XML parser, meaning XML namespace - declarations no longer cause errors. However task names containing colons - will cause errors unless there is a corresponding namespace uri. - -* The <ftp> and <telnet> tasks now require Jakarta Commons Net instead - of the older ORO Netcomponents version. See - <http://jakarta.apache.org/commons/net/index.html>. - -* <input> will no longer prompt the user and wait for input if the - addproperty attribute is set to a property that has already been - defined in the project. If you rely on the task waiting for input, - don't use the addproperty attribute. - -* The Class-Path attribute in manifests will no longer merge the - entries of all manifests found, but will be treated like all other - manifest attributes - the most recent attribute(s) will be used. - -* New Launch mechanism implemented. This moves some functionality from - the batch files / shell scripts into Java. This removes environment - limitations, for command issues, directory depth issues on Windows. Also - allows a per-user library location to be used if the main Ant install - is locked down. - -* The Entry nested element of PropertyFile will not any more have its value - attribute (actually increment) overwritten with the new value of the entry - after execution. - -* Output stored from a <java> or <exec> task is now exactly as generated. No - conversion to platform end-of-line characters is performed. - -* <translate> will now preserve line endings. - -* <ftp> followsymlinks="false" in nested fileset definitions is explicitly - required in order to exclude remote symbolic links (when doing a get, chmod, - delete, rmdir). - -* The values of the Copy#fileCopyMap variable has changed from String to - String[]. (In java 1.5 terms it was Hashtable<String, String> and - is now Hashtable<String, String[]>). This will affect third party code - that extend Copy and override Copy#doFileOperations. - -* <loadproperties> didn't expand properties while <property file="..."/> - does, so they were not equivalent. This has been fixed, which means - that propetries may get expanded twice if you use an - <expandproperties> filterreader. Bugzilla Report 17782. - -* User defined tasks and typedefs are now handled internally in the - same way as predefined tasks and typedefs. Also tasks and typedefs - are resolved at a later stage. This causes some - differences especially for user defined task containers. - -* <checksum> log message "Calculating checksum ..." has been degraded - from INFO to VERBOSE. - -Fixed bugs: ------------ -* Filter readers were not handling line endings properly. Bugzilla - Report 18476. - -* Filtersets were also not handling line endings properly. - -* Expand tasks did not behave as expected with PatternSets. - -* <property environment=... /> now works on OS/400. - -* <cab> could hang listcab on large <fileset>s. - -* The starteam stcheckout, stcheckin tasks now correctly compute - status of files against whatever local tree they are run against - and, optionally, will not process a file if it is current. - Previously you had to process everything unless you ran against the - default folder which wasn't the normal use-case for ant-starteam. - The stlist task now similarly displays that status correctly making - it a more generally useful tool. - -* entity includes would cause exceptions if path names included spaces. - -* addConfiguredXXX would not work for TaskAdapter wrapped tasks - -* Fix <ilasm> outputfile testing so that the output file does not need - to exist beforehand. - -* Ant will now exit with a return code of 1 if it encounters problems - with the command line arguments. - -* ClassLoader creation changes to use a factory method in Project. A new - class AntClassLoader2 implemented for 1.2+ specific features including - Package information and addition of classes specified in the Class-Path - element of a Jar's manifest. - -* It is now possible in <exec> to resolve the executable to a project - basedir or execution dir relative executable. The resolveExecutable - must be used to pick up such executables. - -* splash screen wouldn't disappear when build was finished. - -* <exec> output and error streams can now be redirected independently - to either a property or a file (or both) - -* TarEntry's File-arg constructor would fail with a - StringIndexOutOfBoundsException on all OSes where os.name is shorter - than seven characters. Bugzilla Report 18105. - -* <copy> and <move>'s failonerror didn't apply to filesets pointing to - non-existant directories. Bugzilla Report 18414. - -* The <stripjavacomments> filter sometimes removed parts of string - constants. Bugzilla Report 17441. - -* <antlr> will now recompile your grammar if the supergrammar has - changed. Bugzilla Report 12691. - -* <property env> will now work on Unices with /bin/env instead of - /usr/bin/env. Bugzilla Report 17642. - -* <jar index="on"> could include multiple index lists. Bugzilla 10262. - -* The index created by <jar> didn't conform to the spec as it didn't - include the top-level entries. Bugzilla Report 16972. - -* <tar> and <zip> didn't honor the defaultexcludes attribute for the - implicit fileset. Bugzilla Report 18637. - -* The <replacetokens> filter would throw an exception if the token's - value was an empty string. Bugzilla Report 18625. - -* Perforce tasks relying on output from the server such as <p4change> - and <p4label> were hanging. Bugzilla Reports 18129 and 18956. - -* Improve exception and logging behavior of Perforce tasks. - Bugzilla report 18154. - -* build.sh install had a problem on cygwin (with REALANTHOME). - Bugzilla Report 17257 - -* <replaceregexp> didn't work for multi-byte encodings if byline was false. - Bugzilla Report 19187. - -* <replaceregexp> was altering unnecessarily the timestamp of the directories - containing the files to process - Bugzilla Report 22541. - -* file names that include spaces need to be quoted inside the @argfile - argument using forked <javac> and (all JDKS). Bugzilla Report 10499. - NB : a first correction was only introducing quotes for JDK 1.4 - It has been changed to quote for all external compilers when paths - contain spaces. - Also the backslashes need to be converted to forward slashes - Bugzilla Report 17683. - -* Setting filesonly to true in <zip> and related tasks would cause the - archives to be always recreated. Bugzilla Report 19449. - -* file names that include spaces need to be quoted inside the @argfile - argument using <javadoc> and JDK 1.4. Bugzilla Report 16871. - -* <junit> didn't work with custom formatters that were only available - on the user specified classpath when a timeout occured. Bugzilla - Report 19953. - -* <different> selector : make ignoreFileTimes effectively default to true - and fix a bug in the comparison of timestamps. Bugzilla Report 20205. - -* <different> selector can now be nested directly under a fileset - Bugzilla Report 20220. - -* <cvstagdiff> had a problem with "dd-MM-yy hh:mm:ss" formats - Bugzilla Report 15995. - -* <cvstagdiff> cvsroot and package attributes added to the root - element tagdiff of the xml output - Bugzilla Report 16081. - -* <cvstagdiff> had a problem with aliased modules and with requests for multiple modules - Bugzilla Reports 21373 and 22877. - -* <cvstagdiff> could not parse properly the revision number of new files with CVS 1.11.9 or higher - Bugzilla Report 24406. - -* <fixcrlf> make fixcrlf create its temporary files in the default directory - of FileUtils#createTempFile instead of the destination dir of fixcrlf. - Bugzilla Report 20870. - -* <ejbjar> implementation for Borland. - Prevent the task from being blocked by error messages coming from java2iiop. - Bugzilla Report 19385. - -* <unzip>'s and <untar>'s nested patternsets didn't work as documented - when the pattern ended in a slash or backslash. Bugzilla Report 20969. - -* <fixcrlf> will now create the parent directories for the destination - files if necessary. Bugzilla Report 20840. - -* <xmlproperty> now handles CDATA sections. BugZilla Report 17195 - -* <translate> now translate tokens that are placed close together. - Bugzilla Report 17297 - -* Nested websphere element for ejbjar does not support spaces in file name. - Bugzilla Report 21298 - -* Don't multiply Class-Path attributes when updating jars. Bugzilla - Report 21170. - -* Do not overwrite the value (increment) attribute of PropertyFile nested Entry element. - Bugzilla Report 21505. - -* Prevent sysproperties with no key or no value from being added in <junit>. - Bugzilla Report 21684. - -* Allow references to be properly inherited via antcall - Bugzilla Report 21724. - -* ftp chmod failed when the remote system was UNIX and local system Windows - Bugzilla Report 21865. - -* ftp put with chmod failed when the remote system was UNIX and local system Windows - Bugzilla Report 23143. - -* ftp did not set the ascii mode explicity, causing problems with ftp servers - having binary as default - -* ftp was not able to download files when they were pointed to by symbolic links - Bugzilla Report 14063. - -* ftp is able to download also directories pointed to by symbolic links. - -* replace would change \r\n into \r\r\n under Windows. - -* junitreport with frames did not display a link for classes without a package - or in the top package. - Bugzilla Report 21915. - -* Project.toBoolean(String) now handles null as argument and does not throw a - NullPointerException any more. - -* The socket condition will now close the socket created to test. - Bugzilla Report 23040. - -* <junit includeantruntime="true" fork="true"> replaced the CLASSPATH instead - of adding to it. Bugzilla Report 14971. - -* <splash> could fail on JVMs that use null to indicate the system classloader. - Bugzilla Report 23320. - -* <xmlcatalog>s only worked when defined inside of tasks. Bugzilla - Report 20965. - -* <csc> and siblings (<vbc> <jsharpc>) handle large filesets by -automatic use of response files. Bugzilla report #19630 - -Other changes: --------------- - -* Shipped XML parser is now Xerces 2.6.0 - -* All tasks can be used outside of <target>s. Note that some tasks - will not work at all outside of targets as they would cause infinite - loops (<antcall> as well as <ant> and <subant> if they invoke the - current build file). - -* Six new Clearcase tasks added. - -* A new filter reader namely tokenfilter has been added. Bugzilla - Report 18312. - -* A new attribute named skip is added to the TailFilter and - HeadFilter filter readers. - -* The filesetmanifest attribute of <jar> has been reenabled. - -* The start and end tokens for <translate> may now be longer than a - single character. - -* <setproxy> lets you set the username and password for proxies that - want authentication - -* <loadproperties> has a new encoding attribute. - -* <echoproperties> can now create XML output. - -* <echoproperties> has a new srcfile attribute that can make it read - properties files and output them instead of Ant's properties. - -* <filterset> will now resolve filters recursively. - -* <input> has a new attribute that allows you to specify a default value. - -* Added <image> task (requires JAI). - -* <image> task has now proportions attribute in the <scale/> nested element - instead of keepproportions (bringing in more functionality) - -* New condition <isreference> - -* <ftp> now has a preservelastmodified attribute to preserve the - timestamp of a downloaded file. - -* new rmdir action for <ftp> that removes directories from a fileset. - -* <ftp> has attributes timediffauto and timediffmillis to use together - with the newer attribute to tell ant to take into account a time difference - between client and remote side. - Bugzilla Report 19358. - -* <ftp> has been optimized to go directly to the include patterns. - This reduces scanning time under UNIX when followsymlinks="true" - and casesensitive="true" (the default) - Bugzilla Report 20103. - -* The SOS and VSS tasks will no longer unconditionally prepend a $ to - vsspath or projectpath. - -* OS/400 now gets detected by the os condition. - -* <arg> has a new attribute pathref that can be used to reference - previously defined paths. - -* <xmlproperty> has been improved, you can now expand ${properties}, - define ids or paths and use Ant's location magic for filename resolutions - in the XML file. - -* <xmlcatalog> will now support external catalogs according to the - OASIS "Open Catalog" standard - if resolver.jar (newer than version - 1.0) from Apache's xml-commons is in your CLASSPATH. - -* Starteam tasks now have support for revision labels and build labels. - Checkouts now have the option of using repository timestamps, instead - of current. - -* new task <symlink> that creates and maintains symbolic links. - -* new tasks <chown> and <chgrp> which are wrappers of the Unix commands. - -* new task <attrib> to change file attributes on Windows systems. - -* <style> has a new attribute reloadstylesheet to work around a - bug in widespread Xalan versions. - -* <tarfileset> has a new dirmode attribute to specify the permissions - for directories. - -* <fixcrlf>'s eol attribute now also understands "mac", "unix" and "dos". - -* <classfileset> now picks up dependencies of the form MyClass.class. This - works for the code generated by the Sun java compiler. It may not work for - all compilers. - -* a new attribute "globalopts" can be added to all Perforce tasks. - You can put in it all the strings described by p4 help usage. Refer to - the docs for more information. - -* new Perforce tasks <p4integrate> , <p4resolve>, and <p4labelsync> - -* <p4submit> will change the property p4.change if the Perforce server - renumbers the change list. - It will set the property p4.needsresolve if the submit fails, - and the message says that file(s) need to be resolved. - -* <replaceregexp> now has an optional encoding attribute to support - replacing in files that are in a different encoding than the - platform's default. - -* The <exec> task may now have its input redirected from either a file - or a string from the build file. The error output can be separated - to a different file when outut is redirected. standard error may be - logged to the Ant log when redirecting output to a file - -* The <java> task also supports the input redirection and separate - error streams introduced to the <exec> task. In addition, it is now - possible to save the output into a property for use within the build - file as was possible with <exec> in Ant 1.5 - -* The <javadoc> task <tag> subelement has been enhanced to allow files - with tag mappings to be used. - -* New tasks: <scp> supports file transfers, <sshexec> executes a - command over SSH. They require jsch, a BSD licensed SSH library that - can be found at http://www.jcraft.com/jsch/index.html - -* New filterreader <escapeunicode/>. - -* Support for HP's NonStop Kernel (Tandem) OS has been added. - -* <cab>'s basedir attribute is now optional if you specify nested - filesets. Bugzilla Report 18046. - -* New task <sync> that synchronizes two directory trees. - -* <apply> has new forwardslash attribute that can force filenames to - use forward slashes (/) as file separators even on platforms with a - different separator. This is useful if you want to run certain - ported Unix tools. - -* Copy has a new outputencoding attribute that can be used to change - the encoding while copying files. Bugzilla Report 18217. - -* The xml formatter for JUnit will now honor test case names set with - setName. Bugzilla Report 17040. - -* JUnit now has an attribute reloading, which, when set to false, - makes the task reuse the same class loader for a series of tests. - -* <concat> now supports filtering and can check timestamps before - overriding a file. Bugzilla Report 18166. - -* <junit> has a new attribute tempdir that controls the placement of - temporary files. Bugzilla Report 15454. - -* <jdepend> now supports a new nested element <classespath> which is - the same as <sourcespath> but point to compiled classes (the - prefered mode of operation for JDepend > 2.5). Additionally, nested - <exclude> elements can be used to exclude certain packages from - being parsed. Bugzilla Report 17134. - -* The JProbe tasks now also work with JProbe 4.x. Bugzilla Report 14849. - -* <javacc> and <jjtree> will now autodetect JavaCC 3.x and can use it. - -* <sql> has a new attribute to control escape processing. - -* <sql> is able to display properly several resultsets if you are - running a compound sql statement. Bugzilla Report 21594. - -* A new <containsregexp> selector has been added, that selects files - if their content matches a certain regular expression. - -* <antlr>'s debug attribute has been enabled. Bugzilla Report 19051. - -* <mail> has a new attribute charset. Bugzilla Report 15434. - -* <mail> has new attributes user and password for SMTP auth. - maillogger can also use this. - The implementation only works with JavaMail (encoding="MIME"). - Implementation with plain mail remains to do. - Bugzilla Report 5969. - -* <mail> and mailloger support SMTP over TLS/SSL - Bugzilla Report 19180. - -* <mail> the attributes from, replyto ,tolist, cclist, bcclist - can now contain email addresses of the form name <address@xyz.com> - or (name) address@xyz.com - Bugzilla Report 22474. - -* <mail> (version PlainMail) - prevent blank headers from being sent, - make the order of the headers of plain mail messages predictable - Bugzilla Report 22088. - -* <zipfileset> can now be defined in the main body of a project - and referred to with refid="xyz". Bugzilla Report 17007. - -* A wrapper script for OS/2 has been added. - -* <unzip> will now detect and successfully extract self-extracting - archives. Bugzilla Report 16213. - -* <stcheckout> has a new attribute "converteol" that can be used to - control the automatic line-end conversion performed on ASCII files. - Bugzilla Report 18884. - -* Users can now modify the list of default excludes using the new - defaultexcludes task. Bugzilla Report 12700. - -* There is a new data type <propertyset> that can be used to collect - properties. It is supported by <ant>, <antcall>, <subant>, <java>, - <echoproperties> and <junit>. - -* <concat> can now control the encoding of the output as well and optionally - add new-line characters at the end of files that get concatenated but - don't end in newlines. Bugzilla Report 12511. - -* <rpm> will detect the rpmbuild executable of RedHat 8.0 and newer - and use that if it is on your PATH. Bugzilla Report 14650. - -* A new task <rexec> has been added that requires commons-net to work. - Bugzilla Report 19541. - -* <javadoc> now supports a nested <arg> element in addition to the - additionalparams attribute. - -* You can now determine the order of standard tags in <javadoc> via - <tag> elements - you must not use the description attribute for them. - Bugzilla Report 18912. - -* <javadoc> now supports the -noqualifier switch. Bugzilla Report 19288. - -* <javac>'s executable attribute can now also be used to specify the - executable for jikes, jvc, sj or gcj. Bugzilla Report 13814. - -* <javac> has a new attribute tempdir that can control the placement - of temporary files. Bugzilla Report 19765. - -* A new magic property build.compiler.jvc.extensions has been added - that can be used to turn of Microsoft extensions while using the jvc - compiler. Bugzilla Report 19826. - -* You can now limit the parallelism of <apply> and <chmod> by using the new - maxparallel attribute. - -* With the new addsourcefile attribute, you can make <apply> ommit the - source file names from the command line. Bugzilla Report 13654. - -* <apply> and <chmod> now support nested <filelist>s as well as <dirset>s. - Bugzilla Reports 15929 and 20687. - -* <apply> and <chmod> will display a summary if you set the new - verbose attribute to true. Bugzilla Report 19883. - -* <copy>/<move>'s failonerror attribute can now also be used to - continue the build if an I/O error caused a problem. Bugzilla - Report 12999. - -* new selector <type/> allowing to select only files or only directories. - Bugzilla Report 20222. - -* <java> and <junit> now support a nested <bootclasspath> element that - will be ignored if not forking a new VM. - -* <junit>'s nested <formatter> elements now support if/unless clauses. - -* <ejbjar> - cmpversion attribute added - jboss element will look for jbosscmp-jdbc.xml descriptor - if ejbjar has cmpversion="2.0" set - Bugzilla Reports 14707 and 14709. - -* <pvcs> config attribute added to set the location of a specific PVCS - .cfg file - Bugzilla Report 9752 - -* <mapper> has an "unpackage" mapper - Bugzilla Report 18908 - -* Added <scriptdef> task allowing tasks to be defined using any BSF-supported - scripting language. - -* <touch>'s datetime attribute can now accept time with a granularity - of seconds as well. Bugzilla Report 21014. - -* <checksum> has two new properties: totalproperty and todir. - -* FileUtils#createTempFile will now create temporary files in the - directory pointed to by the property java.io.tmpdir - -* <unzip> and friends now supports an optional encoding attribute to - enable it to expand archives created with filenames using an encoding - other than UTF8. Bugzilla Report 10504. - -* <patch> has a new attribute destfile that can be used to create a new - file instead of patching files in place. - -* OpenVMS is detected as a valid OS family. - -* DirectoryScanner has been optimized for cases where include patterns do not - start with wildcards. Bugzilla Report 20103. - -* DirectoryScanner begins to be optimized not to scan excluded directories. - Bugzilla Report 21941. - -* Added keep-going feature. Bugzilla Report 21144 - -* The archives generated by <zip> and friends will now contain CRC and - size information in the "local file header", thereby providing this - information to applications that read the archives using - java.util.ZipInputStream. Bugzilla Report 19195. - -* <copy> and <move> can now handle mappers that return multiple - mappings per source path. This behaviour is enabled by using - an enablemultiplemapping attribute. Bugzilla Report 21320. - -* <exec> will now work on OpenVMS (please read the notes in - <exec>'s manual page). Bugzilla Report 21877. - -* <exec> will now have a new attribute spawn (default false). - If set to true, the process will be spawned. Bugzilla Report 5907. - -* <java> will now have a new attribute spawn (default false). - If set to true, the process will be spawned. Bugzilla Report 5907. - -* <parallel> now supports a timeout which can be used to recover - from deadlocks, etc in the parallel threads. <parallel> also - now supports a <daemons> nested element. This can be used to - run tasks in daemon threads which the parallel task will not - wait for before completing. A new attribute failonany will cause - <parallel> to throw an exception if any thread fails without - waiting for all other threads to complete. - -* <zip> and friends will consume far less memory than they used to - when run with compress="false". Bugzilla Report 21899. - -* <if/> and <unless/> attributes added to <param/> element of <style> - Bugzilla Report 22044 - -* <zip> and friends have a new attribute "keepcompression" that can be - used to incrementally build an archive mixing compressed and uncompressed - entries. - -* <junit>'s XML formatter adds a new classname attribute to the <testcase> - elements. - -* new <permissions> type add permission handling to the code - this type can be nested in the <java> and <junit> tasks. - Bugzilla Report 22533. - -* additional shortcuts for ant options (-d --> -debug, -e --> -emacs, - -h --> -help, -p --> -projecthelp, -s --> -find). - -* new selector <modified>. "cache" was renamed to "modified". - Bugzilla Report 20474. - -* <stcheckout> and <stlist> have a new asofdate attribute that can be - used to checkout/list files based on a date instead of a label. - Bugzilla Report 20578. - -* New filter <concatfilter>. Adds the content of file at the beginning - or end of a file. Discussion started at - http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2 - -* New task <import> - -* New task <macrodef> - -* New task <presetdef> - -* Ant libraries that can make use of namespaces to avoid name - clashes of custom tasks - - -* <java> and <junit> now support <assertions>, which let you enable - and disable Java1.4 assertions on a package or class basis. These - only work when fork=true, currently. - -* .NET tasks expanded with VB support <vbc> and J#, via <jsharp>, - <importtypelib> and <ilasm>. <csc> supports nested <src> types, - <defines> for (potentially conditional) definitions, <reference> - filesets for references. The executable attribute lets you switch to - mono or other implementations -<csc> has been tested with Mono on - Linux and OSX. - - -Changes from Ant 1.5.3 to Ant 1.5.4 -=================================== - -Changes that could break older environments: --------------------------------------------- - -* If the Visual Age tasks used to work for you, they may stop doing so - now - and we'd like to know about it. The current set of tasks is - supposed to work with any version of VAJ starting with 3.0. - -Fixed bugs: ------------ - -* The Visual Age for Java tasks didn't work (at least for versions 3.0 - and higher). Bugzilla Report 10016. - -* URL-encoding in <vaj*port> didn't work properly. - -* VAJRemoteUtil called getAbsolutePath instead of getPath - causing problems when using a Windows VAJ server from a UNIX server. - Bugzilla Report 20457. - -* VAJImport task failed with NullPointerException when using DirectoryScanner. - Bugzilla Report 22080. - -Other changes: --------------- - -* Shipped XML parser is now Xerces 2.5.0 - -* <javah> will invoke oldjavah on JDK 1.4.2. Bugzilla Report 18667. - -* The VAJ tasks now support a haltonfailure attribute to conditionally - keep building even if they fail. - -* It is now possible to use the latest (versioned or unversioned) edition - in <vajload> by using special wildcard characters. Also fixes - Bugzilla Report 2236. - -Changes from Ant 1.5.2 to Ant 1.5.3 -=================================== - -Changes that could break older environments: --------------------------------------------- - -* The <zip> task and friends have again changed a method signature - (sorry, was necessary to fix bug 17780). The return type of - getResourcesToAdd has changed. - -Fixed bugs: ------------ - -* <zipfileset>'s filemode would get ignored and the dirmode was used - for the included files as well. As a side effect, WinZIP was unable - to extract or display the files, so they seemed to be missing from - the archive. Bugzilla Report 17648. - -* <ftp> could use the wrong path separator when trying to change the - remote working directory. Bugzilla Report 17735. - -* <jar update="true"> would loose all original files if you didn't - specify any nested <(zip)fileset>s and the manifest had changed. - Bugzilla Report 17780. - -* If you used a value starting with \ on Windows for the appxml - attribute of <ear> or the webxml attribute of <war>, it would be - ignored. Bugzilla Report 17871. - -* Ant will no longer implicitly add Sun's rt.jar in <javac> when you - use jvc and don't specify a bootclasspath. Bugzilla Report 18055. - -* The prefix attribute of <zipfileset> would not generate directory - entries for the prefix itself. Bugzilla Report 18403. - -* starteam checkout can now handle deleted labels. Bugzilla Report 17646. - -* The Unix wrapper script failed if you invoked it as a relative - symlink and ANT_HOME has not been set. Bugzilla Report 17721. - -Other Changes: --------------- -* Added ability to specify manifest encoding for the <jar> and - <manifest> tasks - -Changes from Ant 1.5.1 to Ant 1.5.2 -============================================= - -Changes that could break older environments: --------------------------------------------- -* ANT_OPTS environment variable is now applied at the start of the - Java command line, allowing position specific parameters of some - JVMs, such as -classic to be specified. - -* ZipScanner#getIncludedFiles will now return the names of the ZipEntries - that have been matched instead of the name of the archive. - -* The <zip> task and friends have been heavily modified, almost every - method signature of the Zip class has changed. If you have subclassed - Zip (or one of its subclasses), your class will most likely not - compile against the current code base. If it still compiles, it will - probably not work as in Ant 1.5.1. - -Fixed bugs: ------------ -* <translate> was not ignoring comment lines. - -* <manifest> wouldn't update an existing manifest if only an attribute - of an existing section changed. - -* ant.bat now supports the ANT_ARGS and JAVACMD environment variables - again (like Ant 1.5 did). - -* The "plain" <junit> <formatter> could throw a NullPointerException - if an error occured in setUp. - -* <junit> will now produce output when a test times out as well. - -* <replace> would count some internal character replacements when - reporting the number of replaced tokens. - -* <concat> would cause an exception if a <filelist> pointed to files - that do not exist. - -* <javadoc> will now pass -source to custom doclets as well. - -* <cvstagdiff> would throw a NullPointException if there had been no - differences. - -* <cvschangelog> could miss today's changes. - -* <concat> could append newline characters between concatenated files. - -* <xmlvalidate> ignored the specified encoding of the files to - validate. - -* the errorsbeginat attribute of the <http> condition didn't work. - -* Ant will try to force loading of certain packages like com.sun.* - from the system classloader. The packages are determined by the - version of the JVM running Ant. - -* Ant didn't find the runtime libraries on IBM's JDK 1.4 for Linux. - -* random component of temporary files is now always a positive integer. - -* Ant could incorrectly try to use the 1.4 regexp implementation even - if it isn't available if you run the JVM with -Xverify:none. - -* Ant would die with an exception if you used nested <reference> - elements in Ant and the refid attribute didn't point to an existing - project reference. - -* The <get> task can now be compiled (and Ant thus bootstrapped) using - Kaffee. - -* build.sysclasspath will now be honored by more tasks. - -* The signjar keystore attribute has been reverted to a String allowing - it to once again accept URLs. This should not affect current File based usage - unless you are extending the Signjar task. - -* <jar update="true"> would remove the original manifest. - -* fix up folder creation in PVCS task - -* <tar>'s up-to-date check didn't work for nested <(tar)fileset>s. - -* Corrected a problem in XMLLogger where it would not associated - messages with a taskdef'd task - -* <uptodate> now works when using attributes (i.e. not filesets) and pointing - to the same file - -* Java task (and output system) now stores output which doos not end - with a line feed. - -* splash screen wouldn't disappear when build was finished. - -* <exec> now supports OS/2. - -* <zip> and friends would only update/recreate existing archives if - the files to add/update have been newer than the archive. - -* <javadoc>'s <link> element could fail for offline="true" on some JDKs. - -Other changes: --------------- - -* MailLogger now sets the Date header correctly. - -* Shipped XML parser is now Xerces 2.3.0 - -* signjar now accepts a maxmemory attribute to allow the memory allocated to the - jarsigner tool to be specified. The jarsigner from the JDK's JAVA_HOME bin - dir is now used rather than the first jarsigner on the path. - -* **/.DS_Store has been added to the list of default pattern excludes. - -* The Created-By header in the default manifest now contains the JVM - vendor and version according to the jar specification. A new header, - Ant-Version provides the Ant version used to create the jar. - -* <zip> can now store Unix permissions in a way that can be - reconstructed by Info-Zip's unzip command. - -Changes from Ant 1.5.1Beta1 to 1.5.1 -==================================== - -Fixed bugs: ------------ - -* <tstamp>'s prefix attribute failed to apply to nested <format> elements. - -* <junitreport> created an empty junit-noframes.html if no format had - been specified. - -* <basename> would remove more than it should if the file name - contained more than one dot. - -* <filterset>s nested into <filterset>s didn't work. - -Other changes: --------------- - -* Shipped XML parser is now Xerces 2.2.0 - -* Filesets now support a 'file' attribute, allowing a single-file - fileset to be constructed without having to specify its parent - directory separately. - -* <junit> will now return the result of a call to getName instead of - "unknown" for Test implementations that don't extend TestCase but have - a public String getName() method. - -Changes from Ant 1.5 to 1.5.1Beta1 -================================== - -Fixed bugs: ------------ -* Date/time in CvsChangeLog was in local timezone and 12 hour format leading - to a problem when sorting by time. It is now UTC (GMT) and in 24-hour - format as per cvs 'specifications'. - -* CvsTagDiff now supports ampersand modules or modules that have a different - root directory than their name. - -* EjbJar threw NPEs for the Websphere element. The property 'websphere.home' - was not documented. - -* Mail example in the documentation was not correct. - -* Checksum was broken in the following scenario: - (using verifyproperty OR in a condition) AND using filesets - with multiple files. - -* The ExpandProperties filter threw NPEs when defined using - the <filterreader> format. - -* The sh wrapper script didn't work under Cygwin if ANT_HOME wasn't - set with a Unix style filename. - -* The sh wrapper script could fail if you started Ant from a directory - with whitespace in its name. - -* ant -diagnostics was not working properly when the task dependency - was missing and was just printing the missing dependency. - -* If a task got redefined via <taskdef>, it lost its child elements. - -* <property>'s classpathref attribute was broken. - -* <arg line="''" /> would result in no command line argument, will now - be a single empty argument. Use <arg value="''"/> if you need the - quotes literally. - -* <replaceregexp> could append a newline character at the end of the - file. - -Other changes: --------------- - -* Appendix E of Java Development with Ant (Loughran/Hatcher) was - contributed to the docs. - -* <available> will only print deprecration warnings if it is actually - used to change the value of a property. - -Changes from Ant 1.5beta3 to Ant 1.5 -==================================== - -Changes that could break older environments: --------------------------------------------- - -* The filesetmanifest attribute added to <jar> after the 1.4.1 - release has been removed for now. This change may affect only - the 1.5Beta/1.6Alpha users. An attempt will be made to add this - feature back into Ant 1.6. - -Fixed bugs: ------------ - -* <zip> and friends would always update existing archive if you set - the update attribute to true. - -* To support backward compatibility with older versions, <pathconvert> - will once again set the property, even if the result is the empty - string, unless the new 'setonempty' attribute is set to false|no|off - (default is "true"). - -* The manifest task would crash XmlLogger - -Other changes: --------------- - -* added **/.svn and **/.svn/** to the default excludes - -Changes from Ant 1.5beta2 to Ant 1.5beta3 -========================================= - -Changes that could break older environments: --------------------------------------------- - -* <pvcs> default filenameformat has been different from Ant 1.4.1. - Now it is different from 1.5beta1 and 1.5beta2. - -* <pathconvert> won't set the property if the result is the empty string. - -Fixed bugs: ------------ - -* <available> could fail to find files or directories that happen to - start with the name of the project's basedir but are not children of - the basedir. - -* Nested <property>'s inside <ant> can now be overriden by subsequent - <ant> and <antcall> tasks. - -* <xslt>'s outputtype attribute wouldn't do anything. - -* <linecontains> filterreader could swallow lines. - -* <sequential> used to configure the tasks (set their attributes) - before the first task has been executed. This means that properties - that have been set by nested task seemed to be unset for the other - tasks in the same <sequential> element. - -* <javac>'s sourcepath setting has been ignored by some compiler - implementations. - -* <javadoc>'s packagelist attribute didn't work. - -* the plain mailer would always use port 25 in <mail>. - -* Ant's default logger could swallow empty lines. - -* ejbjar's iPlanet nested element now can process multiple descriptors. - -* IPlanetEjbc was looking in the wrong place for four iiop files. - -* <javac> would pass the -source switch to JDK 1.3's javac, even - though it doesn't support it. - -Other changes: --------------- - -* <checksum> now uses a buffer (of configurable size). - -* The "Trying to override task definition" warning has been degraded - to verbose level if the two task definitions only differ in the class - loader instance that has loaded the definition. - -* Add a jvmargs to the ejbjar's weblogic element to allow additional - arguments to be provided to the VM runnign ejbc. Document the - jvmdebuglevel attribute which can be used to avoid warnings about - interface classess being found on the classpath. Document the new - <sysproperty> element which allows JVM properties to be defined. - Added an outputdir attribute to allow the destination to be a - directory into which the exploded jar is written. - -* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5 - -Changes from Ant 1.5beta1 to Ant 1.5beta2 -========================================= - -Changes that could break older environments: --------------------------------------------- - -* Properties will now be expanded in mail message bodies. This means -that one $ sign will be stripped if your mail message contains the text -$$. - -* org.apache.tools.ant.taskdefs.Expand no longer extends MatchingTask. - -* Available#setFile now again uses a File argument as it did in 1.4, -this may break environments that have been adapted to the String -argument version present in 1.5beta1. - -Fixed bugs: ------------ -* When <move> attempts a rename, it deletes the destination file, if it - exists, before renaming the source file. However, <move> was not - checking if the destination file was actually a directory before - trying to delete it. - -* Make CVS Tasks to work under Cygwin. - -* Fix LineContains to handle huge files elegantly without causing -Stack Overflows. - -* if you ask for the "classic" compiler on Java1.4, you get upgraded to -"modern" because there is no classic compiler any more. - -* the <http> condition was viewing 404 'not found' exceptions as success. Now -it defaults to viewing any response >=400 as an error, and has an errorsBeginAt -attribute you can use if you want a higher or lower value. - -* <get> throws a build exception on an http authorization error, unless you -have set ignoreerrors to true. - -* <wsdltodotnet> was spelt in Wintel case: <WsdlToDotnet>. It is now lower -case, though the old spelling is retained for anyone who used it. - -* Merging of Manifests in jar now works as documented. - -* paths that have been separated by colons would be incorrectly parsed -on NetWare. - -* runant.pl now supports NetWare. - -* <tempfile> and <setproxy> tasks were in beta1, but not defined by -default; They now are. <tempfile> fills a property with the name of a -temporary file; <setproxy> lets you set the JVM's http, ftp and socks proxy -settings. - -* <available classname="foo" ignoresystemclasses="true"> failed for -JDK 1.1 and 1.2, even if the class could be found on the -user-specified classpath. - -* <property environment=... /> now works on z/OS. - -* forked <javac> failed for the wrong reason on JDK 1.1 - Ant would -use a temporary file to hold the names of the files to compile under -some conditons, but 1.1 doesn't support this feature. Ant will no -longer try this, but you may run into problems with the length of the -command line now. - -* the refid attribute for <property>s nested into <ant> or <param>s -nested into <antcall> didn't work. - -* <replaceregexp> didn't work for nested <fileset>s. - -* <javadoc> dropped sourcepath entries if no "interesting" .java -source files could be found below them. This has been backwards -incompatible and caused problems with custom doclets like xdoclet. - -* Using the doclet, docletpath or docletpathref attributes of -<javadoc> may have caused NullPointerExceptions. - -* nested <filesets> of <javadoc> would include too much. - -* <dependset> will no longer choke on <targetfileset>s that point to -non-existing directories. - -* <patch> didn't work at all. - -* <replace> and <replaceregexp> now fail if the file they are working -on is locked. - -* <javadoc> would pick up the wrong executable in the combination JDK -1.2 and AIX. - -Other changes: --------------- - -* z/OS now gets detected by the os condition. - -* <fileset> and <dirset> now have an optional followsymlink attribute -that can prevent Ant from following symbolic links on some platforms. - -* BeanShell is now supported in the <script> task. - -* <ejbjar> under Weblogic attempts to use the ejbc20 compiler for 2.0 beans - based on the deployment descriptor's DTD reference. Under weblogic 7.00 Beta - this ejbc class has been deprecated. To avoid the deprecation warning use - ejbcclass="weblogic.ejbc". - -* <ejbjar> will add a manifest to the generated jar based on the naming - convention in use. This overrides the manifest specified in the - <ejbjar> attribute - - -Changes from Ant 1.4.1 to 1.5beta1 -================================== - -Changes that could break older environments: --------------------------------------------- - -* Important: Single $ signs are no longer silently stripped! - Before you panic that we have broken all your build files, we have kept - the old "$$" -> "$" behaviour. So only build files which accidentally had - a $ sign in a string that was being silently stripped may break. - We added this fix to stop newbie confusion; if you want to write a - build file which works on ant versions 1.4.1 or earlier, stay with - the double $$ sign rule. - -* Project.getBuildListeners now returns a clone of the listener - list. Changes to the returned list will not affect the listeners - currently attached to the Project. It also means that it is safe to - iterate over the returned list if listeners are added or removed - during the traversal. - -* <pvcs> default filenameformat has been different from Ant 1.4.1. - -* Some messages that are printed during startup will not be - written to the logfile specified via -logfile as they might destroy - the format of the file for special BuildLoggers (like XmlLogger). - -* The filesetmanifest attribute added to <jar> after the 1.4.1 - release has been removed for now. This change may affect only - the 1.5Beta/1.6Alpha users. An attempt will be made to add this - feature back into Ant 1.6. -* Shipped XML parser is now Xerces 2.0.1 along with the XML Parser APIs. - XML Parser APIs is a separate jar that contains the necessary - JAXP/DOM/SAX classes. - -* <telnet> was fixed to expand properties inside nested <read> and - <write> elements; before this only happened when you assigned the text - to the string attribute. If you had $ signs in the string, they may - need escaping. - -* the RegexpMatcher interface has been extended to support case - insensitive matches and other options - custom implementations of - this interface won't work any longer. We recommend to use the new - Regexp interface that also supports substitution instead of the - RegexpMatcher interface in the future. - -* <gzip> will throw an exception if your src attribute points to a directory. - -* Unjar, Unzip and Unwar will throw an exception if the Src attribute - represents a directory. Support for nested filesets is provided - instead. - -* It is no longer possible to overwrite a property using tasks like - <condition>, <exec>, <pathconvert>, or <tstamp>. In some exceptional - cases it will generate a warning if you attempt to overwrite an - existing property. - -* Taskwriters please note: Whenever tasks had any overloaded set* methods, - Ant's introspection mechanism would select the last overloaded method - provided to it by the Java Runtime. A modification has now been made such - that when the Java Runtime provides a method with a String as its argument, - a check is made to see if there is another overloaded method that takes in - some other type of argument. If there is one such method, then the method - that takes in String as an argument is not selected by the Introspector. - -* The pattern definition **/._* has been included into the Default - Excludes list. - -* <propertyfile>'s <entry> element was modified to remove "never" as a value - as its behavior was undocumented and flakey. - -* The -projecthelp flag now only prints out targets that include the - 'description' attribute, unless the -verbose or -debug flag is included - on the Ant command line. - -* Ant's testcases now require JUnit 3.7 or above, as they now use the new - assertTrue method instead of assert. - -* If the 'output' attribute of <ant> is set to a simple filename or a - relative path, the file is created relative to ${basedir}, not ${user.dir}. - -* The default value for build.compiler is now javac1.x with x - depending on the JDK that is running Ant instead of classic/modern. - -Fixed bugs: ------------ - -* <available> could fail to find files or directories that happen to - start with the name of the project's basedir but are not children of - the basedir. - -* Nested <property>'s inside <ant> can now be overriden by subsequent - <ant> and <antcall> tasks. - -* <xslt>'s outputtype attribute wouldn't do anything. - -* <linecontains> filterreader could swallow lines. - -* <sequential> used to configure the tasks (set their attributes) - before the first task has been executed. This means that properties - that have been set by nested task seemed to be unset for the other - tasks in the same <sequential> element. - -* <javac>'s sourcepath setting has been ignored by some compiler - implementations. - -* <javadoc>'s packagelist attribute didn't work. - -* the plain mailer would always use port 25 in <mail>. - -* Ant's default logger could swallow empty lines. - -* ejbjar's iPlanet nested element now can process multiple descriptors. - -* IPlanetEjbc was looking in the wrong place for four iiop files. - -* <javac> would pass the -source switch to JDK 1.3's javac, even - though it doesn't support it. - -* <zip> and friends would always update existing archive if you set - the update attribute to true. - -* To support backward compatibility with older versions, <pathconvert> - will once again set the property, even if the result is the empty - string, unless the new 'setonempty' attribute is set to false|no|off - (default is "true"). - -* The manifest task would crash XmlLogger - -* A bug existed that prevented generated log files from being deleted as - part of the build process itself. This has now been fixed. - -* Fixed bug where <move> ignored <filterset>s. - -* Ant works properly with the combination of Java1.4/WindowsXP. - -* Fixed bug where <java> used to sometimes invoke class constructors twice. - -* Fixed bug with 4NT shell support. - -* Fixed bug where ant would not perform ftp without remotedir being - specified even though this was not mandatory. - -* Fixed bug where ant would not copy system properties into new Project - in ant/antcall tasks when inheritall="false" is set. - -* <propertyfile> would not close the original property file. - -* <ant> will no longer override a subbuild's basedir with inheritall="true". - -* Fixed problem with the built-in <junit> formatters which assumed - that only one test could be running at the same time - this is not - necessarily true, see junit.extensions.ActiveTestSuite. - -* <jar>'s whenEmpty attribute is useless as JARs are never empty, they - contain at least a manifest file, therefore it will now print a - warning and do nothing. - -* <typedef> hasn't been all that useful as it couldn't be used outside - of targets (it can now) and nested "unknown" elements have always - been considered to be tasks (changed as well). - -* <fixcrlf> would fail for files that contained lines longer than 8kB. - -* Some junit formatters incorrectly assumed that all testcases would - inherit from junit.framework.TestCase. - -* <fixcrlf> dropped the first characters from Mac files. - -Other changes: --------------- - -* <checksum> now uses a buffer (of configurable size). - -* The "Trying to override task definition" warning has been degraded - to verbose level if the two task definitions only differ in the class - loader instance that has loaded the definition. - -* Add a jvmargs to the ejbjar's weblogic element to allow additional - arguments to be provided to the VM runnign ejbc. Document the - jvmdebuglevel attribute which can be used to avoid warnings about - interface classess being found on the classpath. Document the new - <sysproperty> element which allows JVM properties to be defined. - Added an outputdir attribute to allow the destination to be a - directory into which the exploded jar is written. - -* ejbjar now supports Borland Enterprise Server 5 and Jonas 2.5 - -* added **/.svn and **/.svn/** to the default excludes -* Selector Elements now provide a way to create filesets based on - sophisticated selection criteria. - -* Gzip and Bzip2 files can now be constructed in the fly when using - the tar task without having to create the intermediate tar file on - disk. The Untar task can also untar GZip and BZip2 files on the fly - without creating the intermediate tar file. - -* New optional type, <classfileset> added. - -* <ejbjar> now allows control over which additional classes and interfaces - are added to the generated EJB jars. A new attribute "dependency" can be - defined which controls what classes are added. The addition of classes now uses - the Jakarta-BCEL library rather than reflection, meaning bean classes are - no longer loaded into Ant's JVM. The default dependency analyzer is known as - the ancestor analyzer. It provides the same behaviour as the 1.4.1 version of - <ejbjar>. If the BCEL library is not present, a warning will be issued stating - the ancestor analyzer is not available. In this case <ejbjar> will continue - to function but will not add super classes to the jar. - -* <available> has a new attribute named ignoreSystemClasses. - -* New task <cvschangelog/> generates an XML report of changes that occur - on CVS repository. - -* New filter readers: ClassConstants, ExpandProperties, HeadFilter, - LineContains, LineContainsRegExp, PrefixLines, ReplaceTokens, - StripJavaComments, StripLineBreaks, StripLineComments, TabsToSpaces, - TailFilter. - -* <copy>, <loadfile>, <loadproperties>, <move> support FilterChains - of FilterReaders. - -* New task <loadproperties> to load contents of file as Ant properties, - with nested <filterchain> elements. - -* New task <loadfile> to load a whole file into a property. - -* New task <echoproperties> to list your current properties to the screen - or a file. - -* New tasks <bzip2> and <bunzip2> to pack and unpack files using the - BZip2 alogrithm. - -* New tasks <replaceregexp>, <checksum>, <translate>, <waitfor>, - <manifest>, <vsscp>, <vssadd>, <vsscreate>, <splash>, <basename>, <dirname>, - <concat>, <sourceoffsite>, <jarlib-available>, <jarlib-display>, - <jarlib-manifest>, <jarlib-resolve>. - -* A new combined <mail> task, which replaces the old <mail> and - <mimemail> tasks, has been added. The <mimemail> task, and - old SendEmail and MimeMail classes have been deprecated. - -* Mail task allows specification of port number. - -* Users can control what <zip> and <jar> must do when duplicate files - are found. A new element <zipgroupfileset> allows for multiple zip - files to be merged into the archive. In addition, <jar> also has - another new attribute: filesetmanifest. The existing manifest - attribute of <jar> now also accepts the name of a jar added through - a fileset. - -* gzip now checks that the zipfile is older than the source file - before rebuilding the zipfile. - -* TarFileset takes in three new attributes - fullpath, prefix - and preserveLeadingSlashes. - -* <move> attempts to rename the directory, if everything inside it is - included, before performing file-by-file moves. This attempt will - be done only if filtering is off and if mappers are not used. This - is a performance improvement and there is no change otherwise in - the funtionality of this task. - -* Exec task has extra attribute "resultproperty" to get the return code - into a property. - -* Exec task prints a message when a timed-out process is killed. - -* Added optional attributes - name, arch and version to the <os> task. - -* Unjar, Untar, Unwar and Unzip now support patternsets to - select files from an archive for extraction. Filesets may be - used to select archived files for unarchival. - -* Javac task allows debug levels to be specified. Debug levels - will have an effect only when the modern compiler or the - classic compiler (version 1.2 and higher) is used and debugging - is enabled. - -* Added support for specifying CVS_RSH in the <cvs/> task - -* The attributes zipfile, jarfile, warfile and earfile (from the Zip, - Jar, War and Ear tasks) have been deprecated and superseded by a - new attribute "destfile". - -* Added new conditions <isset>, <checksum>, <http>, <socket>, <contains>, - <filesmatch>. - -* <taskdef> and <typedef> will now emit a warning if a task/type of - the given name already exists. - -* A new revision of VAJ tasks: The most important new feature - is the ability to execute VAJ tasks from the command line by - exploiting the Remote Tool Access feature of VAJ. - -* Improved support for Novell NetWare. - -* Added an optional encoding attribute to <fixcrlf>. - -* <apply> has a new attribute relative that allows users to pass the - filenames as relative instead of absolute paths on the command line. - -* References can now be copied into the child build by <ant> and - <antcall> using nested <reference> elements or the new inheritRefs - attribute. - -* <fail> now supports builds to fail based on conditions via if and - unless attributes. - -* Ant now comes with two new BuildLogger implementations - one that - can send emails containing a log of the build process (MailLogger), - and one that colorizes the output based on message levels, using - ANSI color code escape sequences (AnsiColorLogger). - -* A "package" mapper type has been added to allow package directory - names replaced with the dotted form. - -* You can now specify environment variables in the <java> and <junit> tasks - if the fork attribute has been set to true. - -* -propertyfile command-line option has been added to load an entire - property file just as -D properties are declared (as user properties). - -D properties take precedence over -propertyfile specified ones. - -* You can now set an ANT_ARGS environment variable to hold arguments you - always want passed to the 'ant' command -- for example, if you always - want to use a different logger or the -find flag. - -* <tstamp> now supports a new "prefix" attribute to prefix properties set. - -* You can now specify the -sourcepath for <javac> explicitly. - -* <javac> now supports a new "listfiles" attribute to list the source - files it's handing off to the compiler. - -* The compiler implementation for <javac> can now be chosen on a task by - task basis. The new "compiler" attribute of <javac> can be used to override - the value of the build.compiler property, if set. - -* <javac> has a new nested element, <compilerarg>, which allows you - to specify additional args for the specific compiler you're using. - -* <javac>'s "source" attribute is now enabled for jikes as well. - -* <propertyfile>'s <entry> now has a 'unit' attribute to specify the - increment/decrement unit on date operations. - -* <property> now supports a 'prefix' attribute when loading from a file - or resource. - -* In Ant 1.4, a feature has been added to the <junit> task that would - add ant.jar, optional.jar and junit.jar implicitly to the classpath - - this feature can now be disabled by setting the new includeantruntime - attribute to false. - -* <style> behaves differently from any other directory-based task, as it - processes all files that it finds in included directories in - addition to the files matched by your patterns. There is now a new - attribute, 'scanincludeddirectories', to suppress this behavior. - -* <javadoc> now supports a <tag> nested element to provide the -tag option - to the standard Java 1.4 doclet. The element is ignored when not running - on Java 1.4. - -* <ftp> can now chmod files on a remote server that supports - "site chmod", as well as set the umask before transferring files, if - the server supports "site umask". - -* New <serverdeploy> "optional" task. - -* <patternset> now supports nested patternsets. - -* Perforce tasks now support a "failonerror" attribute (defaults to "true"). - -* Open Source application server JOnAS support: - EJB hot deploy and deploy with <serverdeploy> and <ejbjar> - -* Added new DirSet (<dirset>) datatype. - -* <path> now supports nested <dirset> and <filelist> elements. - -* <pathconvert> now supports nested <dirset> and <filelist> elements. - -* <pathconvert>'s "dirsep" and "pathsep" attributes now accept - multi-character values. - -* <copy> task now has a 'failonerror' attribute to allow keep-going - behaviour when the file to be copied is not found (defaults to "true"). - -* <uptodate> now has a 'srcfile' attribute to allow specifying a - full-path filename. - -* <exec>, <sql> and <java> now support append attributes to allow - appending the output to an existing file. - -* <java> now supports a timeout attribute analog to <exec> - it is - highly recommended to only use it together with fork="true". - -* <javadoc> now supports a source attribute to enable javadoc to - handle assertions present in JDK 1.4 source code. - -* <replace> supports a new replacefilterfile attribute that - automatically turns all properties of a given file into - replacefilters. - -* An alias of <xslt> has been added to refer to the <style> task. - -* The compiler implementation for <rmic> can now be chosen on a task by - task basis. The new "compiler" attribute of <rmic> can be used to override - the value of the build.rmic property, if set. - -* <rmic> has a new nested element, <compilerarg>, which allows you - to specify additional args for the specific compiler you're using. - -* org.apache.tools.ant.XmlLogger now is a BuildLogger, rather than just - a BuildListener. It can operate in either mode successfully. - -* <junit> has a new attribute "showoutput". If set to true, output - generated by tests will be sent to Ant's logging system as well as - to the formatters (instead of sending it to the formatters - exclusively). - -* Ant has now a pluggable way to prompt users for input, which is used - by the new <input> task. IDE integrators can provide an - implementation of the InputHandler interface to decouple Ant's input - from the console. An implementation that gets its input from a file - for unattended builds is part of Ant's distribution. - - For more details see docs/manual/inputhandler.html. - -* <patch> has a new attribute that selects the directory in which to - run the command. - -* <javadoc> now supports two new nested elements, <fileset> and <packageset>. - - -Changes from Ant 1.4 to Ant 1.4.1 -=========================================== - -Fixed bugs: ------------ - -* <ant>'s antfile attribute will now also be considered an absolute path on - Windows systems, if it starts with a \ and no drive specifier. - -* The fullpath attribute of <zipfileset> has been ignored if you used - the src attribute at the same time. - -* The manifest file is now always placed as the second entry (after /META-INF) - in generated jars. This allows the manifest to be read by JarInputStreams - -* Fixed bug in depend task which would fail with a NullPointerException if no - dependency cache was specified. - -* sql task now handles REM statements correctly so that lines starying with rem - but which are not comments are actually processed. - -* XMLLogger now uses the task's name rather than the classname - -* <mapper>s will now work as expected if the to pattern expands to an - absolute pathname. - -* <javac> didn't ignore memory settings in non-fork mode - -* <cab> didn't split the options attribute into several command line - arguments correctly. - -Other changes: --------------- - -* New source attribute for <javac> to enable assertion in JDK 1.4 - -* XmlLogger and <antstructure> now add an encoding declaration to the - XML files they generate. - -* <fileset> has a new attribute "casesensitive" to make it match - filenames in a case insensitive way (if you set it to false) - by - default filesets remain case sensitive. - -Changes from Ant 1.3 to Ant 1.4 -=========================================== - -Changes that could break older environments: --------------------------------------------- -* JUnitReport now uses the xalan redirect extension for multi-output. - With Xalan 1.2.2 it forces the use of bsf.jar in the classpath. - (Available in the xalan distribution). It is recommended to switch - to Xalan 2.x that do not need it. - -* Zip.setWhenempty() has changed its signature. - -* <rmic> is now implemented using a factory. This makes extending - rmic to use a new compiler a lot easier but may break custom - versions of this task that rely on the old implementation. - -* several Zip methods have changed their signature as we now use a Zip - package of our own that handles Unix permissions for directories. - Furthermore <zip> will now use the platform's default character - encoding for filenames - this is consistent with the command line - ZIP tools, but causes problems if you try to open them from within - Java and your filenames contain non US-ASCII characters. Use the new - encoding attribute of the task and set it to UTF8 to get the old - behavior. - -* The <pvcs> task has been moved to a package of its own. - -* JUnitResultFormater has two additional methods that must be - implemented by custom formatters. - -* Ant will no longer use the canonical version of a path internally - - this may yield different results on filesystems that support - symbolic links. - -* The output generated by the xml formatter for <junit> has changed - again, it doesn't format the numeric value in the time attribute anymore. - -* Pattern matching rules have changes slightly, the pattern foo* - doesn't match files contained in a directory named foo - use foo/* - instead. - -* <fixcrlf> will not remove trailing whitespace at the end of lines anymore. - -* The Classloader usage has been changed for the taskdef, property, available - and sql tasks so that it delegates to the parent classloader. This may cause - ClassNotFoundExceptions to be thrown if a system class attempts to load a - class in the taskdef's classpath (typically factory objects). - -* Ant now allows multithreading of tasks and the containment of tasks within - other tasks. This can break customer listeners which do not expect messages - from a task before the previous task has finished. - -* Ant now installs its own ouput stream into System.out to route output to the - task currently executing on the current thread. This also means that all - output is now routed as Ant message events. Customer listeners and loggers - should not call System.out at any time. This has always been true but such - usage now will cause problems due to possible recursion. - -* Invalid manifest files will now cause build failures in the <jar> task. - -* Ant Introspection now looks for methods with method names starting with - addConfigured. When called these methods are passed an argument after it has - been configured from the build file. Custom tasks supporting nested elements - starting with the name configured will no longer function. - -* The environment variable JAVACMD that can be used to specify the - java executable to Ant's wrapper scripts must not contain additional - command line parameters any longer - please use the environment - variable ANT_OPTS for such parameters now. - -* Ant's wrapper scripts now quote the CLASSPATH environment variable, thus - supporting classpaths which refer to directories containing spaces. This means - that the CLASSPATH environment variable cannot have quotes. Any quotes should - be removed. This will not affect the operation of the CLASSPATH environment - variable in other contexts. - -* A delete task like - <delete includeEmptyFilesets="true"> - <fileset dir="somedir" /> - </delete> - will now remove "somedir" as well, unless there are still files left - in it (matched by the default excludes). - -* The copy task will now fail if the file to be copied is not found. - -* Ant properties defined in properties files now behave the same way as - properties defined in the build file. In particular the $ character needs - to be escaped in property values by doubling it to $$. So, to define a - property with the value $hello, you need to define it in a properties file - as - test.prop=$$hello - This was not the case in Ant 1.3 - -Other changes: --------------- - -* New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout, - typedef, sleep, mimemail, set of tasks for Continuus/Synergy, dependset, - condition, maudit, mmetrics, jpcoverage, jpcovreport, jpcovmerge - -* Ant now uses JAXP 1.1 - -* rmic now supports Kaffe's and Weblogic's version of rmic. - -* new magic property build.rmic to chose the rmic implementation - -* <tar> will now add empty directories as well - -* you can now specify a description for <p4change> - -* <touch> can now work on <fileset>s - -* <uptodate> now supports a value attribute - -* <fail> supports nested text - -* <fixcrlf> won't override files that are already in the correct - format. - -* <sql> now supports REM comments as well as // and -- - -* <jar> now has a nested <metainf> element following the same idea as - <war>'s <webinf>. - -* <pvcs> can now handle multiple projects. - -* <available> now has a "type" attribute you can use in conjunction - with the "file" attribute to specify whether the "file" you're - looking for is a file or a directory. - -* New <junit> formatter named "brief" - -* <ejbjar> changes - * Add support for Borland Application Server to the <ejbjar> task using - a <borland> nested element. - * Add support for iPlanet Application Server to the <ejbjar> task. Also - includes some iPlanet utility tasks - * Add support for JBoss Application Server to the <ejbjar> task. - * Add a naming attribute to control the naming scheme that - ejbjar uses to name the generated EJB jars. - * Weblogic element now sets the compiler class for EJB 2.0 beans - * <dtd> elements can be specified at the <ejbjar> level for building generic - beans - * <dtd> elements can now be URLs - * Allow the manifest to be specified for the generated jars - * The weblogic element now supprts an attribte noEJBC to skip the processing - of the jar by ejbc. The ejbc step will then occur at deployment - * weblogic will tell ejbc to use Jikes compiler if build.compiler is set to - jikes. It can be restored to the default, javac, operation if desired. - -* Allow the <sql> Delimiter to be set in the so that Oracle stored procs may be - entered - -* <execon> and <apply> can now optionally skip empty filesets. - -* <javadoc> has a new useexternalfile attribute that makes it use a - temporary file for sourcefile and package names - helps to defeat - command line length limitations. - -* Data types like <path> can now be defined inside of <target>s - -* you can now specify a classpath for <style> - the XSLZ processor - will be loaded from this path - -* added a force attribute to <style> to support dependencies that the - task cannot determine itself (dependency on parameters, not file - modification times for example) - -* added vmlauncher attribute to exec tasks. This defaults to true. If - it is set to false, the VM's ability to launch commands in bypassed - and the OS shell, either directly or through the auxillary antRun - scripts is used. - -* regexp mapper now supports the java.util.regex package of JDK 1.4. - -* New filesonly attribute for <zip> and friends to suppress directory - entries. - -* New update attribute for <zip> and friends - update an existing - archive instead of creating a new one. - -* <apply> and <execon> have been merged into a single task. - -* added vssver.scc to the default excludes - -* <available> has a new filepath attribute/nested element that allows - you top search for a file in a given path. - -* <junit> can now optionally set a property on test failure. - -* <taskdef> can now define several tasks at once, reading the - name/classname pairs from a property file or resource. - -* <unzip/unjar/unwar> and <untar> now have an overwrite attribute that - defaults to true. If set to false, files that are newer than the - files in the archive will not be replaced. - -* <patternset> and <fileset> now support nested <in/excludesfile> - elements - using these you can have more than one in/excludes file - per <patternset>. - -* Three new supported compilers for javac: kjc for kopi, gcj for the - gcc frontend and sj for Symantec's compiler. - In addition extJavac or the new fork attribute can be - used to run the JDK's javac in a JVM separate from Ant. - -* <fixrlf> can now with CR only line-ends and can use an arbitraty - between 2 and 80. - -* The .NET tasks have been adapted to the beta2 release of the framework. - -* <move> will now try to rename() files before copying them byte by - byte - only if filtering is of, of course. - -* <ant> and <antcall> tasks now support a new attribute inheritAll. When set to - false, only user properties are passed through to the target Ant instance. - This includes properties set on the command line and properties explicitly - passed - -* <javadoc> now skips off line links if the package list cannot be found. - -* <wlrun> now allows the security policy file to exist outside the weblogic - directory. - -* <java> task will set the Thread contextClassLoader under JDKs 1.2+ to the - classloader for the class being executed. - -* Introduce the concept of a TaskContainer - a task or element which can contain - Ant Tasks. - -* Add new tasks implementing the TaskContainer interface <parallel> and - <sequential> which allow parallel execution of tasks to be specified. - -* <depend> task will now take into account dependencies on jar files and class - files from a given classpath. - -* <jar> manifest entries may now be specified in the build file either - completely or to be merged with a manifest file. - -* <tstamp> task custom formats now support locales. - -* Added a listner which will forward events to Log4J. The log4j configuration - file should be in the directory from which Ant is run or passed as a system - property using a JVM argument. - -* Introduced the concept of <filtersets> to allow for more control in which - filters get applied in a <copy> or <move> operation. - -* Added nowarn attribute to javac and deprecated the Jikes-magic property - build.compiler.warnings. - -* The <depend> task cache format has changed and all dependency information is - now stored in a single file. - -Fixed bugs: ------------ - -* Testcases have been made independent of current working directory. - -* Input ZIP-Files will be closed when using a <zipfileset>. - -* p4 tasks now don't fail if user, port or client have been omitted - (and this is acceptable for the context of the command). - -* <javah>'s outputfile attribute will be resolved as relative to the - projects basedir. - -* <antstructure> should create a valid DTD for propertyfile.operation.entry - and omit tasks it fails to load. - -* won't try to pass a -bootclasspath flag to javac 1.1 anymore - -* <style>'s style attribute no handles absolute paths correctly. - -* <delete includeemptydirs="true"> now deletes more than just the leaf - directories. - -* You can now specify a <fileset> for a directory that doesn't exist at - declaration time but will created before the fileset gets used for the - first time. - -* If the quiet attribute has been set, <delete> will handle <fileset>s - with non-existing directories gracefully. - -* Output written by testcases will now be captured by the <junit> task - and passed to the formatters. - -* Quote the -group parameter to Javadoc as per the specification - -* Initialise classes when loaded through the AntClassLoader - that is, run - static initializers - -* Implement getResource() and getResources() in AntClassLoader - -* Create the <ejbjar> weblogic command line as a set of arguments rather than - as a single line. Avoids problems with paths which contain spaces. - -* <ejbjar> now fails when the weblogic ejbc compiler reports an error. - -* Make the AntClassLoader load resources in the same order as it currently - loads classes. - -* Handle classpaths with spaces - -* Make sure XSLT processors close their output files in <style>. - -* perform proper uptodate check in <rmic> when compiling for IIOP. - -* <jjtree>'s uptodate test works even if outputdirectory is not the - parent dir of target - -* <copy> will remove target file (if it exists) before writing to it - - this avoids problems with links on filesystems that support them. - -* <ftp> now properly recurses remote directories. - -* <ftp> closes remote connection when it's done. - -* <junit> tries to include all necessary classes for the task itself - to the classpath when running in fork mode - doesn't work for JDK 1.1 - -* <apply> and <execon> do now execute the command only once, if you - specify the parallel attribute - instead of once per fileset. - -* directory based tasks and fileset could miss some included files in - directories that have been excluded - -* <fixcrlf> failed for large files. - -* <move> removed files you tried to move to themselves. - -* <sql> task will not trty to print the result set unless the query succeeded. - -* Ant classloader will now ignore paths which are invalid relative to the - project base - -* <ejbjar> weblogic elements check for jar file changes has been fixed. - Previously some changes would not be included. - -* properties loaded from properties files are now resolved internally. This - removes the spurious warnings about usage of properties which have not been - set. - -* <jar> task and friends now process the JAR manifest to ensure it is valid. - -* The task finished event now includes any exception thrown by the task. - -* <java> task now supports a jvmVersion attribute so that if another JVM is - being used, Ant can determine which options to use for features such as the - VM memory limits - - -Changes from Ant 1.2 to Ant 1.3 -=========================================== - -Changes that could break older environments: --------------------------------------------- - -* Ant doesn't search for the buildfile anymore, unless you use the new - -find argument. - -* <perforce> has been replaced by a number of new tasks. - -* <javac> is now implemented using a factory. This makes extending - javac to use a new compiler a lot easier but may break custom - versions of this task that rely on the old implementation. - -* The output generated by the xml formatter for <junit> has changed a - little, it doesn't append " sec" in the time attribute anymore. - -Other changes: --------------- - -* A GUI Frontend: Antidote. This is currently in development. At this - time, this is not part of the Ant release, although the source is - included if you are interested. - -* New tasks: stylebook, propertyfile, depend, antlr, telnet, csc, - ilasm, apply, javah, several clearcase tasks, junitreport, sound - -* Added output attribute to <java>. - -* Added nested zipfileset element to <zip> - -* Changed <sql> so that printing is at the task level rather than - the statement level. - -* javadoc task will pass -d flag to any doclet if the destDir attribute is - given. If the doclet does not accept the -d flag then omit the destdir - attribute. - -* <cab> can work on non-Windows platforms with the help of libcabinet. - See http://trill.cis.fordham.edu/~barbacha/cabinet_library/. - -* <ftp> now supports passive mode. - -* New <mapper> data type that can be used to get influence on the - target files for some tasks like <copy> or enable new types of tasks - like <apply>. - -* <execon> provides more control over the command line now, the names - of the source files are no longer required to be at the end of the - command. - -* Style tasks will now support TraX compliant XSL processors if one is present - in your classpath. - -* Added a failonerror to the javac task. If set to false, the build will - continue even if there are compilation errors. - -* Added nested format elements to the tstamp task allowing additional time - formats to be defined for arbitrary properties. - -* Added classpath attribute and nested classpath element to <property> - to make the resource attribute more powerful. - -* ${} property expansion will now be performed on the patterns read - from files specified as includesfile or excludesfile attributes. - -* The <tar> and <untar> tasks now support GNU format for handling paths - which are greater than 100 characters in length. In addition the <tar> - task now supports nested filesets through which the file permissions - may be controlled. - -* wlrun, wlstop and ejbjar now support Weblogic 6.0 - -* The MPasre task has been updated to work with MParse 2.0 - -* The documentation has been significantly updated. - - -Fixed bugs: ------------ - -* <signjar> doesn't use deprectated methods anymore. - -* javadoc's failonerror attribute works again - -* javadoc's additionalparam attribute will now be split into separate - parameters (on spaces) to allow for more than one parameter. - -* Changed <sql> task so that printing result sets works on Oracle - -* Changes to ddcreator and ejbc helper to respect the descriptor hierarchy - keppgenerated in ejbc can now be turned off - -* ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor. - CMP files are included by parsing the weblogic deployment descriptor rather - than relying on the naming convention used in ant 1.2 - -* ejbjar includes super classes and super interfaces into the generated ejb - jar files. The <support> nested element allows support classes to be - included in the EJB jar. The toplink element should now correctly locate - the toplink descriptor. - -* <vssget> now correctly deals with spaces in arguments - -* <jar> fails early if a given manifest file doesn't exist - -* <rmic> doesn't search for the _Skel file anymore when stubversion is - set to 1.2. - -* <rmic> uses the the same classpath to verify a class can be rmic'd - as it passes to the compiler. - -* org.apache.tools.mail.MailMessage (and therefore <mail>) can now - handle SMTP servers sending multi line responses. - -* nested <classpath> elements of <taskdef> now work for <taskdef>s not - nested into <target> as well. - -* <property> and <available> will search for the resource "foo" instead - of "/org/apache/tools/ant/taskdefs/foo" when given a relative resource - name foo. - -* Handle build files in directories whose name contained a "#" character - -* <junit> can now log to files whose name contains a comma as well. - -* The AntClassLoader now refers to the loader which loaded it, any - requests it does not handle itself. Previously these went to the - primordial loader. - -Changes from Ant 1.1 to Ant 1.2 -=============================== - -Changes that could break older environments: --------------------------------------------- - -* Semantics of <property> has changed again in the hope to be more -intuitive. ${} expansion now happens at runtime and <property> tags -living inside of targets only take effect if they are visited at -runtime. - -As a side effect of this change, task's attributes get set at runtime -not at parser time as well, which might change the results of -<script>s or other custom tasks that reference other tasks by their id -attribute. - -* copying of support files in <javac> has been removed - as well as -the filtering attribute. - -* the <expand> and <keysubst> tasks have been removed. - -* the ignore and items attributes of directory based tasks have been removed. - -* the command line switches _not_ starting with - have been removed. - -* Path and EnumeratedAttribute have been moved from -org.apache.tools.ant to org.apache.tools.ant.types. - -* the class attributes of <available>, <java>, <rmic> and <taskdef> -have been removed. - -* the src attribute of <chmod> has been removed. - -* <patch> and <javadoc> have lost some of their attributes. - -* <java> and <cvs> have lost some undocumented attributes. - -* the Unix antRun script would search for command.sh in the directory -it changed to and invoke this instead of command if present. This -behavior has been dropped. - -* <ejbjar> task syntax has been changed significantly - -* <exec> is no longer implemented by org.apache.tool.ant.taskdefs.Exec. -Custom tasks that rely on Project.createTask("exec") to return an -instance of this class are going to fail. - -* nested <include> and <exclude> elements expect the value of their -name attribute to be a single pattern, they don't accept multiple -patterns anymore. Split them into multiple elements of the same type. - -* <delete dir="somedir" /> will now delete the directory itself as -well as all included files. If you just want to clean out the -directory and keep the empty one, use a nested fileset. - -Other changes: --------------- - -* New tasks: antstructure, cab, execon, fail, ftp, genkey, jlink, -junit, sql, javacc, jjtree, starteam, war, unwar, uptodate, -native2ascii, copy, move, mparse. - -* copydir, copyfile, deltree and rename are now deprecated. They -should be replaced with the new copy, delete and move tasks. - -* <java> uses a ClassLoader of its own in no-fork mode if a classpath is -specified. - -* <style> will create the necessary target directories and reprocess -all files if the stylesheet changes. - -* New data types fileset and patternset - expected to get a broader use. -They, as well as PATH like structures, can now be defined on a global -level and later be referenced by their id attribute. - -* You can specify environment variables to <exec>. - -* <get> can check whether a remote file is actually newer than a local -copy before it starts a download (HTTP only). - -* Added a -logger option to allow the class which performs logging to be -specified on the command line. - -* Added a -emacs option to tell the logger to leave out taskname adornments -on log output. - -* <chmod> works on all files in parallel and supports multiple filesets. - -* <replace> can now use tokens and/or values that cross line boundaries. - -* build.compiler supports now jvc as well. - -* project specific help can now be obtained with the -projecthelp option. - -* Added a -debug option to make -verbose less verbose (and more useful) - -* Ant will now search for a file named build.xml in the parent directory -and above (towards the root of the filesystem) if you didn't specify --buildfile and there is no build.xml in the current directory. - -* <echo> can now write to a file and accepts nested text. - -Fixed bugs: ------------ - -* <chmod> didn't work when used as a directory based task. - -* Path, Available, Property didn't resolve relative filenames with -respect to the Project's basedir. - -* Project didn't interpret the basedir attribute correctly in all -cases. - -* Nested <src> in <javac> caused NullPointerException. - -* Corrupt Zip- and Jar-files ar now deleted if the task fails. - -* many more fixes we've forgotten to document here ... - -* The packagelistloc attribute of <javadoc>'s <link> child will be - resolved as a file (i.e. it is either absolute or relative to - basedir). diff --git a/lib/ant/ant-src.zip b/lib/ant/ant-src.zip Binary files differdeleted file mode 100644 index 4da88b5c0..000000000 --- a/lib/ant/ant-src.zip +++ /dev/null diff --git a/lib/ant/aspectj-ant-readme.txt b/lib/ant/aspectj-ant-readme.txt deleted file mode 100644 index ad82c1676..000000000 --- a/lib/ant/aspectj-ant-readme.txt +++ /dev/null @@ -1,14 +0,0 @@ - -The AspectJ tree builds using Ant 1.6.3. -(No longer is a special version of Ant required.) - -To run tests using the junit task, junit.jar is added to lib/. - -This directory contains: - -o The contents of the binary distribution of Ant 1.6.3, - not including the docs directory. - -o ant-src.zip, .java extracted from the source distribution of Ant 1.6.3. - -For Ant, see http://ant.apache.org. diff --git a/lib/ant/bin/ant b/lib/ant/bin/ant deleted file mode 100644 index cf336db07..000000000 --- a/lib/ant/bin/ant +++ /dev/null @@ -1,299 +0,0 @@ -#! /bin/sh - -# Copyright 2001-2005 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Extract launch and ant arguments, (see details below). -ant_exec_args= -no_config=false -use_jikes_default=false -ant_exec_debug=false -show_help=false -for arg in "$@" ; do - if [ "$arg" = "--noconfig" ] ; then - no_config=true - elif [ "$arg" = "--usejikes" ] ; then - use_jikes_default=true - elif [ "$arg" = "--execdebug" ] ; then - ant_exec_debug=true - elif [ my"$arg" = my"--h" -o my"$arg" = my"--help" ] ; then - show_help=true - ant_exec_args="$ant_exec_args -h" - else - if [ my"$arg" = my"-h" -o my"$arg" = my"-help" ] ; then - show_help=true - fi - ant_exec_args="$ant_exec_args \"$arg\"" - fi -done - -# Source/default ant configuration -if $no_config ; then - rpm_mode=false - usejikes=$use_jikes_default -else - # load system-wide ant configuration - if [ -f "/etc/ant.conf" ] ; then - . /etc/ant.conf - fi - - # load user ant configuration - if [ -f "$HOME/.ant/ant.conf" ] ; then - . $HOME/.ant/ant.conf - fi - if [ -f "$HOME/.antrc" ] ; then - . "$HOME/.antrc" - fi - - # provide default configuration values - if [ -z "$rpm_mode" ] ; then - rpm_mode=false - fi - if [ -z "$usejikes" ] ; then - usejikes=$use_jikes_default - fi -fi - -# Setup Java environment in rpm mode -if $rpm_mode ; then - if [ -f /usr/share/java-utils/java-functions ] ; then - . /usr/share/java-utils/java-functions - set_jvm - set_javacmd - fi -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -case "`uname`" in - CYGWIN*) cygwin=true ;; - Darwin*) darwin=true - if [ -z "$JAVA_HOME" ] ; then - JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home - fi - ;; -esac - -if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then - ## resolve links - $0 may be a link to ant's home - PRG="$0" - progname=`basename "$0"` - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi - done - - ANT_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - ANT_HOME=`cd "$ANT_HOME" && pwd` -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$ANT_HOME" ] && - ANT_HOME=`cygpath --unix "$ANT_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# set ANT_LIB location -ANT_LIB="${ANT_HOME}/lib" - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD=`which java 2> /dev/null ` - if [ -z "$JAVACMD" ] ; then - JAVACMD=java - fi - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." - echo " We cannot execute $JAVACMD" - exit 1 -fi - -# Build local classpath using just the launcher in non-rpm mode or -# use the Jpackage helper in rpm mode with basic and default jars -# specified in the ant.conf configuration. Because the launcher is -# used, libraries linked in ANT_HOME will also be include, but this -# is discouraged as it is not java-version safe. A user should -# request optional jars and their dependencies via the OPT_JAR_LIST -# variable -if $rpm_mode && [ -f /usr/bin/build-classpath ] ; then - LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)" - # If the user requested to try to add some other jars to the classpath - if [ -n "$OPT_JAR_LIST" ] ; then - _OPTCLASSPATH="$(/usr/bin/build-classpath $OPT_JAR_LIST 2> /dev/null)" - if [ -n "$_OPTCLASSPATH" ] ; then - LOCALCLASSPATH="$LOCALCLASSPATH:$_OPTCLASSPATH" - fi - fi - - # Explicitly add javac path to classpath, assume JAVA_HOME set - # properly in rpm mode - if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then - LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar" - fi - if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then - LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip" - fi - - # if CLASSPATH_OVERRIDE env var is set, LOCALCLASSPATH will be - # user CLASSPATH first and ant-found jars after. - # In that case, the user CLASSPATH will override ant-found jars - # - # if CLASSPATH_OVERRIDE is not set, we'll have the normal behaviour - # with ant-found jars first and user CLASSPATH after - if [ -n "$CLASSPATH" ] ; then - # merge local and specified classpath - if [ -z "$LOCALCLASSPATH" ] ; then - LOCALCLASSPATH="$CLASSPATH" - elif [ -n "$CLASSPATH_OVERRIDE" ] ; then - LOCALCLASSPATH="$CLASSPATH:$LOCALCLASSPATH" - else - LOCALCLASSPATH="$LOCALCLASSPATH:$CLASSPATH" - fi - - # remove class path from launcher -cp option - CLASSPATH="" - fi -else - # not using rpm_mode; use launcher to determine classpaths - if [ -z "$LOCALCLASSPATH" ] ; then - LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar - else - LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH - fi -fi - -if [ -n "$JAVA_HOME" ] ; then - # OSX hack to make Ant work with jikes - if $darwin ; then - OSXHACK="${JAVA_HOME}/../Classes" - if [ -d "${OSXHACK}" ] ; then - for i in "${OSXHACK}"/*.jar - do - JIKESPATH="$JIKESPATH:$i" - done - fi - fi -fi - -# Allow Jikes support (off by default) -if $usejikes; then - ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes" -fi - -# For Cygwin, switch paths to appropriate format before running java -# For PATHs convert to unix format first, then to windows format to ensure -# both formats are supported. Probably this will fail on directories with ; -# in the name in the path. Let's assume that paths containing ; are more -# rare than windows style paths on cygwin. -if $cygwin; then - if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then - format=mixed - else - format=windows - fi - ANT_HOME=`cygpath --$format "$ANT_HOME"` - ANT_LIB=`cygpath --$format "$ANT_LIB"` - JAVA_HOME=`cygpath --$format "$JAVA_HOME"` - LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"` - LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"` - if [ -n "$CLASSPATH" ] ; then - CP_TEMP=`cygpath --path --unix "$CLASSPATH"` - CLASSPATH=`cygpath --path --$format "$CP_TEMP"` - fi - CYGHOME=`cygpath --$format "$HOME"` -fi - -# Show script help if requested -if $show_help ; then - echo $0 '[script options] [options] [target [target2 [target3] ..]]' - echo 'Script Options:' - echo ' --help, --h print this message and ant help' - echo ' --noconfig suppress sourcing of /etc/ant.conf,' - echo ' $HOME/.ant/ant.conf, and $HOME/.antrc' - echo ' configuration files' - echo ' --usejikes enable use of jikes by default, unless' - echo ' set explicitly in configuration files' - echo ' --execdebug print ant exec line generated by this' - echo ' launch script' - echo ' ' -fi -# add a second backslash to variables terminated by a backslash under cygwin -if $cygwin; then - case "$ANT_HOME" in - *\\ ) - ANT_HOME="$ANT_HOME\\" - ;; - esac - case "$CYGHOME" in - *\\ ) - CYGHOME="$CYGHOME\\" - ;; - esac - case "$JIKESPATH" in - *\\ ) - JIKESPATH="$JIKESPATH\\" - ;; - esac - case "$LOCALCLASSPATH" in - *\\ ) - LOCALCLASSPATH="$LOCALCLASSPATH\\" - ;; - esac - case "$CLASSPATH" in - *\\ ) - CLASSPATH="$CLASSPATH\\" - ;; - esac -fi -# Execute ant using eval/exec to preserve spaces in paths, -# java options, and ant args -ant_sys_opts= -if [ -n "$CYGHOME" ]; then - if [ -n "$JIKESPATH" ]; then - ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\" -Dcygwin.user.home=\"$CYGHOME\"" - else - ant_sys_opts="-Dcygwin.user.home=\"$CYGHOME\"" - fi -else - if [ -n "$JIKESPATH" ]; then - ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\"" - fi -fi -ant_exec_command="exec \"$JAVACMD\" $ANT_OPTS -classpath \"$LOCALCLASSPATH\" -Dant.home=\"$ANT_HOME\" -Dant.library.dir=\"$ANT_LIB\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"$CLASSPATH\" $ant_exec_args" -if $ant_exec_debug ; then - echo $ant_exec_command -fi -eval $ant_exec_command diff --git a/lib/ant/bin/ant.bat b/lib/ant/bin/ant.bat deleted file mode 100644 index 55df28186..000000000 --- a/lib/ant/bin/ant.bat +++ /dev/null @@ -1,126 +0,0 @@ -@echo off
-
-REM Copyright 2001,2004-2005 The Apache Software Foundation
-REM
-REM Licensed under the Apache License, Version 2.0 (the "License");
-REM you may not use this file except in compliance with the License.
-REM You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing, software
-REM distributed under the License is distributed on an "AS IS" BASIS,
-REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM See the License for the specific language governing permissions and
-REM limitations under the License.
-
-if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
-
-if "%OS%"=="Windows_NT" @setlocal
-if "%OS%"=="WINNT" @setlocal
-
-rem %~dp0 is expanded pathname of the current script under NT
-set DEFAULT_ANT_HOME=%~dp0..
-
-if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
-set DEFAULT_ANT_HOME=
-
-set _USE_CLASSPATH=yes
-
-rem Slurp the command line arguments. This loop allows for an unlimited number
-rem of arguments (up to the command line limit, anyway).
-set ANT_CMD_LINE_ARGS=%1
-if ""%1""=="""" goto doneStart
-shift
-:setupArgs
-if ""%1""=="""" goto doneStart
-if ""%1""==""-noclasspath"" goto clearclasspath
-set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
-shift
-goto setupArgs
-
-rem here is there is a -noclasspath in the options
-:clearclasspath
-set _USE_CLASSPATH=no
-shift
-goto setupArgs
-
-rem This label provides a place for the argument list loop to break out
-rem and for NT handling to skip to.
-
-:doneStart
-rem find ANT_HOME if it does not exist due to either an invalid value passed
-rem by the user or the %0 problem on Windows 9x
-if exist "%ANT_HOME%\lib\ant.jar" goto checkJava
-
-rem check for ant in Program Files
-if not exist "%ProgramFiles%\ant" goto checkSystemDrive
-set ANT_HOME=%ProgramFiles%\ant
-goto checkJava
-
-:checkSystemDrive
-rem check for ant in root directory of system drive
-if not exist %SystemDrive%\ant\lib\ant.jar goto checkCDrive
-set ANT_HOME=%SystemDrive%\ant
-goto checkJava
-
-:checkCDrive
-rem check for ant in C:\ant for Win9X users
-if not exist C:\ant\lib\ant.jar goto noAntHome
-set ANT_HOME=C:\ant
-goto checkJava
-
-:noAntHome
-echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
-goto end
-
-:checkJava
-set _JAVACMD=%JAVACMD%
-
-if "%JAVA_HOME%" == "" goto noJavaHome
-if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
-if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
-goto checkJikes
-
-:noJavaHome
-if "%_JAVACMD%" == "" set _JAVACMD=java.exe
-
-:checkJikes
-if not "%JIKESPATH%"=="" goto runAntWithJikes
-
-:runAnt
-if "%_USE_CLASSPATH%"=="no" goto runAntNoClasspath
-if not "%CLASSPATH%"=="" goto runAntWithClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntNoClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntWithClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntWithJikes
-if "%_USE_CLASSPATH%"=="no" goto runAntWithJikesNoClasspath
-if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath
-
-:runAntWithJikesNoClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntWithJikesAndClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
-goto end
-
-:end
-set _JAVACMD=
-set ANT_CMD_LINE_ARGS=
-
-if "%OS%"=="Windows_NT" @endlocal
-if "%OS%"=="WINNT" @endlocal
-
-:mainEnd
-if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
-
diff --git a/lib/ant/bin/ant.cmd b/lib/ant/bin/ant.cmd deleted file mode 100644 index 4bb903f5f..000000000 --- a/lib/ant/bin/ant.cmd +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright 2003-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Run ant -*/ - -'@echo off' -parse arg mode envarg '::' antarg - -if mode\='.' & mode\='..' & mode\='/' then do - envarg = mode envarg - mode = '' -end - -if antarg = '' then do - antarg = envarg - envarg = '' -end - -x = setlocal() - -env="OS2ENVIRONMENT" -antenv = _getenv_('antenv') -if _testenv_() = 0 then interpret 'call "' || antenv || '"' '"' || envarg || '"' - -if mode = '' then mode = _getenv_('ANT_MODE' '..') -if mode \= '/' then do - runrc = _getenv_('runrc') - antrc = _getenv_('antrc' 'antrc.cmd') - if mode = '..' then mode = '-r' - else mode = '' - interpret 'call "' || runrc || '"' antrc '"' || mode || '"' -end - -if _testenv_() = 0 then do - say 'Ant environment is not set properly' - x = endlocal() - exit 16 -end - -settings = '-Dant.home=' || ANT_HOME '-Djava.home=' || JAVA_HOME - -java = _getenv_('javacmd' 'java') -opts = value('ANT_OPTS',,env) -args = value('ANT_ARGS',,env) -lcp = value('LOCALCLASSPATH',,env) -cp = value('CLASSPATH',,env) -if value('ANT_USE_CP',,env) \= '' then do - if lcp \= '' & right(lcp, 1) \= ';' then lcp = lcp || ';' - lcp = lcp || cp - 'SET CLASSPATH=' -end -if lcp\='' then lcp = '-classpath' lcp - -cmd = java opts lcp '-jar' ANT_HOME ||'\lib\ant-launcher.jar' settings args antarg -launcher = stream(ANT_HOME ||'\lib\ant-launcher.jar', 'C', 'query exists') -if launcher = '' then entry = 'org.apache.tools.ant.Main' -else entry = 'org.apache.tools.ant.launch.Launcher' -java opts lcp entry settings args antarg - -x = endlocal() - -return rc - -_testenv_: procedure expose env ANT_HOME JAVA_HOME -ANT_HOME = value('ANT_HOME',,env) -if ANT_HOME = '' then return 0 -JAVA_HOME = value('JAVA_HOME',,env) -if JAVA_HOME = '' then return 0 -cp = translate(value('CLASSPATH',,env)) -if pos(translate(ANT_HOME), cp) = 0 then return 0 -if pos(translate(JAVA_HOME), cp) = 0 then return 0 -return 1 - -_getenv_: procedure expose env -parse arg envar default -if default = '' then default = envar -var = value(translate(envar),,env) -if var = '' then var = default -return var diff --git a/lib/ant/bin/antRun b/lib/ant/bin/antRun deleted file mode 100644 index baddd71cd..000000000 --- a/lib/ant/bin/antRun +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# -# Copyright 2001-2002,2004 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# - -# Args: DIR command -cd "$1" -CMD="$2" -shift -shift - -exec "$CMD" "$@" diff --git a/lib/ant/bin/antRun.bat b/lib/ant/bin/antRun.bat deleted file mode 100644 index aae98ccf0..000000000 --- a/lib/ant/bin/antRun.bat +++ /dev/null @@ -1,47 +0,0 @@ -@echo off
-
-REM
-REM Copyright 2001-2002,2004-2005 The Apache Software Foundation
-REM
-REM Licensed under the Apache License, Version 2.0 (the "License");
-REM you may not use this file except in compliance with the License.
-REM You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing, software
-REM distributed under the License is distributed on an "AS IS" BASIS,
-REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM See the License for the specific language governing permissions and
-REM limitations under the License.
-REM
-REM
-
-if "%OS%"=="Windows_NT" @setlocal
-if "%OS%"=="WINNT" @setlocal
-
-if ""%1""=="""" goto runCommand
-
-rem Change drive and directory to %1
-if "%OS%"=="Windows_NT" cd /d ""%1""
-if not "%OS%"=="Windows_NT" cd ""%1""
-shift
-
-rem Slurp the command line arguments. This loop allows for an unlimited number
-rem of agruments (up to the command line limit, anyway).
-set ANT_RUN_CMD=%1
-if ""%1""=="""" goto runCommand
-shift
-:loop
-if ""%1""=="""" goto runCommand
-set ANT_RUN_CMD=%ANT_RUN_CMD% %1
-shift
-goto loop
-
-:runCommand
-rem echo %ANT_RUN_CMD%
-%ANT_RUN_CMD%
-
-if "%OS%"=="Windows_NT" @endlocal
-if "%OS%"=="WINNT" @endlocal
-
diff --git a/lib/ant/bin/antRun.pl b/lib/ant/bin/antRun.pl deleted file mode 100644 index 7cdd8687c..000000000 --- a/lib/ant/bin/antRun.pl +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/perl -# -# Copyright 2001,2003-2004 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -####################################################################### -# -# antRun.pl -# -# wrapper script for invoking commands on a platform with Perl installed -# this is akin to antRun.bat, and antRun the SH script -# -# created: 2001-10-18 -# author: Jeff Tulley jtulley@novell.com -####################################################################### -#be fussy about variables -use strict; - -#turn warnings on during dev; generates a few spurious uninitialised var access warnings -#use warnings; - -#and set $debug to 1 to turn on trace info (currently unused) -my $debug=1; - -####################################################################### -# change drive and directory to "%1" -my $ANT_RUN_CMD = @ARGV[0]; - -# assign current run command to "%2" -chdir (@ARGV[0]) || die "Can't cd to $ARGV[0]: $!\n"; -if ($^O eq "NetWare") { - # There is a bug in Perl 5 on NetWare, where chdir does not - # do anything. On NetWare, the following path-prefixed form should - # always work. (afaict) - $ANT_RUN_CMD .= "/".@ARGV[1]; -} -else { - $ANT_RUN_CMD = @ARGV[1]; -} - -# dispose of the first two arguments, leaving only the command's args. -shift; -shift; - -# run the command -my $returnValue = system $ANT_RUN_CMD, @ARGV; -if ($returnValue eq 0) { - exit 0; -} -else { - # only 0 and 1 are widely recognized as exit values - # so change the exit value to 1 - exit 1; -} diff --git a/lib/ant/bin/antenv.cmd b/lib/ant/bin/antenv.cmd deleted file mode 100644 index b9b0db467..000000000 --- a/lib/ant/bin/antenv.cmd +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright 2003-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Ant environment -*/ - -'@echo off' -call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs" -call SysLoadFuncs - -/* Prepare the parameters for later use */ -parse arg argv -mode = '' -args = '' -opts = '' -cp = '' -lcp = '' - -do i = 1 to words(argv) - param = word(argv, i) - select - when param='-lcp' then mode = 'l' - when param='-cp' | param='-classpath' then mode = 'c' - when abbrev('-opts', param, 4) then mode = 'o' - when abbrev('-args', param, 4) then mode = 'a' - otherwise - select - when mode = 'a' then args = space(args param, 1) - when mode = 'c' then cp = space(cp param, 1) - when mode = 'l' then lcp = space(lcp param, 1) - when mode = 'o' then opts = space(opts param, 1) - otherwise - say 'Option' param 'ignored' - end - end -end - -env="OS2ENVIRONMENT" -antconf = _getenv_('antconf' 'antconf.cmd') -runrc = _getenv_('runrc') -interpret 'call "' || runrc || '"' '"' || antconf || '"' 'ETC' -ANT_HOME = value('ANT_HOME',,env) -JAVA_HOME = value('JAVA_HOME',,env) -classpath = value('CLASSPATH',,env) -classes = stream(JAVA_HOME || "\lib\classes.zip", "C", "QUERY EXISTS") -if classes \= '' then classpath = prepend(classpath classes) -classes = stream(JAVA_HOME || "\lib\tools.jar", "C", "QUERY EXISTS") -if classes \= '' then classpath = prepend(classpath classes) - -classpath = prepend(classpath ANT_HOME || '\lib\ant-launcher.jar') -'SET CLASSPATH=' || classpath - -/* Setting classpathes, options and arguments */ -envset = _getenv_('envset') -if cp\='' then interpret 'call "' || envset || '"' '"; CLASSPATH"' '"' || cp || '"' -if lcp\='' then interpret 'call "' || envset || '"' '"; LOCALCLASSPATH"' '"' || lcp || '"' -if opts\='' then interpret 'call "' || envset || '"' '"-D ANT_OPTS"' '"' || opts || '"' -if args\='' then interpret 'call "' || envset || '"' '"ANT_ARGS"' '"' || args || '"' - -exit 0 - -addpath: procedure -parse arg path elem -if elem = '' then do - if path\='' & right(path, 1)\=';' then path = path || ';' - return path -end -if substr(path, length(path)) = ';' then glue = '' -else glue = ';' -if pos(translate(elem), translate(path)) = 0 then path = path || glue || elem || ';' -return path - -prepend: procedure -parse arg path elem -if elem = '' then do - if path\='' & right(path, 1)\=';' then path = path || ';' - return path -end -if pos(translate(elem), translate(path)) = 0 then path = elem || ';' || path -return path - -_getenv_: procedure expose env -parse arg envar default -if default = '' then default = envar -var = value(translate(envar),,env) -if var = '' then var = default -return var diff --git a/lib/ant/bin/complete-ant-cmd.pl b/lib/ant/bin/complete-ant-cmd.pl deleted file mode 100644 index 20dd47619..000000000 --- a/lib/ant/bin/complete-ant-cmd.pl +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/perl -# -# Copyright 2001,2004 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT 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 script to allow Bash or Z-Shell to complete an Ant command-line. -# -# To install for Bash 2.0 or better, add the following to ~/.bashrc: -# -# $ complete -C complete-ant-cmd ant build.sh -# -# To install for Z-Shell 2.5 or better, add the following to ~/.zshrc: -# -# function ant_complete () { -# local args_line args -# read -l args_line -# set -A args $args_line -# set -A reply $(COMP_LINE=$args_line complete-ant-cmd ${args[1]} $1) -# } -# compctl -K ant_complete ant build.sh -# -# @author Mike Williams <mikew@cortexebusiness.com.au> - -my $cmdLine = $ENV{'COMP_LINE'}; -my $antCmd = $ARGV[0]; -my $word = $ARGV[1]; - -my @completions; -if ($word =~ /^-/) { - list( restrict( $word, getArguments() )); -} elsif ($cmdLine =~ /-(f|buildfile)\s+\S*$/) { - list( getBuildFiles($word) ); -} else { - list( restrict( $word, getTargets() )); -} - -exit(0); - -sub list { - for (@_) { - print "$_\n"; - } -} - -sub restrict { - my ($word, @completions) = @_; - grep( /^\Q$word\E/, @completions ); -} - -sub getArguments { - qw(-buildfile -debug -emacs -f -find -help -listener -logfile - -logger -projecthelp -quiet -verbose -version); -} - - -sub getBuildFiles { - my ($word) = @_; - grep( /\.xml$/, glob( "$word*" )); -} - -sub getTargets { - - # Look for build-file - my $buildFile = 'build.xml'; - if ($cmdLine =~ /-(f|buildfile)\s+(\S+)/) { - $buildFile = $2; - } - return () unless (-f $buildFile); - - # Run "ant -projecthelp" to list targets. Keep a cache of results in a - # cache-file. - my $cacheFile = $buildFile; - $cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|; - if ((!-e $cacheFile) || (-M $buildFile) < (-M $cacheFile)) { - open( CACHE, '>'.$cacheFile ) || die "can\'t write $cacheFile: $!\n"; - open( HELP, "$antCmd -projecthelp -f '$buildFile'|" ) || return(); - my %targets; - while( <HELP> ) { - if (/^\s+(\S+)/) { - $targets{$1}++; - } - } - my @targets = sort keys %targets; - for (@targets) { print CACHE "$_\n"; } - return @targets; - } - - # Read the target-cache - open( CACHE, $cacheFile ) || die "can\'t read $cacheFile: $!\n"; - my @targets; - while (<CACHE>) { - chop; - s/\r$//; # for Cygwin - push( @targets, $_ ); - } - close( CACHE ); - @targets; - -} - - - diff --git a/lib/ant/bin/envset.cmd b/lib/ant/bin/envset.cmd deleted file mode 100644 index cb91d8733..000000000 --- a/lib/ant/bin/envset.cmd +++ /dev/null @@ -1,130 +0,0 @@ -/* - - Copyright 2003-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -SET environment variables -First optional parameter: - ; parameters are considered parts of a path variable, semicolons are - appended to each element if not already present - -D parameters are properties for Java or Makefile etc., -D will be - prepended and the parameters will be separated by a space - =D the same as above but equal sign is not required - , parameters should be comma separated in the environment variable - - parameters should be separated by the next parameter - Other values mean that the first parameter is missing and the environment - variable will be set to the space separated parameters - -Second parameter: name of the environment variable - -Next parameters: values -; implies that the equal sign is considered a part of the parameter and is -not interpreted - --D requires parameters in the form name=value. If the equal sign is not found, -the parameters are changed to name=expanded_name - -Other options have optional equal sign. If it is found, only the part after -the equal sign will be oprionally expanded. - -If the parameter is the minus sign, the next parameter will not be expanded. -If the parameter is a single dot, it will be replaced with the value of the -environment variable as it existed before envset was invoked. - -For other parameters the batch looks for the environment variable with the -same name (in uppercase). If it is found, it forms the expanded_name. If -the environment variable with such a name does not exist, the expanded_name -will hold the parameter name without case conversion. -*/ - -parse arg mode envar args - -equal = 0 -sep = ' ' - -/* Parse command line parameters */ -select - when mode='-' then do - sep = envar - parse var args envar args - end - when mode=';' then do - sep = '' - equal = -1 - end - when mode='-D' then equal = 1 - when mode='=D' then mode = '-D' - when mode=',' then sep = ',' -otherwise - args = envar args - envar = mode - mode = '' -end - -env = 'OS2ENVIRONMENT' -envar = translate(envar) -orig = value(envar,,env) -newval = '' -expand = 1 - -/* for each parameter... */ -do i = 1 to words(args) - if expand > 0 & word(args, i) = '-' then expand = 0 - else call addval word(args, i) -end - -/* Optionally enclose path variable by quotes */ -if mode = ';' & pos(' ', newval) > 0 then newval = '"' || newval || '"' - -/* Set the new value, 'SET' cannot be used since it does not allow '=' */ -x = value(envar, newval, env) -exit 0 - -addval: procedure expose sep equal orig expand newval mode env -parse arg var - -if var = '.' then expvar = orig -else do - if equal >= 0 then do - parse var var name '=' val - if val = '' then var = name - else var = val - end - if expand = 0 then expvar = var - else expvar = value(translate(var),,env) - if expvar = '' then expvar = var - if equal >= 0 then do - if val = '' then do - parse var expvar key '=' val - if val <> '' then name = key - else do - if equal > 0 then val = key - else name = key - end - end - else val = expvar - if pos(' ', val) > 0 | pos('=', val) > 0 then val = '"' || val || '"' - if val = '' then expvar = name - else expvar = name || '=' || val - end - if mode = '-D' then expvar = '-D' || expvar - if mode = ';' then do - if right(expvar, 1) <> ';' then expvar = expvar || ';' - end -end - -if newval = '' then newval = expvar -else newval = newval || sep || expvar -expand = 1 -return diff --git a/lib/ant/bin/lcp.bat b/lib/ant/bin/lcp.bat deleted file mode 100644 index 6a1f679e7..000000000 --- a/lib/ant/bin/lcp.bat +++ /dev/null @@ -1,30 +0,0 @@ -REM
-REM Copyright 2001-2004 The Apache Software Foundation
-REM
-REM Licensed under the Apache License, Version 2.0 (the "License");
-REM you may not use this file except in compliance with the License.
-REM You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing, software
-REM distributed under the License is distributed on an "AS IS" BASIS,
-REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM See the License for the specific language governing permissions and
-REM limitations under the License.
-REM
-REM
-
-set _CLASSPATHCOMPONENT=%1
-if ""%1""=="""" goto gotAllArgs
-shift
-
-:argCheck
-if ""%1""=="""" goto gotAllArgs
-set _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1
-shift
-goto argCheck
-
-:gotAllArgs
-set LOCALCLASSPATH=%_CLASSPATHCOMPONENT%;%LOCALCLASSPATH%
-
diff --git a/lib/ant/bin/runant.pl b/lib/ant/bin/runant.pl deleted file mode 100644 index eca470822..000000000 --- a/lib/ant/bin/runant.pl +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/perl -# -# Copyright 2000-2004 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -####################################################################### -# -# runant.pl -# -# wrapper script for invoking ant in a platform with Perl installed -# this may include cgi-bin invocation, which is considered somewhat daft. -# (slo: that should be a separate file which can be derived from this -# and returns the XML formatted output) -# -# the code is not totally portable due to classpath and directory splitting -# issues. oops. (NB, use File::Spec::Functions will help and the code is -# structured for the catfile() call, but because of perl version funnies -# the code is not included. -# -# created: 2000-8-24 -# author: Steve Loughran steve_l@sourceforge.net -####################################################################### -# -# Assumptions: -# -# - the "java" executable/script is on the command path -# - ANT_HOME has been set -# - target platform uses ":" as classpath separator or perl indicates it is dos/win32 -# - target platform uses "/" as directory separator. - -#be fussy about variables -use strict; - -#platform specifics (disabled) -#use File::Spec::Functions; - -#turn warnings on during dev; generates a few spurious uninitialised var access warnings -#use warnings; - -#and set $debug to 1 to turn on trace info -my $debug=1; - -####################################################################### -# -# check to make sure environment is setup -# - -my $HOME = $ENV{ANT_HOME}; -if ($HOME eq "") - { - die "\n\nANT_HOME *MUST* be set!\n\n"; - } - -my $JAVACMD = $ENV{JAVACMD}; -$JAVACMD = "java" if $JAVACMD eq ""; - -my $onnetware = 0; -if ($^O eq "NetWare") -{ - $onnetware = 1; -} - -my $oncygwin = ($^O eq "cygwin"); - -#ISSUE: what java wants to split up classpath varies from platform to platform -#and perl is not too hot at hinting which box it is on. -#here I assume ":" 'cept on win32, dos, and netware. Add extra tests here as needed. -my $s=":"; -if(($^O eq "MSWin32") || ($^O eq "dos") || ($^O eq "cygwin") || - ($onnetware == 1)) - { - $s=";"; - } - -#build up standard classpath -my $localpath = "$HOME/lib/ant-launcher.jar"; -#set JVM options and Ant arguments, if any -my @ANT_OPTS=split(" ", $ENV{ANT_OPTS}); -my @ANT_ARGS=split(" ", $ENV{ANT_ARGS}); - -#jikes -if($ENV{JIKESPATH} ne "") - { - push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}"; - } - -#construct arguments to java -my @ARGS; -push @ARGS, @ANT_OPTS; - -my $CYGHOME = ""; - -my $classpath=$ENV{CLASSPATH}; -if ($oncygwin == 1) { - $localpath = `cygpath --path --windows $localpath`; - chomp ($localpath); - if (! $classpath eq "") - { - $classpath = `cygpath --path --windows "$classpath"`; - chomp ($classpath); - } - $HOME = `cygpath --path --windows $HOME`; - chomp ($HOME); - $CYGHOME = `cygpath --path --windows $ENV{HOME}`; - chomp ($CYGHOME); -} -push @ARGS, "-classpath", "$localpath"; -push @ARGS, "-Dant.home=$HOME"; -if ( ! $CYGHOME eq "" ) -{ - push @ARGS, "-Dcygwin.user.home=\"$CYGHOME\"" -} -push @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS; -push @ARGS, @ARGV; -if (! $classpath eq "") -{ - if ($onnetware == 1) - { - # make classpath literally $CLASSPATH - # this is to avoid pushing us over the 512 character limit - # even skip the ; - that is already in $localpath - push @ARGS, "-lib", "\$CLASSPATH"; - } - else - { - push @ARGS, "-lib", "$classpath"; - } -} -print "\n $JAVACMD @ARGS\n\n" if ($debug); - -my $returnValue = system $JAVACMD, @ARGS; -if ($returnValue eq 0) - { - exit 0; - } -else - { - # only 0 and 1 are widely recognized as exit values - # so change the exit value to 1 - exit 1; - } diff --git a/lib/ant/bin/runant.py b/lib/ant/bin/runant.py deleted file mode 100644 index c7b53b692..000000000 --- a/lib/ant/bin/runant.py +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/python -# Copyright 2001,2003-2004 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -""" - - runant.py - - This script is a translation of the runant.pl written by Steve Loughran. - It runs ant with/out arguments, it should be quite portable (thanks to - the python os library) - This script has been tested with Python2.0/Win2K - - created: 2001-04-11 - author: Pierre Dittgen pierre.dittgen@criltelecom.com - - Assumptions: - - - the "java" executable/script is on the command path -""" -import os, os.path, string, sys - -# Change it to 1 to get extra debug information -debug = 0 - -####################################################################### - -# If ANT_HOME is not set default to script's parent directory -if os.environ.has_key('ANT_HOME'): - ANT_HOME = os.environ['ANT_HOME'] -else: - ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))) - -# set ANT_LIB location -ANT_LIB = os.path.join(ANT_HOME, 'lib') - -# set JAVACMD (check variables JAVACMD and JAVA_HOME) -JAVACMD = None -if not os.environ.has_key('JAVACMD'): - if os.environ.has_key('JAVA_HOME'): - if not os.path.exists(os.environ['JAVA_HOME']): - print "Warning: JAVA_HOME is not defined correctly." - else: - JAVACMD = os.path.join(os.environ['JAVA_HOME'], 'bin', 'java') - else: - print "Warning: JAVA_HOME not set." -else: - JAVACMD = os.environ['JAVACMD'] -if not JAVACMD: - JAVACMD = 'java' - -launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar') -if not os.path.exists(launcher_jar): - print 'Unable to locate ant-launcher.jar. Expected to find it in %s' % \ - ANT_LIB - -# Build up standard classpath (LOCALCLASSPATH) -LOCALCLASSPATH = launcher_jar -if os.environ.has_key('LOCALCLASSPATH'): - LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH'] - -ANT_OPTS = "" -if os.environ.has_key('ANT_OPTS'): - ANT_OPTS = os.environ['ANT_OPTS'] - -OPTS = "" -if os.environ.has_key('JIKESPATH'): - OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH'] - -ANT_ARGS = "" -if os.environ.has_key('ANT_ARGS'): - ANT_ARGS = os.environ['ANT_ARGS'] - -CLASSPATH = "" -if os.environ.has_key('CLASSPATH'): - CLASSPATH = os.environ['CLASSPATH'] - -# Builds the commandline -cmdline = ('%s %s -classpath %s -Dant.home=%s %s ' + \ - 'org.apache.tools.ant.launch.Launcher %s -lib %s %s') \ - % (JAVACMD, ANT_OPTS, LOCALCLASSPATH, ANT_HOME, OPTS, ANT_ARGS, \ - CLASSPATH, string.join(sys.argv[1:], ' ')) - -if debug: - print '\n%s\n\n' % (cmdline) - -# Run the biniou! -os.system(cmdline) diff --git a/lib/ant/bin/runrc.cmd b/lib/ant/bin/runrc.cmd deleted file mode 100644 index 0337a80a2..000000000 --- a/lib/ant/bin/runrc.cmd +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright 2003-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Run RC file, name is in the first arg, second arg is either PATH - ENV or -r or nothing -*/ - -parse arg name path rest - -if name = '' then do - say 'RC file name is missing' - exit 1 -end - -if rest \= '' then do - say 'Too many parameters' - exit 1 -end - -call runit name path -exit 0 - -runit: procedure -parse arg name path dir - -if path \= '' & path \= '-r' then do - dir = value(translate(path),,'OS2ENVIRONMENT') - if dir = '' then return - dir = translate(dir, '\', '/') /* change UNIX-like path to OS/2 */ -end - -if dir = '' then dir = directory() - -if path = '-r' then do /* recursive call */ - subdir = filespec('path', dir) - if subdir \= '\' then do - subdir = left(subdir, length(subdir)-1) - call runit name path filespec('drive', dir) || subdir - end -end - -/* Look for the file and run it */ -if right(dir, 1) \= '\' then dir = dir || '\' -rcfile = stream(dir || name, 'c', 'query exists') -if rcfile \= '' then interpret 'call "' || rcfile || '"' - -return diff --git a/lib/ant/etc/ant-bootstrap.jar b/lib/ant/etc/ant-bootstrap.jar Binary files differdeleted file mode 100644 index 75fcba1b1..000000000 --- a/lib/ant/etc/ant-bootstrap.jar +++ /dev/null diff --git a/lib/ant/etc/changelog.xsl b/lib/ant/etc/changelog.xsl deleted file mode 100644 index cd0d11721..000000000 --- a/lib/ant/etc/changelog.xsl +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<xsl:stylesheet - xmlns:xsl='http://www.w3.org/1999/XSL/Transform' - version='1.0'> - -<!-- - Copyright 2002,2004-2005 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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:param name="title"/> - <xsl:param name="module"/> - <xsl:param name="cvsweb"/> - - <xsl:output method="html" indent="yes" encoding="US-ASCII" - doctype-public="-//W3C//DTD HTML 4.01//EN" - doctype-system="http://www.w3.org/TR/html401/strict.dtd"/> - - <!-- Copy standard document elements. Elements that - should be ignored must be filtered by apply-templates - tags. --> - <xsl:template match="*"> - <xsl:copy> - <xsl:copy-of select="attribute::*[. != '']"/> - <xsl:apply-templates/> - </xsl:copy> - </xsl:template> - - <xsl:template match="changelog"> - <html> - <head> - <title><xsl:value-of select="$title"/></title> - <style type="text/css"> - body, p { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 80%; - color: #000000; - background-color: #ffffff; - } - tr, td { - font-family: Verdana, Arial, Helvetica, sans-serif; - background: #eeeee0; - } - td { - padding-left: 20px; - } - .dateAndAuthor { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - text-align: left; - background: #a6caf0; - padding-left: 3px; - } - a { - color: #000000; - } - pre { - font-weight: bold; - } - </style> - </head> - <body> - <h1> - <a name="top"><xsl:value-of select="$title"/></a> - </h1> - <p style="text-align: right">Designed for use with <a href="http://ant.apache.org/">Apache Ant</a>.</p> - <hr/> - <table border="0" width="100%" cellspacing="1"> - - <xsl:apply-templates select=".//entry"> - <xsl:sort select="date" data-type="text" order="descending"/> - <xsl:sort select="time" data-type="text" order="descending"/> - </xsl:apply-templates> - - </table> - - </body> - </html> - </xsl:template> - - <xsl:template match="entry"> - <tr> - <td class="dateAndAuthor"> - <xsl:value-of select="date"/><xsl:text> </xsl:text><xsl:value-of select="time"/><xsl:text> </xsl:text><xsl:value-of select="author"/> - </td> - </tr> - <tr> - <td> - <pre> -<xsl:apply-templates select="msg"/></pre> - <ul> - <xsl:apply-templates select="file"/> - </ul> - </td> - </tr> - </xsl:template> - - <xsl:template match="date"> - <i><xsl:value-of select="."/></i> - </xsl:template> - - <xsl:template match="time"> - <i><xsl:value-of select="."/></i> - </xsl:template> - - <xsl:template match="author"> - <i> - <a> - <xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute> - <xsl:value-of select="."/></a> - </i> - </xsl:template> - - <xsl:template match="file"> - <li> - <a> - <xsl:choose> - <xsl:when test="string-length(prevrevision) = 0 "> - <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?rev=<xsl:value-of select="revision" />&content-type=text/x-cvsweb-markup</xsl:attribute> - </xsl:when> - <xsl:otherwise> - <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?r1=<xsl:value-of select="revision" />&r2=<xsl:value-of select="prevrevision"/></xsl:attribute> - </xsl:otherwise> - </xsl:choose> - <xsl:value-of select="name" /> (<xsl:value-of select="revision"/>)</a> - </li> - </xsl:template> - - <!-- Any elements within a msg are processed, - so that we can preserve HTML tags. --> - <xsl:template match="msg"> - <xsl:apply-templates/> - </xsl:template> - -</xsl:stylesheet> diff --git a/lib/ant/etc/checkstyle/checkstyle-frames.xsl b/lib/ant/etc/checkstyle/checkstyle-frames.xsl deleted file mode 100644 index dcaa8b781..000000000 --- a/lib/ant/etc/checkstyle/checkstyle-frames.xsl +++ /dev/null @@ -1,293 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.lib.Redirect" - extension-element-prefixes="redirect"> - -<!-- - Copyright 2002-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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:output method="html" indent="yes" encoding="US-ASCII"/> - <xsl:decimal-format decimal-separator="." grouping-separator="," /> - - <xsl:param name="output.dir" select="'.'"/> - <xsl:param name="basedir" select="'.'"/> - - <xsl:template match="checkstyle"> - <!-- 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-summary.html at the root --> - <redirect:write file="{$output.dir}/overview-frame.html"> - <xsl:apply-templates select="." mode="overview"/> - </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> - - <!-- process all files --> - <xsl:apply-templates select="file[count(error) != 0]"/> - </xsl:template> - - <xsl:template name="index.html"> - <html> - <head> - <title>CheckStyle Audit</title> - </head> - <frameset cols="20%,80%"> - <frame src="allclasses-frame.html" name="fileListFrame"/> - <frame src="overview-frame.html" name="fileFrame"/> - </frameset> - <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> - </html> - </xsl:template> - - <xsl:template name="pageHeader"> - <table border="0" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="text-align:right"><h2>CheckStyle Audit</h2></td> - </tr> - <tr> - <td class="text-align:right">Designed for use with - <a href='http://checkstyle.sourceforge.net/'>CheckStyle</a> and - <a href='http://ant.apache.org/'>Ant</a>.</td> - </tr> - </table> - <hr size="1"/> - </xsl:template> - - <xsl:template match="checkstyle" mode="overview"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <!-- page header --> - <xsl:call-template name="pageHeader"/> - - <!-- Summary part --> - <xsl:apply-templates select="." mode="summary"/> - <hr size="1" width="100%" align="left"/> - - <!-- File list part --> - <xsl:apply-templates select="." mode="filelist"/> - </body> - </html> - </xsl:template> - - <xsl:template name="stylesheet.css"> - .bannercell { - border: 0px; - padding: 0px; - } - body { - margin-left: 10; - margin-right: 10; - font:normal 80% arial,helvetica,sanserif; - background-color:#FFFFFF; - color:#000000; - } - .oddrow td { - background: #efefef; - } - .evenrow td { - background: #fff; - } - th, td { - text-align: left; - vertical-align: top; - } - th { - font-weight:bold; - background: #ccc; - color: black; - } - table, th, td { - font-size:100%; - border: none - } - table.log tr td, tr th { - - } - h2 { - font-weight:bold; - font-size:140%; - margin-bottom: 5; - } - h3 { - font-size:100%; - font-weight:bold; - background: #525D76; - color: white; - text-decoration: none; - padding: 5px; - margin-right: 2px; - margin-left: 2px; - margin-bottom: 0; - } - </xsl:template> - - <!-- - Creates an all-classes.html file that contains a link to all files. - --> - <xsl:template match="checkstyle" mode="all.classes"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <h2>Files</h2> - <p> - <table width="100%"> - <!-- For each file create its part --> - <xsl:apply-templates select="file[count(error) != 0]" mode="all.classes"> - <xsl:sort select="substring-after(@name, $basedir)"/> - </xsl:apply-templates> - </table> - </p> - </body> - </html> - </xsl:template> - - <xsl:template match="checkstyle" mode="filelist"> - <h3>Files</h3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <tr> - <th>Name</th> - <th>Errors</th> - </tr> - <xsl:apply-templates select="file[count(error) != 0]" mode="filelist"> - <xsl:sort select="count(error)" order="descending" data-type="number"/> - </xsl:apply-templates> - </table> - </xsl:template> - - <xsl:template match="file" mode="filelist"> - <tr> - <xsl:call-template name="alternated-row"/> - <td nowrap="nowrap"> - <a> - <xsl:attribute name="href"> - <xsl:text>files/</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text> - </xsl:attribute> - <xsl:value-of select="substring-after(@name, $basedir)"/> - </a> - </td> - <td><xsl:value-of select="count(error)"/></td> - </tr> - </xsl:template> - - <xsl:template match="file" mode="all.classes"> - <tr> - <td nowrap="nowrap"> - <a target="fileFrame"> - <xsl:attribute name="href"> - <xsl:text>files/</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text> - </xsl:attribute> - <xsl:value-of select="substring-after(@name, $basedir)"/> - </a> - </td> - </tr> - </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> - - <xsl:template match="file"> - <redirect:write file="{$output.dir}/files/{substring-after(@name, $basedir)}.html"> - <html> - <head> - <link rel="stylesheet" type="text/css"> - <xsl:attribute name="href"><xsl:call-template name="path"><xsl:with-param name="path" select="substring-after(@name, $basedir)"/></xsl:call-template><xsl:text>stylesheet.css</xsl:text></xsl:attribute> - </link> - </head> - <body> - <xsl:call-template name="pageHeader"/> - <h3>File <xsl:value-of select="substring-after(@name, $basedir)"/></h3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <tr> - <th>Error Description</th> - <th>Line:Column</th> - </tr> - <xsl:for-each select="error"> - <tr> - <xsl:call-template name="alternated-row"/> - <td><a title="{@source}"><xsl:value-of select="@message"/></a></td> - <td align="center"><xsl:value-of select="@line"/><xsl:if test="@column">:<xsl:value-of select="@column"/></xsl:if></td> - </tr> - </xsl:for-each> - </table> - </body> - </html> - </redirect:write> - </xsl:template> - - <xsl:template match="checkstyle" mode="summary"> - <h3>Summary</h3> - <xsl:variable name="fileCount" select="count(file)"/> - <xsl:variable name="errorCount" select="count(file/error)"/> - <xsl:variable name="fileErrorCount" select="count(file[count(error) != 0])"/> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <tr> - <th>Total Files</th> - <th>Files With Errors</th> - <th>Errors</th> - </tr> - <tr> - <xsl:call-template name="alternated-row"/> - <td><xsl:value-of select="$fileCount"/></td> - <td><xsl:value-of select="$fileErrorCount"/></td> - <td><xsl:value-of select="$errorCount"/></td> - </tr> - </table> - </xsl:template> - - <xsl:template name="alternated-row"> - <xsl:attribute name="class"> - <xsl:if test="position() mod 2 = 1">oddrow</xsl:if> - <xsl:if test="position() mod 2 = 0">evenrow</xsl:if> - </xsl:attribute> - </xsl:template> -</xsl:stylesheet>
\ No newline at end of file diff --git a/lib/ant/etc/checkstyle/checkstyle-text.xsl b/lib/ant/etc/checkstyle/checkstyle-text.xsl deleted file mode 100644 index 91d496c0c..000000000 --- a/lib/ant/etc/checkstyle/checkstyle-text.xsl +++ /dev/null @@ -1,33 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - -<!-- - Copyright 2003-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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:strip-space elements="checkstyle"/> - <xsl:preserve-space elements="file"/> - <xsl:output method="text"/> - <xsl:template match="checkstyle/file/error"> - <xsl:value-of select="../@name"/> - <xsl:text>:</xsl:text> - <xsl:value-of select="@line"/> - <xsl:text>:</xsl:text> - <xsl:value-of select="@column"/> - <xsl:text> </xsl:text> - <xsl:value-of select="@message"/> - </xsl:template> -</xsl:stylesheet> - diff --git a/lib/ant/etc/checkstyle/checkstyle-xdoc.xsl b/lib/ant/etc/checkstyle/checkstyle-xdoc.xsl deleted file mode 100644 index d23ac0e04..000000000 --- a/lib/ant/etc/checkstyle/checkstyle-xdoc.xsl +++ /dev/null @@ -1,129 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.lib.Redirect" - extension-element-prefixes="redirect"> - -<!-- - Copyright 2003-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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:output method="xml" indent="yes"/> - <xsl:decimal-format decimal-separator="." grouping-separator="," /> - - <xsl:param name="output.dir" select="'.'"/> - <xsl:param name="basedir" select="'.'"/> - - <xsl:template match="checkstyle"> - <document> - <properties> - <title>Checkstyle Audit</title> - </properties> - - <body> - <xsl:apply-templates select="." mode="summary"/> - <!-- File list part --> - <xsl:apply-templates select="." mode="filelist"/> - <xsl:apply-templates select="file[count(error) != 0]"/> - </body> - </document> - </xsl:template> - - <xsl:template match="checkstyle" mode="filelist"> - <section name="Files"> - <table> - <tr> - <th>Name</th> - <th>Errors</th> - </tr> - <xsl:apply-templates select="file[count(error) != 0]" mode="filelist"> - <xsl:sort select="count(error)" order="descending" data-type="number"/> - </xsl:apply-templates> - </table> - </section> - </xsl:template> - - <xsl:template match="file" mode="filelist"> - <tr> - <xsl:call-template name="alternated-row"/> - <td nowrap="nowrap"> - <a> - <xsl:attribute name="href"> - <xsl:text>files</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text> - </xsl:attribute> - <xsl:value-of select="substring-after(@name, $basedir)"/> - </a> - </td> - <td><xsl:value-of select="count(error)"/></td> - </tr> - </xsl:template> - - <xsl:template match="file"> - <redirect:write file="{$output.dir}/files{substring-after(@name, $basedir)}.xml"> - <document> - <properties> - <title>Checkstyle Audit</title> - </properties> - - <body> - <section name="Details for {substring-after(@name, $basedir)}"> - <table> - <tr> - <th>Error Description</th> - <th>Line</th> - </tr> - <xsl:for-each select="error"> - <tr> - <xsl:call-template name="alternated-row"/> - <td><a title="{@source}"><xsl:value-of select="@message"/></a></td> - <td><xsl:value-of select="@line"/></td> - </tr> - </xsl:for-each> - </table> - </section> - </body> - </document> - </redirect:write> - </xsl:template> - - <xsl:template match="checkstyle" mode="summary"> - <section name="Summary"> - <xsl:variable name="fileCount" select="count(file)"/> - <xsl:variable name="errorCount" select="count(file/error)"/> - <xsl:variable name="fileErrorCount" select="count(file[count(error) != 0])"/> - <table> - <tr> - <th>Files</th> - <th>Files With Errors</th> - <th>Errors</th> - </tr> - <tr> - <xsl:call-template name="alternated-row"/> - <td><xsl:value-of select="$fileCount"/></td> - <td><xsl:value-of select="$fileErrorCount"/></td> - <td><xsl:value-of select="$errorCount"/></td> - </tr> - </table> - </section> - </xsl:template> - - <xsl:template name="alternated-row"> - <xsl:attribute name="class"> - <xsl:if test="position() mod 2 = 1">oddrow</xsl:if> - <xsl:if test="position() mod 2 = 0">evenrow</xsl:if> - </xsl:attribute> - </xsl:template> -</xsl:stylesheet> - diff --git a/lib/ant/etc/coverage-frames.xsl b/lib/ant/etc/coverage-frames.xsl deleted file mode 100644 index f80890815..000000000 --- a/lib/ant/etc/coverage-frames.xsl +++ /dev/null @@ -1,496 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.lib.Redirect" - extension-element-prefixes="redirect"> -<xsl:output method="html" indent="yes"/> -<xsl:decimal-format decimal-separator="." grouping-separator="," /> -<!-- - Copyright 2001-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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 JProbe 3.0 XML output. - - It creates a set of HTML files a la javadoc where you can browse easily - through all packages and classes. - - It is best used with JProbe Coverage Ant task that gives you the benefit - of a reference classpath so that you have the list of classes/methods - that are not used at all in a given classpath. - - @author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/> - ---> - -<!-- default output directory is current directory --> -<xsl:param name="output.dir" select="'.'"/> - -<!-- ====================================================================== - Root element - ======================================================================= --> -<xsl:template match="/snapshot"> - <!-- 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> - - <!-- process all packages --> - <xsl:apply-templates select="./package" mode="write"/> -</xsl:template> - -<!-- ======================================================================= - Frameset definition. Entry point for the report. - 3 frames: packageListFrame, classListFrame, classFrame - ======================================================================= --> -<xsl:template name="index.html"> -<html> - <head><title>Coverage Results.</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"/> - </frameset> - <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> -</html> -</xsl:template> - -<!-- ======================================================================= - Stylesheet CSS used - ======================================================================= --> -<!-- this is the stylesheet css to use for nearly everything --> -<xsl:template name="stylesheet.css"> - .bannercell { - border: 0px; - padding: 0px; - } - body { - margin-left: 10; - margin-right: 10; - font:normal 80% arial,helvetica,sanserif; - background-color:#FFFFFF; - color:#000000; - } - .a td { - background: #efefef; - } - .b td { - background: #fff; - } - th, td { - text-align: left; - vertical-align: top; - } - th { - font-weight:bold; - background: #ccc; - color: black; - } - table, th, td { - font-size:100%; - border: none - } - table.log tr td, tr th { - - } - h2 { - font-weight:bold; - font-size:140%; - margin-bottom: 5; - } - h3 { - font-size:100%; - font-weight:bold; - background: #525D76; - color: white; - text-decoration: none; - padding: 5px; - margin-right: 2px; - margin-left: 2px; - margin-bottom: 0; - } -</xsl:template> - -<!-- ======================================================================= - List of all classes in all packages - This will be the first page in the classListFrame - ======================================================================= --> -<xsl:template match="snapshot" mode="all.classes"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"/> - </head> - <body> - <h2>Classes</h2> - <table width="100%"> - <xsl:for-each select="package/class"> - <xsl:sort select="@name"/> - <xsl:variable name="package.name" select="(ancestor::package)[last()]/@name"/> - <xsl:variable name="link"> - <xsl:if test="not($package.name='')"> - <xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text> - </xsl:if><xsl:value-of select="@name"/><xsl:text>.html</xsl:text> - </xsl:variable> - <tr> - <td nowrap="nowrap"> - <a target="classFrame" href="{$link}"><xsl:value-of select="@name"/></a> - </td> - </tr> - </xsl:for-each> - </table> - </body> - </html> -</xsl:template> - -<!-- list of all packages --> -<xsl:template match="snapshot" mode="all.packages"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"/> - </head> - <body> - <h2><a href="overview-summary.html" target="classFrame">Home</a></h2> - <h2>Packages</h2> - <table width="100%"> - <xsl:for-each select="package"> - <xsl:sort select="@name" order="ascending"/> - <tr> - <td nowrap="nowrap"> - <a href="{translate(@name,'.','/')}/package-summary.html" target="classFrame"> - <xsl:value-of select="@name"/> - </a> - </td> - </tr> - </xsl:for-each> - </table> - </body> - </html> -</xsl:template> - -<!-- overview of statistics in packages --> -<xsl:template match="snapshot" mode="overview.packages"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"/> - </head> - <body onload="open('allclasses-frame.html','classListFrame')"> - <xsl:call-template name="pageHeader"/> - <h3>Summary</h3> - <table class="log" cellpadding="5" cellspacing="2" width="100%"> - <tr> - <!--th width="10%" nowrap="nowrap">Date</th> - <th width="10%" nowrap="nowrap">Elapsed time</th--> - <th width="10%" nowrap="nowrap">Reported Classes</th> - <th width="10%" nowrap="nowrap">Methods Hit</th> - <th width="10%" nowrap="nowrap">Lines Hit</th> - </tr> - <tr class="a"> - <!--td nowrap="nowrap"><xsl:value-of select="execution_log/@program_start"/></td> - <td><xsl:value-of select="format-number(execution_log/@elapsed_time div 1000,'0.0')"/>secs</td--> - <td><xsl:value-of select="count(package/class)"/></td> - <td><xsl:value-of select="format-number(cov.data/@hit_methods div cov.data/@total_methods,'0.0%')"/></td> - <td><xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/></td> - </tr> - </table> - <table border="0" width="100%"> - <tr> - <td style="text-align: justify;"> - To ensure accurate test runs on Java applications, developers need to know how much of - the code has been tested, and where to find any untested code. Coverage helps you - locate untested code, and measure precisely how much code has been exercised. - The result is a higher quality application in a shorter period of time. - <p/> - </td> - </tr> - </table> - - <h3>Packages</h3> - <table class="log" cellpadding="5" cellspacing="2" width="100%"> - <xsl:apply-templates select="package[1]" mode="stats.header"/> - <!-- display packages and sort them via their coverage rate --> - <xsl:for-each select="package"> - <xsl:sort data-type="number" select="cov.data/@hit_lines div cov.data/@total_lines"/> - <tr> - <xsl:call-template name="alternate-row"/> - <td><a href="{translate(@name,'.','/')}/package-summary.html"><xsl:value-of select="@name"/></a></td> - <td><xsl:value-of select="format-number(cov.data/@hit_methods div cov.data/@total_methods,'0.0%')"/></td> - <td><xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/></td> - </tr> - </xsl:for-each> - </table> - <xsl:call-template name="pageFooter"/> - </body> - </html> -</xsl:template> - -<!-- - detailed info for a package. It will output the list of classes -, the summary page, and the info for each class ---> -<xsl:template match="package" mode="write"> - <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> - - <!-- create a classes-list.html in the package directory --> - <redirect:write file="{$output.dir}/{$package.dir}/package-frame.html"> - <xsl:apply-templates select="." mode="classes.list"/> - </redirect:write> - - <!-- create a package-summary.html in the package directory --> - <redirect:write file="{$output.dir}/{$package.dir}/package-summary.html"> - <xsl:apply-templates select="." mode="package.summary"/> - </redirect:write> - - <!-- for each class, creates a @name.html --> - <xsl:for-each select="class"> - <redirect:write file="{$output.dir}/{$package.dir}/{@name}.html"> - <xsl:apply-templates select="." mode="class.details"/> - </redirect:write> - </xsl:for-each> -</xsl:template> - -<!-- list of classes in a package --> -<xsl:template match="package" mode="classes.list"> - <html> - <HEAD> - <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"/></a></H2> - </td> - </tr> - </table> - - <H2>Classes</H2> - <TABLE WIDTH="100%"> - <xsl:for-each select="class"> - <xsl:sort select="@name"/> - <tr> - <td nowrap="nowrap"> - <a href="{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a> - </td> - </tr> - </xsl:for-each> - </TABLE> - </BODY> - </html> -</xsl:template> - -<!-- summary of a package --> -<xsl:template match="package" mode="package.summary"> - <HTML> - <HEAD> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="@name"/> - </xsl:call-template> - </HEAD> - <!-- when loading this package, it will open the classes into the frame --> - <BODY onload="open('package-frame.html','classListFrame')"> - <xsl:call-template name="pageHeader"/> - <h3>Package <xsl:value-of select="@name"/></h3> - <table class="log" cellpadding="5" cellspacing="2" width="100%"> - <xsl:apply-templates select="." mode="stats.header"/> - <xsl:apply-templates select="." mode="stats"/> - </table> - - <xsl:if test="count(class) > 0"> - <H3>Classes</H3> - <table class="log" cellpadding="5" cellspacing="2" width="100%"> - <xsl:apply-templates select="." mode="stats.header"/> - <xsl:apply-templates select="class" mode="stats"> - <xsl:sort data-type="number" select="cov.data/@hit_lines div cov.data/@total_lines"/> - </xsl:apply-templates> - </table> - </xsl:if> - <xsl:call-template name="pageFooter"/> - </BODY> - </HTML> -</xsl:template> - -<!-- details of a class --> -<xsl:template match="class" mode="class.details"> - <xsl:variable name="package.name" select="(ancestor::package)[last()]/@name"/> - <HTML> - <HEAD> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="$package.name"/> - </xsl:call-template> - </HEAD> - <BODY> - <xsl:call-template name="pageHeader"/> - <H3>Class <xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></H3> - - <!-- class summary --> - <table class="log" cellpadding="5" cellspacing="2" width="100%"> - <xsl:apply-templates select="." mode="stats.header"/> - <xsl:apply-templates select="." mode="stats"/> - </table> - - <!-- details of methods --> - <H3>Methods</H3> - <table class="log" cellpadding="5" cellspacing="2" width="100%"> - <xsl:apply-templates select="method[1]" mode="stats.header"/> - <xsl:apply-templates select="method" mode="stats"> - <xsl:sort data-type="number" select="cov.data/@hit_lines div cov.data/@total_lines"/> - </xsl:apply-templates> - </table> - <xsl:call-template name="pageFooter"/> - </BODY> - </HTML> - -</xsl:template> - -<!-- Page Header --> -<xsl:template name="pageHeader"> - <!-- jakarta logo --> - <table border="0" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="bannercell" rowspan="2"> - <a href="http://jakarta.apache.org/"> - <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/> - </a> - </td> - <td style="text-align:right"><h2>Source Code Coverage</h2></td> - </tr> - <tr> - <td style="text-align:right">Designed for use with <a href='http://www.sitraka.com/jprobe'>Sitraka JProbe</a> and <a href='http://jakarta.apache.org'>Ant</a>.</td> - </tr> - </table> - <hr size="1"/> -</xsl:template> - -<!-- Page Footer --> -<xsl:template name="pageFooter"> - <table width="100%"> - <tr><td><hr noshade="yes" size="1"/></td></tr> - <tr><td> - <div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2001, Apache Software Foundation - </em></font></div> - </td></tr> - </table> -</xsl:template> - - -<xsl:template name="table.header"> - <tr> - <th width="80%">Name</th> - <th width="10%" nowrap="nowrap">Methods Hit</th> - <th width="10%" nowrap="nowrap">Lines Hit</th> - </tr> -</xsl:template> - -<xsl:template match="method" mode="stats.header"> - <tr> - <th width="90%">Name</th> - <th width="10%" nowrap="nowrap">Lines Hit</th> - </tr> -</xsl:template> -<xsl:template match="method" mode="stats"> - <tr> - <xsl:call-template name="alternate-row"/> - <td><xsl:value-of select="@name"/></td> - <td> - <xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/> - </td> - </tr> -</xsl:template> - -<xsl:template match="package|class" mode="stats.header"> - <tr> - <th width="80%">Name</th> - <th width="10%" nowrap="nowrap">Methods Hit</th> - <th width="10%" nowrap="nowrap">Lines Hit</th> - </tr> -</xsl:template> -<xsl:template match="package|class" mode="stats"> - <tr> - <xsl:call-template name="alternate-row"/> - <td><xsl:value-of select="@name"/></td> - <td><xsl:value-of select="format-number(cov.data/@hit_methods div cov.data/@total_methods,'0.0%')"/></td> - <td><xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/></td> - </tr> -</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> - -<!-- alternated row style --> -<xsl:template name="alternate-row"> -<xsl:attribute name="class"> - <xsl:if test="position() mod 2 = 1">a</xsl:if> - <xsl:if test="position() mod 2 = 0">b</xsl:if> -</xsl:attribute> -</xsl:template> - -</xsl:stylesheet> - - diff --git a/lib/ant/etc/jdepend-frames.xsl b/lib/ant/etc/jdepend-frames.xsl deleted file mode 100644 index 7a2a8ae3c..000000000 --- a/lib/ant/etc/jdepend-frames.xsl +++ /dev/null @@ -1,485 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.lib.Redirect" - extension-element-prefixes="redirect"> -<xsl:output method="html" indent="yes" encoding="US-ASCII"/> -<!-- - Copyright 2002-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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 JDepend XML output. - - It creates a set of HTML files a la javadoc where you can browse easily - through all packages and classes. - - @author <a href="mailto:jtulley@novell.com">Jeff Tulley</a> - - --> -<xsl:param name="output.dir" select="'.'"/> - -<xsl:template match="JDepend"> - <!-- 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 overview-packages.html at the root --> - <redirect:write file="{$output.dir}/overview-packages.html"> - <xsl:apply-templates select="." mode="packages.details"/> - </redirect:write> - - <!-- create the overview-cycles.html at the root --> - <redirect:write file="{$output.dir}/overview-cycles.html"> - <xsl:apply-templates select="." mode="cycles.details"/> - </redirect:write> - - <!-- create the overview-cycles.html at the root --> - <redirect:write file="{$output.dir}/overview-explanations.html"> - <xsl:apply-templates select="." mode="explanations"/> - </redirect:write> - - <!-- create the all-packages.html at the root --> - <redirect:write file="{$output.dir}/all-packages.html"> - <xsl:apply-templates select="Packages" mode="all.packages"/> - </redirect:write> - - <!-- create the all-cycles.html at the root --> - <redirect:write file="{$output.dir}/all-cycles.html"> - <xsl:apply-templates select="Cycles" mode="all.cycles"/> - </redirect:write> -</xsl:template> - - -<xsl:template name="index.html"> -<html> - <head> - <title>JDepend Analysis</title> - </head> - <frameset cols="20%,80%"> - <frameset rows="30%,70%"> - <frame src="all-packages.html" name="packageListFrame"/> - <frame src="all-cycles.html" name="classListFrame"/> - </frameset> - <frame src="overview-summary.html" name="classFrame"/> - </frameset> - <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> -</html> -</xsl:template> - -<!-- this is the stylesheet css to use for nearly everything --> -<xsl:template name="stylesheet.css"> - <style type="text/css"> - body { - font:normal 68% verdana,arial,helvetica; - color:#000000; - } - table tr td, 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; - margin-left:2em; - margin-right:2em; - } - 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; - } - </style> -</xsl:template> - -<xsl:template match="JDepend" mode="overview.packages"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <xsl:call-template name="pageHeader"/> - <table width="100%"><tr align="left"><h2>Summary</h2><td> - </td><td align="right"> - [summary] - [<a href="overview-packages.html">packages</a>] - [<a href="overview-cycles.html">cycles</a>] - [<a href="overview-explanations.html">explanations</a>] - </td></tr></table> - <table width="100%" class="details"> - <tr> - <th>Package</th> - <th>Total Classes</th> - <th><a href="overview-explanations.html#EXnumber">Abstract Classes</a></th> - <th><a href="overview-explanations.html#EXnumber">Concrete Classes</a></th> - <th><a href="overview-explanations.html#EXafferent">Afferent Couplings</a></th> - <th><a href="overview-explanations.html#EXefferent">Efferent Couplings</a></th> - <th><a href="overview-explanations.html#EXabstractness">Abstractness</a></th> - <th><a href="overview-explanations.html#EXinstability">Instability</a></th> - <th><a href="overview-explanations.html#EXdistance">Distance</a></th> - - </tr> - <xsl:for-each select="./Packages/Package"> - <xsl:if test="count(error) = 0"> - <tr> - <td align="left"> - <a> - <xsl:attribute name="href">overview-packages.html#PK<xsl:value-of select="@name"/> - </xsl:attribute> - <xsl:value-of select="@name"/> - </a> - </td> - <td align="right"><xsl:value-of select="Stats/TotalClasses"/></td> - <td align="right"><xsl:value-of select="Stats/AbstractClasses"/></td> - <td align="right"><xsl:value-of select="Stats/ConcreteClasses"/></td> - <td align="right"><xsl:value-of select="Stats/Ca"/></td> - <td align="right"><xsl:value-of select="Stats/Ce"/></td> - <td align="right"><xsl:value-of select="Stats/A"/></td> - <td align="right"><xsl:value-of select="Stats/I"/></td> - <td align="right"><xsl:value-of select="Stats/D"/></td> - </tr> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="./Packages/Package"> - <xsl:if test="count(error) > 0"> - <tr> - <td align="left"> - <xsl:value-of select="@name"/> - </td> - <td align="left" colspan="8"><xsl:value-of select="error"/></td> - </tr> - </xsl:if> - </xsl:for-each> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="JDepend" mode="packages.details"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <xsl:call-template name="pageHeader"/> - <table width="100%"><tr align="left"><h2>Packages</h2><td> - </td><td align="right"> - [<a href="overview-summary.html">summary</a>] - [packages] - [<a href="overview-cycles.html">cycles</a>] - [<a href="overview-explanations.html">explanations</a>] - </td></tr></table> - - <xsl:for-each select="./Packages/Package"> - <xsl:if test="count(error) = 0"> - <h3><a><xsl:attribute name="name">PK<xsl:value-of select="@name"/></xsl:attribute> - <xsl:value-of select="@name"/></a></h3> - - <table width="100%"><tr> - <td><a href="overview-explanations.html#EXafferent">Afferent Couplings</a>: <xsl:value-of select="Stats/Ca"/></td> - <td><a href="overview-explanations.html#EXefferent">Efferent Couplings</a>: <xsl:value-of select="Stats/Ce"/></td> - <td><a href="overview-explanations.html#EXabstractness">Abstractness</a>: <xsl:value-of select="Stats/A"/></td> - <td><a href="overview-explanations.html#EXinstability">Instability</a>: <xsl:value-of select="Stats/I"/></td> - <td><a href="overview-explanations.html#EXdistance">Distance</a>: <xsl:value-of select="Stats/D"/></td> - </tr></table> - - <table width="100%" class="details"> - <tr> - <th>Abstract Classes</th> - <th>Concrete Classes</th> - <th>Used by Packages</th> - <th>Uses Packages</th> - </tr> - <tr> - <td valign="top" width="25%"> - <xsl:if test="count(AbstractClasses/Class)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="AbstractClasses/Class"> - <xsl:value-of select="node()"/><br/> - </xsl:for-each> - </td> - <td valign="top" width="25%"> - <xsl:if test="count(ConcreteClasses/Class)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="ConcreteClasses/Class"> - <xsl:value-of select="node()"/><br/> - </xsl:for-each> - </td> - <td valign="top" width="25%"> - <xsl:if test="count(UsedBy/Package)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="UsedBy/Package"> - <a> - <xsl:attribute name="href">overview-packages.html#PK<xsl:value-of select="node()"/></xsl:attribute> - <xsl:value-of select="node()"/> - </a><br/> - </xsl:for-each> - </td> - <td valign="top" width="25%"> - <xsl:if test="count(DependsUpon/Package)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="DependsUpon/Package"> - <a> - <xsl:attribute name="href">overview-packages.html#PK<xsl:value-of select="node()"/></xsl:attribute> - <xsl:value-of select="node()"/> - </a><br/> - </xsl:for-each> - </td> - </tr> - </table> - </xsl:if> - </xsl:for-each> - <!-- this is often a long listing; provide a lower navigation table also --> - <table width="100%"><tr align="left"><td></td><td align="right"> - [<a href="overview-summary.html">summary</a>] - [packages] - [<a href="overview-cycles.html">cycles</a>] - [<a href="overview-explanations.html">explanations</a>] - </td></tr></table> - </body> - </html> -</xsl:template> - -<xsl:template match="JDepend" mode="cycles.details"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <xsl:call-template name="pageHeader"/> - <table width="100%"><tr align="left"><h2>Cycles</h2><td> - </td><td align="right"> - [<a href="overview-summary.html">summary</a>] - [<a href="overview-packages.html">packages</a>] - [cycles] - [<a href="overview-explanations.html">explanations</a>] - </td></tr></table> - <!--<table width="100%"><tr><td> - </td><td align="right"> - [<a href="#NVsummary">summary</a>] - [<a href="#NVpackages">packages</a>] - [<a href="#NVcycles">cycles</a>] - [<a href="#NVexplanations">explanations</a>] - </td></tr></table> --> - - <xsl:if test="count(Cycles/Package) = 0"> - <p>There are no cyclic dependancies.</p> - </xsl:if> - <xsl:for-each select="Cycles/Package"> - <h3><a><xsl:attribute name="name">#CY<xsl:value-of select="@Name"/></xsl:attribute><xsl:value-of select="@Name"/></a></h3><p> - <xsl:for-each select="Package"> - <xsl:value-of select="."/><br/> - </xsl:for-each></p> - </xsl:for-each> - <!-- this is often a long listing; provide a lower navigation table also --> - <table width="100%"><tr align="left"><td></td><td align="right"> - [<a href="overview-summary.html">summary</a>] - [<a href="overview-packages.html">packages</a>] - [cycles] - [<a href="overview-explanations.html">explanations</a>] - </td></tr></table> - </body> - </html> -</xsl:template> - -<xsl:template match="JDepend" mode="explanations"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <xsl:call-template name="pageHeader"/> - - <table width="100%"><tr align="left"><h2>Explanations</h2><td> - </td><td align="right"> - [<a href="overview-summary.html">summary</a>] - [<a href="overview-packages.html">packages</a>] - [<a href="overview-cycles.html">cycles</a>] - [explanations] - </td></tr></table> - - <p>The following explanations are for quick reference and are lifted directly from the original <a href="http://www.clarkware.com/software/JDepend.html">JDepend documentation</a>.</p> - - <h3><a name="EXnumber">Number of Classes</a></h3> - <p>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</p> - <h3><a name="EXafferent">Afferent Couplings</a></h3> - <p>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. </p> - <h3><a name="EXefferent">Efferent Couplings</a></h3> - <p>The number of other packages that the classes in the package depend upon is an indicator of the package's independence. </p> - <h3><a name="EXabstractness">Abstractness</a></h3> - <p>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. </p> - <p>The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. </p> - <h3><a name="EXinstability">Instability</a></h3> - <p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. </p> - <p>The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. </p> - <h3><a name="EXdistance">Distance</a></h3> - <p>The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. </p> - <p>A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). </p> - <p>The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. </p> - - </body> - </html> -</xsl:template> - - -<!-- -Creates an html file that contains a link to all package links in overview-packages.html. - @bug there will be a problem here, I don't know yet how to handle unnamed package :( ---> -<xsl:template match="JDepend/Packages" mode="all.packages"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <table width="100%"><tr align="left"><td></td><td nowrap="nowrap" align="right"> - [<a href="overview-summary.html" target="classFrame">summary</a>] - [<a href="overview-packages.html" target="classFrame">packages</a>] - [<a href="overview-cycles.html" target="classFrame">cycles</a>] - [<a href="overview-explanations.html" target="classFrame">explanations</a>] - </td></tr></table> - <h2>Packages</h2> - <table width="100%"> - <xsl:apply-templates select="Package[count(error)=0]" mode="all.packages.link"> - <xsl:sort select="@name"/> - </xsl:apply-templates> - <xsl:apply-templates select="Package[count(error) > 0]" mode="all.packages.nolink"> - <xsl:sort select="@name"/> - </xsl:apply-templates> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="JDepend/Packages/Package" mode="all.packages.link"> - <tr> - <td nowrap="nowrap"> - <a href="overview-packages.html#PK{@name}" target="classFrame"> - <xsl:value-of select="@name"/> - </a> - </td> - </tr> -</xsl:template> - -<!-- -I do not know JDepend enough to know if every error results in a non-analyzed package, -but that is how I am presenting it to the viewer. This may need to change. - @bug there will be a problem here, I don't know yet how to handle unnamed package :( ---> -<xsl:template match="JDepend/Packages/Package" mode="all.packages.nolink"> - <tr> - <td nowrap="nowrap"> - Not Analyzed: <xsl:value-of select="@name"/> - </td> - </tr> -</xsl:template> - -<!-- -Creates an html file that contains a link to all package links in overview-cycles.html. - @bug there will be a problem here, I don't know yet how to handle unnamed package :( ---> -<xsl:template match="JDepend/Cycles" mode="all.cycles"> - <html> - <head> - <link rel="stylesheet" type="text/css" href="stylesheet.css"/> - </head> - <body> - <table width="100%"><tr align="left"><td></td><td nowrap="nowrap" align="right"> - [<a href="overview-summary.html" target="classFrame">summary</a>] - [<a href="overview-packages.html" target="classFrame">packages</a>] - [<a href="overview-cycles.html" target="classFrame">cycles</a>] - [<a href="overview-explanations.html" target="classFrame">explanations</a>] - </td></tr></table> - <h2>Cycles</h2> - <table width="100%"> - <xsl:apply-templates select="Package" mode="all.cycles"> - <xsl:sort select="@Name"/> - </xsl:apply-templates> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="JDepend/Cycles/Package" mode="all.cycles"> - <tr> - <td nowrap="nowrap"> - <a href="overview-cycles.html#CY{@Name}" target="classFrame"><xsl:value-of select="@Name"/></a> - </td> - </tr> -</xsl:template> - -<!-- Page HEADER --> -<xsl:template name="pageHeader"> - <h1>JDepend Analysis</h1> - <table width="100%"> - <tr> - <td align="left"></td> - <td align="right">Designed for use with <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> and <a href="http://jakarta.apache.org">Ant</a>.</td> - </tr> - </table> - <hr size="1"/> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/ant/etc/jdepend.xsl b/lib/ant/etc/jdepend.xsl deleted file mode 100644 index e1e5e2da1..000000000 --- a/lib/ant/etc/jdepend.xsl +++ /dev/null @@ -1,275 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - -<!-- - Copyright 2002,2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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:output method="html" indent="yes" encoding="US-ASCII"/> - -<xsl:template match="JDepend"> - <html> - <head> - <title>JDepend Analysis</title> - - <style type="text/css"> - body { - font:normal 68% verdana,arial,helvetica; - color:#000000; - } - table tr td, 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; - margin-left:2em; - margin-right:2em; - } - 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; - } - </style> - - - </head> - <body> - <!--h1>JDepend Report</h1> - <ul> - <xsl:for-each select="./Packages/Package"> - <xsl:sort select="@name"/> - <li><xsl:value-of select="@name"/></li> - </xsl:for-each> - </ul--> - - <h1><a name="top">JDepend Analysis</a></h1> - <p align="right">Designed for use with <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> and <a href="http://jakarta.apache.org">Ant</a>.</p> - <hr size="2" /> - - <table width="100%"><tr><td> - <a name="NVsummary"><h2>Summary</h2></a> - </td><td align="right"> - [<a href="#NVsummary">summary</a>] - [<a href="#NVpackages">packages</a>] - [<a href="#NVcycles">cycles</a>] - [<a href="#NVexplanations">explanations</a>] - </td></tr></table> - - <table width="100%" class="details"> - <tr> - <th>Package</th> - <th>Total Classes</th> - <th><a href="#EXnumber">Abstract Classes</a></th> - <th><a href="#EXnumber">Concrete Classes</a></th> - <th><a href="#EXafferent">Afferent Couplings</a></th> - <th><a href="#EXefferent">Efferent Couplings</a></th> - <th><a href="#EXabstractness">Abstractness</a></th> - <th><a href="#EXinstability">Instability</a></th> - <th><a href="#EXdistance">Distance</a></th> - - </tr> - <xsl:for-each select="./Packages/Package"> - <xsl:if test="count(error) = 0"> - <tr> - <td align="left"> - <a> - <xsl:attribute name="href">#PK<xsl:value-of select="@name"/> - </xsl:attribute> - <xsl:value-of select="@name"/> - </a> - </td> - <td align="right"><xsl:value-of select="Stats/TotalClasses"/></td> - <td align="right"><xsl:value-of select="Stats/AbstractClasses"/></td> - <td align="right"><xsl:value-of select="Stats/ConcreteClasses"/></td> - <td align="right"><xsl:value-of select="Stats/Ca"/></td> - <td align="right"><xsl:value-of select="Stats/Ce"/></td> - <td align="right"><xsl:value-of select="Stats/A"/></td> - <td align="right"><xsl:value-of select="Stats/I"/></td> - <td align="right"><xsl:value-of select="Stats/D"/></td> - - - </tr> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="./Packages/Package"> - <xsl:if test="count(error) > 0"> - <tr> - <td align="left"> - <xsl:value-of select="@name"/> - </td> - <td align="left" colspan="8"><xsl:value-of select="error"/></td> - </tr> - </xsl:if> - </xsl:for-each> - </table> - - <table width="100%"><tr><td> - <a name="NVpackages"><h2>Packages</h2></a> - </td><td align="right"> - [<a href="#NVsummary">summary</a>] - [<a href="#NVpackages">packages</a>] - [<a href="#NVcycles">cycles</a>] - [<a href="#NVexplanations">explanations</a>] - </td></tr></table> - - <xsl:for-each select="./Packages/Package"> - <xsl:if test="count(error) = 0"> - <h3><a><xsl:attribute name="name">PK<xsl:value-of select="@name"/></xsl:attribute> - <xsl:value-of select="@name"/></a></h3> - - <table width="100%"><tr> - <td><a href="#EXafferent">Afferent Couplings</a>: <xsl:value-of select="Stats/Ca"/></td> - <td><a href="#EXefferent">Efferent Couplings</a>: <xsl:value-of select="Stats/Ce"/></td> - <td><a href="#EXabstractness">Abstractness</a>: <xsl:value-of select="Stats/A"/></td> - <td><a href="#EXinstability">Instability</a>: <xsl:value-of select="Stats/I"/></td> - <td><a href="#EXdistance">Distance</a>: <xsl:value-of select="Stats/D"/></td> - </tr></table> - - <table width="100%" class="details"> - <tr> - <th>Abstract Classes</th> - <th>Concrete Classes</th> - <th>Used by Packages</th> - <th>Uses Packages</th> - </tr> - <tr> - <td valign="top" width="25%"> - <xsl:if test="count(AbstractClasses/Class)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="AbstractClasses/Class"> - <xsl:value-of select="node()"/><br/> - </xsl:for-each> - </td> - <td valign="top" width="25%"> - <xsl:if test="count(ConcreteClasses/Class)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="ConcreteClasses/Class"> - <xsl:value-of select="node()"/><br/> - </xsl:for-each> - </td> - <td valign="top" width="25%"> - <xsl:if test="count(UsedBy/Package)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="UsedBy/Package"> - <a> - <xsl:attribute name="href">#PK<xsl:value-of select="node()"/></xsl:attribute> - <xsl:value-of select="node()"/> - </a><br/> - </xsl:for-each> - </td> - <td valign="top" width="25%"> - <xsl:if test="count(DependsUpon/Package)=0"> - <i>None</i> - </xsl:if> - <xsl:for-each select="DependsUpon/Package"> - <a> - <xsl:attribute name="href">#PK<xsl:value-of select="node()"/></xsl:attribute> - <xsl:value-of select="node()"/> - </a><br/> - </xsl:for-each> - </td> - </tr> - </table> - </xsl:if> - </xsl:for-each> - - <table width="100%"><tr><td> - <a name="NVcycles"><h2>Cycles</h2></a> - </td><td align="right"> - [<a href="#NVsummary">summary</a>] - [<a href="#NVpackages">packages</a>] - [<a href="#NVcycles">cycles</a>] - [<a href="#NVexplanations">explanations</a>] - </td></tr></table> - - <xsl:if test="count(Cycles/Package) = 0"> - <p>There are no cyclic dependancies.</p> - </xsl:if> - <xsl:for-each select="Cycles/Package"> - <h3><xsl:value-of select="@Name"/></h3><p> - <xsl:for-each select="Package"> - <xsl:value-of select="."/><br/> - </xsl:for-each></p> - </xsl:for-each> - - <table width="100%"><tr><td> - <a name="NVexplanations"><h2>Explanations</h2></a> - </td><td align="right"> - [<a href="#NVsummary">summary</a>] - [<a href="#NVpackages">packages</a>] - [<a href="#NVcycles">cycles</a>] - [<a href="#NVexplanations">explanations</a>] - </td></tr></table> - - <p>The following explanations are for quick reference and are lifted directly from the original <a href="http://www.clarkware.com/software/JDepend.html">JDepend documentation</a>.</p> - - <h3><a name="EXnumber">Number of Classes</a></h3> - <p>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</p> - <h3><a name="EXafferent">Afferent Couplings</a></h3> - <p>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. </p> - <h3><a name="EXefferent">Efferent Couplings</a></h3> - <p>The number of other packages that the classes in the package depend upon is an indicator of the package's independence. </p> - <h3><a name="EXabstractness">Abstractness</a></h3> - <p>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. </p> - <p>The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. </p> - <h3><a name="EXinstability">Instability</a></h3> - <p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. </p> - <p>The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. </p> - <h3><a name="EXdistance">Distance</a></h3> - <p>The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. </p> - <p>A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). </p> - <p>The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. </p> - - </body> - </html> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/ant/etc/junit-frames-xalan1.xsl b/lib/ant/etc/junit-frames-xalan1.xsl deleted file mode 100644 index 114e45973..000000000 --- a/lib/ant/etc/junit-frames-xalan1.xsl +++ /dev/null @@ -1,716 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.lib.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=","/> -<!-- - Copyright 2001-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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: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> - - <!-- 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}/{@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}/{@name}-out.txt"> - <xsl:value-of select="./system-out" /> - </redirect:write> - </xsl:if> - <xsl:if test="string-length(./system-err)!=0"> - <redirect:write file="{$output.dir}/{$package.dir}/{@name}-err.txt"> - <xsl:value-of select="./system-err" /> - </redirect:write> - </xsl:if> - </xsl:for-each> -</xsl:template> - -<xsl:template name="index.html"> -<html> - <head> - <title>Unit Test Results.</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> - - -<!-- ====================================================================== - 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: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.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> - - <h2>Tests</h2> - <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:apply-templates select="./testcase" mode="print.test"/> - </table> - <div class="Properties"> - <a> - <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute> - Properties » - </a> - </div> - <xsl:if test="string-length(./system-out)!=0"> - <div class="Properties"> - <a> - <xsl:attribute name="href">./<xsl:value-of select="@name"/>-out.txt</xsl:attribute> - System.out » - </a> - </div> - </xsl:if> - <xsl:if test="string-length(./system-err)!=0"> - <div class="Properties"> - <a> - <xsl:attribute name="href">./<xsl:value-of select="@name"/>-err.txt</xsl:attribute> - System.err » - </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 = ''"><none></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="{@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="@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 = ''"><none></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 > 0">Error</xsl:when> - <xsl:when test="$failureCount > 0">Failure</xsl:when> - <xsl:otherwise>Pass</xsl:otherwise> - </xsl:choose> - </xsl:attribute> - <td><xsl:value-of select="$testCount"/></td> - <td><xsl:value-of select="$failureCount"/></td> - <td><xsl:value-of select="$errorCount"/></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) > 0">Error</xsl:when> - <xsl:when test="sum($insamepackage/@failures) > 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 = ''"><none></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) > 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://jakarta.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"> - <tr valign="top"> - <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[.> 0]">Error</xsl:when> - <xsl:when test="@failures[.> 0]">Failure</xsl:when> - <xsl:otherwise>Pass</xsl:otherwise> - </xsl:choose> - </xsl:attribute> - <td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td> - <td><xsl:apply-templates select="@tests"/></td> - <td><xsl:apply-templates select="@errors"/></td> - <td><xsl:apply-templates select="@failures"/></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"> - <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> - <td><xsl:value-of select="@name"/></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),"'","\'")"/> - <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:param name="br"><br/></xsl:param> - <xsl:value-of select='stringutils:replace(string($word),"
",$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/lib/ant/etc/junit-frames.xsl b/lib/ant/etc/junit-frames.xsl deleted file mode 100644 index 229e8dd87..000000000 --- a/lib/ant/etc/junit-frames.xsl +++ /dev/null @@ -1,712 +0,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=","/> -<!-- - Copyright 2001-2005 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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: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> - - <!-- 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 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 select="./system-err" /> - </redirect:write> - </xsl:if> - </xsl:for-each> -</xsl:template> - -<xsl:template name="index.html"> -<html> - <head> - <title>Unit Test Results.</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> - - -<!-- ====================================================================== - 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: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.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> - - <h2>Tests</h2> - <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:apply-templates select="./testcase" mode="print.test"/> - </table> - <div class="Properties"> - <a> - <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute> - Properties » - </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 » - </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 » - </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 = ''"><none></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 = ''"><none></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 > 0">Error</xsl:when> - <xsl:when test="$failureCount > 0">Failure</xsl:when> - <xsl:otherwise>Pass</xsl:otherwise> - </xsl:choose> - </xsl:attribute> - <td><xsl:value-of select="$testCount"/></td> - <td><xsl:value-of select="$failureCount"/></td> - <td><xsl:value-of select="$errorCount"/></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) > 0">Error</xsl:when> - <xsl:when test="sum($insamepackage/@failures) > 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 = ''"><none></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> - </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) > 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://jakarta.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> - </tr> -</xsl:template> - -<!-- method header --> -<xsl:template name="testcase.test.header"> - <tr valign="top"> - <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[.> 0]">Error</xsl:when> - <xsl:when test="@failures[.> 0]">Failure</xsl:when> - <xsl:otherwise>Pass</xsl:otherwise> - </xsl:choose> - </xsl:attribute> - <td><a href="{@id}_{@name}.html"><xsl:value-of select="@name"/></a></td> - <td><xsl:apply-templates select="@tests"/></td> - <td><xsl:apply-templates select="@errors"/></td> - <td><xsl:apply-templates select="@failures"/></td> - <td><xsl:call-template name="display-time"> - <xsl:with-param name="value" select="@time"/> - </xsl:call-template> - </td> - </tr> -</xsl:template> - -<xsl:template match="testcase" mode="print.test"> - <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> - <td><xsl:value-of select="@name"/></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),"'","\'")"/> - <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:param name="br"><br/></xsl:param> - <xsl:value-of select='stringutils:replace(string($word),"
",$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/lib/ant/etc/junit-noframes.xsl b/lib/ant/etc/junit-noframes.xsl deleted file mode 100644 index 25487f8fd..000000000 --- a/lib/ant/etc/junit-noframes.xsl +++ /dev/null @@ -1,461 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"> -<xsl:output method="html" indent="yes" encoding="US-ASCII" - doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" /> -<xsl:decimal-format decimal-separator="." grouping-separator="," /> -<!-- - Copyright 2001-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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 non-framed report that can be useful to send via - e-mail or such. - - @author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/> - @author Erik Hatcher <a href="mailto:ehatcher@apache.org"/> - ---> -<xsl:template match="testsuites"> - <html> - <head> - <title>Unit Test Results</title> - <style type="text/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; - } - </style> - <script type="text/javascript" language="JavaScript"> - var TestCases = new Array(); - var cur; - <xsl:for-each select="./testsuite"> - <xsl:apply-templates select="properties"/> - </xsl:for-each> - - </script> - <script type="text/javascript" language="JavaScript"><![CDATA[ - function displayProperties (name) { - var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1'); - var doc = win.document.open(); - doc.write("<html><head><title>Properties of " + name + "</title>"); - doc.write("<style>") - 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> - <a name="top"></a> - <xsl:call-template name="pageHeader"/> - - <!-- Summary part --> - <xsl:call-template name="summary"/> - <hr size="1" width="95%" align="left"/> - - <!-- Package List part --> - <xsl:call-template name="packagelist"/> - <hr size="1" width="95%" align="left"/> - - <!-- For each package create its part --> - <xsl:call-template name="packages"/> - <hr size="1" width="95%" align="left"/> - - <!-- For each class create the part --> - <xsl:call-template name="classes"/> - - </body> - </html> -</xsl:template> - - - - <!-- ================================================================== --> - <!-- Write a list of all packages with an hyperlink to the anchor of --> - <!-- of the package name. --> - <!-- ================================================================== --> - <xsl:template name="packagelist"> - <h2>Packages</h2> - Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers. - <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> - <xsl:call-template name="testsuite.test.header"/> - <!-- list all packages recursively --> - <xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]"> - <xsl:sort select="@package"/> - <xsl:variable name="testsuites-in-package" select="/testsuites/testsuite[./@package = current()/@package]"/> - <xsl:variable name="testCount" select="sum($testsuites-in-package/@tests)"/> - <xsl:variable name="errorCount" select="sum($testsuites-in-package/@errors)"/> - <xsl:variable name="failureCount" select="sum($testsuites-in-package/@failures)"/> - <xsl:variable name="timeCount" select="sum($testsuites-in-package/@time)"/> - - <!-- write a summary for the package --> - <tr valign="top"> - <!-- set a nice color depending if there is an error/failure --> - <xsl:attribute name="class"> - <xsl:choose> - <xsl:when test="$failureCount > 0">Failure</xsl:when> - <xsl:when test="$errorCount > 0">Error</xsl:when> - </xsl:choose> - </xsl:attribute> - <td><a href="#{@package}"><xsl:value-of select="@package"/></a></td> - <td><xsl:value-of select="$testCount"/></td> - <td><xsl:value-of select="$errorCount"/></td> - <td><xsl:value-of select="$failureCount"/></td> - <td> - <xsl:call-template name="display-time"> - <xsl:with-param name="value" select="$timeCount"/> - </xsl:call-template> - </td> - </tr> - </xsl:for-each> - </table> - </xsl:template> - - - <!-- ================================================================== --> - <!-- Write a package level report --> - <!-- It creates a table with values from the document: --> - <!-- Name | Tests | Errors | Failures | Time --> - <!-- ================================================================== --> - <xsl:template name="packages"> - <!-- create an anchor to this package name --> - <xsl:for-each select="/testsuites/testsuite[not(./@package = preceding-sibling::testsuite/@package)]"> - <xsl:sort select="@package"/> - <a name="{@package}"></a> - <h3>Package <xsl:value-of select="@package"/></h3> - - <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> - <xsl:call-template name="testsuite.test.header"/> - - <!-- match the testsuites of this package --> - <xsl:apply-templates select="/testsuites/testsuite[./@package = current()/@package]" mode="print.test"/> - </table> - <a href="#top">Back to top</a> - <p/> - <p/> - </xsl:for-each> - </xsl:template> - - <xsl:template name="classes"> - <xsl:for-each select="testsuite"> - <xsl:sort select="@name"/> - <!-- create an anchor to this class name --> - <a name="{@name}"></a> - <h3>TestCase <xsl:value-of select="@name"/></h3> - - <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:apply-templates select="./testcase" mode="print.test"/> - </table> - <div class="Properties"> - <a> - <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute> - Properties » - </a> - </div> - <p/> - - <a href="#top">Back to top</a> - </xsl:for-each> - </xsl:template> - - <xsl:template name="summary"> - <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="$failureCount > 0">Failure</xsl:when> - <xsl:when test="$errorCount > 0">Error</xsl:when> - </xsl:choose> - </xsl:attribute> - <td><xsl:value-of select="$testCount"/></td> - <td><xsl:value-of select="$failureCount"/></td> - <td><xsl:value-of select="$errorCount"/></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: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated. - </td> - </tr> - </table> - </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> - -<!-- 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://jakarta.apache.org/ant'>Ant</a>.</td> - </tr> - </table> - <hr size="1"/> -</xsl:template> - -<xsl:template match="testsuite" mode="header"> - <tr valign="top"> - <th width="80%">Name</th> - <th>Tests</th> - <th>Errors</th> - <th>Failures</th> - <th nowrap="nowrap">Time(s)</th> - </tr> -</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> - </tr> -</xsl:template> - -<!-- method header --> -<xsl:template name="testcase.test.header"> - <tr valign="top"> - <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"> - <!-- set a nice color depending if there is an error/failure --> - <xsl:attribute name="class"> - <xsl:choose> - <xsl:when test="@failures[.> 0]">Failure</xsl:when> - <xsl:when test="@errors[.> 0]">Error</xsl:when> - </xsl:choose> - </xsl:attribute> - - <!-- print testsuite information --> - <td><a href="#{@name}"><xsl:value-of select="@name"/></a></td> - <td><xsl:value-of select="@tests"/></td> - <td><xsl:value-of select="@errors"/></td> - <td><xsl:value-of select="@failures"/></td> - <td> - <xsl:call-template name="display-time"> - <xsl:with-param name="value" select="@time"/> - </xsl:call-template> - </td> - </tr> -</xsl:template> - -<xsl:template match="testcase" mode="print.test"> - <tr valign="top"> - <xsl:attribute name="class"> - <xsl:choose> - <xsl:when test="failure | error">Error</xsl:when> - </xsl:choose> - </xsl:attribute> - <td><xsl:value-of select="@name"/></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> - - -<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 tescase 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 --> - <code> - <br/><br/> - <xsl:call-template name="br-replace"> - <xsl:with-param name="word" select="."/> - </xsl:call-template> - </code> - <!-- the later 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),"'","\'")"/> - <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:param name="br"><br/></xsl:param> - <xsl:value-of select='stringutils:replace(string($word),"
",$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/lib/ant/etc/log.xsl b/lib/ant/etc/log.xsl deleted file mode 100644 index 227279027..000000000 --- a/lib/ant/etc/log.xsl +++ /dev/null @@ -1,210 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> -<xsl:output method="html" indent="yes" encoding="US-ASCII"/> -<!-- - Copyright 2000-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> - -<!-- - - The purpose have this XSL is to provide a nice way to look at the output - from the Ant XmlLogger (ie: ant -listener org.apache.tools.ant.XmlLogger ) - - @author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a> - ---> -<xsl:decimal-format decimal-separator="." grouping-separator="," /> - -<xsl:template match="/"> -<html> - <head> - <style type="text/css"> - .bannercell { - border: 0px; - padding: 0px; - } - body { - margin: 0; - font:normal 100% arial,helvetica,sanserif; - background-color:#FFFFFF; - color:#000000; - } - table.status { - font:bold 80% arial,helvetica,sanserif; - background-color:#525D76; - color:#ffffff; - } - table.log tr td, tr th { - font-size: 80%; - } - .error { - color:red; - } - .warn { - color:brown; - } - .info { - color:gray; - } - .debug{ - color:gray; - } - .failed { - font-size:80%; - background-color: red; - color:#FFFFFF; - font-weight: bold - } - .complete { - font-size:80%; - background-color: #525D76; - color:#FFFFFF; - font-weight: bold - } - .a td { - background: #efefef; - } - .b td { - background: #fff; - } - th, td { - text-align: left; - vertical-align: top; - } - th { - background: #ccc; - color: black; - } - table, th, td { - border: none - } - h3 { - font:bold 80% arial,helvetica,sanserif; - background: #525D76; - color: white; - text-decoration: none; - padding: 5px; - margin-right: 2px; - margin-left: 2px; - margin-bottom: 0; - } - </style> - </head> - <body> - <!-- jakarta logo --> - <table border="0" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td valign="top" class="bannercell"> - <a href="http://jakarta.apache.org/"> - <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/> - </a> - </td> - <td style="text-align:right;vertical-align:bottom"> - <a href="http://jakarta.apache.org/ant">Apache Ant</a> - </td> - </tr> - </table> - - <table border="0" width="100%"> - <tr><td><hr noshade="yes" size="1"/></td></tr> - </table> - - <xsl:apply-templates select="build"/> - - <!-- FOOTER --> - <table width="100%"> - <tr><td><hr noshade="yes" size="1"/></td></tr> - <tr><td> - <div align="center"><font color="#525D76" size="-1"><em> - Copyright © 2000-2002, Apache Software Foundation - </em></font></div> - </td></tr> - </table> - </body> -</html> -</xsl:template> - -<xsl:template match="build"> - <!-- build status --> - <table width="100%"> - <xsl:attribute name="class"> - <xsl:if test="@error">failed</xsl:if> - <xsl:if test="not(@error)">complete</xsl:if> - </xsl:attribute> - <tr> - <xsl:if test="@error"> - <td nowrap="yes">Build Failed</td> - </xsl:if> - <xsl:if test="not(@error)"> - <td nowrap="yes">Build Complete</td> - </xsl:if> - <td style="text-align:right" nowrap="yes">Total Time: <xsl:value-of select="@time"/></td> - </tr> - <tr> - <td colspan="2"> - <xsl:if test="@error"> - <tt><xsl:value-of select="@error"/></tt><br/> - <i style="font-size:80%">See the <a href="#stacktrace" alt="Click for details">stacktrace</a>.</i> - </xsl:if> - </td> - </tr> - </table> - <table border="1" cellspacing="2" cellpadding="3" width="100%" style="font-size:80%"> - <tr class="a"><td width="1">ant.file</td><td><xsl:value-of select="substring-after(//message[contains(text(),'ant.file')], '->')"/></td></tr> - <tr class="b"><td width="1">ant.version</td><td><xsl:value-of select="substring-after(//message[contains(text(),'ant.version')], '->')"/></td></tr> - <tr class="a"><td width="1">java.version</td><td><xsl:value-of select="substring-after(//message[contains(text(),'java.vm.version')], '->')"/></td></tr> - <tr class="b"><td width="1">os.name</td><td><xsl:value-of select="substring-after(//message[contains(text(),'os.name')], '->')"/></td></tr> - </table> - <!-- build information --> - <h3>Build events</h3> - <table class="log" border="1" cellspacing="2" cellpadding="3" width="100%"> - <tr> - <th nowrap="yes" align="left" width="1%">target</th> - <th nowrap="yes" align="left" width="1%">task</th> - <th nowrap="yes" align="left">message</th> - </tr> - <xsl:apply-templates select=".//message[@priority != 'debug']"/> - </table> - <p> - <!-- stacktrace --> - <xsl:if test="stacktrace"> - <a name="stacktrace"/> - <h3>Error details</h3> - <table width="100%"> - <tr><td> - <pre><xsl:value-of select="stacktrace"/></pre> - </td></tr> - </table> - </xsl:if> - </p> -</xsl:template> - -<!-- report every message but those with debug priority --> -<xsl:template match="message[@priority!='debug']"> - <tr valign="top"> - <!-- alternated row style --> - <xsl:attribute name="class"> - <xsl:if test="position() mod 2 = 1">a</xsl:if> - <xsl:if test="position() mod 2 = 0">b</xsl:if> - </xsl:attribute> - <td nowrap="yes" width="1%"><xsl:value-of select="../../@name"/></td> - <td nowrap="yes" style="text-align:right" width="1%">[ <xsl:value-of select="../@name"/> ]</td> - <td class="{@priority}" nowrap="yes"> - <xsl:value-of select="text()"/> - </td> - </tr> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/ant/etc/maudit-frames.xsl b/lib/ant/etc/maudit-frames.xsl deleted file mode 100644 index eaaf18081..000000000 --- a/lib/ant/etc/maudit-frames.xsl +++ /dev/null @@ -1,510 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.lib.Redirect" - extension-element-prefixes="redirect"> -<xsl:output method="html" indent="yes" encoding="US-ASCII"/> -<xsl:decimal-format decimal-separator="." grouping-separator="," /> -<!-- - Copyright 2001-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<!-- - - Stylesheet to transform an XML file generated by the Ant MAudit task into - a set of JavaDoc-like HTML page to make pages more convenient to be browsed. - - It use the Xalan redirect extension to write to multiple output files. - - @author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/> ---> - -<xsl:param name="output.dir" select="'.'"/> - - -<xsl:template match="classes"> - <!-- 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> - - <!-- process all packages --> - <xsl:for-each select="./class[not(./@package = preceding-sibling::class/@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="/classes/class[@package = $name]"> - <redirect:write file="{$output.dir}/{$package.dir}/{@name}.html"> - <xsl:apply-templates select="." mode="class.details"/> - </redirect:write> - </xsl:for-each> -</xsl:template> - -<xsl:template name="index.html"> -<HTML> - <HEAD><TITLE>Audit Results.</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"/> - </FRAMESET> - <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> -</HTML> -</xsl:template> - - -<!-- this is the stylesheet css to use for nearly everything --> -<xsl:template name="stylesheet.css"> - .bannercell { - border: 0px; - padding: 0px; - } - body { - margin-left: 10; - margin-right: 10; - font:normal 80% arial,helvetica,sanserif; - background-color:#FFFFFF; - color:#000000; - } - .a td { - background: #efefef; - } - .b td { - background: #fff; - } - th, td { - text-align: left; - vertical-align: top; - } - th { - font-weight:bold; - background: #ccc; - color: black; - } - table, th, td { - font-size:100%; - border: none - } - table.log tr td, tr th { - - } - h2 { - font-weight:bold; - font-size:140%; - margin-bottom: 5; - } - h3 { - font-size:100%; - font-weight:bold; - background: #525D76; - color: white; - text-decoration: none; - padding: 5px; - margin-right: 2px; - margin-left: 2px; - margin-bottom: 0; - } -</xsl:template> - - -<!-- print the violations of the class --> -<xsl:template match="class" mode="class.details"> - <xsl:variable name="package.name" select="@package"/> - <HTML> - <HEAD> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="$package.name"/> - </xsl:call-template> - </HEAD> - <BODY> - <xsl:call-template name="pageHeader"/> - <H3>Class <xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></H3> - - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="class.audit.header"/> - <xsl:apply-templates select="." mode="print.audit"/> - </table> - - <H3>Violations</H3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="violation.audit.header"/> - <xsl:apply-templates select="./violation" mode="print.audit"> - <xsl:sort data-type="number" select="@line"/> - </xsl:apply-templates> - </table> - <xsl:call-template name="pageFooter"/> - </BODY> - </HTML> -</xsl:template> - - -<!-- list of classes in a package --> -<xsl:template name="classes.list"> - <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> - <table width="100%"> - <tr> - <td nowrap="nowrap"> - <H2><a href="package-summary.html" target="classFrame"><xsl:value-of select="$name"/></a></H2> - </td> - </tr> - </table> - - <h2>Classes</h2> - <TABLE WIDTH="100%"> - <xsl:apply-templates select="/classes/class[./@package = $name]" mode="classes.list"> - <xsl:sort select="@name"/> - </xsl:apply-templates> - </TABLE> - </BODY> - </HTML> -</xsl:template> -<!-- the class to list --> -<xsl:template match="class" mode="classes.list"> - <tr> - <td nowrap="nowrap"> - <!-- @bug naming to fix for inner classes --> - <a href="{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a> - </td> - </tr> -</xsl:template> - - -<!-- - Creates an all-classes.html file that contains a link to all package-summary.html - on each class. ---> -<xsl:template match="classes" mode="all.classes"> - <html> - <head> - <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=".//class" mode="all.classes"> - <xsl:sort select="@name"/> - </xsl:apply-templates> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="class" mode="all.classes"> - <!-- (ancestor::package)[last()] is buggy in MSXML3 ? --> - <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="@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="classes" mode="all.packages"> - <html> - <head> - <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="class[not(./@package = preceding-sibling::class/@package)]" mode="all.packages"> - <xsl:sort select="@package" order="ascending"/> - </xsl:apply-templates> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="class" mode="all.packages"> - <tr> - <td nowrap="nowrap"> - <a href="{translate(@package,'.','/')}/package-summary.html" target="classFrame"> - <xsl:value-of select="@package"/> - </a> - </td> - </tr> -</xsl:template> - - -<xsl:template match="classes" mode="overview.packages"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name"/> - </xsl:call-template> - </head> - <body onload="open('allclasses-frame.html','classListFrame')"> - <xsl:call-template name="pageHeader"/> - <h3>Summary</h3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <tr> - <th>Audited classes</th> - <th>Reported classes</th> - <th>Violations</th> - </tr> - <tr class="a"> - <td><xsl:value-of select="@audited"/></td> - <td><xsl:value-of select="@reported"/></td> - <td><xsl:value-of select="@violations"/></td> - </tr> - </table> - <table border="0" width="100%"> - <tr> - <td style="text-align: justify;"> - Note: Rules checked have originated from style guidelines suggested by the language designers, - experience from the Java development community and insite experience. Violations are generally - reported with a reference to the <a href="http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html">Java Language Specifications</a> (JLS x.x.x) - and Metamata Audit rules (x.x). - Please consult these documents for additional information about violations. - <p/> - Rules checked also enforce adherence to <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">Sun Java coding guidelines</a> in use at Jakarta. - <p/> - One should note that these violations do not necessary underline errors but should be used - as an indication for <i>possible</i> errors. As always, use your best judgment and review - them carefully, it might save you hours of debugging. - </td> - </tr> - </table> - - <h3>Packages</h3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="class.audit.header"/> - <xsl:for-each select="class[not(./@package = preceding-sibling::class/@package)]"> - <xsl:sort select="@package" order="ascending"/> - <tr> - <xsl:call-template name="alternate-row"/> - <td><a href="{translate(@package,'.','/')}/package-summary.html"><xsl:value-of select="@package"/></a></td> - <td><xsl:value-of select="sum(/classes/class[./@package = current()/@package]/@violations)"/></td> - </tr> - </xsl:for-each> - </table> - <xsl:call-template name="pageFooter"/> - </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="100%"> - <xsl:call-template name="class.metrics.header"/> - <xsl:apply-templates select="." mode="print.metrics"/> - </table--> - - <xsl:if test="count(/classes/class[./@package = $name]) > 0"> - <H3>Classes</H3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="class.audit.header"/> - <xsl:apply-templates select="/classes/class[./@package = $name]" mode="print.audit"> - <xsl:sort select="@name"/> - </xsl:apply-templates> - </table> - </xsl:if> - <xsl:call-template name="pageFooter"/> - </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"> - - <!-- jakarta logo --> - <table border="0" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="bannercell" rowspan="2"> - <a href="http://jakarta.apache.org/"> - <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/> - </a> - </td> - <td style="text-align:right"><h2>Source Code Audit</h2></td> - </tr> - <tr> - <td style="text-align:right">Designed for use with <a href='http://www.webgain.com/products/quality_analyzer/'>Webgain QA/Metamata Audit</a> and <a href='http://jakarta.apache.org'>Ant</a>.</td> - </tr> - </table> - <hr size="1"/> -</xsl:template> - -<!-- Page HEADER --> -<xsl:template name="pageFooter"> - <table width="100%"> - <tr><td><hr noshade="yes" size="1"/></td></tr> - <tr><td> - <div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2001, Apache Software Foundation - </em></font></div> - </td></tr> - </table> -</xsl:template> - - -<!-- class header --> -<xsl:template name="class.audit.header"> - <tr> - <th width="80%">Name</th> - <th>Violations</th> - </tr> -</xsl:template> - -<!-- method header --> -<xsl:template name="violation.audit.header"> - <tr> - <th>Line</th> - <th>Message</th> - </tr> -</xsl:template> - - -<!-- class information --> -<xsl:template match="class" mode="print.audit"> - <tr> - <xsl:call-template name="alternate-row"/> - <td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td> - <td><xsl:apply-templates select="@violations"/></td> - </tr> -</xsl:template> - -<xsl:template match="violation" mode="print.audit"> - <tr> - <xsl:call-template name="alternate-row"/> - <td><xsl:value-of select="@line"/></td> - <td><xsl:apply-templates select="@message"/></td> - </tr> -</xsl:template> - -<!-- alternated row style --> -<xsl:template name="alternate-row"> -<xsl:attribute name="class"> - <xsl:if test="position() mod 2 = 1">a</xsl:if> - <xsl:if test="position() mod 2 = 0">b</xsl:if> -</xsl:attribute> -</xsl:template> - -</xsl:stylesheet> - diff --git a/lib/ant/etc/mmetrics-frames.xsl b/lib/ant/etc/mmetrics-frames.xsl deleted file mode 100644 index f105ea846..000000000 --- a/lib/ant/etc/mmetrics-frames.xsl +++ /dev/null @@ -1,1033 +0,0 @@ -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:xalan="http://xml.apache.org/xalan" - xmlns:redirect="org.apache.xalan.lib.Redirect" - exclude-result-prefixes="xalan" - extension-element-prefixes="redirect"> -<xsl:output method="html" indent="yes" encoding="US-ASCII"/> -<xsl:decimal-format decimal-separator="." grouping-separator="," /> -<!-- - Copyright 2001-2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<!-- - @author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/> - --> -<xsl:param name="output.dir" select="'.'"/> - -<!-- default max value for the metrics --> -<xsl:param name="vg.max" select="10"/> -<xsl:param name="loc.max" select="1000"/> -<xsl:param name="dit.max" select="10"/> -<xsl:param name="noa.max" select="250"/> -<xsl:param name="nrm.max" select="50"/> -<xsl:param name="nlm.max" select="250"/> -<xsl:param name="wmc.max" select="250"/> -<xsl:param name="rfc.max" select="50"/> -<xsl:param name="dac.max" select="10"/> -<xsl:param name="fanout.max" select="10"/> -<xsl:param name="cbo.max" select="15"/> -<xsl:param name="lcom.max" select="10"/> -<xsl:param name="nocl.max" select="10"/> - - -<!-- create a tree fragment to speed up processing --> -<xsl:variable name="doctree.var"> - <xsl:element name="classes"> - <xsl:for-each select=".//class"> - <xsl:element name="class"> - <xsl:attribute name="package"> - <xsl:value-of select="(ancestor::package)[last()]/@name"/> - </xsl:attribute> - <xsl:copy-of select="@*"/> - <xsl:attribute name="name"> - <xsl:apply-templates select="." mode="class.name"/> - </xsl:attribute> - <xsl:copy-of select="method"/> - </xsl:element> - </xsl:for-each> - </xsl:element> -</xsl:variable> - -<xsl:variable name="doctree" select="xalan:nodeset($doctree.var)"/> - -<xsl:template match="metrics"> - - <!-- 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> - - <redirect:write file="{$output.dir}/metrics-reference.html"> - <xsl:call-template name="metrics-reference.html"/> - </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> - - <!-- process all packages --> - <xsl:apply-templates select=".//package"/> -</xsl:template> - - -<xsl:template match="package"> - <xsl:variable name="package.name" select="@name"/> - <xsl:variable name="package.dir"> - <xsl:if test="not($package.name = 'unnamed package')"><xsl:value-of select="translate($package.name,'.','/')"/></xsl:if> - <xsl:if test="$package.name = 'unnamed package'">.</xsl:if> - </xsl:variable> - <!-- create a classes-list.html in the package directory --> - <redirect:write file="{$output.dir}/{$package.dir}/package-frame.html"> - <xsl:apply-templates select="." mode="classes.list"/> - </redirect:write> - - <!-- create a package-summary.html in the package directory --> - <redirect:write file="{$output.dir}/{$package.dir}/package-summary.html"> - <xsl:apply-templates select="." mode="package.summary"/> - </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="$doctree/classes/class[@package = current()/@name]"> - <!--Processing <xsl:value-of select="$class.name"/><xsl:text> </xsl:text> --> - <redirect:write file="{$output.dir}/{$package.dir}/{@name}.html"> - <xsl:apply-templates select="." mode="class.details"/> - </redirect:write> - </xsl:for-each> -</xsl:template> - -<!-- little trick to compute the classname for inner and non inner classes --> -<!-- this is all in one line to avoid CRLF in the name --> -<xsl:template match="class" mode="class.name"> - <xsl:if test="parent::class"><xsl:apply-templates select="parent::class" mode="class.name"/>.<xsl:value-of select="@name"/></xsl:if><xsl:if test="not(parent::class)"><xsl:value-of select="@name"/></xsl:if> -</xsl:template> - - -<xsl:template name="index.html"> -<HTML> - <HEAD><TITLE>Metrics Results.</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"/> - </FRAMESET> - <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> -</HTML> -</xsl:template> - -<!-- this is the stylesheet css to use for nearly everything --> -<xsl:template name="metrics-reference.html"> -<html> -<head> -<link title="Style" type="text/css" rel="stylesheet" href="stylesheet.css"/> -</head> -<body style="text-align:justify;"> -<h2>Metrics Reference</h2> -<a href="#V(G)">V(G)</a> | -<a href="#LOC">LOC</a> | -<a href="#DIT">DIT</a> | -<a href="#NOA">NOA</a> | -<a href="#NRM">NRM</a> | -<a href="#NLM">NLM</a> | -<a href="#WMC">WMC</a> | -<a href="#RFC">RFC</a> | -<a href="#DAC">DAC</a> | -<a href="#FANOUT">FANOUT</a> | -<a href="#CBO">CBO</a> | -<a href="#LCOM">LCOM</a> | -<a href="#NOC">NOC</a> - -<a name="V(G)"/> -<h3>Cyclomatic Complexity - V(G)</h3> -This metric was introduced in the 1970s to measure the amount of control -flow complexity or branching complexity in a module such as a -subroutine. It gives the number of paths that may be taken through the -code, and was initially developed to give some measure of the cost of -producing a test case for the module by executing each path. -<p/> -Methods with a high cyclomatic complexity tend to be more difficult to -understand and maintain. In general the more complex the methods of an -application, the more difficult it will be to test it, and this will adversely -affect its reliability. -<p/> -V(G) is a measure of the control flow complexity of a method or -constructor. It counts the number of branches in the body of the method, -defined as: -<ul> -<li>while statements;</li> -<li>if statements;</li> -<li>for statements.</li> -</ul> - -The metric can also be configured to count each case of a switch -statement as well. - -<a name="LOC"/> -<h3>Lines of Code - LOC</h3> - -This is perhaps the simplest of all the metrics to define and compute. -Counting lines has a long history as a software metric dating from before -the rise of structured programming, and it is still in widespread use today. -The size of a method affects the ease with which it can be understood, its -reusability and its maintainability. There are a variety of ways that the size -can be calculated. These include counting all the lines of code, the number -of statements, the blank lines of code, the lines of commentary, and the -lines consisting only of syntax such as block delimiters. -<p/> -This metric can also be used for sizing other constructs as well, for -example, the overall size of a Java class or package can be measured by -counting the number of source lines it consists of. -<p/> -LOC can be used to determine the size of a compilation unit (source file), -class or interface, method, constructor, or field. It can be configured to -ignore: -<ul> -<li>blank lines;</li> -<li>lines consisting only of comments;</li> -<li>lines consisting only of opening and closing braces.</li> -</ul> - -<a name="DIT"/> -<h3>Depth of Inheritance Hierarchy - DIT</h3> - -This metric calculates how far down the inheritance hierarchy a class is -declared. In Java all classes have java.lang.Object as their ultimate -superclass, which is defined to have a depth of 1. So a class that -immediately extends java.lang.Object has a metric value of 2; any of its -subclasses will have a value of 3, and so on. -<p/> -A class that is deep within the tree inherits more methods and state -variables, thereby increasing its complexity and making it difficult to -predict its behavior. It can be harder to understand a system with many -inheritance layers. -<p/> -DIT is defined for classes and interfaces: -<ul> -<li>all interface types have a depth of 1;</li> -<li>the class java.lang.Object has a depth of 1;</li> -<li>all other classes have a depth of 1 + the depth of their super class.</li> -</ul> - -<a name="NOA"/> -<h3>Number of Attributes - NOA</h3> - -The number of distinct state variables in a class serves as one measure of -its complexity. The more state a class represents the more difficult it is to -maintain invariants for it. It also hinders comprehensibility and reuse. -<p/> -In Java, state can be exposed to subclasses through protected fields, which -entails that the subclass also be aware of and maintain any invariants. This -interference with the class's data encapsulation can be a source of defects -and hidden dependencies between the state variables. -<p/> -NOA is defined for classes and interfaces. It counts the number of fields -declared in the class or interface. - -<a name="NRM"/> -<h3>Number of Remote Methods - NRM</h3> - -NRM is defined for classes. A remote method call is defined as an -invocation of a method that is not declared in any of: -<ul> -<li>the class itself;</li> -<li>a class or interface that the class extends or implements;</li> -<li>a class or method that extends the class.</li> -</ul> - -The value is the count of all the remote method calls in all of the methods -and constructors of the class. - -<a name="NLM"/> -<h3>Number of Local Methods - NLM</h3> - -NLM is defined for classes and interfaces. A local method is defined as a -method that is declared in the class or interface. NLM can be configured to -include the local methods of all of the class's superclasses. Methods with -public, protected, package and private visibility can be independently -counted by setting configuration parameters. - -<a name="WMC"/> -<h3>Weighted Methods per Class - WMC</h3> - -If the number of methods in a class can be determined during the design -and modeling phase of a project, it can be used as a predictor of how -much time and effort is needed to develop, debug and maintain it. This -metric can be further refined by incorporating a weighting for the -complexity of each method. The usual weighting is given by the cyclomatic -complexity of the method. -<p/> -The subclasses of a class inherit all of its public and protected methods, -and possibly its package methods as well, so the number of methods a -class has directly impacts the complexity of its subclasses. Classes with -large numbers of methods are often specific to a particular application, -reducing the ability to reuse them. -<p/> -The definition of WMC is based upon NLM, and it provides the same -configuration parameters for counting inherited methods and of varying -visibility. The main difference is that NLM always counts each method as 1, -whereas WMC will weight each method. There are two weighting schemes: -<ul> -<li>V(G) the cyclomatic complexity of the method is used as its weight. - Methods from class files are given a V(G) of 1.</li> -<li>the arity, or the number of parameters of the method are used to - determine the weight.</li> -</ul> - -<a name="RFC"/> -<h3>Response For Class - RFC</h3> - -The response set of a class is the set of all methods that can be invoked as -a result of a message sent to an object of the class. This includes methods -in the class's inheritance hierarchy and methods that can be invoked on -other objects. The Response For Class metric is defined to be size of the -response set for the class. A class which provides a larger response set is -considered to be more complex than one with a smaller response set. -<p/> -One reason for this is that if a method call on a class can result in a large -number of different method calls on the target and other classes, then it -can be harder to test the behavior of the class and debug problems. It will -typically require a deeper understanding of the potential interactions that -objects of the class can have with the rest of the system. -<p/> -RFC is defined as the sum of NLM and NRM for the class. The local methods -include all of the public, protected, package and private methods, but not -methods declared only in a superclass. - -<a name="DAC"/> -<h3>Data Abstraction Coupling - DAC</h3> - -DAC is defined for classes and interfaces. It counts the number of reference -types that are used in the field declarations of the class or interface. The -component types of arrays are also counted. Any field with a type that is -either a supertype or a subtype of the class is not counted. - -<a name="FANOUT"/> -<h3>Fan Out - FANOUT</h3> - -FANOUT is defined for classes and interfaces, constructors and methods. It -counts the number of reference types that are used in: -<ul> -<li>field declarations;</li> -<li>formal parameters and return types;</li> -<li>throws declarations;</li> -<li>local variables.</li> -</ul> - -The component types of arrays are also counted. Any type that is either a -supertype or a subtype of the class is not counted. - -<a name="CBO"/> -<h3>Coupling Between Objects - CBO</h3> - -When one object or class uses another object or class they are said to be -coupled. One major source of coupling is that between a superclass and a -subclass. A coupling is also introduced when a method or field in another -class is accessed, or when an object of another class is passed into or out -of a method invocation. Coupling Between Objects is a measure of the -non-inheritance coupling between two objects. -<p/> -A high value of coupling reduces the modularity of the class and makes -reuse more difficult. The more independent a class is the more likely it is -that it will be possible to reuse it in another part of the system. When a -class is coupled to another class it becomes sensitive to changes in that -class, thereby making maintenance for difficult. In addition, a class that is -overly dependent on other classes can be difficult to understand and test in -isolation. -<p/> -CBO is defined for classes and interfaces, constructors and methods. It -counts the number of reference types that are used in: -<ul> -<li>field declarations</li> -<li>formal parameters and return types</li> -<li>throws declarations</li> -<li>local variables</li> -</ul> - -It also counts: -<ul> -<li>types from which field and method selections are made</li> -</ul> - -The component types of arrays are also counted. Any type that is either a -supertype or a subtype of the class is not counted. - -<a name="LCOM"/> -<h3>Lack of Cohesion Of Methods - LCOM</h3> - -The cohesion of a class is the degree to which its methods are related to -each other. It is determined by examining the pattern of state variable -accesses within the set of methods. If all the methods access the same state -variables then they have high cohesion; if they access disjoint sets of -variables then the cohesion is low. An extreme example of low cohesion -would be if none of the methods accessed any of the state variables. - -If a class exhibits low method cohesion it indicates that the design of the -class has probably been partitioned incorrectly, and could benefit by being -split into more classes with individually higher cohesion. On the other -hand, a high value of cohesion (a low lack of cohesion) implies that the -class is well designed. A cohesive class will tend to provide a high degree -of encapsulation, whereas a lack of cohesion decreases encapsulation and -increases complexity. -<p/> -Another form of cohesion that is useful for Java programs is cohesion -between nested and enclosing classes. A nested class that has very low -cohesion with its enclosing class would probably better designed as a peer -class rather than a nested class. -<p/> -LCOM is defined for classes. Operationally, LCOM takes each pair of -methods in the class and determines the set of fields they each access. If -they have disjoint sets of field accesses increase the count P by one. If they -share at least one field access then increase Q by one. After considering -each pair of methods, -LCOM = (P > Q) ? (P - Q) : 0 -<p/> -Indirect access to fields via local methods can be considered by setting a -metric configuration parameter. - -<a name="NOC"/> -<h3>Number Of Classes - NOC</h3> - -The overall size of the system can be estimated by calculating the number -of classes it contains. A large system with more classes is more complex -than a smaller one because the number of potential interactions between -objects is higher. This reduces the comprehensibility of the system which -in turn makes it harder to test, debug and maintain. -<p/> -If the number of classes in the system can be projected during the initial -design phase of the project it can serve as a base for estimating the total -effort and cost of developing, debugging and maintaining the system. -<p/> -The NOC metric can also usefully be applied at the package and class level -as well as the total system. -<p/> -NOCL is defined for class and interfaces. It counts the number of classes or -interfaces that are declared. This is usually 1, but nested class declarations -will increase this number. -</body> -</html> -</xsl:template> - -<!-- this is the stylesheet css to use for nearly everything --> -<xsl:template name="stylesheet.css"> - .bannercell { - border: 0px; - padding: 0px; - } - body { - margin-left: 10; - margin-right: 10; - font:normal 80% arial,helvetica,sanserif; - background-color:#FFFFFF; - color:#000000; - } - .a td { - background: #efefef; - } - .b td { - background: #fff; - } - th, td { - text-align: left; - vertical-align: top; - } - th { - font-weight:bold; - background: #ccc; - color: black; - } - table, th, td { - font-size:100%; - border: none - } - table.log tr td, tr th { - - } - h2 { - font-weight:bold; - font-size:140%; - margin-bottom: 5; - } - h3 { - font-size:100%; - font-weight:bold; - background: #525D76; - color: white; - text-decoration: none; - padding: 5px; - margin-right: 2px; - margin-left: 2px; - margin-bottom: 0; - } - .Error { - font-weight:bold; color:red; - } - -</xsl:template> - -<!-- print the metrics of the class --> -<xsl:template match="class" mode="class.details"> - <!--xsl:variable name="package.name" select="(ancestor::package)[last()]/@name"/--> - <xsl:variable name="package.name" select="@package"/> - <HTML> - <HEAD> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="$package.name"/> - </xsl:call-template> - </HEAD> - <BODY> - <xsl:call-template name="pageHeader"/> - - <H3>Class <xsl:if test="not($package.name = 'unnamed package')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></H3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="all.metrics.header"/> - <xsl:apply-templates select="." mode="print.metrics"/> - </table> - - <H3>Methods</H3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="method.metrics.header"/> - <xsl:apply-templates select="method" mode="print.metrics"/> - </table> - - <xsl:call-template name="pageFooter"/> - </BODY> - </HTML> -</xsl:template> - - -<!-- list of classes in a package --> -<xsl:template match="package" mode="classes.list"> - <HTML> - <HEAD> - <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"/></a></H2> - </td> - </tr> - </table> - - <H2>Classes</H2> - <TABLE WIDTH="100%"> - <!-- xalan-nodeset:nodeset for Xalan 1.2.2 --> - <xsl:for-each select="$doctree/classes/class[@package = current()/@name]"> - <xsl:sort select="@name"/> - <tr> - <td nowrap="nowrap"> - <a href="{@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="metrics" mode="all.classes"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="''"/> - </xsl:call-template> - </head> - <body> - <h2>Classes</h2> - <table width="100%"> - <xsl:for-each select="$doctree/classes/class"> - <xsl:sort select="@name"/> - <xsl:apply-templates select="." mode="all.classes"/> - </xsl:for-each> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="class" mode="all.classes"> - <xsl:variable name="package.name" select="@package"/> - <xsl:variable name="class.name" select="@name"/> - <tr> - <td nowrap="nowrap"> - <a target="classFrame"> - <xsl:attribute name="href"> - <xsl:if test="not($package.name='unnamed package')"> - <xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text> - </xsl:if> - <xsl:value-of select="$class.name"/><xsl:text>.html</xsl:text> - </xsl:attribute> - <xsl:value-of select="$class.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="metrics" mode="all.packages"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="./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=".//package[not(./@name = 'unnamed package')]" mode="all.packages"> - <xsl:sort select="@name"/> - </xsl:apply-templates> - </table> - </body> - </html> -</xsl:template> - -<xsl:template match="package" mode="all.packages"> - <tr> - <td nowrap="nowrap"> - <a href="{translate(@name,'.','/')}/package-summary.html" target="classFrame"> - <xsl:value-of select="@name"/> - </a> - </td> - </tr> -</xsl:template> - - -<xsl:template match="metrics" mode="overview.packages"> - <html> - <head> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="''"/> - </xsl:call-template> - </head> - <body onload="open('allclasses-frame.html','classListFrame')"> - <xsl:call-template name="pageHeader"/> - <h3>Summary</h3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <tr> - <th><a href="metrics-reference.html#V(G)">V(G)</a></th> - <th><a href="metrics-reference.html#LOC">LOC</a></th> - <th><a href="metrics-reference.html#DIT">DIT</a></th> - <th><a href="metrics-reference.html#NOA">NOA</a></th> - <th><a href="metrics-reference.html#NRM">NRM</a></th> - <th><a href="metrics-reference.html#NLM">NLM</a></th> - <th><a href="metrics-reference.html#WMC">WMC</a></th> - <th><a href="metrics-reference.html#RFC">RFC</a></th> - <th><a href="metrics-reference.html#DAC">DAC</a></th> - <th><a href="metrics-reference.html#FANOUT">FANOUT</a></th> - <th><a href="metrics-reference.html#CBO">CBO</a></th> - <th><a href="metrics-reference.html#LCOM">LCOM</a></th> - <th><a href="metrics-reference.html#NOCL">NOCL</a></th> - </tr> - <xsl:apply-templates select="." mode="print.metrics"/> - </table> - <table border="0" width="100%"> - <tr> - <td style="text-align: justify;"> - Note: Metrics evaluate the quality of software by analyzing the program source and quantifying - various kind of complexity. Complexity is a common source of problems and defects in software. - High complexity makes it more difficult to develop, understand, maintain, extend, test and debug - a program. - <p/> - The primary use of metrics is to focus your attention on those parts of code that potentially are - complexity hot spots. Once the complex areas your program have been uncovered, you can take remedial - actions. - For additional information about metrics and their meaning, please consult - Metamata Metrics manual. - </td> - </tr> - </table> - - <h3>Packages</h3> - <table border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="all.metrics.header"/> - <xsl:for-each select=".//package[not(@name = 'unnamed package')]"> - <xsl:sort select="@name" order="ascending"/> - <xsl:apply-templates select="." mode="print.metrics"/> - </xsl:for-each> - </table> - <!-- @bug there could some classes at this level (classes in unnamed package) --> - <xsl:call-template name="pageFooter"/> - </body> - </html> -</xsl:template> - -<xsl:template match="package" mode="package.summary"> - <HTML> - <HEAD> - <xsl:call-template name="create.stylesheet.link"> - <xsl:with-param name="package.name" select="@name"/> - </xsl:call-template> - </HEAD> - <body onload="open('package-frame.html','classListFrame')"> - <xsl:call-template name="pageHeader"/> - <!-- create an anchor to this package name --> - <h3>Package <xsl:value-of select="@name"/></h3> - - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="all.metrics.header"/> - <xsl:apply-templates select="." mode="print.metrics"/> - </table> - - <table border="0" width="100%"> - <tr> - <td style="text-align: justify;"> - Note: Metrics evaluate the quality of software by analyzing the program source and quantifying - various kind of complexity. Complexity is a common source of problems and defects in software. - High complexity makes it more difficult to develop, understand, maintain, extend, test and debug - a program. - <p/> - The primary use of metrics is to focus your attention on those parts of code that potentially are - complexity hot spots. Once the complex areas your program have been uncovered, you can take remedial - actions. - For additional information about metrics and their meaning, please consult - Metamata Metrics manual. - </td> - </tr> - </table> - - <xsl:variable name="classes-in-package" select="$doctree/classes/class[@package = current()/@name]"/> - <xsl:if test="count($classes-in-package) > 0"> - <H3>Classes</H3> - <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> - <xsl:call-template name="all.metrics.header"/> - <xsl:for-each select="$classes-in-package"> - <xsl:sort select="@name"/> - <xsl:apply-templates select="." mode="print.metrics"/> - </xsl:for-each> - </table> - </xsl:if> - - <xsl:call-template name="pageFooter"/> - </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"> - - <!-- jakarta logo --> - <table border="0" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="bannercell" rowspan="2"> - <a href="http://jakarta.apache.org/"> - <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/> - </a> - </td> - <td style="text-align:right"><h2>Source Code Metrics</h2></td> - </tr> - <tr> - <td style="text-align:right">Designed for use with <a href='http://www.webgain.com/products/quality_analyzer/'>Webgain QA/Metamata Metrics</a> and <a href='http://jakarta.apache.org'>Ant</a>.</td> - </tr> - </table> - <hr size="1"/> -</xsl:template> - -<!-- Page Footer --> -<xsl:template name="pageFooter"> - <table width="100%"> - <tr><td><hr noshade="yes" size="1"/></td></tr> - <tr><td> - <div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2001, Apache Software Foundation - </em></font></div> - </td></tr> - </table> -</xsl:template> - -<!-- class header --> -<xsl:template name="all.metrics.header"> - <tr> - <th width="80%">Name</th> - <th nowrap="nowrap">V(G)</th> - <th>LOC</th> - <th>DIT</th> - <th>NOA</th> - <th>NRM</th> - <th>NLM</th> - <th>WMC</th> - <th>RFC</th> - <th>DAC</th> - <th>FANOUT</th> - <th>CBO</th> - <th>LCOM</th> - <th>NOCL</th> - </tr> -</xsl:template> - -<!-- method header --> -<xsl:template name="method.metrics.header"> - <tr> - <th width="80%">Name</th> - <th nowrap="nowrap">V(G)</th> - <th>LOC</th> - <th>FANOUT</th> - <th>CBO</th> - </tr> -</xsl:template> - -<!-- method information --> -<xsl:template match="method" mode="print.metrics"> - <tr> - <xsl:call-template name="alternate-row"/> - <td><xsl:apply-templates select="@name"/></td> - <td><xsl:apply-templates select="@vg"/></td> - <td><xsl:apply-templates select="@loc"/></td> - <td><xsl:apply-templates select="@fanout"/></td> - <td><xsl:apply-templates select="@cbo"/></td> - </tr> -</xsl:template> - -<!-- class information --> -<xsl:template match="class" mode="print.metrics"> - <tr> - <xsl:call-template name="alternate-row"/> - <td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td> - <td><xsl:apply-templates select="@vg"/></td> - <td><xsl:apply-templates select="@loc"/></td> - <td><xsl:apply-templates select="@dit"/></td> - <td><xsl:apply-templates select="@noa"/></td> - <td><xsl:apply-templates select="@nrm"/></td> - <td><xsl:apply-templates select="@nlm"/></td> - <td><xsl:apply-templates select="@wmc"/></td> - <td><xsl:apply-templates select="@rfc"/></td> - <td><xsl:apply-templates select="@dac"/></td> - <td><xsl:apply-templates select="@fanout"/></td> - <td><xsl:apply-templates select="@cbo"/></td> - <td><xsl:apply-templates select="@lcom"/></td> - <td><xsl:apply-templates select="@nocl"/></td> - </tr> -</xsl:template> - -<xsl:template match="file|package" mode="print.metrics"> - <tr> - <xsl:call-template name="alternate-row"/> - <td> - <a href="{translate(@name,'.','/')}/package-summary.html" target="classFrame"> - <xsl:value-of select="@name"/> - </a> - </td> - <td><xsl:apply-templates select="@vg"/></td> - <td><xsl:apply-templates select="@loc"/></td> - <td><xsl:apply-templates select="@dit"/></td> - <td><xsl:apply-templates select="@noa"/></td> - <td><xsl:apply-templates select="@nrm"/></td> - <td><xsl:apply-templates select="@nlm"/></td> - <td><xsl:apply-templates select="@wmc"/></td> - <td><xsl:apply-templates select="@rfc"/></td> - <td><xsl:apply-templates select="@dac"/></td> - <td><xsl:apply-templates select="@fanout"/></td> - <td><xsl:apply-templates select="@cbo"/></td> - <td><xsl:apply-templates select="@lcom"/></td> - <td><xsl:apply-templates select="@nocl"/></td> - </tr> -</xsl:template> - -<xsl:template match="metrics" mode="print.metrics"> - <tr> - <xsl:call-template name="alternate-row"/> - <!-- the global metrics is the top package metrics --> - <td><xsl:apply-templates select="./package/@vg"/></td> - <td><xsl:apply-templates select="./package/@loc"/></td> - <td><xsl:apply-templates select="./package/@dit"/></td> - <td><xsl:apply-templates select="./package/@noa"/></td> - <td><xsl:apply-templates select="./package/@nrm"/></td> - <td><xsl:apply-templates select="./package/@nlm"/></td> - <td><xsl:apply-templates select="./package/@wmc"/></td> - <td><xsl:apply-templates select="./package/@rfc"/></td> - <td><xsl:apply-templates select="./package/@dac"/></td> - <td><xsl:apply-templates select="./package/@fanout"/></td> - <td><xsl:apply-templates select="./package/@cbo"/></td> - <td><xsl:apply-templates select="./package/@lcom"/></td> - <td><xsl:apply-templates select="./package/@nocl"/></td> - </tr> -</xsl:template> - -<!-- alternated row style --> -<xsl:template name="alternate-row"> -<xsl:attribute name="class"> - <xsl:if test="position() mod 2 = 1">a</xsl:if> - <xsl:if test="position() mod 2 = 0">b</xsl:if> -</xsl:attribute> -</xsl:template> - - -<!-- how to display the metrics with their max value --> -<!-- @todo the max values must be external to the xsl --> - - <xsl:template match="@vg"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$vg.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@loc"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$loc.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@dit"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$dit.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@noa"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$noa.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@nrm"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$nrm.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@nlm"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$nlm.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@wmc"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$wmc.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@rfc"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$rfc.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@dac"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$dac.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@fanout"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$fanout.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@cbo"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$cbo.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@lcom"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$lcom.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template match="@nocl"> - <xsl:call-template name="display-value"> - <xsl:with-param name="value" select="current()"/> - <xsl:with-param name="max" select="$nocl.max"/> - </xsl:call-template> - </xsl:template> - - <xsl:template name="display-value"> - <xsl:param name="value"/> - <xsl:param name="max"/> - <xsl:if test="$value > $max"> - <xsl:attribute name="class">Error</xsl:attribute> - </xsl:if> - <xsl:value-of select="$value"/> - </xsl:template> - -</xsl:stylesheet> - diff --git a/lib/ant/etc/tagdiff.xsl b/lib/ant/etc/tagdiff.xsl deleted file mode 100644 index 12a1e6f75..000000000 --- a/lib/ant/etc/tagdiff.xsl +++ /dev/null @@ -1,177 +0,0 @@ -<!-- - Copyright 2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 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 stylesheet to display changelogs ala netbeans --> -<xsl:stylesheet - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - version="1.0"> - <xsl:param name="title"/> - <xsl:param name="module"/> - <xsl:param name="cvsweb"/> - - <xsl:output method="html" indent="yes"/> - - <!-- Copy standard document elements. Elements that - should be ignored must be filtered by apply-templates - tags. --> - <xsl:template match="*"> - <xsl:copy> - <xsl:copy-of select="attribute::*[. != '']"/> - <xsl:apply-templates/> - </xsl:copy> - </xsl:template> - - <xsl:template match="tagdiff"> - <HTML> - <HEAD> - <TITLE><xsl:value-of select="$title"/></TITLE> - </HEAD> - <BODY link="#000000" alink="#000000" vlink="#000000" text="#000000"> - <style type="text/css"> - body, p { - font-family: verdana,arial,helvetica; - font-size: 80%; - color:#000000; - } - .dateAndAuthor { - font-family: verdana,arial,helvetica; - font-size: 80%; - font-weight: bold; - text-align:left; - background:#a6caf0; - } - tr, td{ - font-family: verdana,arial,helvetica; - font-size: 80%; - background:#eeeee0; - } - </style> - <h1> - <a name="top"><xsl:value-of select="$title"/></a> - </h1> - Tagdiff between <xsl:value-of select="@startTag"/> <xsl:value-of select="@startDate"/> and - <xsl:value-of select="@endTag"/> <xsl:value-of select="@endDate"/> - <p align="right">Designed for use with <a href="http://ant.apache.org/">Ant</a>.</p> - <hr size="2"/> - <a name="TOP"/> - <table width="100%"> - <tr> - <td align="right"> - <a href="#New">New Files</a> | - <a href="#Modified">Modified Files</a> | - <a href="#Removed">Removed Files</a> - </td> - </tr> - </table> - <TABLE BORDER="0" WIDTH="100%" CELLPADDING="3" CELLSPACING="1"> - <xsl:call-template name="show-entries"> - <xsl:with-param name="title">New Files</xsl:with-param> - <xsl:with-param name="anchor">New</xsl:with-param> - <xsl:with-param name="entries" select=".//entry[file/revision][not(file/prevrevision)]"/> - </xsl:call-template> - - <xsl:call-template name="show-entries"> - <xsl:with-param name="title">Modified Files</xsl:with-param> - <xsl:with-param name="anchor">Modified</xsl:with-param> - <xsl:with-param name="entries" select=".//entry[file/revision][file/prevrevision]"/> - </xsl:call-template> - - <xsl:call-template name="show-entries"> - <xsl:with-param name="title">Removed Files</xsl:with-param> - <xsl:with-param name="anchor">Removed</xsl:with-param> - <xsl:with-param name="entries" select=".//entry[not(file/revision)][not(file/prevrevision)]"/> - </xsl:call-template> - </TABLE> - - </BODY> - </HTML> - </xsl:template> - - <xsl:template name="show-entries"> - <xsl:param name="title"/> - <xsl:param name="anchor"/> - <xsl:param name="entries"/> - <TR> - <TD colspan="2" class="dateAndAuthor"> - <a> - <xsl:attribute name="name"><xsl:value-of select="$anchor"/></xsl:attribute> - <xsl:value-of select="$title"/> - <xsl:value-of select="count($entries)"/> entries - </a> - <a href="#TOP">(back to top)</a> - </TD> - </TR> - <TR> - <TD width="20"> - <xsl:text> </xsl:text> - </TD> - <TD> - <ul> - <xsl:apply-templates select="$entries"/> - </ul> - </TD> - </TR> - </xsl:template> - - <xsl:template match="entry"> - <xsl:apply-templates select="file"/> - </xsl:template> - - <xsl:template match="date"> - <i><xsl:value-of select="."/></i> - </xsl:template> - - <xsl:template match="time"> - <i><xsl:value-of select="."/></i> - </xsl:template> - - <xsl:template match="author"> - <i> - <a> - <xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute> - <xsl:value-of select="."/> - </a> - </i> - </xsl:template> - - <xsl:template match="file"> - <li> - <a target="_new"> - <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" /></xsl:attribute> - <xsl:value-of select="name" /> - </a> - <xsl:if test="string-length(prevrevision) > 0 or string-length(revision) > 0"> - <xsl:text> </xsl:text> - <a target="_new"> - <xsl:choose> - <xsl:when test="string-length(prevrevision) = 0 "> - <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?rev=<xsl:value-of select="revision" />&content-type=text/x-cvsweb-markup</xsl:attribute> - </xsl:when> - <xsl:otherwise> - <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?r1=<xsl:value-of select="revision" />&r2=<xsl:value-of select="prevrevision"/>&diff_format=h</xsl:attribute> - </xsl:otherwise> - </xsl:choose> (<xsl:value-of select="revision"/>) - </a> - </xsl:if> - </li> - </xsl:template> - - <!-- Any elements within a msg are processed, - so that we can preserve HTML tags. --> - <xsl:template match="msg"> - <b><xsl:apply-templates/></b> - </xsl:template> - -</xsl:stylesheet> diff --git a/lib/ant/lib/README b/lib/ant/lib/README deleted file mode 100644 index 38fa1fa90..000000000 --- a/lib/ant/lib/README +++ /dev/null @@ -1,14 +0,0 @@ -Please refer to the Ant manual under Installing Ant / Library -Dependencies for a list of the jar requirements for various optional -tasks and features. - -This directory contains xercesImpl.jar from the 2.6.2 release of -Apache Xerces. For more information or newer releases see -<http://xml.apache.org/xerces2-j/>. See the file LICENSE.xerces for -the terms of distribution. - -It also contains xml-apis.jar from the 2.6.2 release of Apache Xerces. -For more information or newer releases see -<http://xml.apache.org/commons/>. See the files LICENSE.dom and -LICENSE.sax for the terms of distribution. - diff --git a/lib/ant/lib/ant-antlr.jar b/lib/ant/lib/ant-antlr.jar Binary files differdeleted file mode 100644 index eb7b13fca..000000000 --- a/lib/ant/lib/ant-antlr.jar +++ /dev/null diff --git a/lib/ant/lib/ant-apache-bcel.jar b/lib/ant/lib/ant-apache-bcel.jar Binary files differdeleted file mode 100644 index f30afa60a..000000000 --- a/lib/ant/lib/ant-apache-bcel.jar +++ /dev/null diff --git a/lib/ant/lib/ant-apache-bsf.jar b/lib/ant/lib/ant-apache-bsf.jar Binary files differdeleted file mode 100644 index 3e6f9de0e..000000000 --- a/lib/ant/lib/ant-apache-bsf.jar +++ /dev/null diff --git a/lib/ant/lib/ant-apache-log4j.jar b/lib/ant/lib/ant-apache-log4j.jar Binary files differdeleted file mode 100644 index 967585690..000000000 --- a/lib/ant/lib/ant-apache-log4j.jar +++ /dev/null diff --git a/lib/ant/lib/ant-apache-oro.jar b/lib/ant/lib/ant-apache-oro.jar Binary files differdeleted file mode 100644 index 3feec40c0..000000000 --- a/lib/ant/lib/ant-apache-oro.jar +++ /dev/null diff --git a/lib/ant/lib/ant-apache-regexp.jar b/lib/ant/lib/ant-apache-regexp.jar Binary files differdeleted file mode 100644 index 9de8413dd..000000000 --- a/lib/ant/lib/ant-apache-regexp.jar +++ /dev/null diff --git a/lib/ant/lib/ant-apache-resolver.jar b/lib/ant/lib/ant-apache-resolver.jar Binary files differdeleted file mode 100644 index 0cca33a5f..000000000 --- a/lib/ant/lib/ant-apache-resolver.jar +++ /dev/null diff --git a/lib/ant/lib/ant-commons-logging.jar b/lib/ant/lib/ant-commons-logging.jar Binary files differdeleted file mode 100644 index feccf3ecb..000000000 --- a/lib/ant/lib/ant-commons-logging.jar +++ /dev/null diff --git a/lib/ant/lib/ant-commons-net.jar b/lib/ant/lib/ant-commons-net.jar Binary files differdeleted file mode 100644 index c43696a91..000000000 --- a/lib/ant/lib/ant-commons-net.jar +++ /dev/null diff --git a/lib/ant/lib/ant-icontract.jar b/lib/ant/lib/ant-icontract.jar Binary files differdeleted file mode 100644 index 218023dd8..000000000 --- a/lib/ant/lib/ant-icontract.jar +++ /dev/null diff --git a/lib/ant/lib/ant-jai.jar b/lib/ant/lib/ant-jai.jar Binary files differdeleted file mode 100644 index d52167471..000000000 --- a/lib/ant/lib/ant-jai.jar +++ /dev/null diff --git a/lib/ant/lib/ant-javamail.jar b/lib/ant/lib/ant-javamail.jar Binary files differdeleted file mode 100644 index 3aa28d88e..000000000 --- a/lib/ant/lib/ant-javamail.jar +++ /dev/null diff --git a/lib/ant/lib/ant-jdepend.jar b/lib/ant/lib/ant-jdepend.jar Binary files differdeleted file mode 100644 index 532c817d3..000000000 --- a/lib/ant/lib/ant-jdepend.jar +++ /dev/null diff --git a/lib/ant/lib/ant-jmf.jar b/lib/ant/lib/ant-jmf.jar Binary files differdeleted file mode 100644 index 43ea62165..000000000 --- a/lib/ant/lib/ant-jmf.jar +++ /dev/null diff --git a/lib/ant/lib/ant-jsch.jar b/lib/ant/lib/ant-jsch.jar Binary files differdeleted file mode 100644 index 059c81f36..000000000 --- a/lib/ant/lib/ant-jsch.jar +++ /dev/null diff --git a/lib/ant/lib/ant-junit.jar b/lib/ant/lib/ant-junit.jar Binary files differdeleted file mode 100644 index 7f508c33c..000000000 --- a/lib/ant/lib/ant-junit.jar +++ /dev/null diff --git a/lib/ant/lib/ant-launcher.jar b/lib/ant/lib/ant-launcher.jar Binary files differdeleted file mode 100644 index 5355cccf4..000000000 --- a/lib/ant/lib/ant-launcher.jar +++ /dev/null diff --git a/lib/ant/lib/ant-netrexx.jar b/lib/ant/lib/ant-netrexx.jar Binary files differdeleted file mode 100644 index 392dc66f7..000000000 --- a/lib/ant/lib/ant-netrexx.jar +++ /dev/null diff --git a/lib/ant/lib/ant-nodeps.jar b/lib/ant/lib/ant-nodeps.jar Binary files differdeleted file mode 100644 index 5f0a54c7e..000000000 --- a/lib/ant/lib/ant-nodeps.jar +++ /dev/null diff --git a/lib/ant/lib/ant-starteam.jar b/lib/ant/lib/ant-starteam.jar Binary files differdeleted file mode 100644 index baefc8cba..000000000 --- a/lib/ant/lib/ant-starteam.jar +++ /dev/null diff --git a/lib/ant/lib/ant-stylebook.jar b/lib/ant/lib/ant-stylebook.jar Binary files differdeleted file mode 100644 index b797bcce2..000000000 --- a/lib/ant/lib/ant-stylebook.jar +++ /dev/null diff --git a/lib/ant/lib/ant-swing.jar b/lib/ant/lib/ant-swing.jar Binary files differdeleted file mode 100644 index 251c0c173..000000000 --- a/lib/ant/lib/ant-swing.jar +++ /dev/null diff --git a/lib/ant/lib/ant-trax.jar b/lib/ant/lib/ant-trax.jar Binary files differdeleted file mode 100644 index e827e295a..000000000 --- a/lib/ant/lib/ant-trax.jar +++ /dev/null diff --git a/lib/ant/lib/ant-vaj.jar b/lib/ant/lib/ant-vaj.jar Binary files differdeleted file mode 100644 index 1efcef5b1..000000000 --- a/lib/ant/lib/ant-vaj.jar +++ /dev/null diff --git a/lib/ant/lib/ant-weblogic.jar b/lib/ant/lib/ant-weblogic.jar Binary files differdeleted file mode 100644 index bcd303ce3..000000000 --- a/lib/ant/lib/ant-weblogic.jar +++ /dev/null diff --git a/lib/ant/lib/ant-xalan1.jar b/lib/ant/lib/ant-xalan1.jar Binary files differdeleted file mode 100644 index e21dbd196..000000000 --- a/lib/ant/lib/ant-xalan1.jar +++ /dev/null diff --git a/lib/ant/lib/ant-xslp.jar b/lib/ant/lib/ant-xslp.jar Binary files differdeleted file mode 100644 index 1eb6dd6ce..000000000 --- a/lib/ant/lib/ant-xslp.jar +++ /dev/null diff --git a/lib/ant/lib/ant.jar b/lib/ant/lib/ant.jar Binary files differdeleted file mode 100644 index 15aae908a..000000000 --- a/lib/ant/lib/ant.jar +++ /dev/null diff --git a/lib/ant/lib/junit.jar b/lib/ant/lib/junit.jar Binary files differdeleted file mode 100644 index 674d71e89..000000000 --- a/lib/ant/lib/junit.jar +++ /dev/null diff --git a/lib/ant/lib/xercesImpl.jar b/lib/ant/lib/xercesImpl.jar Binary files differdeleted file mode 100644 index f0fb0e89b..000000000 --- a/lib/ant/lib/xercesImpl.jar +++ /dev/null diff --git a/lib/ant/lib/xml-apis.jar b/lib/ant/lib/xml-apis.jar Binary files differdeleted file mode 100644 index 2dd837714..000000000 --- a/lib/ant/lib/xml-apis.jar +++ /dev/null diff --git a/lib/ant/welcome.html b/lib/ant/welcome.html deleted file mode 100644 index 1e2a27b94..000000000 --- a/lib/ant/welcome.html +++ /dev/null @@ -1,352 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> - <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> - <TITLE>Welcome to Apache Ant 1.6</TITLE> -</HEAD> -<BODY LANG="en-US" BGCOLOR="#ffffff" DIR="LTR"> -<H1>Welcome to Apache Ant 1.6</H1> -<P><BR><BR> -</P> -<H2>Your life just got better. -</H2> -<P>Not in big ways. Your social life isn't going to be helped, though -with any luck you may now have more time for one. Nor is it going to -take less time to write your Java code -although we note that running -<A HREF="http://xdoclet.sf.net/" TARGET="other">XDoclet</A> under Ant -lets you avoid writing so much code. Nor is a new release of Ant -likely to provide a fundamental kick-start to the currently somewhat -subdued technology and software industries. -</P> -<P>No, Ant1.6 will not fundamentally change your life. But if you do -have to get software out on time -"roughly what you asked for, -roughly when you asked", then Ant1.6 provides lots of little -improvements over the existing version. -</P> -<P>Before we look at those details, lets look at the world of The -Automated Build.</P> -<P>Firstly, we'd like to thank everyone for all those awards that -have been flowing in. The JavaWorld Editors' Choice Award for "Most -Useful Java Community-Developed Technology", The Java -Developer's Journal "Editors Choice Award", and Java Pro -Reader's Choice award for "Most Valuable Java Deployment -Technology." Wow. That's a lot of awards. Aardman Animations -keep all their Wallace and Gromit -related oscars in a cabinet in -their tea room. If the Apache organization had a tea room, those Ant -awards would be forcing all the other (excellent) Apache products to -fight hard for their cabinet space. -</P> -<P>All those awards come for a reason: everyone, at least everyone -working on any project of moderate complexity, needs to control their -build process. Ant is one of the best ways to do it in Java, and, -over the past four years, it has moved from a tool used simply to -build Tomcat cross-platform, to a tool used across many open source -projects, and now to a tool used by almost all Java projects. Indeed, -pretty much the only competitor in the Java space is a sibling -project under the Apache banner, <A HREF="http://maven.apache.org/" TARGET="other">Maven</A>. -One of the obvious signs of Ant's success is that all the popular -IDEs, from the Open Source -Emacs JDE, Eclipse, NetBeans and jEdit - -to the commercial: IntelliJ IDEA, Borland JBuilder- all ship with -built in Ant support. This lets you use your favourite IDE for what -it is good at: editing text, creating Java source, refactoring -existing code, debugging and the like, and you can turn to Ant for -co-ordinating the build-test-deploy/deliver process. That Ant based -process can be triggered from keystrokes in the IDE, command line -invocations for those so inclined, and in automated scheduled builds -so the machines can keep an eye on the engineers. Another sign is how -Ant is helping the Java aisle of bookstores fight back against -attempts by books about Macromedia Flash to take over all the space --there are now seven or eight books on the subject, with more on the -way. Germany and Korea have their own native language books too, -which shows how global the tool is -in use and in development terms. -</P> -<P>The other metric of success is the pre-announcement hints from our -distant software colleagues in Redmond, Microsoft, of a new build -tool, "MSBuild", which "might be the single most -important feature innovation in our pipeline", according to one -MS developer. That is surely the greatest metric of success: XML -based build tools are now viewed as so essential to the modern build -process, that Microsoft has to come up with a competitor to Ant to -win Java developers over to .NET. Let's hope they discover we like -ubiquitous JUnit testing too, and refactoring IDEs that create and -run the tests for us. -</P> -<P>Success comes at a price, of course. One price is all those -support calls. We try and stay on top of the bug reports, but one -thing we cannot do is fix inconsistencies or things that seem like -defects if they stand a significant chance of breaking existing -builds. Its sad, but there are lots of little minor faults with Ant -that we don't dare fix because, well, things might break. For -example, why don't if= and unless= clauses also support -<code>if="${property}"</code> clauses? Alternatively, why isn't it an -error to use a property that isn't defined. Everyone that has ever -seen directories called ${build.dir} popping up the source tree will -understand why that behaviour is not always what you want. Well, we -could fix these things, but we won't, because backwards compatibility -is sacred. -</P> -<P>That is the other price of success: all those users who have -existing build files they want to work. And all those IDEs that host -Ant, and who want an easy upgrade to a new version. This means we -have lost a lot of the flexibility we used to have in the early days -of the project, when different versions of Ant could have completely -different property evaluation algorithms and nobody would bat an -eyelid. Now, even the most obscure bug fix ends up generating 'you -broke my build complaints'. -</P> -<P>This explains why there will not be the 'incompatible upgrade' -version of Ant, Ant2.0, that has long been discussed on our web site. -</P> -<H2>Where is Ant2.0?</H2> -<P>For years we have been discussing Ant2.0, the complete rewrite -version that would be cleaner and faster, and slightly incompatible -with Ant1.x. It would be the opportunity to take the lessons from the -1.x line, and support them cleanly. We even got as far as having -multiple implementations of new Ant engines in the CVS repository, -especially Mutant and Myrmidion. But we always seemed to have a hard -time making progress -everyone was too busy using and firefighting -Ant1.x that nobody got time to work on the 2.x codebase. Which is a -shame, as all the proposals had interesting ideas.</P> -<P>After Ant1.5 shipped, the future of Ant effectively resolved into -one of evolution rather than revolution. There will be no Ant2.0 with -a complete new engine underneath. There will be no need to run XSL -transforms over existing build files to move them to the Ant2.0 -world. Instead Ant1.x is getting better underneath the build file --improving its internal design while retaining five-nines backwards -compatibility with existing build files. -</P> -<P>And that is what we have been up to.</P> -<P>Under the hood, Ant1.6 contains some of the most major reworkings -of the core Ant system yet seen. We haven't finished yet, and are -holding back some of the more visible developments so we can see what -works before their release in a product forces us to maintain them. -But the underlying parts of Ant are now set up for the next stage in -development. -</P> -<P>Whether we call the next version of Ant 1.7 or 2.0 is something we -have yet to decide. Maybe we should call it 3.0 just to surprise -people.</P> -<H2>What has changed</H2> -<P>Look at the <A HREF="WHATSNEW" TARGET="other">WHATSNEW</A> -document to get a full list of changes. Here are some of the core -conceptual differences.</P> -<H3>No more Java1.1</H3> -<P>We got fed up of jumping through reflection hoops to do everything -from weak references to setting file timestamps. After consultation -with the Ant user mail list, Ant1.6 only runs on Java1.2 or later. It -can still cross compile to Java1.1 if that is what you have to do. We -haven't completely purged all 1.1 references in the docs, or 1.1 -support from the source, but that will come over time.</P> -<H3>New classloader use.</H3> -<P>This is going to make people nervous. If there is one thing Java -developers have learned over time, only the very naive, the very -brave, or the very competent do things with classloaders. We will let -the Ant users decide what category to put us in, but before everyone -panics, Costin, of Tomcat fame, did a lot of the work here. You don't -write application servers without understanding classloaders inside -and out. -</P> -<P>The impact of these changes will trickle out over Ant versions. In -1.6, the key features are -</P> -<OL> - <LI><P>We have got rid of the bit in the batch file/shell script - that built up a really big classpath environment variable from - everything in ANT_HOME/lib. Now that is done in a launcher class - that does the work then calls tools.ant.Main as before.</P> - <LI><P>You can add new library directories to that classloader with - the -lib option on the command line. This option is interpreted by - the launcher class, so will not work with IDEs and other apps that - use the inner entry point.</P> - <LI><P>We have broken up optional.jar into many-many jar files, such - as ant-commons-logging.jar, ant-xalan2.jar, etc etc, and a - nodeps.jar for optional stuff without any dependencies. This creates - a lot of jar files.</P> - <LI><P>You can now <taskdef> existing tasks -like <junit>- - by including the specific ant jar <I>and</I> the dependent libraries - (i.e. junit.jar) in the declaration. This solves the problem of - ANT_HOME/lib needing to contain every jar possibly needed by every - user/project. You still have to declare the tasks one by one, - something we will fix in Ant1.7</P> -</OL> -<H3>Adapters</H3> -<P>These are Java classes that <I>adapt</I>> arbitrary Java -classes into ant tasks or types. There has always been some of this -stuff inside Ant, but now you can <taskdef> a task by naming -not just the implementation class, but the adapter class. An adapter -is essentially a meta task implementation -something that can be used -to create new tasks dynamically. Which, when you consider that the -core of Ant is fundamentally an XML to java mapping system and a -simple workflow engine, may let you do very unusual things with Ant. -</P> -<H3>Antlib: Ant libraries</H3> -<P>This is something we will expand in future. Till now you could -declare tasks and types with <taskdef> and <typedef>. If -they were in a jar, you could write a properties file and name the -resource path of the file in the jar. If you wanted to have both -tasks and types, you had name a shared classloader. If you wanted to -add more things -such as conditions or mappers, you were out of luck.</P> -<P>Antlibs are Ant Libraries, JAR files containing the code to extend -Ant, and an XML description file to describe how Ant is extended. -Before anyone panics at 'yet another XML descriptor syntax' to learn: -you may already know the syntax. We call it "Ant build files". -Actually it is a subset: it can only contain those task declarations -that are derived from org.apache.tools.ant.taskdefs.AntlibDefinition. -That includes <taskdef> and <typedef>, and <I>any other -task you choose to derive. </I>We are experimenting with scripting -and some kind of task predefinition declarations in antlibs. With the -latter, you will be able to write a predefined task -such as a -<javac> derivative with the compiler options set, and then use -it any of your build files. This is all too experimental to get into -Ant1.6 -expect it in the successor. For now, start using antlibs and -use the <taskdef> task to load them into your projects.</P> -<H3>XML Namespace aware</H3> -<P>Ant finally adopts XML namespaces. This is to address build file -scalability; antlibs can be imported into their own namespaces, and -so you can avoid namespace clashes with other libraries. If you do -not know what namespaces are, do not worry -they are not compulsory.</P> - -<h3>All tasks can go in at the toplevel</h3> -<p> - -Prior to Ant1.6, only three tasks were allowed outside -targets : <taskdef>,<typedef> and <property>. -Ant 1.6 puts an end to this distinction; anything can go in at the top -level. This is partly because there were many more tasks that merited the -option based on the original rationale of "global initialization tasks": -<import> and <antlib> were the new additions, but existing -tasks like <condition>, <available>, <xmlproperties> -and <loadproperties> had equal rights. -</p> -<p> -Rather that expand the set slightly, now all tasks are allowed outside -targets. This gives external tasks the same rights as built in code, -eliminates sporadic bug reports, and annoying error messages. It gives -users the ability to write build files without any targets at all; the -top-level declarations are processed in sequence. -</p> - -On a style note, we strongly advocate using this feature carefully. It -is best if zero-side-effect, initialization-only tasks get put into the -top level. Remember also that all top level statements are processed in -order, before any targets are executed. Even tasks at the end of the -file will get executed before targets declared above them. - -<H2>New Tasks</H2> -<P>As usual, the task base is growing and expanding. These days the -ant core is resisting adopting many of the highly worthy donations of -tasks from people, because they make maintenance and firefighting -worse. Our current stance is that except in special circumstances, -Ant tasks to support third party open source projects, should live -with the projects themselves. This keeps them in sync with the -libraries they integrate with, avoids GPL/Apache licensing issues, -and reduces the Ant team's support workload, letting them focus on -the core. The antlib mechanism is intended to make it easier for -people to load tasks from libraries for this very reason.</P> -<P>That said, we are pleased to introduce many new tasks. Of -particular interest may be the SSH tasks, which let one deploy code -to remote servers securely. Now you really can do live updates with -Ant -if the operations team will let you. The other one that is quite -interesting is <subant>. This is an extension of the <ant> -task, to take an entire fileset of directories and run their build -files. This is incredibly useful in very large projects. This does -not mean that we are advocating the many-build-file development -pattern, but in a sufficiently complex project it happens anyway. -<subant> keeps things manageable.</P> -<H2>What else</H2> -<P>So, what is new in Ant1.6? Lots of stuff. You will have to look at -the <A HREF="WHATSNEW">whatsnew</A> file to see, but here are some -key points. -</P> -<OL> - <LI><P STYLE="margin-bottom: 0in">Bug fixes. We know, some things - were broken in 1.5. In ant1.6 we have moved the bugs, fixing the - ones we could, and no doubt adding different ones. Hopefully the - total bug count has decreased. - </P> - <LI><P STYLE="margin-bottom: 0in">New platforms: Open VMS and HP's - NonStop Kernel (Tandem) OS. OpenVMS is very different from the rest; - Read the <exec> task documentation carefully. - </P> - <LI><P STYLE="margin-bottom: 0in">Spawning. <java> and <exec> - started applications can outlive Ant if you set spawn=true. Note - that the moment you do so, Ant cannot bind to their input or output, - for obvious reasons. - </P> - <LI><P>Synchronisation with Java versions (heh, thought by moving - javah's entry point that you could hide from us? Think again).</P> - <LI><P>Synchronization with third party libraries. Of special note: - we have moved to the Apache commons-net.jar, the successor to - NetComponents for telnet and FTP as well as Apache BSF, the - successor to IBM BSF, for script.</P> -</OL> -<P>There are many more enhancements, so we hope you will find your -build projects easier. We have, as usual, jumped through hoops to -keep existing builds working. If your build file stops working, and -it isn't something listed on the 'changes that may break your build' -part of the WHATSNEW file, or something we know about on bugzilla, -please don't hesitate to file a new bug report, preferably one with a -replicable test and a patch to fix the problem. Please, please, -please, do a search on bugzilla first. You do not want to be the -seventy-third person to complain that Ant1.6 doesn't do something -that it should. -</P> -<P>Thanks, -</P> -<P>The Ant development team. -</P> -<H3>Acknowledgements</H3> -<UL> - <LI><P>Many thanks for Antoine to being the build manager for this - release! - </P> - <LI><P>Thank you to everyone who supplies the components we use in - Ant, particularly JUnit, commons-logging, log4J, bcel, ORO, Xerces, and Xalan. - </P> - <LI><P>Everyone who has supplied bug reports, especially those with - patches and tests.</P> - <LI><P>IDE projects who incorporate Ant into their products. Not - only does this help Ant's success, you find lots of interesting - integration defects. Special mention to the Eclipse team for fixing - our memory leaks :)</P> -</UL> -<H3>Call to Action</H3> - -<P> - -It is an interesting time for Java. .NET is a serious challenger, and -will get better. A core strength of Java over .NET is its community. It -is the community that gave the world leading edge development tools and -other core components: Ant, JUnit, XDoclet, hsqldb, Hibernate, Struts, -etc. These things weren't created by JCP committees, or built according -to the strategic vision of a Fortune 100 company. They were written by -Java developers, for Java developers, usually to meet their own tactical -goals. - -</P> - -<P>If Java is to survive -and we think it ought to- everyone who can -needs to become active members of that community. It could be helping -with Ant, but it could just as easily be helping with any other open -source Java project, be hosted by Apache, FSF, Sourceforge or someone -else, be it server-side, client-side or mobile-side. It could be an -existing project, or it could be your own idea as to how things could -be better. The key is: things will only be better if you put in the -time to make it so. -</P> -<H3>Call to Inaction</H3> -<P>A special message to whoever it is in charge of commands in -tools.jar: stop moving your entry points! In Ant1.5 we had to deal -with the 'classic' javac entry point going away in Java1.4.0, -seemingly coming back later. In Java 1.4.2, the javah entry point -moved. The traditional command line invocation mechanism has been -replaced by hosted invocation -Ant, Maven, IDEs, etc, and moving -entry points around breaks these host applications. Even if we get a -bug fix out in Ant a few weeks after the Java release, it takes -months for this to trickle down to end users, especially via IDEs and -other distributions. For example, Sun's own Java Web Services -Developer Pack ships with Ant1.5.1, and so cannot run <javah> -on a 1.4.2 installation. -</P> -</BODY> -</HTML>
\ No newline at end of file diff --git a/lib/asm/asm-9.1.jar b/lib/asm/asm-9.1.jar Binary files differdeleted file mode 100644 index 823801988..000000000 --- a/lib/asm/asm-9.1.jar +++ /dev/null diff --git a/lib/asm/asm-9.1.renamed.jar b/lib/asm/asm-9.1.renamed.jar Binary files differdeleted file mode 100644 index 72f56b6fd..000000000 --- a/lib/asm/asm-9.1.renamed.jar +++ /dev/null diff --git a/lib/asm/build.xml b/lib/asm/build.xml deleted file mode 100644 index 57507f549..000000000 --- a/lib/asm/build.xml +++ /dev/null @@ -1,13 +0,0 @@ -<project name="jarjar-asm" default="package"> - - <!-- If you need the 'jarjar' task, put lib/jarjar/jarjar-1.3.jar on the Ant classpath --> - <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"/> - - <target name="package" description="Jarjar asm-NNN.jar and prefix package name with aj"> - <jarjar destfile="asm-9.1.renamed.jar"> - <zipfileset src="asm-9.1.jar" excludes="module-info.class"/> - <rule pattern="org.objectweb.asm.**" result="aj.org.objectweb.asm.@1"/> - </jarjar> - </target> - -</project> diff --git a/lib/commons/commons-src.zip b/lib/commons/commons-src.zip Binary files differdeleted file mode 100644 index 9ac8d7180..000000000 --- a/lib/commons/commons-src.zip +++ /dev/null diff --git a/lib/commons/commons.jar b/lib/commons/commons.jar Binary files differdeleted file mode 100644 index e4254976f..000000000 --- a/lib/commons/commons.jar +++ /dev/null diff --git a/lib/jarjar/jarjar-1.3.jar b/lib/jarjar/jarjar-1.3.jar Binary files differdeleted file mode 100644 index b1328f594..000000000 --- a/lib/jarjar/jarjar-1.3.jar +++ /dev/null diff --git a/lib/junit/README.html b/lib/junit/README.html deleted file mode 100644 index ac6291db2..000000000 --- a/lib/junit/README.html +++ /dev/null @@ -1,12 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <title>JUnit 3.8.1</title> -</head> -<body> - <h1>JUnit 3.8.1</h1> - This contains an unmodified version of JUnit 3.8.1 - for setup convenience. - -</body> -</html> diff --git a/lib/junit/junit-src.zip b/lib/junit/junit-src.zip Binary files differdeleted file mode 100644 index 63c80bed8..000000000 --- a/lib/junit/junit-src.zip +++ /dev/null diff --git a/lib/junit/junit.jar b/lib/junit/junit.jar Binary files differdeleted file mode 100644 index 674d71e89..000000000 --- a/lib/junit/junit.jar +++ /dev/null diff --git a/libx/pom.xml b/lib/pom.xml index 4df26b50a..c060ee695 100644 --- a/libx/pom.xml +++ b/lib/pom.xml @@ -10,7 +10,7 @@ <version>1.9.7.BUILD-SNAPSHOT</version> </parent> - <artifactId>libx</artifactId> + <artifactId>lib</artifactId> <name>AspectJ Test Libraries</name> <description> @@ -30,7 +30,7 @@ plugins, but repeat all zip/unzip steps in TrueZIP Maven plugin. So try not to call it unnecessarily. </description> - <!-- TODO: Add libx (for now, then finally lib) to .gitignore --> + <!-- TODO: Add lib (for now, then finally lib) to .gitignore --> <properties> <lib.ant.name>apache-ant</lib.ant.name> @@ -531,7 +531,7 @@ <!-- Obsolete because we uploaded both binary and source JARs to GitHub Packages, so we can use JDiff as a normal dependency. Keep this for reference, so we can remember how we built it. After download + zip the deployment - was made right from the libx/jdiff directory, using the following commands (without the line breaks): + was made right from the lib/jdiff directory, using the following commands (without the line breaks): mvn -Dfile=jdiff.jar -DrepositoryId=github -Durl=https://maven.pkg.github.com/kriegaex/aspectj-packages -DgroupId=jdiff -DartifactId=jdiff -Dpackaging=jar -Dversion=1.3 diff --git a/lib/regexp/jakarta-regexp-1.2.jar b/lib/regexp/jakarta-regexp-1.2.jar Binary files differdeleted file mode 100644 index 713441c52..000000000 --- a/lib/regexp/jakarta-regexp-1.2.jar +++ /dev/null diff --git a/lib/saxon/saxon.jar b/lib/saxon/saxon.jar Binary files differdeleted file mode 100644 index 62ae075a9..000000000 --- a/lib/saxon/saxon.jar +++ /dev/null @@ -27,7 +27,7 @@ <lib.commons.logging.version>1.0.1</lib.commons.logging.version> <lib.commons.logging.tag>LOGGING_1_0_1</lib.commons.logging.tag> <asm.version>9.1</asm.version> - <lib.directory>${maven.multiModuleProjectDirectory}/libx</lib.directory> + <lib.directory>${maven.multiModuleProjectDirectory}/lib</lib.directory> </properties> <repositories> @@ -73,7 +73,7 @@ <!-- FYI: These are NOT meant to be sub-modules but a stand-alone projects built and deployed independently. --> <!-- <module>asm-renamed</module> - <module>libx</module> + <module>lib</module> --> <!-- create the important artifacts we care about --> @@ -264,7 +264,7 @@ Maven Enforcer does not strip any whitespace or unindent, which looks quite ugly on the console. --> <message> - Please go to module subdirectory 'libx' and run 'mvn compile' there. This should take care of downloading all necessary libraries to that directory, where some tests expect them to be. + Please go to module subdirectory 'lib' and run 'mvn compile' there. This should take care of downloading all necessary libraries to that directory, where some tests expect them to be. </message> <files> <file>${lib.directory}/ant/bin/ant</file> diff --git a/tests/product/build-aspectj/build.xml b/tests/product/build-aspectj/build.xml index 394f10ff7..4046113be 100644 --- a/tests/product/build-aspectj/build.xml +++ b/tests/product/build-aspectj/build.xml @@ -125,7 +125,7 @@ <path id="tools.libs"> <pathelement path="${aspectj.src}/lib/ant/lib/ant.jar"/> <pathelement path="${aspectj.src}/lib/bcel/bcel.jar"/> - <pathelement path="${aspectj.src}/libx/jdtcore-aj/jdtcore-for-aspectj.jar"/> + <pathelement path="${aspectj.src}/lib/jdtcore-aj/jdtcore-for-aspectj.jar"/> </path> </target> diff --git a/tests/profiling/build.xml b/tests/profiling/build.xml index e6e9509b7..45b411fe9 100644 --- a/tests/profiling/build.xml +++ b/tests/profiling/build.xml @@ -73,7 +73,7 @@ <include name="*/bin" unless="ajtools.jar"/> </dirset> <fileset dir="${aspectj.workspace.root}"> - <include name="libx/jdtcore-aj/jdtcore-for-aspectj.jar" unless="ajtools.jar"/> + <include name="lib/jdtcore-aj/jdtcore-for-aspectj.jar" unless="ajtools.jar"/> <include name="lib/bcel/bcel.jar" unless="ajtools.jar"/> </fileset> </path> |