First GameServer commit

This commit is contained in:
Lothy 2011-04-27 14:55:20 +10:00
parent 0faa299d04
commit 47729fd4d0
726 changed files with 544638 additions and 0 deletions

2
GameServer/ant/INSTALL Normal file
View File

@ -0,0 +1,2 @@
For installation instructions see the manual in the docs subdirectory
or online at <http://ant.apache.org/manual/index.html>.

782
GameServer/ant/KEYS Normal file
View File

@ -0,0 +1,782 @@
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 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-----
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@codefeed.com>
sig 3 F88341D9 2003-03-17 Lars Eilebrecht <lars@eilebrecht.org>
sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <kess@kess-net.de>
sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
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>
sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bodewig@apache.org>
sig D6298F01 2003-04-27 Paulo Henrique Gaspar Jorge <pjorge@asatnet.com.br>
sig 0CAA68B4 2004-11-11 Patrick Rentsch <patrick.rentsch@suissimage.ch>
sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Harald.Wilhelm@hawi.de>
sig 5793498F 2005-07-21 Tim Ellison <tim@ellison.name>
sig E4136392 2005-07-21 [User id not found]
sig 8408F755 2005-07-21 Christian Geisert <chrisg@apache.org>
sig 2 FC243F3C 2005-07-20 Henk P. Penning <penning@cs.uu.nl>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 CC78C893 2005-07-22 Rich Bowen <rbowen@rcbowen.com>
sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sylvain@apache.org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 3 015AFC8A 2005-07-22 Bertrand Delacretaz <bdelacretaz@apache.org>
sig 3 87315C31 2005-07-23 Rapha<68> Luta <raphael.luta@aptiwan.com>
sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <cziegeler@apache.org>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm@stdlib.net>
sig 1CD4861F 2005-07-25 Eran Chinthaka <chinthaka@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <chathura@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 [User id not found]
sig 3 2A623F72 2005-07-25 [User id not found]
sig 3 F8EA2967 2005-07-26 [User id not found]
sig 3 C152431A 2005-07-27 Steve Loughran <stevel@apache.org>
sig DE885DD3 2005-11-25 Sander Striker <striker@apache.org>
uid [revoked] Stefan Bodewig <bodewig@bost.de>
sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bodewig@apache.org>
sig 51898504 2002-01-11 Conor MacNeill <conor@codefeed.com>
sig 3 F88341D9 2003-03-17 Lars Eilebrecht <lars@eilebrecht.org>
sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <kess@kess-net.de>
sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
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>
sig 0CAA68B4 2004-11-11 Patrick Rentsch <patrick.rentsch@suissimage.ch>
sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Harald.Wilhelm@hawi.de>
rev 5F6B8B72 2005-07-22 Stefan Bodewig <bodewig@apache.org>
sig 5793498F 2005-07-21 Tim Ellison <tim@ellison.name>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 CC78C893 2005-07-22 Rich Bowen <rbowen@rcbowen.com>
sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sylvain@apache.org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 3 87315C31 2005-07-23 Rapha<68> Luta <raphael.luta@aptiwan.com>
sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <cziegeler@apache.org>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm@stdlib.net>
sig 1CD4861F 2005-07-25 Eran Chinthaka <chinthaka@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <chathura@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 [User id not found]
sig 3 2A623F72 2005-07-25 [User id not found]
sig 3 F8EA2967 2005-07-26 [User id not found]
sig 3 C152431A 2005-07-27 Steve Loughran <stevel@apache.org>
sig DE885DD3 2005-11-25 Sander Striker <striker@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 Kessler (Kess) <kess@kess-net.de>
sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
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>
sig 51898504 2005-06-21 Conor MacNeill <conor@codefeed.com>
sig 0CAA68B4 2004-11-11 Patrick Rentsch <patrick.rentsch@suissimage.ch>
sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Harald.Wilhelm@hawi.de>
sig 5793498F 2005-07-21 Tim Ellison <tim@ellison.name>
sig 8408F755 2005-07-21 Christian Geisert <chrisg@apache.org>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 CC78C893 2005-07-22 Rich Bowen <rbowen@rcbowen.com>
sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sylvain@apache.org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 3 87315C31 2005-07-23 Rapha<68> Luta <raphael.luta@aptiwan.com>
sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <cziegeler@apache.org>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm@stdlib.net>
sig 1CD4861F 2005-07-25 Eran Chinthaka <chinthaka@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <chathura@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 [User id not found]
sig 3 2A623F72 2005-07-25 [User id not found]
sig 3 F8EA2967 2005-07-26 [User id not found]
sig 3 C152431A 2005-07-27 Steve Loughran <stevel@apache.org>
sig DE885DD3 2005-11-25 Sander Striker <striker@apache.org>
uid Stefan Bodewig <stefan@samaflost.de>
sig 3 5F6B8B72 2005-05-31 Stefan Bodewig <bodewig@apache.org>
sig 51898504 2005-06-21 Conor MacNeill <conor@codefeed.com>
sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Harald.Wilhelm@hawi.de>
sig 5793498F 2005-07-21 Tim Ellison <tim@ellison.name>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 21D0A71B 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@php.net>
sig 3 CC78C893 2005-07-22 Rich Bowen <rbowen@rcbowen.com>
sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sylvain@apache.org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 3 87315C31 2005-07-23 Rapha<68> Luta <raphael.luta@aptiwan.com>
sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <cziegeler@apache.org>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm@stdlib.net>
sig 1CD4861F 2005-07-25 Eran Chinthaka <chinthaka@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <chathura@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 [User id not found]
sig 3 2A623F72 2005-07-25 [User id not found]
sig 3 F8EA2967 2005-07-26 [User id not found]
sig 3 C152431A 2005-07-27 Steve Loughran <stevel@apache.org>
sig DE885DD3 2005-11-25 Sander Striker <striker@apache.org>
uid [revoked] Stefan Bodewig <stefan.bodewig@epost.de>
rev 5F6B8B72 2005-07-01 Stefan Bodewig <bodewig@apache.org>
sig 75A67692 2003-03-18 Erik Abele <erik@codefaktor.de>
sig 3 F88341D9 2003-03-17 Lars Eilebrecht <lars@eilebrecht.org>
sig 3 5F6B8B72 2002-01-11 Stefan Bodewig <bodewig@apache.org>
sig 3 8103A37E 2003-04-04 Andre Malo <nd@apache.org>
sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <kess@kess-net.de>
sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Harald.Wilhelm@hawi.de>
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.4 (GNU/Linux)
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
uWWXAJ9Adm9Mz4yoxrosHSkp5BWzXBUt4A==
=95C5
-----END PGP PUBLIC KEY BLOCK-----
pub 1024D/C152431A 2005-07-18 [expires: 2010-07-17]
uid Steve Loughran <stevel@apache.org>
sig 3 C152431A 2005-07-18 Steve Loughran <stevel@apache.org>
sig 2 FC243F3C 2005-07-20 Henk P. Penning <penning@cs.uu.nl>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 8103A37E 2005-07-20 Andre Malo <nd@apache.org>
sig 5793498F 2005-07-21 Tim Ellison <tim@ellison.name>
sig E4136392 2005-07-21 Noel J. Bergman <noel@apache.org>
sig 1CD4861F 2005-07-25 Eran Chinthaka <chinthaka@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 3 21D0A71B 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 2261D073 2005-07-20 Astrid Kessler (Kess) <kess@kess-net.de>
sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sylvain@apache.org>
sig 3 015AFC8A 2005-07-22 Bertrand Delacretaz <bdelacretaz@apache.org>
sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <cziegeler@apache.org>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm@stdlib.net>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 Christoph Probst <chris@netzpunkt.org>
sig 3 2A623F72 2005-07-25 Christoph Probst <chris@netzpunkt.org>
sig 3 F8EA2967 2005-07-26 Brian McCallister <brianm@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 3 87315C31 2005-07-23 Raphaテォl Luta <raphael.luta@aptiwan.com>
sub 2048g/59066D7B 2005-07-18 [expires: 2010-07-17]
sig C152431A 2005-07-18 Steve Loughran <stevel@apache.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2 (GNU/Linux)
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
0N6XOghJAJ4mSgdwgv+sIOaPKQqCm+PL2M0lPw==
=4TlI
-----END PGP PUBLIC KEY BLOCK-----
pub 1024D/AA0077B0 2006-06-13
uid Kev Jackson (apache key) <kevj@apache.org>
sig 3 AA0077B0 2006-06-13 Kev Jackson (apache key) <kevj@apache.org>
sub 2048g/8A6DD738 2006-06-13
sig AA0077B0 2006-06-13 Kev Jackson (apache key) <kevj@apache.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (Darwin)
mQGiBESOfuoRBADiCLjvY8EG8cDrfNvPaVJr1/8d8GDoLjBCeJWl50M7j1IQDB+r
rzBPXOzhoqiNRbZMkpjv8ofa5hVOQitVS4B69FA07RbuiQNTKg142h8ogtJeAI1g
eXuTZtmGE47TOpj7FMG8bHOmoJdQMkzUsdOhEAyqRu4noknuuIKgsE1kYwCgnhaH
9KBlpKaRG7Bb2BH6da+wmKUEAIaBeZ1aSQodUzDqnGjCd4hZbpzjyWg7O5BylNhK
ogMY95BvwFRD8WFdSvhvH9VKBtSuNqg/6gIkqAljRRESVxL4QrzlYSqF513kK1ds
lUTmqU9Dvaf7dkH+MYnkPVTP5tMZVCT7HEt4F6HcqlaZKlz5jsu3R53KBx6XZATc
SEGbA/wOournJ64We8sXTJGHFupvSLBy3nh68mPLaplzTnH2al1DLBnoF2giC32v
ZGG+e12kWE+fyyQ3pdAIRHgVjZ/ckPmcmxnVcYrhzbgV99fo2+JRh2SVrLrmvw+G
CKiUtNHn0HS1klBKSj+3ML1AQQlbyfrcVSf0Fefug51BqoqU+rQqS2V2IEphY2tz
b24gKGFwYWNoZSBrZXkpIDxrZXZqQGFwYWNoZS5vcmc+iF4EExECAB4FAkSOfuoC
GwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQoL/5PaoAd7BnTACff9f8Y2RFB7O7
Wjncyb1XbEwJB/gAninrR0isW9jGx49GmSnQCjtO9k34uQINBESOfzMQCACP+GP2
x2nE2JxjUUjj16ftOxUivbL8L9ksplx41n7yeRvu+RzOXcjlonuld0LYxprNsHGv
mbAoZj93QozHQIMfC2kfnia+hxCcBPMbev9RPCqgogpb90BtV0f9HGyWXs2QTgWG
R2hyjq/RpwtA3obSXw3pb1CnXW4stV65WAdd72KDc66wRR1gmjxKQx6b1dGcC+E4
HyOgu2CDtr1ULPeI5U4BA4y8FLgDfYwkxp6vj5ViegGP7GlMa3bSgNRGsYX7VwgZ
pmI8WY4B5k3/Pyv2Toe6/5zTmKH8WlyZd00ede/tbFTqQLg+EylAcWJ8c3asood+
SjCwTuD8l8a0wpO3AAMHB/9GXkbBUE8cbMTaS4yj7UL5iWRVhSPo9IzMSrzaXmZN
8ykX96ud35BCEfmYgty3USMk90Rs/PbwB4Mh3h1ZTXqRWcfOXzJ8kMabm2RANyf2
H2DvGKoFPtpX/9I13vo9qRLRHVRENNg+3JCa1ii8cq7h8bWvTT0VxX/rOG0cl8nO
XkHTUARR19cGPf6XkHEcl+u1pAxIJGqY/gVowjyFGZs+RXFl/q/Vrgu+lvvxmryd
yEdeGdsBvQ9M0KKr98w1RiJnDUkSqI711xwlVk14Uu6Xke0oB3bbpe4UxD52avAC
yEzYY7vbpe6XS2+dOcZxWE3eur6SfsucAkj4Ib72mchhiEkEGBECAAkFAkSOfzMC
GwwACgkQoL/5PaoAd7BQAwCeJFb9yZvOWfdf73A7t2MvPXn1y6kAnRquMmA5eVdh
HbAUXWyYuT2OHOSD
=F2q3
-----END PGP PUBLIC KEY BLOCK-----

203
GameServer/ant/LICENSE Normal file
View File

@ -0,0 +1,203 @@
/*
* 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.
*/

View File

@ -0,0 +1,71 @@
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

View File

@ -0,0 +1,20 @@
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

View File

@ -0,0 +1,56 @@
/*
* 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/>.
*/

20
GameServer/ant/NOTICE Normal file
View File

@ -0,0 +1,20 @@
=========================================================================
== NOTICE file corresponding to the section 4 d of ==
== the Apache License, Version 2.0, ==
== in this case for the Apache Ant distribution. ==
=========================================================================
Apache Ant
Copyright 1999-2006 The Apache Software Foundation
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)
The <sync> task is based on code Copyright (c) 2002, Landmark
Graphics Corp that has been kindly donated to the Apache Software
Foundation.

70
GameServer/ant/README Normal file
View File

@ -0,0 +1,70 @@
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/>

3723
GameServer/ant/WHATSNEW Normal file

File diff suppressed because it is too large Load Diff

326
GameServer/ant/bin/ant Normal file
View File

@ -0,0 +1,326 @@
#! /bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT 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 (ONLY if ANT_HOME has NOT been set)
if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then
if [ -f "/etc/ant.conf" ] ; then
. /etc/ant.conf
fi
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
# IBM's JDK on AIX uses strange locations for the executables
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
JAVACMD="$JAVA_HOME/jre/sh/java"
elif [ -x "$JAVA_HOME/jre/bin/java" ] ; then
JAVACMD="$JAVA_HOME/jre/bin/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/lib will also be included, 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 && [ -x /usr/bin/build-classpath ] ; then
LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)"
# If no optional jars have been specified then build the default list
if [ -z "$OPT_JAR_LIST" ] ; then
for file in /etc/ant.d/*; do
if [ -f "$file" ]; then
case "$file" in
*~) ;;
*#*) ;;
*.rpmsave) ;;
*.rpmnew) ;;
*)
for dep in `cat "$file"`; do
case "$OPT_JAR_LIST" in
*"$dep"*) ;;
*) OPT_JAR_LIST="$OPT_JAR_LIST${OPT_JAR_LIST:+ }$dep"
esac
done
esac
fi
done
fi
# 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

228
GameServer/ant/bin/ant.bat Normal file
View File

@ -0,0 +1,228 @@
@echo off
REM Licensed to the Apache Software Foundation (ASF) under one or more
REM contributor license agreements. See the NOTICE file distributed with
REM this work for additional information regarding copyright ownership.
REM The ASF licenses this file to You under the Apache License, Version 2.0
REM (the "License"); you may not use this file except in compliance with
REM the License. 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 This is an inordinately troublesome piece of code, particularly because it
REM tries to work on both Win9x and WinNT-based systems. If we could abandon '9x
REM support, things would be much easier, but sadly, it is not yet time.
REM Be cautious about editing this, and only add WinNT specific stuff in code that
REM only runs on WinNT.
if "%HOME%"=="" goto homeDrivePathPre
if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
:homeDrivePathPre
if "%HOMEDRIVE%%HOMEPATH%"=="" goto userProfilePre
if "%HOMEDRIVE%%HOMEPATH%"=="%HOME%" goto userProfilePre
if exist "%HOMEDRIVE%%HOMEPATH%\antrc_pre.bat" call "%HOMEDRIVE%%HOMEPATH%\antrc_pre.bat"
:userProfilePre
if "%USERPROFILE%"=="" goto alpha
if "%USERPROFILE%"=="%HOME%" goto alpha
if "%USERPROFILE%"=="%HOMEDRIVE%%HOMEPATH%" goto alpha
if exist "%USERPROFILE%\antrc_pre.bat" call "%USERPROFILE%\antrc_pre.bat"
:alpha
if "%OS%"=="Windows_NT" @setlocal
if "%OS%"=="WINNT" @setlocal
if "%ANT_HOME%"=="" goto setDefaultAntHome
:stripAntHome
if not _%ANT_HOME:~-1%==_\ goto checkClasspath
set ANT_HOME=%ANT_HOME:~0,-1%
goto stripAntHome
:setDefaultAntHome
rem %~dp0 is expanded pathname of the current script under NT
set ANT_HOME=%~dp0..
:checkClasspath
set _USE_CLASSPATH=yes
rem CLASSPATH must not be used if it is equal to ""
if "%CLASSPATH%"=="""" set _USE_CLASSPATH=no
if "%CLASSPATH%"=="" set _USE_CLASSPATH=no
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
if _USE_CLASSPATH==no goto findAntHome
:stripClasspath
if not _%CLASSPATH:~-1%==_\ goto findAntHome
set CLASSPATH=%CLASSPATH:~0,-1%
goto stripClasspath
:findAntHome
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
: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%
rem Check the error code of the Ant build
if not "%OS%"=="Windows_NT" goto onError
set ANT_ERROR=%ERRORLEVEL%
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%
rem Check the error code of the Ant build
if not "%OS%"=="Windows_NT" goto onError
set ANT_ERROR=%ERRORLEVEL%
goto end
:runAntWithJikes
if not _%JIKESPATH:~-1%==_\ goto checkJikesAndClasspath
set JIKESPATH=%JIKESPATH:~0,-1%
goto runAntWithJikes
:checkJikesAndClasspath
if "%_USE_CLASSPATH%"=="no" goto runAntWithJikesNoClasspath
: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%
rem Check the error code of the Ant build
if not "%OS%"=="Windows_NT" goto onError
set ANT_ERROR=%ERRORLEVEL%
goto end
: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%
rem Check the error code of the Ant build
if not "%OS%"=="Windows_NT" goto onError
set ANT_ERROR=%ERRORLEVEL%
goto end
:onError
rem Windows 9x way of checking the error code. It matches via brute force.
for %%i in (1 10 100) do set err%%i=
for %%i in (0 1 2) do if errorlevel %%i00 set err100=%%i
if %err100%==2 goto onError200
if %err100%==0 set err100=
for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%%i0 set err10=%%i
if "%err100%"=="" if %err10%==0 set err10=
:onError1
for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%err10%%%i set err1=%%i
goto onErrorEnd
:onError200
for %%i in (0 1 2 3 4 5) do if errorlevel 2%%i0 set err10=%%i
if err10==5 for %%i in (0 1 2 3 4 5) do if errorlevel 25%%i set err1=%%i
if not err10==5 goto onError1
:onErrorEnd
set ANT_ERROR=%err100%%err10%%err1%
for %%i in (1 10 100) do set err%%i=
:end
rem bug ID 32069: resetting an undefined env variable changes the errorlevel.
if not "%_JAVACMD%"=="" set _JAVACMD=
if not "%_ANT_CMD_LINE_ARGS%"=="" set ANT_CMD_LINE_ARGS=
if "%ANT_ERROR%"=="0" goto mainEnd
rem Set the return code if we are not in NT. We can only set
rem a value of 1, but it's better than nothing.
if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1
rem Set the ERRORLEVEL if we are running NT.
if "%OS%"=="Windows_NT" color 00
goto omega
:mainEnd
rem If there were no errors, we run the post script.
if "%OS%"=="Windows_NT" @endlocal
if "%OS%"=="WINNT" @endlocal
if "%HOME%"=="" goto homeDrivePathPost
if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
:homeDrivePathPost
if "%HOMEDRIVE%%HOMEPATH%"=="" goto userProfilePost
if "%HOMEDRIVE%%HOMEPATH%"=="%HOME%" goto userProfilePost
if exist "%HOMEDRIVE%%HOMEPATH%\antrc_post.bat" call "%HOMEDRIVE%%HOMEPATH%\antrc_post.bat"
:userProfilePost
if "%USERPROFILE%"=="" goto omega
if "%USERPROFILE%"=="%HOME%" goto omega
if "%USERPROFILE%"=="%HOMEDRIVE%%HOMEPATH%" goto omega
if exist "%USERPROFILE%\antrc_post.bat" call "%USERPROFILE%\antrc_post.bat"
:omega
pause

View File

@ -0,0 +1,93 @@
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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

24
GameServer/ant/bin/antRun Normal file
View File

@ -0,0 +1,24 @@
#! /bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT 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" "$@"

View File

@ -0,0 +1,50 @@
@echo off
REM Licensed to the Apache Software Foundation (ASF) under one or more
REM contributor license agreements. See the NOTICE file distributed with
REM this work for additional information regarding copyright ownership.
REM The ASF licenses this file to You under the Apache License, Version 2.0
REM (the "License"); you may not use this file except in compliance with
REM the License. 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 "%OS%"=="Windows_NT" @setlocal
if "%OS%"=="WINNT" @setlocal
if ""%1""=="""" goto runCommand
rem Change drive and directory to %1
if "%OS%"=="Windows_NT" goto nt_cd
if "%OS%"=="WINNT" goto nt_cd
cd ""%1""
goto end_cd
:nt_cd
cd /d ""%1""
:end_cd
shift
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_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

View File

@ -0,0 +1,66 @@
#!/usr/bin/perl
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT 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;
}

View File

@ -0,0 +1,98 @@
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
'@echo 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

View File

@ -0,0 +1,114 @@
#!/usr/bin/perl
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT 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;
}

View File

@ -0,0 +1,131 @@
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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

View File

@ -0,0 +1,31 @@
REM
REM Licensed to the Apache Software Foundation (ASF) under one or more
REM contributor license agreements. See the NOTICE file distributed with
REM this work for additional information regarding copyright ownership.
REM The ASF licenses this file to You under the Apache License, Version 2.0
REM (the "License"); you may not use this file except in compliance with
REM the License. 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=%LOCALCLASSPATH%;%_CLASSPATHCOMPONENT%

View File

@ -0,0 +1,153 @@
#!/usr/bin/perl
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT 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;
}

View File

@ -0,0 +1,102 @@
#!/usr/bin/python
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT 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)
sys.stdout.flush()
# Run the biniou!
os.system(cmdline)

View File

@ -0,0 +1,60 @@
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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

View File

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl: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" />&amp;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" />&amp;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>

View File

@ -0,0 +1,293 @@
<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">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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>

View File

@ -0,0 +1,33 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl: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>

View File

@ -0,0 +1,129 @@
<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">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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>

View File

@ -0,0 +1,488 @@
<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="," />
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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) &gt; 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">
</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>

View File

@ -0,0 +1,486 @@
<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"/>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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) &gt; 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) &gt; 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>

View File

@ -0,0 +1,275 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl: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) &gt; 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>

View File

@ -0,0 +1,718 @@
<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=","/>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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;
doc.open();
doc.write("<html><head><title>Properties of " + name + "</title>");
doc.write("<style type=\"text/css\">");
doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
doc.write("table tr td, table tr th { font-size: 68%; }");
doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
doc.write("</style>");
doc.write("</head><body>");
doc.write("<h3>Properties of " + name + "</h3>");
doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
doc.write("<table class='properties'>");
doc.write("<tr><th>Name</th><th>Value</th></tr>");
for (prop in TestCases[name]) {
doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
}
doc.write("</table>");
doc.write("</body></html>");
doc.close();
win.focus();
}
]]>
</script>
</head>
<body>
<xsl:call-template name="pageHeader"/>
<h3>Class <xsl:value-of select="$class.name"/></h3>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<xsl:apply-templates select="." mode="print.test"/>
</table>
<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 &#187;
</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 &#187;
</a>
</div>
</xsl:if>
<xsl:if test="string-length(./system-err)!=0">
<div class="Properties">
<a>
<xsl:attribute name="href">./<xsl:value-of select="@name"/>-err.txt</xsl:attribute>
System.err &#187;
</a>
</div>
</xsl:if>
</body>
</html>
</xsl:template>
<!--
Write properties into a JavaScript data structure.
This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
-->
<xsl:template match="properties">
cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
<xsl:for-each select="property">
<xsl:sort select="@name"/>
cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
</xsl:for-each>
</xsl:template>
<!-- ======================================================================
This page is created for every package.
It prints the name of all classes that belongs to this package.
@param name the package name to print classes.
====================================================================== -->
<!-- list of classes in a package -->
<xsl:template name="classes.list">
<xsl:param name="name"/>
<html>
<head>
<title>Unit Test Classes: <xsl:value-of select="$name"/></title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name" select="$name"/>
</xsl:call-template>
</head>
<body>
<table width="100%">
<tr>
<td nowrap="nowrap">
<h2><a href="package-summary.html" target="classFrame">
<xsl:value-of select="$name"/>
<xsl:if test="$name = ''">&lt;none&gt;</xsl:if>
</a></h2>
</td>
</tr>
</table>
<h2>Classes</h2>
<table width="100%">
<xsl:for-each select="/testsuites/testsuite[./@package = $name]">
<xsl:sort select="@name"/>
<tr>
<td nowrap="nowrap">
<a href="{@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 = ''">&lt;none&gt;</xsl:if>
</a>
</td>
</tr>
</xsl:template>
<xsl:template match="testsuites" mode="overview.packages">
<html>
<head>
<title>Unit Test Results: Summary</title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name"/>
</xsl:call-template>
</head>
<body>
<xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
<xsl:call-template name="pageHeader"/>
<h2>Summary</h2>
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<tr valign="top">
<th>Tests</th>
<th>Failures</th>
<th>Errors</th>
<th>Success rate</th>
<th>Time</th>
</tr>
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="$errorCount &gt; 0">Error</xsl:when>
<xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
<xsl:otherwise>Pass</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><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) &gt; 0">Error</xsl:when>
<xsl:when test="sum($insamepackage/@failures) &gt; 0">Failure</xsl:when>
<xsl:otherwise>Pass</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><a href="./{translate(@package,'.','/')}/package-summary.html">
<xsl:value-of select="@package"/>
<xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
</a></td>
<td><xsl:value-of select="sum($insamepackage/@tests)"/></td>
<td><xsl:value-of select="sum($insamepackage/@errors)"/></td>
<td><xsl:value-of select="sum($insamepackage/@failures)"/></td>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="sum($insamepackage/@time)"/>
</xsl:call-template>
</td>
<td><xsl:value-of select="$insamepackage/@timestamp"/></td>
<td><xsl:value-of select="$insamepackage/@hostname"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template name="package.summary">
<xsl:param name="name"/>
<html>
<head>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name" select="$name"/>
</xsl:call-template>
</head>
<body>
<xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
<xsl:call-template name="pageHeader"/>
<h3>Package <xsl:value-of select="$name"/></h3>
<!--table border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="class.metrics.header"/>
<xsl:apply-templates select="." mode="print.metrics"/>
</table-->
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/>
<xsl:if test="count($insamepackage) &gt; 0">
<h2>Classes</h2>
<p>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<xsl:apply-templates select="$insamepackage" mode="print.test">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table>
</p>
</xsl:if>
</body>
</html>
</xsl:template>
<!--
transform string like a.b.c to ../../../
@param path the path to transform into a descending directory path
-->
<xsl:template name="path">
<xsl:param name="path"/>
<xsl:if test="contains($path,'.')">
<xsl:text>../</xsl:text>
<xsl:call-template name="path">
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="not(contains($path,'.')) and not($path = '')">
<xsl:text>../</xsl:text>
</xsl:if>
</xsl:template>
<!-- create the link to the stylesheet based on the package name -->
<xsl:template name="create.stylesheet.link">
<xsl:param name="package.name"/>
<link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link>
</xsl:template>
<!-- Page HEADER -->
<xsl:template name="pageHeader">
<h1>Unit Test Results</h1>
<table width="100%">
<tr>
<td align="left"></td>
<td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://ant.apache.org/">Ant</a>.</td>
</tr>
</table>
<hr size="1"/>
</xsl:template>
<!-- class header -->
<xsl:template name="testsuite.test.header">
<tr valign="top">
<th width="80%">Name</th>
<th>Tests</th>
<th>Errors</th>
<th>Failures</th>
<th nowrap="nowrap">Time(s)</th>
<th nowrap="nowrap">Time Stamp</th>
<th>Host</th>
</tr>
</xsl:template>
<!-- method header -->
<xsl:template name="testcase.test.header">
<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[.&gt; 0]">Error</xsl:when>
<xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
<xsl:otherwise>Pass</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><a 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),&quot;'&quot;,&quot;\&apos;&quot;)"/>
<xsl:value-of select="$tmp2"/>
</xsl:template>
<!--
template that will convert a carriage return into a br tag
@param word the text from which to convert CR to BR tag
-->
<xsl:template name="br-replace">
<xsl:param name="word"/>
<xsl:param name="br"><br/></xsl:param>
<xsl:value-of select='stringutils:replace(string($word),"&#xA;",$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>

View File

@ -0,0 +1,875 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
extension-element-prefixes="redirect">
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
<xsl:decimal-format decimal-separator="." grouping-separator=","/>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
Sample stylesheet to be used with Ant JUnitReport output.
It creates a set of HTML files a la javadoc where you can browse easily
through all packages and classes.
-->
<xsl:param name="output.dir" select="'.'"/>
<xsl:template match="testsuites">
<!-- create the index.html -->
<redirect:write file="{$output.dir}/index.html">
<xsl:call-template name="index.html"/>
</redirect:write>
<!-- create the stylesheet.css -->
<redirect:write file="{$output.dir}/stylesheet.css">
<xsl:call-template name="stylesheet.css"/>
</redirect:write>
<!-- create the overview-packages.html at the root -->
<redirect:write file="{$output.dir}/overview-summary.html">
<xsl:apply-templates select="." mode="overview.packages"/>
</redirect:write>
<!-- create the all-packages.html at the root -->
<redirect:write file="{$output.dir}/overview-frame.html">
<xsl:apply-templates select="." mode="all.packages"/>
</redirect:write>
<!-- create the all-classes.html at the root -->
<redirect:write file="{$output.dir}/allclasses-frame.html">
<xsl:apply-templates select="." mode="all.classes"/>
</redirect:write>
<!-- create the all-tests.html at the root -->
<redirect:write file="{$output.dir}/all-tests.html">
<xsl:apply-templates select="." mode="all.tests"/>
</redirect:write>
<!-- create the alltests-fails.html at the root -->
<redirect:write file="{$output.dir}/alltests-fails.html">
<xsl:apply-templates select="." mode="all.tests">
<xsl:with-param name="type" select="'fails'"/>
</xsl:apply-templates>
</redirect:write>
<!-- create the alltests-errors.html at the root -->
<redirect:write file="{$output.dir}/alltests-errors.html">
<xsl:apply-templates select="." mode="all.tests">
<xsl:with-param name="type" select="'errors'"/>
</xsl:apply-templates>
</redirect:write>
<!-- process all packages -->
<xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
<xsl:call-template name="package">
<xsl:with-param name="name" select="@package"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="package">
<xsl:param name="name"/>
<xsl:variable name="package.dir">
<xsl:if test="not($name = '')"><xsl:value-of select="translate($name,'.','/')"/></xsl:if>
<xsl:if test="$name = ''">.</xsl:if>
</xsl:variable>
<!--Processing package <xsl:value-of select="@name"/> in <xsl:value-of select="$output.dir"/> -->
<!-- create a classes-list.html in the package directory -->
<redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
<xsl:call-template name="classes.list">
<xsl:with-param name="name" select="$name"/>
</xsl:call-template>
</redirect:write>
<!-- create a package-summary.html in the package directory -->
<redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
<xsl:call-template name="package.summary">
<xsl:with-param name="name" select="$name"/>
</xsl:call-template>
</redirect:write>
<!-- for each class, creates a @name.html -->
<!-- @bug there will be a problem with inner classes having the same name, it will be overwritten -->
<xsl:for-each select="/testsuites/testsuite[@package = $name]">
<redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}.html">
<xsl:apply-templates select="." mode="class.details"/>
</redirect:write>
<xsl:if test="string-length(./system-out)!=0">
<redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-out.txt">
<xsl:value-of disable-output-escaping="yes" select="./system-out"/>
</redirect:write>
</xsl:if>
<xsl:if test="string-length(./system-err)!=0">
<redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-err.txt">
<xsl:value-of disable-output-escaping="yes" select="./system-err"/>
</redirect:write>
</xsl:if>
<xsl:if test="@failures != 0">
<redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-fails.html">
<xsl:apply-templates select="." mode="class.details">
<xsl:with-param name="type" select="'fails'"/>
</xsl:apply-templates>
</redirect:write>
</xsl:if>
<xsl:if test="@errors != 0">
<redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-errors.html">
<xsl:apply-templates select="." mode="class.details">
<xsl:with-param name="type" select="'errors'"/>
</xsl:apply-templates>
</redirect:write>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template name="index.html">
<html>
<head>
<title>Unit Test Results.</title>
</head>
<frameset cols="20%,80%">
<frameset rows="30%,70%">
<frame src="overview-frame.html" name="packageListFrame"/>
<frame src="allclasses-frame.html" name="classListFrame"/>
</frameset>
<frame src="overview-summary.html" name="classFrame"/>
<noframes>
<h2>Frame Alert</h2>
<p>
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
</p>
</noframes>
</frameset>
</html>
</xsl:template>
<!-- this is the stylesheet css to use for nearly everything -->
<xsl:template name="stylesheet.css">
body {
font:normal 68% verdana,arial,helvetica;
color:#000000;
}
table tr td, table tr th {
font-size: 68%;
}
table.details tr th{
font-weight: bold;
text-align:left;
background:#a6caf0;
}
table.details tr td{
background:#eeeee0;
}
p {
line-height:1.5em;
margin-top:0.5em; margin-bottom:1.0em;
}
h1 {
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
}
h2 {
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
}
h3 {
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
}
h4 {
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
}
h5 {
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
}
h6 {
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
}
.Error {
font-weight:bold; color:red;
}
.Failure {
font-weight:bold; color:purple;
}
.Properties {
text-align:right;
}
</xsl:template>
<!-- Create list of all/failed/errored tests -->
<xsl:template match="testsuites" mode="all.tests">
<xsl:param name="type" select="'all'"/>
<html>
<xsl:variable name="title">
<xsl:choose>
<xsl:when test="$type = 'fails'">
<xsl:text>All Failures</xsl:text>
</xsl:when>
<xsl:when test="$type = 'errors'">
<xsl:text>All Errors</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>All Tests</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<head>
<title>Unit Test Results: <xsl:value-of select="$title"/></title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name"/>
</xsl:call-template>
</head>
<body>
<xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
<xsl:call-template name="pageHeader"/>
<h2><xsl:value-of select="$title"/></h2>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testcase.test.header">
<xsl:with-param name="show.class" select="'yes'"/>
</xsl:call-template>
<!--
test can even not be started at all (failure to load the class)
so report the error directly
-->
<xsl:if test="./error">
<tr class="Error">
<td colspan="4">
<xsl:apply-templates select="./error"/>
</td>
</tr>
</xsl:if>
<xsl:choose>
<xsl:when test="$type = 'fails'">
<xsl:apply-templates select=".//testcase[failure]" mode="print.test">
<xsl:with-param name="show.class" select="'yes'"/>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$type = 'errors'">
<xsl:apply-templates select=".//testcase[error]" mode="print.test">
<xsl:with-param name="show.class" select="'yes'"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select=".//testcase" mode="print.test">
<xsl:with-param name="show.class" select="'yes'"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</table>
</body>
</html>
</xsl:template>
<!-- ======================================================================
This page is created for every testsuite class.
It prints a summary of the testsuite and detailed information about
testcase methods.
====================================================================== -->
<xsl:template match="testsuite" mode="class.details">
<xsl:param name="type" select="'all'"/>
<xsl:variable name="package.name" select="@package"/>
<xsl:variable name="class.name"><xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></xsl:variable>
<html>
<head>
<title>Unit Test Results: <xsl:value-of select="$class.name"/></title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name" select="$package.name"/>
</xsl:call-template>
<script type="text/javascript" language="JavaScript">
var TestCases = new Array();
var cur;
<xsl:apply-templates select="properties"/>
</script>
<script type="text/javascript" language="JavaScript"><![CDATA[
function displayProperties (name) {
var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
var doc = win.document;
doc.open();
doc.write("<html><head><title>Properties of " + name + "</title>");
doc.write("<style type=\"text/css\">");
doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
doc.write("table tr td, table tr th { font-size: 68%; }");
doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
doc.write("</style>");
doc.write("</head><body>");
doc.write("<h3>Properties of " + name + "</h3>");
doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
doc.write("<table class='properties'>");
doc.write("<tr><th>Name</th><th>Value</th></tr>");
for (prop in TestCases[name]) {
doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
}
doc.write("</table>");
doc.write("</body></html>");
doc.close();
win.focus();
}
]]>
</script>
</head>
<body>
<xsl:call-template name="pageHeader"/>
<h3>Class <xsl:value-of select="$class.name"/></h3>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<xsl:apply-templates select="." mode="print.test"/>
</table>
<xsl:choose>
<xsl:when test="$type = 'fails'">
<h2>Failures</h2>
</xsl:when>
<xsl:when test="$type = 'errors'">
<h2>Errors</h2>
</xsl:when>
<xsl:otherwise>
<h2>Tests</h2>
</xsl:otherwise>
</xsl:choose>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testcase.test.header"/>
<!--
test can even not be started at all (failure to load the class)
so report the error directly
-->
<xsl:if test="./error">
<tr class="Error">
<td colspan="4"><xsl:apply-templates select="./error"/></td>
</tr>
</xsl:if>
<xsl:choose>
<xsl:when test="$type = 'fails'">
<xsl:apply-templates select="./testcase[failure]" mode="print.test"/>
</xsl:when>
<xsl:when test="$type = 'errors'">
<xsl:apply-templates select="./testcase[error]" mode="print.test"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="./testcase" mode="print.test"/>
</xsl:otherwise>
</xsl:choose>
</table>
<div class="Properties">
<a>
<xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
Properties &#187;
</a>
</div>
<xsl:if test="string-length(./system-out)!=0">
<div class="Properties">
<a>
<xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-out.txt</xsl:attribute>
System.out &#187;
</a>
</div>
</xsl:if>
<xsl:if test="string-length(./system-err)!=0">
<div class="Properties">
<a>
<xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-err.txt</xsl:attribute>
System.err &#187;
</a>
</div>
</xsl:if>
</body>
</html>
</xsl:template>
<!--
Write properties into a JavaScript data structure.
This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
-->
<xsl:template match="properties">
cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
<xsl:for-each select="property">
<xsl:sort select="@name"/>
cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
</xsl:for-each>
</xsl:template>
<!-- ======================================================================
This page is created for every package.
It prints the name of all classes that belongs to this package.
@param name the package name to print classes.
====================================================================== -->
<!-- list of classes in a package -->
<xsl:template name="classes.list">
<xsl:param name="name"/>
<html>
<head>
<title>Unit Test Classes: <xsl:value-of select="$name"/></title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name" select="$name"/>
</xsl:call-template>
</head>
<body>
<table width="100%">
<tr>
<td nowrap="nowrap">
<h2><a href="package-summary.html" target="classFrame">
<xsl:value-of select="$name"/>
<xsl:if test="$name = ''">&lt;none&gt;</xsl:if>
</a></h2>
</td>
</tr>
</table>
<h2>Classes</h2>
<table width="100%">
<xsl:for-each select="/testsuites/testsuite[./@package = $name]">
<xsl:sort select="@name"/>
<tr>
<td nowrap="nowrap">
<a href="{@id}_{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<!--
Creates an all-classes.html file that contains a link to all package-summary.html
on each class.
-->
<xsl:template match="testsuites" mode="all.classes">
<html>
<head>
<title>All Unit Test Classes</title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name"/>
</xsl:call-template>
</head>
<body>
<h2>Classes</h2>
<table width="100%">
<xsl:apply-templates select="testsuite" mode="all.classes">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="testsuite" mode="all.classes">
<xsl:variable name="package.name" select="@package"/>
<tr>
<td nowrap="nowrap">
<a target="classFrame">
<xsl:attribute name="href">
<xsl:if test="not($package.name='')">
<xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
</xsl:if><xsl:value-of select="@id"/>_<xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
</xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</tr>
</xsl:template>
<!--
Creates an html file that contains a link to all package-summary.html files on
each package existing on testsuites.
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
-->
<xsl:template match="testsuites" mode="all.packages">
<html>
<head>
<title>All Unit Test Packages</title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name"/>
</xsl:call-template>
</head>
<body>
<h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
<h2>Packages</h2>
<table width="100%">
<xsl:apply-templates select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]" mode="all.packages">
<xsl:sort select="@package"/>
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="testsuite" mode="all.packages">
<tr>
<td nowrap="nowrap">
<a href="./{translate(@package,'.','/')}/package-summary.html" target="classFrame">
<xsl:value-of select="@package"/>
<xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
</a>
</td>
</tr>
</xsl:template>
<xsl:template match="testsuites" mode="overview.packages">
<html>
<head>
<title>Unit Test Results: Summary</title>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name"/>
</xsl:call-template>
</head>
<body>
<xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
<xsl:call-template name="pageHeader"/>
<h2>Summary</h2>
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<tr valign="top">
<th>Tests</th>
<th>Failures</th>
<th>Errors</th>
<th>Success rate</th>
<th>Time</th>
</tr>
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="$errorCount &gt; 0">Error</xsl:when>
<xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
<xsl:otherwise>Pass</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><a title="Display all tests" href="all-tests.html"><xsl:value-of select="$testCount"/></a></td>
<td><a title="Display all failures" href="alltests-fails.html"><xsl:value-of select="$failureCount"/></a></td>
<td><a title="Display all errors" href="alltests-errors.html"><xsl:value-of select="$errorCount"/></a></td>
<td>
<xsl:call-template name="display-percent">
<xsl:with-param name="value" select="$successRate"/>
</xsl:call-template>
</td>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="$timeCount"/>
</xsl:call-template>
</td>
</tr>
</table>
<table border="0" width="95%">
<tr>
<td style="text-align: justify;">
Note: <em>failures</em> are anticipated and checked for with assertions while <em>errors</em> are unanticipated.
</td>
</tr>
</table>
<h2>Packages</h2>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<xsl:for-each select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
<xsl:sort select="@package" order="ascending"/>
<!-- get the node set containing all testsuites that have the same package -->
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = current()/@package]"/>
<tr valign="top">
<!-- display a failure if there is any failure/error in the package -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="sum($insamepackage/@errors) &gt; 0">Error</xsl:when>
<xsl:when test="sum($insamepackage/@failures) &gt; 0">Failure</xsl:when>
<xsl:otherwise>Pass</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><a href="./{translate(@package,'.','/')}/package-summary.html">
<xsl:value-of select="@package"/>
<xsl:if test="@package = ''">&lt;none&gt;</xsl:if>
</a></td>
<td><xsl:value-of select="sum($insamepackage/@tests)"/></td>
<td><xsl:value-of select="sum($insamepackage/@errors)"/></td>
<td><xsl:value-of select="sum($insamepackage/@failures)"/></td>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="sum($insamepackage/@time)"/>
</xsl:call-template>
</td>
<td><xsl:value-of select="$insamepackage/@timestamp"/></td>
<td><xsl:value-of select="$insamepackage/@hostname"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template name="package.summary">
<xsl:param name="name"/>
<html>
<head>
<xsl:call-template name="create.stylesheet.link">
<xsl:with-param name="package.name" select="$name"/>
</xsl:call-template>
</head>
<body>
<xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
<xsl:call-template name="pageHeader"/>
<h3>Package <xsl:value-of select="$name"/></h3>
<!--table border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="class.metrics.header"/>
<xsl:apply-templates select="." mode="print.metrics"/>
</table-->
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/>
<xsl:if test="count($insamepackage) &gt; 0">
<h2>Classes</h2>
<p>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<xsl:apply-templates select="$insamepackage" mode="print.test">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table>
</p>
</xsl:if>
</body>
</html>
</xsl:template>
<!--
transform string like a.b.c to ../../../
@param path the path to transform into a descending directory path
-->
<xsl:template name="path">
<xsl:param name="path"/>
<xsl:if test="contains($path,'.')">
<xsl:text>../</xsl:text>
<xsl:call-template name="path">
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="not(contains($path,'.')) and not($path = '')">
<xsl:text>../</xsl:text>
</xsl:if>
</xsl:template>
<!-- create the link to the stylesheet based on the package name -->
<xsl:template name="create.stylesheet.link">
<xsl:param name="package.name"/>
<link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link>
</xsl:template>
<!-- Page HEADER -->
<xsl:template name="pageHeader">
<h1>Unit Test Results</h1>
<table width="100%">
<tr>
<td align="left"></td>
<td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://ant.apache.org/">Ant</a>.</td>
</tr>
</table>
<hr size="1"/>
</xsl:template>
<!-- class header -->
<xsl:template name="testsuite.test.header">
<tr valign="top">
<th width="80%">Name</th>
<th>Tests</th>
<th>Errors</th>
<th>Failures</th>
<th nowrap="nowrap">Time(s)</th>
<th nowrap="nowrap">Time Stamp</th>
<th>Host</th>
</tr>
</xsl:template>
<!-- method header -->
<xsl:template name="testcase.test.header">
<xsl:param name="show.class" select="''"/>
<tr valign="top">
<xsl:if test="boolean($show.class)">
<th>Class</th>
</xsl:if>
<th>Name</th>
<th>Status</th>
<th width="80%">Type</th>
<th nowrap="nowrap">Time(s)</th>
</tr>
</xsl:template>
<!-- class information -->
<xsl:template match="testsuite" mode="print.test">
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="@errors[.&gt; 0]">Error</xsl:when>
<xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
<xsl:otherwise>Pass</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:value-of select="@name"/></a></td>
<td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:apply-templates select="@tests"/></a></td>
<td>
<xsl:choose>
<xsl:when test="@errors != 0">
<a title="Display only errors" href="{@id}_{@name}-errors.html"><xsl:apply-templates select="@errors"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="@errors"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="@failures != 0">
<a title="Display only failures" href="{@id}_{@name}-fails.html"><xsl:apply-templates select="@failures"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="@failures"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td><xsl:call-template name="display-time">
<xsl:with-param name="value" select="@time"/>
</xsl:call-template>
</td>
<td><xsl:apply-templates select="@timestamp"/></td>
<td><xsl:apply-templates select="@hostname"/></td>
</tr>
</xsl:template>
<xsl:template match="testcase" mode="print.test">
<xsl:param name="show.class" select="''"/>
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="error">Error</xsl:when>
<xsl:when test="failure">Failure</xsl:when>
<xsl:otherwise>TableRowColor</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:variable name="class.href">
<xsl:value-of select="concat(translate(../@package,'.','/'), '/', ../@id, '_', ../@name, '.html')"/>
</xsl:variable>
<xsl:if test="boolean($show.class)">
<td><a href="{$class.href}"><xsl:value-of select="../@name"/></a></td>
</xsl:if>
<td>
<a name="{@name}"/>
<xsl:choose>
<xsl:when test="boolean($show.class)">
<a href="{concat($class.href, '#', @name)}"><xsl:value-of select="@name"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<xsl:choose>
<xsl:when test="failure">
<td>Failure</td>
<td><xsl:apply-templates select="failure"/></td>
</xsl:when>
<xsl:when test="error">
<td>Error</td>
<td><xsl:apply-templates select="error"/></td>
</xsl:when>
<xsl:otherwise>
<td>Success</td>
<td></td>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="@time"/>
</xsl:call-template>
</td>
</tr>
</xsl:template>
<!-- Note : the below template error and failure are the same style
so just call the same style store in the toolkit template -->
<xsl:template match="failure">
<xsl:call-template name="display-failures"/>
</xsl:template>
<xsl:template match="error">
<xsl:call-template name="display-failures"/>
</xsl:template>
<!-- Style for the error and failure in the testcase template -->
<xsl:template name="display-failures">
<xsl:choose>
<xsl:when test="not(@message)">N/A</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@message"/>
</xsl:otherwise>
</xsl:choose>
<!-- display the stacktrace -->
<br/><br/>
<code>
<xsl:call-template name="br-replace">
<xsl:with-param name="word" select="."/>
</xsl:call-template>
</code>
<!-- the latter is better but might be problematic for non-21" monitors... -->
<!--pre><xsl:value-of select="."/></pre-->
</xsl:template>
<xsl:template name="JS-escape">
<xsl:param name="string"/>
<xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
<xsl:param name="tmp2" select="stringutils:replace(string($tmp1),&quot;'&quot;,&quot;\&apos;&quot;)"/>
<xsl:value-of select="$tmp2"/>
</xsl:template>
<!--
template that will convert a carriage return into a br tag
@param word the text from which to convert CR to BR tag
-->
<xsl:template name="br-replace">
<xsl:param name="word"/>
<xsl:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"&#xA;","&lt;br/>")'/>
</xsl:template>
<xsl:template name="display-time">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.000')"/>
</xsl:template>
<xsl:template name="display-percent">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.00%')"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,464 @@
<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="," />
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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.
-->
<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;
doc.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 &gt; 0">Failure</xsl:when>
<xsl:when test="$errorCount &gt; 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>
<td><xsl:value-of select="$testsuites-in-package/@timestamp"/></td>
<td><xsl:value-of select="$testsuites-in-package/@hostname"/></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 &#187;
</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 &gt; 0">Failure</xsl:when>
<xsl:when test="$errorCount &gt; 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://ant.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>
<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">
<!-- set a nice color depending if there is an error/failure -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
<xsl:when test="@errors[.&gt; 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>
<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="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),&quot;'&quot;,&quot;\&apos;&quot;)"/>
<xsl:value-of select="$tmp2"/>
</xsl:template>
<!--
template that will convert a carriage return into a br tag
@param word the text from which to convert CR to BR tag
-->
<xsl:template name="br-replace">
<xsl:param name="word"/>
<xsl:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"&#xA;","&lt;br/>")'/>
</xsl:template>
<xsl:template name="display-time">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.000')"/>
</xsl:template>
<xsl:template name="display-percent">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.00%')"/>
</xsl:template>
</xsl:stylesheet>

202
GameServer/ant/etc/log.xsl Normal file
View File

@ -0,0 +1,202 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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://ant.apache.org/">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"/>
</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>

View File

@ -0,0 +1,502 @@
<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="," />
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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]) &gt; 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">
</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>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,178 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT 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>
<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>
</head>
<body link="#000000" alink="#000000" vlink="#000000" text="#000000">
<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>
<!-- change to entries select to address bug #36827 -->
<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)][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" />&amp;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" />&amp;r2=<xsl:value-of select="prevrevision"/>&amp;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>

236
GameServer/ant/fetch.xml Normal file
View File

@ -0,0 +1,236 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
=======================================================================
Build file to fetch optional libraries for Apache Ant
=======================================================================
-->
<project name="fetch" default="all" basedir=".">
<description>
This build file downloads JAR files that optional Ant tasks use,
and installs them in a location that is accessible the next time Ant runs.
You can choose three locations, by going -Ddest=LOCATION on the command line
-Ddest=user user lib dir ${user.home}/.ant/lib
-Ddest=system ant lib dir ${ant.home}/lib --Default--
-Ddest=optional optional dir ${ant.home}/lib/optional (for Ant developers)
You may also need to set proxy settings. On Java1.5, Ant tries to get
this from the OS, unless you use the -noproxy option.
Proxies can be configured manually setting the JVM proxy values in the
ANT_OPTS environment variable.
For example, to set the proxy up in the tcsh shell, the command would be
something like:
For csh/tcsh:
setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
For bash:
export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
For Windows, set the environment variable in the appropriate dialog box
and open a new console. or, by hand
set ANT_OPTS = -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080
</description>
<!-- Give user a chance to override without editing this file
(and without typing -D each time it compiles it) -->
<property file="${user.home}/.ant/ant.properties"/>
<property name="lib.dir" location="lib" />
<property name="optional.dir" location="${lib.dir}/optional" />
<property name="userlib.dir" location="${user.home}/.ant/lib" />
<!-- load in our properties table -->
<property file="${lib.dir}/libraries.properties"/>
<import file="get-m2.xml" />
<target name="pick-dest">
<property name="dest" value="system" />
<condition property="dest.dir"
value="${lib.dir}">
<equals arg1="${dest}" arg2="system" />
</condition>
<condition property="dest.dir"
value="${optional.dir}">
<equals arg1="${dest}" arg2="optional" />
</condition>
<condition property="dest.dir"
value="${userlib.dir}">
<equals arg1="${dest}" arg2="user" />
</condition>
<fail unless="dest.dir">Unknown destination : ${dest}</fail>
<echo>Downloading to ${dest.dir}</echo>
<property name="m2.dest.dir" value="${dest.dir}" />
</target>
<target name="macros" depends="pick-dest,get-m2"
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<macrodef name="f2">
<attribute name="project" />
<attribute name="archive" default="@{project}"/>
<sequential>
<fail>
Unknown archive @{archive} -no property @{archive}.version defined.
<condition>
<not>
<isset property="@{archive}.version"/>
</not>
</condition>
</fail>
<artifact:dependencies pathID="@{archive}.path">
<dependency groupID="@{project}"
artifactID="@{archive}"
version="${@{archive}.version}"/>
</artifact:dependencies>
<!-- now we are left with the problem of getting the files
into our directory -->
<copypath destdir="${dest.dir}" pathref="@{archive}.path">
<flattenmapper/>
</copypath>
</sequential>
</macrodef>
</target>
<!-- any init stuff -->
<target name="init" depends="macros" />
<target name="diag" depends="init">
<echoproperties />
</target>
<target name="logging"
description="load logging libraries"
depends="init">
<f2 project="log4j" />
<f2 project="commons-logging" archive="commons-logging-api" />
</target>
<target name="junit"
description="load junit libraries"
depends="init">
<f2 project="junit" />
</target>
<target name="xml"
description="load full XML libraries (xalan, resolver)"
depends="init">
<f2 project="xalan" />
<f2 project="xml-resolver" />
</target>
<!--
This is not used as
1. we want the names of the libraries to be fixed, or it will break Ant's manifest.
2. We like to get the more recent artifacts than are in the repo at the time of writing (2006-10-16)
3. Xerces has a dependency on v 1.3.03 of Xml-apis, which is wrong.
If/when the artifacts stabilize, we could switch to it.
-->
<target name="xerces"
description="load an updated version of Xerces"
depends="init">
<f2 project="xerces" archive="xercesImpl"/>
<f2 project="xerces" archive="xmlParserAPIs" />
</target>
<target name="networking"
description="load networking libraries (commons-net; jsch)"
depends="init">
<f2 project="commons-net" />
<f2 project="com.jcraft" archive="jsch"/>
</target>
<target name="regexp"
description="load regexp libraries"
depends="init">
<f2 project="regexp" />
<f2 project="oro" />
</target>
<target name="antlr"
description="load antlr libraries"
depends="init">
<f2 project="antlr" />
</target>
<target name="bcel"
description="load bcel libraries"
depends="init">
<f2 project="bcel" />
</target>
<target name="jdepend"
description="load jdepend libraries"
depends="init">
<f2 project="jdepend" />
</target>
<target name="bsf"
description="load bsf libraries"
depends="init">
<f2 project="bsf" />
</target>
<target name="jruby"
description="load jruby"
depends="bsf">
<f2 project="org.jruby" archive="jruby"/>
</target>
<target name="beanshell"
description="load beanshell support"
depends="bsf">
<f2 project="org.beanshell" archive="bsh"/>
<f2 project="org.beanshell" archive="bsh-core"/>
</target>
<target name="jython"
description="load jython"
depends="bsf">
<f2 project="jython" archive="jython"/>
</target>
<target name="rhino"
description="load rhino"
depends="bsf">
<f2 project="rhino" archive="js"/>
</target>
<target name="script"
description="load script languages"
depends="bsf,jruby,jython,beanshell,rhino"/>
<target name="debugging"
description="internal ant debugging"
depends="init">
<f2 project="which" />
</target>
<target name="all"
description="load all the libraries"
depends="logging,junit,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script" />
</project>

121
GameServer/ant/get-m2.xml Normal file
View File

@ -0,0 +1,121 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
=======================================================================
Build file to fetch maven2 tasks; extracted from (Ant's) fetch.xml
=======================================================================
-->
<project name="get-m2" default="get-m2" basedir=".">
<description>
This build file downloads the Maven2 Ant tasks,
and installs them in the location specified by the m2.dest.dir property.
You may need to set proxy settings. On Java1.5, Ant tries to get
this from the OS, unless you use the -noproxy option.
Proxies can be configured manually setting the JVM proxy values in the
ANT_OPTS environment variable.
For example, to set the proxy up in the tcsh shell, the command would be
something like:
For csh/tcsh:
setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
For bash:
export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
For Windows, set the environment variable in the appropriate dialog box
and open a new console. or, by hand
set ANT_OPTS = -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080
</description>
<property file="get-m2.properties" />
<property name="m2.antlib.resource"
value="org/apache/maven/artifact/ant/antlib.xml" />
<property name="m2.antlib.uri"
value="antlib:org.apache.maven.artifact.ant" />
<macrodef name="require">
<attribute name="property" />
<sequential>
<fail unless="@{property}">$${@{property}} not specified</fail>
</sequential>
</macrodef>
<target name="probe-m2">
<require property="m2.dest.dir" />
<require property="m2.jar.name" />
<!-- Look for M2 ant tasks in our classpath-->
<property name="m2.artifact" location="${m2.dest.dir}/${m2.jar.name}" />
<available property="m2.antlib.found" resource="${m2.antlib.resource}" />
<condition property="m2.antlib.typefound">
<typefound name="${m2.antlib.uri}:artifact" />
</condition>
<available property="m2.artifact.found" file="${m2.artifact}" type="file" />
</target>
<target name="download-m2" depends="probe-m2" unless="m2.artifact.found">
<require property="m2.antlib.url" />
<echo>Downloading to ${m2.dest.dir}</echo>
<mkdir dir="${m2.dest.dir}" />
<!-- fetch M2 ant tasks into our repository, if it is not there-->
<get src="${m2.antlib.url}"
dest="${m2.artifact}"
verbose="true"
usetimestamp="false" />
</target>
<target name="dont-validate-m2-checksum" depends="probe-m2"
if="m2.artifact.found">
<property name="checksum.equal" value="true" />
</target>
<target name="validate-m2-checksum"
depends="download-m2,dont-validate-m2-checksum"
if="m2.sha1.checksum" unless="m2.artifact.found">
<checksum file="${m2.artifact}"
algorithm="SHA"
property="${m2.sha1.checksum}"
verifyProperty="checksum.equal" />
</target>
<target name="checksum-mismatch" depends="validate-m2-checksum"
if="m2.sha1.checksum" unless="checksum.equal">
<delete file="${m2.artifact}" />
<fail>
Failed to verify the downloaded file ${m2.antlib.url}" against the checksum
coded into libraries.properties.
The local copy has been deleted, for security reasons
</fail>
</target>
<target name="checksum-match" depends="checksum-mismatch"
unless="m2.antlib.found">
<taskdef classpath="${m2.artifact}" resource="${m2.antlib.resource}"
uri="${m2.antlib.uri}" />
</target>
<target name="get-m2" depends="checksum-match"
description="Download the Maven2 Ant tasks" />
</project>

15
GameServer/ant/lib/README Normal file
View File

@ -0,0 +1,15 @@
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, an Apache-controlled collection of
standard classes from the 1.0b2 release of the Apache XML-Commons
release. 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.

View File

@ -0,0 +1,232 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<name>org.apache.tools.ant</name>
<description>Apache Ant</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<!-- the implementation jar of the xerces jar will be used by ant to parse
XML files, particularly the build files, if the JDK does not provide a parser
xercesImpl.jar is provided with ant -->
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.1</version>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
<dependency>
<!-- xml-apis contains the org.w3c.dom package
since ant is using DOM APIS to parse the XML build file and do other XML related activities
xml-apis is a compile time dependency
a version of xml-apis.jar is delivered with ant -->
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.3.03</version>
<optional>true</optional>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<filters>
<filter>../../../../target/ant/.build.timestamp.properties</filter>
</filters>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration> </configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>create-timestamp-file</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<tstamp/>
<mkdir dir="${project.build.directory}"/>
<touch file="${project.build.directory}/.build.timestamp.properties"/>
<echo file="${project.build.directory}/.build.timestamp.properties" append="false"
message="TODAY=${TODAY}"/>
</tasks>
</configuration>
</execution>
<execution>
<id>delete-timestamp-file</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file="${project.build.directory}/.build.timestamp.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<excludes>
<exclude>org/apache/tools/ant/taskdefs/optional/**</exclude>
<exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude>
<exclude>org/apache/tools/ant/types/optional/**</exclude>
<exclude>org/apache/tools/ant/types/resolver/**</exclude>
<exclude>org/apache/tools/ant/util/depend/**</exclude>
<exclude>org/apache/tools/ant/util/optional/**</exclude>
<exclude>org/apache/tools/ant/util/Script*</exclude>
<exclude>org/apache/tools/ant/listener/Log4jListener*</exclude>
<exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude>
<exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude>
<exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude>
<exclude>org/apache/tools/ant/util/regexp/Jdk14Regexp*</exclude>
<exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude>
<exclude>org/apache/tools/ant/launch/**</exclude>
</excludes>
<testExcludes>
<exclude>org/apache/tools/ant/taskdefs/optional/**</exclude>
<exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude>
<exclude>org/apache/tools/ant/types/optional/**</exclude>
<exclude>org/apache/tools/ant/types/resolver/**</exclude>
<exclude>org/apache/tools/ant/util/depend/**</exclude>
<exclude>org/apache/tools/ant/util/optional/**</exclude>
<exclude>org/apache/tools/ant/util/Script*</exclude>
<exclude>org/apache/tools/ant/listener/Log4jListener*</exclude>
<exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude>
<exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude>
<exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude>
<exclude>org/apache/tools/ant/util/regexp/Jdk14Regexp*</exclude>
<exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude>
<exclude>org/apache/tools/ant/launch/**</exclude>
<exclude>org/apache/tools/ant/taskdefs/StyleTest*</exclude>
</testExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<omitBasedir>true</omitBasedir>
<systemProperties>
<property>
<name>ant.home</name>
<value>${env.ANT_HOME}</value>
</property>
<property>
<name>build.tests</name>
<value>../../../../target/ant/testcases</value>
</property>
<property>
<name>build.tests.value</name>
<value>../../../../target/ant/testcases</value>
</property>
<property>
<name>offline</name>
<value>true</value>
</property>
<property>
<name>root</name>
<value>../../../..</value>
</property>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>../../../../src/main</directory>
<filtering>true</filtering>
<includes>
<include>org/apache/tools/ant/taskdefs/default.properties</include>
<include>org/apache/tools/ant/types/default.properties</include>
<include>org/apache/tools/ant/taskdefs/default.properties</include>
<include>org/apache/tools/ant/types/conditions/antlib.xml</include>
<include>org/apache/tools/ant/defaultManifest.mf</include>
<include>org/apache/tools/ant/version.txt</include>
</includes>
</resource>
<resource>
<directory>../../../../src/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/antlib.xml</include>
</includes>
</resource>
<resource>
<directory>../../../../docs</directory>
<filtering>false</filtering>
<includes>
<include>images/ant_logo_large.gif</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>../../../../src/etc/testcases</directory>
<filtering>true</filtering>
</testResource>
<testResource>
<directory>../../../../src/main</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/tests/junit</testSourceDirectory>
<outputDirectory>../../../../target/ant/classes</outputDirectory>
<testOutputDirectory>../../../../target/ant/testcases</testOutputDirectory>
<directory>../../../../target/ant</directory>
</build>
</project>

View File

@ -0,0 +1 @@
0153222de881bd75a1a03c972966f98e

View File

@ -0,0 +1 @@
6c896738d6345ed0812c34b4392867c210dad051

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-antlr</artifactId>
<version>1.7.0</version>
<description>antlr specific task.
The implementation forks a java process, therefore the antlr jar file is only needed at runtime</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<optional>true</optional>
<scope>compile</scope>
</dependency>
<dependency>
<!-- add a dependency with antlr 2.7.2 consistent with libraries.properties antlr 2.7.6 is also available on ibiblio-->
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>2.7.2</version>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/taskdefs/optional/ANTLR*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
a63cde1195ea76b499847d8bf698edba

View File

@ -0,0 +1 @@
f51de13649550f94e9bc2f5a03b76dee3c7ecee9

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-bcel</artifactId>
<version>1.7.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>bcel</groupId>
<artifactId>bcel</artifactId>
<version>5.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/tfilters/util/JavaClassHelper*</include>
<include>org/apache/tools/ant/tutil/depend/bcel/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
7cb4be931a57998d31b68098c5d6053e

View File

@ -0,0 +1 @@
d0e1e2a885a6faf18ef67bd0b9e7c21f5e4e41e7

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-bsf</artifactId>
<version>1.7.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>bsf</groupId>
<artifactId>bsf</artifactId>
<version>2.4.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/taskdefs/optional/Script*</include>
<include>org/apache/tools/ant/taskdefs/optional/script/**</include>
<include>org/apache/tools/ant/types/optional/*Script*</include>
<include>org/apache/tools/ant/util/Script*</include>
<include>org/apache/tools/ant/util/optional/Script*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
0790d6a5f5bd6d64c3badaada94f5d29

View File

@ -0,0 +1 @@
397dfecef5f4f2842bf9c00e3485d9afe704d479

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-log4j</artifactId>
<version>1.7.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/listener/Log4jListener*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
dafe68897be94f720f07fd9d217ea6c3

View File

@ -0,0 +1 @@
b459c5796ed619217152fb18b41c17725956cd0c

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-oro</artifactId>
<version>1.7.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/util/regexp/JakartaOro*</include>
<include>org/apache/tools/ant/taskdefs/optional/perforce/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
d6e74dbe99c21b5664894d42fd3d0a1a

View File

@ -0,0 +1 @@
2da5692988fb4f6c3eff3f7752889d280b930fb7

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-regexp</artifactId>
<version>1.7.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>regexp</groupId>
<artifactId>regexp</artifactId>
<version>1.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/util/regexp/JakartaRegexp*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
5167f94dce6cc78ce5e2b39e37dee499

View File

@ -0,0 +1 @@
78dc4fee641b98ebdf085030dacd311c5217e2d9

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-resolver</artifactId>
<version>1.7.0</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>xml-resolver</groupId>
<artifactId>xml-resolver</artifactId>
<version>1.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/types/resolver/**</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
22f74f57403ad26242704320476cdfd2

View File

@ -0,0 +1 @@
8c61f8b318cb70927513fe440fa178c396185936

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-commons-logging</artifactId>
<version>1.7.0</version>
<description>Ant Listener based on commons-logging</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>
<version>1.0.4</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/tlistener/CommonsLoggingListener*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
aaed374c26114170486b2b60bf987739

View File

@ -0,0 +1 @@
82e62a4be2cdfa80658762ecdd94dfb2fed0d0c6

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-commons-net</artifactId>
<version>1.7.0</version>
<description>ftp, rexec and telnet tasks</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/taskdefs/optional/net/FTP*</include>
<include>org/apache/tools/ant/taskdefs/optional/net/RExec*</include>
<include>org/apache/tools/ant/taskdefs/optional/net/TelnetTask*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
c3b3ef9357dc32edf675d2dc5b8fa8a5

View File

@ -0,0 +1 @@
092cc31ddab3cd550ed0a5b384baf97218c15d98

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jai</artifactId>
<version>1.7.0</version>
<description>image task and corresponding types.
jai (Java Advanced Imaging) is not available in public Maven repositories, therefore the dependencies are included with a scope provided
the download URL is http://java.sun.com/products/java-media/jai/
</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.media</groupId>
<artifactId>jai-core</artifactId>
<version>1.1.2_01</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jai</groupId>
<artifactId>jai-codec</artifactId>
<version>1.1.2.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/taskdefs/optional/image/*</include>
<include>org/apache/tools/ant/types/optional/image/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
bfe805489b52e51ce3a929b916a7b780

View File

@ -0,0 +1 @@
4e6db677ed9162d6546d5057046491b4454285ff

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-javamail</artifactId>
<version>1.7.0</version>
<description>implementation of the mail task based on javamail.
Required to send emails to SMTP servers using user/password combinations
or to send mail over SSL</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/email/MimeMailer*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
0678ec4770bd91b32f80b5fb457b7634

View File

@ -0,0 +1 @@
f8cebf57009c4d99a1bf2b5223015ed320baf1de

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jdepend</artifactId>
<version>1.7.0</version>
<description>task jdepend invoking the jdepend parser. There is also a version 2.9.1 of the
jdepend parser available on the maven repository</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>jdepend</groupId>
<artifactId>jdepend</artifactId>
<version>2.7</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/optional/jdepend/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
064f0e995accca15150223c1a0ae8666

View File

@ -0,0 +1 @@
0277822a1cac5cdabccefcb0473b6d31c1780293

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jmf</artifactId>
<version>1.7.0</version>
<description>contains the sound task and a soundplayer listener
download the dependency from http://java.sun.com/products/java-media/jmf/</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.media</groupId>
<artifactId>jmf</artifactId>
<version>2.1.1e</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/optional/sound/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
ce526c923382726fc57f5f7afaa69952

View File

@ -0,0 +1 @@
c50b01f6634863439f9877c607807f5ccaba4a41

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.7.0</version>
<description>contains the sshexec and scp tasks
jsch 0.1.29 might not be available from maven</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.29</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/optional/ssh/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
1c1fdd8639840ec7c3b2744248b1fe29

View File

@ -0,0 +1 @@
7e57abd0e96480d055d19e7c2f80eaf5d0dbff84

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-junit</artifactId>
<version>1.7.0</version>
<description>contains the junit and junirreport tasks</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>create-timestamp-file</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<mkdir dir="${project.build.outputDirectory}"/>
<copy todir="${project.build.outputDirectory}/org/apache/tools/ant/taskdefs/optional/junit/xsl">
<fileset dir="${project.build.sourceDirectory}/../etc">
<include name="junit-frames.xsl"/>
<include name="junit-noframes.xsl"/>
</fileset>
</copy>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/optional/junit/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
6fbd6ebb8b953980060e31b66962fceb

View File

@ -0,0 +1 @@
d1145e0fe7d39ccfc85a434da5710c631622bec5

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
<version>1.7.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/launch/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/ant-launcher/classes</outputDirectory>
<testOutputDirectory>../../../../target/ant-launcher/testcases</testOutputDirectory>
<directory>../../../../target/ant-launcher</directory>
</build>
</project>

View File

@ -0,0 +1 @@
9715be71f950b5701fca1f863434373d

View File

@ -0,0 +1 @@
d628e808d19cf5f6d78d4c67f22ffe99d9c19a2a

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-netrexx</artifactId>
<version>1.7.0</version>
<description>NetRexxC task
dependency can be downloaded from http://www.ibm.com/software/awdtools/netrexx/download.html</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.ibm.netrexx</groupId>
<artifactId>netrexx</artifactId>
<version>2.0.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/optional/NetRexxC*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

View File

@ -0,0 +1 @@
706b06d9edf81848a94159e5543ba131

View File

@ -0,0 +1 @@
c70e518b904c44bf542136925e619a9b34eccd63

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-nodeps</artifactId>
<version>1.7.0</version>
<description>contains all the optional tasks and types which do not have particular dependencies</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<!-- the implementation jar of the xerces jar will be used by ant to parse
XML files, particularly the build files, if the JDK does not provide a parser
xercesImpl.jar is provided with ant -->
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.1</version>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
<dependency>
<!-- xml-apis contains the org.w3c.dom package
since ant is using DOM APIS to parse the XML build file and do other XML related activities
xml-apis is a compile time dependency
a version of xml-apis.jar is delivered with ant -->
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.3.03</version>
<optional>true</optional>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant/taskdefs/optional/**</include>
<include>org/apache/tools/ant/types/optional/**</include>
<include>org/apache/tools/ant/util/depend/*</include>
<include>org/apache/tools/ant/util/optional/**</include>
<include>org/apache/tools/ant/util/java15/**</include>
<include>org/apache/tools/ant/util/regexp/Jdk14Regexp*</include>
</includes>
<excludes>
<exclude>org/apache/tools/ant/taskdefs/optional/TraXLiaison*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/junit/**</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/perforce/**</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/Script*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/script/**</exclude>
<exclude>org/apache/tools/ant/util/optional/Script*</exclude>
<exclude>org/apache/tools/ant/types/optional/*Script*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/StyleBook*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/NetRexxC*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ejb/Ejbc*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ejb/DDCreator*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ejb/WLRun*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ejb/WLStop*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/net/Telnet*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/net/RExec*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/scm/AntStarTeam*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/starteam/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ANTLR*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/sound/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/image/*</exclude>
<exclude>org/apache/tools/ant/types/optional/image/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/jdepend/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/splash/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ssh/*</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/ant-nodeps/classes</outputDirectory>
<testOutputDirectory>../../../../target/ant-nodeps/testcases</testOutputDirectory>
<directory>../../../../target/ant-nodeps</directory>
</build>
</project>

View File

@ -0,0 +1 @@
bffd32b045861eaa4da24c9a0dee5ddf

View File

@ -0,0 +1 @@
5396eb3c49af7294bcb7c64e21929281fd30a80f

View File

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<version>1.7.0</version>
<packaging>pom</packaging>
<description>master POM</description>
<name>Apache Ant</name>
<url>http://ant.apache.org/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>Apache Software Foundation</name>
</organization>
<distributionManagement>
<!-- Null out inherited apache distribution repo by default -->
<repository>
<id>dummy</id>
<name>Dummy to avoid accidental deploys</name>
<url></url>
</repository>
</distributionManagement>
<scm>
<connection>scm:svn:http://svn.apache.org/repos/asf/ant/core/trunk</connection>
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/jant/core/trunk</developerConnection>
<url>http://svn.apache.org/repos/asf/ant/core/trunk</url>
</scm>
<mailingLists>
<mailingList>
<name>Ant Developers List</name>
<subscribe>dev-subscribe@ant.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@ant.apache.org</unsubscribe>
<post>dev@ant.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/ant-dev</archive>
</mailingList>
<mailingList>
<name>Ant Users List</name>
<subscribe>user-subscribe@ant.apache.org</subscribe>
<unsubscribe>user-unsubscribe@ant.apache.org</unsubscribe>
<post>user@ant.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/ant-user</archive>
</mailingList>
</mailingLists>
<issueManagement>
<system>bugzilla</system>
<url>http://issues.apache.org/bugzilla/</url>
</issueManagement>
<modules>
<module>ant</module>
<module>ant-antlr</module>
<module>ant-apache-bcel</module>
<module>ant-apache-bsf</module>
<module>ant-apache-log4j</module>
<module>ant-apache-oro</module>
<module>ant-apache-regexp</module>
<module>ant-apache-resolver</module>
<module>ant-commons-logging</module>
<module>ant-commons-net</module>
<module>ant-jai</module>
<module>ant-javamail</module>
<module>ant-jdepend</module>
<module>ant-jmf</module>
<module>ant-jsch</module>
<module>ant-junit</module>
<module>ant-launcher</module>
<module>ant-netrexx</module>
<module>ant-nodeps</module>
<module>ant-starteam</module>
<module>ant-stylebook</module>
<module>ant-swing</module>
<module>ant-testutil</module>
<module>ant-trax</module>
<module>ant-weblogic</module>
</modules>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>../../../src/main</sourceDirectory>
<testSourceDirectory>../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../target/classes</outputDirectory>
<testOutputDirectory>../../../target/testcases</testOutputDirectory>
</build>
</project>

View File

@ -0,0 +1 @@
bbb2b5106cdfce3220529d77200085cc

View File

@ -0,0 +1 @@
9d12c84639c58e88a028235eaad5b801f6ba03ec

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This POM has been created manually by the Ant Development Team.
Please contact us if you are not satisfied with the data contained in this POM.
URL : http://ant.apache.org
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ant</groupId>
<artifactId>ant-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-starteam</artifactId>
<description>Starteam SDK tasks</description>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.starteam</groupId>
<artifactId>starteam-sdk</artifactId>
<version>5.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.2</source>
<target>1.2</target>
<includes>
<include>org/apache/tools/ant//taskdefs/optional/scm/AntStarTeam*</include>
<include>org/apache/tools/ant//taskdefs/optional/scm/starteam/*</include>
</includes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
<testSourceDirectory>../../../../src/testcases</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
</build>
</project>

Some files were not shown because too many files have changed in this diff Show More