jarspy-commits Mailing List for JarSpy- Java Archive Spying Utility (Page 9)
Status: Beta
Brought to you by:
brown_j
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(39) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(39) |
Feb
(12) |
Mar
|
Apr
(10) |
May
|
Jun
(24) |
Jul
(38) |
Aug
(9) |
Sep
(58) |
Oct
(34) |
Nov
|
Dec
(13) |
| 2003 |
Jan
(64) |
Feb
(3) |
Mar
(17) |
Apr
(20) |
May
(8) |
Jun
(3) |
Jul
|
Aug
(6) |
Sep
(6) |
Oct
(1) |
Nov
|
Dec
|
| 2005 |
Jan
(41) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Jeff B. <br...@us...> - 2002-10-18 00:03:38
|
Update of /cvsroot/jarspy/JarSpy/lib
In directory usw-pr-cvs1:/tmp/cvs-serv7551
Added Files:
kunststoff.jar
Log Message:
--- NEW FILE: kunststoff.jar ---
PK
%JvÍP(=oZÆÝVÕpîkÕ&fæm]k>ÔÇþdÂm
NÏëv+oZºítòí¦¶ê>¨,{ÃÑâÙJ¥Â2
S*øÔñ©"e^ðV4Ðf
wêXêÉVÌ0ÂZ_CëhÍv¦òËå²+3KÙõø.ɺá.5pesëÃpÎ1¾0g79Óå>7¹ªcÖ®4²9Ik³Î«NëYÒxº¡5Q_Ù¦fÕóÕ5Cw§rÈ5nW׸¯-Ƶ]Ç´PÁ]=ááÍÂãZÉnµm˰Üï}¥[Á¾ûQþöãhÏñDf×ÙvGÀ|÷x@CN§ºÎÞ®ÛnLùI½ÃC
FÞ໫·;¡Ðhw-eþºch®Q²-רrú¹+³¥Õ
ÏýêÝzµ´"¢XM£k®nàH
á¥ÕUñûfuVm§µÍª\õ[&ê1Õñ¢?9dÓ[{
ðZh¦,I>Ù
ÚÐײÅÞâ¼:¹Oâðl¢qÃ{À
F'DL[sKÇAI-«Y6ù"gÂv©T:E9NÒB÷Þ^d¸ÈP`¸ÌpE¥iJ¥kצn0|D3*Í2xx>VéUTún«taaѳOTzHTÒ;Ûïçºïl¢
Pº$x¢ZWZWZWô[wåMæQ´®_¢Zÿ´îjdëAëAë~ë®ÂâÖáþúúQl¢¾ß)¶M©_½¤¿!tTÏÇ×QøêËãß
Ǥñ×£âÕpü4~:*þ@8þ¶4þFTüÁpü4Ï<>ýk(~Y?(ÿH_Êÿípþ+Òx¼Ë~üuxó)éçøsÛ4&ø²ëöÊh
Kãu§r8¼]
~"RÔ#R§;Bún$U&Lµ¾ÕB$Õ0½Õb$ÕÑ0Ug߬îùT·p¡ùJ§Õùm
smv=©+EK8°5&d³¾øß¬øIcaÎÒs~ü:üøN{Y]N÷lÓHæGA3í¹©¥éSz,ÖÓxÒ¦q+>[HÓçô
x¹Ó8è_á5Uø<ñãá«ñ4ñªðÒÿPKÛI6
CðÊÑ1í%!ëðÙÖRw]ÏUùâÁmþRÙÚy¾ý¼^(1$ý²`è)ºx¼SßroÔHÓWô)iK7<GÊÚt¢ã×m×s|ØÛ5^±x %/»ÂSO¹ë©yXà0dÛQI/H'â]\EßSbW1¼i!íÖyU4ÇZÿUá(îUk¢EWD©i}ÐnºW©Pk{AÅõ#Ù¼²®W}H¼ùÂo®$"wê¹0¤ÐLúÿD*³å#áÇ3$wCnc''ÏÍ,ÃÐ_ë ¡V
Ò1Û\
ÏyEòº?égþtÄÔ<6º0cYÜ0p3[Ègp
ºBÑü󺦹Í0~¢?Ý]Ha?ÙØ¢¶0tæ_jUG¯ E
®.ßgûßû³²B¯
1ç?««
,,ÄbgXX±RðÏ%KL$âÙ,<wµb¦øïùº?
¥hxªTõðWPI"©jÕJHúúªÒïÎØ
|æsîÙqþüïç_
òtRa F$8%¹§ý8B
=
Ö!©`
Z±RÁj´)ø
)±GÁ¬U`©Îëq\TAÂK
&pYÁ\Uð
´rMëøÒ
¾ÂM_ãÛ¸S7ùò<úñ@×[gã>·]¶¾Ó±{Øäk¯v`û|M2ÌA½ÊE Ê^a-Þ¸8N_öÊý$°J?§ÞP~wemÇ£
úhZjáË´àj½cÜ$t;>×´Í?$½)°¼Ly¬¢Z£íêä<ýʶ0ç{UKÝWÔÇXnuÉìseÒæ<ÂþäB{+ùêó
ëåùáØØOýäd6Ë@»M÷Sè ¾§¸àæsIj®TÇÜ)÷<©õSð>$Ý
aûNÔæs#±Òè²õ.©Y§MäºøÇ©vì
ùaiÛIMu4µ[uÜYÛU,,WLº÷:D
Zª¦0wqCÙ¦²s1¬rå¤8´Í°w»qßyuÂMy5+R½³`ï+èÂìgõÍU¬)zÒéá®
$$4Q¼b)?"ìÃêIŦªmð¹Bº9\OÔì+¹X§å%t<Æ;J
-¡µtÛÑqAbÒ0»ç$:0rnpX7bÁ!Gq®1+ÜyCbñ®ÇúÑ@òý ÅÓô{HÞg³Ï´NÐ £RnÓÌJ-äC
ݧ,ö¨Ô¬aÍ
6¡ª÷_>©`-ºÃ8¥à=ìUpÛ¼õ
>`ð!v
qFÁ~>¬cðìcð 5H)8s
>ÅyðÏqQA/(¸ËTÀùtÛbÔk£~1*laiE.Jè~â lÀFâ_*ø
_+Ø>ßà[ ª}Ko¥ZJ×êæ_Ϭ1®ôý¢Ãê0¯½5joøî~ÍÑG>]ÿ¥÷ïÙ©QµdÓõy.;®jû=@OTXz
g@Ø®A-N½ôpçÑdÉ ##UfgWFXY^zý¡ó²E¾0N¢øÃÍØE}Pu¦j<]
Í£Ç1¦üV¥I(ûÊ2*²u¶Oïoï
Ø"úpG`ã((§=ó8A#n
?á$®ã~§é}8ÒØþfôVÒØçg=ØæÕà.^ÂvÊ=c;ð2YgìªPÀÃvô°^ì¢Z]§ýUìFîÐLõ«Fõ<íöi<=ìi<KVÏyö_®b_B{+:ÖÝ£#x¡«s:BýBû+ð2ûgÈO~KIÿ>»½YF`¡Nç¹Ê ÆðÐË
¾®¹<%ùËæÙNòwÏNâ@%OIôò´
ÆT®É*Èt乩ÊAe¸IOKñ&¶Üo´-øÚïÉTyªTw׿6-DFÛhÌÕö#m¿«hݹ*U6k¶z'dz}¾mÃeë̪T£z)TRɵäü÷j«Êúàå9ÿá3\Ô/¸ñ_1l¡úôºq$º@d¯a¿aÒðGÑ¡âÝÁÉPK"`Ãî
~¡nün÷§C¯¶´®Uÿ~lWä}Ù!_Ük>X+Sö»Ø7O·Ä÷x³-ÍÊÞ7é©|gæüêË*Ík(âï=6?·U¨?Ï®$[ ô8E÷ݦ×òmlWºÞÉÕ26FôßÂ
+Ujvm`cÉaèyiroU¶üÞWÆLûòÊñª4=Ú4%^~S÷D\´ì~0,TZ£)\áùÖþõ¡²ÛÁf´c¢ËXì÷§y§~Í9úØH.0FTLÔóp[ÆcFéFÒô¡roIÎÒ|jûhhÓä¼TãòC`¹¤%sD*²s
;º`
Éøüd¢h÷Â-¡<¨Rq{6EįC:°))±D6ÎÚB_dSäÚv1cÐB<Þf¢æDëÖÍÒÒYÛ+µo¿íºÃ|}VKÊ5vG(¬GNN3ú£ôÕÎ,öuSBcÄ
,Ï*Ý<¾À3Úý*ÚáÆÀzmVåk· T JäkÎ
BÑh4.IÄÿH%Rbé$JgÓl:+ËJÄÉds¹lÉI#VÈ1,#)0âR(0qr W`Åø+°eyX®ÌòeNÂs¼XʼDà±2/¼áÅ¿ªT*ÿý÷+
2MeèÚ_÷¯z÷O·ä§"]Juf6^âT¡Ë[JøÕØW3ºU|h¤¾y,~j @Xââ¢×<~`è³CÈ=óiÝý·ÇjÃæÎ3ÆÈ²ævÎgb´*ÿÝïÓÓ¤'¯|ùÝùÈÎïÉýzl3á#mWTØw*>ÿ$¹¶N´>d.{^¥Ñ¸¼:B¤Î¤Ï¶Á9ùÓÛu1?Ù^Û<û??6ûá+pö
TAÉn|@ĺb¿Õ×2P$Ï+ë
YU
Ù#®« H´a6þv3æÍªWò¶Ý^<õƦ¢ð°ê¦AÖ«u
Ã2e°09Ósesõ-À¾PKKdñ
í·,Ý©'ëæ3N[áí¬{¼lÖVçuT.Ú/.~ö×Ùè¿èw7Þÿ´ëánÙÝå÷vP_~à{pãÑ×}´¯ò)mÕç¤)# 4E¤}f26À¢m4e´¦4í´aöÄMÓnÀn¸Á^°ågTñmaèã¨pí á0xÃX!V(f$Bÿç¿d +бåà' Á>´(H.D[SOèTKþÈ$½y(ynä:695Ò<WQ&h¦2J{ÈÀUkñ 6Éã*\©õ;7Ig*Å"'*jL#uÿK[T@n.5[*åÖ
kY?ôð,!"GýòKSÐPa]¥G{sWEóE7¾I¬Ù@âCß>3¨r¦ÜÕBççwg^æÝ¶f÷(æp]óXq²MW½9
M?ó([7G¿ýUÝ Õ±·ª.5¶ÿÝTµþ³ô<ÀOSöghÿüåióñâïoV'$ßÝ/ËÉýwW±4ñä#Ù²a{>W=>«ç»"×ý[Ç®îU'e´)5ò§>9N4DèXg®¥xÎEÆ|²HÞ¬T÷¶0
ÒeÇNÑ~y#ïR±||C=¤ß»r-¹
'¸ñè'}Ö¯d
yZ瘝DåÉûë½#â×:1BÀL¨Æ®~¼ã]½¦Ü'9<ä÷bìÞ>Yo<C Ó]ï\¸{¯ªûgqïá)_³$Æätêpu½ÈÂ_pý0z¡ E(!ltí8Ö$E׫5xÜ6SúÕ
Çtu¾ÙRÌ9ÕDw{=ø,\i\{«ÂÔÓ}ýG4R ɤ2¦:´cíµ¨úmH&+¼ÌGMát©))êÈëØJÉ!`¥}WÓß~~0ZÙª8?Ò$à6íF³ÊQô4àF%ÓµPÁý|E«Î °â¸%
7VáW
\:ý/PK¨. PÚ
ÄûìíesW·j ì,Û5k¼¹8kyÓæ¬CËî²[1+¦gËïQñì¨xé[23Ùò-ócón±±d׿#îbÝY5¿7·a!mm1DTömPë¦]ó
!CÑ\ò=³¾`W½Û2%1/Ðñs¯%÷ì\_R¦\ÏæÌôm·Æ}^Ìqeûºû¤k®iϪøSÖÃWàÙr6³6ïXôÓ¥ßå³ê.ñ+®ãzQT{4®É §UHç&ÈYµªÄEZ&E2±6}§Uaý²Ûô*Ö-K·w«
ÛÀ~0°GpTÃeÓ1pWI¿á§]×é7=ïáëx_Ã>Ä
7qCÃGLÌR;[BCÅ@y
9 Ã~,°qËÀmäºÿlØ¢åNqLën{ݨwVÐ×ó?ÙÉl.Zê="+¦ÓDT)Ä%E³lж;^UÍçʯ캷ÏתCåæ®kSËUÉ;°YGG²Ïl7zÍOY@ä?´íf«z+<W3¾íؾmñ.èàÓYk8ÍÊêf:»YØÃ¹ROo< ¶Ü'QñDE«vÕ_KtɲçhÖ²Ãüɦ7ª¹´Àè¶F$í¿×;øzp£ÜÅ˼}÷ò®,{
3%àø¿|¾ÕcË÷9iÃAñÀ¸/r4B
àI¼ÄMCp¡V íÛMØ]¬Wp8bÛþMÍcùãËås(÷ùVÇ»Fü3üÝýâ¡RhLÔ$Kè¥d]ëÄcÈ$b+HôG0®Å2ê÷Øáw?DÏNÕYF{)Ï$2z&®¬`W&ù_dDèàªqZ¨dF¸¯0'ÉòÈ$6:åµxNFyBWI³»[å²ÄGf¨dI¥h5¤bþ|:×RR2j<5£ÊPD<@Îaäd´^èOYP#qªdfq:¸²å;ÌçXºgoÐï^ãz´ÞÄ1ÜB7\®.QE÷p_â$¾ÁxSø§ñ+Jø½x>ü³"
~ÑÑ
â EÄY~(cÂÇd 'èi OÎ^e"IAµ¡C'¿þdDyJ-G¾ãLe_3º"s»;¯HÉð^GÌè7>=ô s;ÉÎLò_ÎPæ¡í)wl½`F®ªÌ!ÅlÉÁ,zýTæq4@ÄM¸ªïôZÏÉÈå/õ]×±ç;´Ýºc½{ÒÏEzë?PKr
jï
ÚaP©
òP{a²]X]fëîVàÎ7ð_Àk
Ä#7^ø>ñÌÒHÕhÌ=ó¿oίß?~Ð
Luè®F-zäÒ+ÁAn©è@Å\UÉ}X¨S1ÎPå¯Y^[7COÆtÖuKëéyÛXÑç{¾³²¢Ï)g=çL8Ò#ÕK[Â_ã¾e£QKX>y|?±§Ì3㥱©{XÕ§KGÕiÓ#Ù#ª·íE.¹ËÝCð_üd,ÏI<fPRÎ2g¨ÏXÏÖsÜ}hälÒD3iØ
×ßE¥"ahÝå¾a²(ø¾#´´ÜMÙçqM´Ø¶²~Ì
3Çpî7T00Kæ{°#ì-)&Kéç ?3E8èa8S3º¼a ¢çÁÁãN76|}Ê5òkéܲգg¤µ¼%î¢ÎçÊ+쿦(#ÿ¦l¯gà¦cÄì§F°ÈSpM~ß·+Çy´ÕÅm
õ8¥áZ5ÜE³
)ܣ˻×0û¦ð¡õgHpÕ)ÇvÜGéEîhHcZC;®©aü'Á<w]Âô²à§ñÿ<Lalç©åH4ÎiZÊe¨Y=lb0øÛ-¯Ô*¡xú¹<LæóU×)e¢ Ýâq¿d¦Ä³2Oýì£^Í:zT)lÚOCþ*ÍZÏÒ×+TÑ
D7:Xe¬j,Ùñïlu³Nò¡£¾ì[áÎ^K1¤tÍd)¥h l£¸V(tWPHWÑFÑl°b6ßÈNeïzÚ/HÆH¨ÜAÕ\çÔm´u~:¬Ä·Ñ(÷ê=D¶Q£ÅÐj»ÐI!t\óá@wXU?ñôRu7)ó>4áeÙOÙ`þâ¹¥£9ÇC°'4\²ú¾ý,ªÏâ:âTÃ)Â$¨Ò
ò6$:¨úvâã1§¶+®#F{ðµä¿ ÑPKf6{C
ÃÊ#2G¬ãî2'ZW¾f[DÑö{:îã9<Ô1¼,`@"Ö^hEÀÃ@ª©XÔñO&ÿçYVÒn Ôü³ÔÛtGõÜ V¶°¹o´£}vÍ÷iÀë[ã/,Añ6ÜwÝ\lqûÒNðªëa8ØBôdÿhyO)¥M-ûßüwrò_¢jéÜ`mdHÑHÊ¿ã?ÔüÍ pþ}OLî$iL¢hW¶öéLDÊ!Щ701¢)Ç
Vð,yK[²ØFñ/ÅOâ".U0Ëø}ÒÆ.4 ld³ßÐÕ@TbH}ª|'Q£÷\z)×@÷F\Quô 7÷çÎ*
£bç1Ý=ÜÄoåC?®v"»¢iú1ðPKMC
*iÁAw¥¸'Ų+RÃXUq_ÅzÝmºpüWoX¤7\Ûõ¶EÓußr
ò>ÿÀÍöåì6oAÌÛÒ¶h»¯.3ÌÆçÙÙã
÷aÑÇ乬>8,Ì4Uãõ]Ïí8ð>¼b%Ñ
×iûÜñ«Üî
ÑRO,Çò2(
b!±á6ÃXÙrÄV§U^
×lòdËnÛUîYÒî9þÕfX/Ó¦åÔ]¯Ý%á CÚ¾Ûl¯ûǰ§ÊhI^Ô]áoñå("M;¾GlR@.'f±¾dó
-QDåv¿02Ì7CQÏnø¦¤wþ6-Içì
Mq)²¸Æ{!¼cûúY1=¬¦åÖþÚÙßÔö*Ây"hµP¢§XEò¿ÊA¦1è;ÍÊIõôxOÓH;Aç!\Jgbäy>6°iß1ôn¿»?íý)$¯¢(Új`'û¶Ø)@54ýÃ_7IÞ¢¼ 7A}NSu÷:zF½¼$ÿ4Ýfº1YÒsêvµLZÞ)ÙÏý©À5yªô¡óÐ{P³M_çÎ}p.s±à
Xp*
¾ÎÇÕ(¸^¤¤º4ýSºK× jéPK©uE}
dx(dµF#o¤ô¨·Ê_ßnáñAwa/ùáz{Bùð¡»×L¤èÿÒõt©#ÙGÚ,éôÕG³`"?I3²ö NØZ
¶Pô=±è88ÛKÂ@'ù¤âêÈ~GìÉ&´§c±Mħµ¯Ð_Å´ÑÏ0èMÄÝ
tNdzc¶fǵMHNë¶aK0+î<BoWÜÕÞ©DÖ6lÝN¨v¹9$IöS¹Tº.*k
Å&1)¡»ÂE
ç¢^·ÝiIöµbâ-NSL±,S\
1Â/Rd
1ÎRüe¢ßøy²éÄ|heÖ#HO:ª.óPKðñÆ
ÐÃY\WÐ
4$ÈH
s@Æ ðÜÑ0$CW %<Ã2nɸ-cDB¯ÛA_J¨ayºíZè[¹ª¿*¹¸·ºªÏ.³.g¾k:ßÜdϲbù¯3n[mÒvmþ@¸V[ºDAB}Ú{É$3låJEæ/E<gNÁômaWõB
éyîÛîżWò-±
îø©ÄVm¸£¢-2FUÜÅq÷0¦b*îÚÔ|ü-*â)ôHh©§=Ï!Ò*¦V1Y 3ÿ£G,7Å%ôZ¤ê¶&jÿ{9éT¬1þ;Û®%þTÚZÔPGLËbÝÝ ({]2:jq\ÕDbEB#±É±7Ó)`RUSs5^£E¹lþÅâ1»´DýSåVØPA¡P½Ê-¢£¨$
è¦ÏK¨ô´óÎâWGOÚÉî Õ²
GI~øºw!¦Æ(aÇ袱³Ây\
³(.ãJ%×[ÂDh^ØGd~ð
Ôâj\l$T¢z¡0Àêf7î.*½Ù{ûúµ_úUE¥O}>ýÜÕ§g6Ëæ"ñQòaæÌÌ÷¼sæ³ù÷¿¿þ0_eq3LÍG2ú±$aYÂÇbÌOdHøT,~&cUXyaD³*ËhÃðZ3ë26°.[¸-,=¢¦¼;^o
`àÑfwC¸Â}1ÚðC[VÕ¹ãð´f;Üà2¨ÒUÛæ6CØÑgU3MßRïª÷ö=ÍXOtu-Qäª'æE2nª>k©EÛÝ5N1Jõ1N»@<W
;µÌ·©
ÕX÷h<{mr~f%·a·èäXt,"@JfáÚüdzÅud8LÏär3þx!K-dV¦Sé
+Z\ñ\Z&4Cs.1ÕëjÍ9Æn0§ÌU:~[Z3xf³çVNÍë\2ª~Cµ41ö&ÎFKÌbB3
¦esu{Ó°Û1×Ös¾YízÅò½/£Ä*X\uÈá|û)³X2
n8ã/Þ¿XT`èj´n^#ª®(=£P~lU¾merÓr6ʺ{yS`÷èÒlîx"¥ÜÆEÀ°fûSlt@>eÙmhêhìE±¸ÛÖ*>²Z(pÛîK&í±½ä^Ü2
îh
ÿðíïr÷¦¸ÍÝëDA÷TÙKò¢¹iø¬&u¼!ð°ÀUÂUoaHÁ(Þ¦çºÑÆwÅ0½Ì¾º"#ø}© A _)øß(xï+x ¬Ia]ÆÃøëóëÌ`V·
ðïñqád;a³äh¦1©º¹~Ù´V¹%á'?ã Ѩõ÷jZÙT»÷¦»jó7\%Àôª®ÐgÐ¥Ò®j&/"øÊW0"6¾rIw{aÂZìØû2t«««{q3±W(õ½×âEó.o3úú_CõϲÎïlªº]W#ò·xjæµ²Ð;«¦Móö¤±:˹N_¯Öí^ýPÃÚ¸×sÇ)úööÓ¿ !Q²â%P/·ëöÃ^ðú¤Û»7îxàÔ¥Ñ%Ú ¾%>¸¦G.Þ;®íE3a¬²Îá<àZp0ÂÇ5&²(Òsâÿ y-}Äwí¤¦ýð.ÅÙô|=e:?´ßAè)Âñ'?,8¨p/ÐG8ýhÇè¦T¸F}®Q7ÕzQ¼8W½s·zØÀ>XÁn¥³ò¢¬¤¼Up[}ÜV7(ê»èñïx7émKdzÃèðú
H,2Éå%î8¥.F?BW2A ¡ÎS[áñùf0GW@8¤É'àòíu%#ðÐQEdm´CüBX@Öó¿X-tVáµ»£Zäú"¿æÆÝE[DÎËÖ¬=9¾@äÄ6NFNm£;òÆ6Ú#§·Ñ÷Èç%ÐI¤2R¬²ºH®G(ÞuÉ
oùiJ$ 3ÀÿPK¬M=
nk·¡±µnZüHpki-o½Ñª+©NyBiò
Ϻ¼ZGs8é?¡øÂ7¾õ+pøÝ+É-;£sæÎ¹ó¹3sgõ·ÿ¼ùg
G'íú£<±#'S>få¾W-æGyÉÊ{+4æ}¢9×)I3×{cÚÎU¬bÁµ ðm¾m®·ÊKÄîLJóynNZyi+øVÞáMf½R3ÉÍ(üqËQI6§ìEBEJR>n»®Às[%,»U°²(+,¦íbÞöm¿]û(ÛËmÏØ.¯X×ge
¾¼g´-#×-°÷ö¾iËê[
Q oPØkeÛmºëFL×¶òYº¸HK=èWõsö¤#EbsÏIX|Ñ@u|I®_HÿGÚ1ð¾ÂÞÜ¢õ|_ÓñußÀ%ß4ð-|ÛÀwð]ßÃËVqÉÀ+|º6Î ÿ¾óöÆuüÈÀ¥ñ«dðà§.ãg»¶n2yîç®à~q¿ä×¼.Éo0Ú°m:~kàwxUÙâ3à¹ì´]VY7p¿7ðØ×vxÁ*;¹Ì¤õD²µ²ÁÞUòç*ëTý×l«ëó7ì+YOÉgJl
:v¥uÄÚgòwW}Ï[>^ÌOÚ²C÷lÀm&»9è·ÛÙÖõxÆ[Ï®ÖxZG_C¥ñEéInY}!9!Zt_²2D7Ór
ɨ/]¬&X(ͪ§Ý³qöʲ6âÞ ¬ãqò%¾<²'m§°D±.÷fÎo;é[®±ý~Ó\Û$;«bg³¾U,»Õ]6rµ¿-WÙ-
~099¹YÚ.^dÔÚéúèV_(Îñ?+õì© êf{o?ÊørÊuÝgZ2+{7BßÍnÖ¼4îæÿ?uðÇù¥¸AþåB%Ò÷q7N
JQ«ö¢Ih<z_<úÍ¿ÁÿÃãóÎÌ^²»éö}ÞËs¿Îþë¿wþ
¿D0|_
BA- n&D,ó÷#rIÄ"^ñoxYÄ+"^ñ×E|[Äeoø7Cøn{ñ=¿ÏDðC\ ádüË|;w"èAsßü8Dpù~*â½úñ>Wá]¾| â*Fð~Æw?ñq¿à~¹àS¾ü/¿æËg|¹Âç!üF@kÎR23¹EgªkjZv¼ +Ùø×°Û1³Ùød%î GE×YFð´6?M)ö(cF9Zkæ<* ±¯ÿ¬¦13CbÚÁ¦Ý|YsJZ§hÒTý¬biü\69-àèÝ:UÚ&MóÂI#3ÁNÊ5ç°»¯?y^YRâºbäâ)ÇÒ=èyZá&ï¤Ý8³UK+8ièÐìiÅÑXCO2°K³Sn¡`ZËlznçfém³¬âê齯ϼ·Ih|>Q|á®hv|#÷l
$ Rpà(àÈÜjíóø»Ú)v{¶ùa«ê; è¬ÀzbEe/1ªZLqX +È{læ¹E¹0¹9HÉm'ï®Ì1àth³¹«<£dækEÏ6ðHeÔEÛaù1S7r:½Èùiôò}åE麨¹G;˲:Sýdé
Òk|k>1ËlÓµT.þàÌRJÆ\p0æØÊ6DöܳÈoa*ê
eºF¦R|¥lN«zP§êÆSroÝ¢q;%ĨGñX¿pÿæ<JY½T #kò¯¾Á,¯by;R)`r(æçP;4VΡX]Õ¸V¿p¿pßËùÓH7YíhªÌ²YòdLgKL7,#§/Êé±3³)y2?ÀéUÓ zI»×CqÓºf/>ùY2e®d¤½%ONÏûϪÔTf¨,&áfÈã®ãÆ|BB
sÔlæÌ\NgÅ[²¢6GÍ~¨ï¥YfF1?îàQÐá§¶rÕ²ieJ7-IÍv¼ÍÅ<ðiê£åíO3Ã
ö-|ï±L©©QZg,3g
ų×w§Böy"Ã,CÑ',êü¦«ººäNa[!ðüQÂ
$B¸)ánS»Óx$ügÙãxFÒ¶¿WçÃóã
mUµ¯e]¦]]15îZdf@ö(dU1Ó%&D!/)ºËx:þYÂ3 Õ¡ Ni¹E~UdBX°/$¤9Fgª kz,CÉJ¾OiHö²2<TWï6$¨ÈH`|Éò%ÇEh~éü_£:ÏÝúç&ÌκÕNújgLý¡ÕüMlª'ÛmÄãТ
Ì ï¡:BkG½ÔEÇôo$®£ÔiÞ
x¸ñôyê#µ7ýµWT0à¤ê»s¢R;ëiIftM¼^óÛVüæRFãs?gd)»jqGM@eÙñçÒH¢¿ú¾´ú\«¾íotÓé}.7"Âëv><ø¸; ðYAëBíýkn¡á*:7иm6¯¡e¡¦Ûh¸I
§µÍ´#¢GÀ?÷°{IÌt+ù0I¦!ÈߣM7J¬Z¼«¤%Ò¯mt¢.é©:¤b5驺¤IHÒÆëUOVP6(§k)ª)ÏÖ¡lâÓ( üiÒ@Ð\Cx`0YÅZ}°Óm>ØåvD}ÐáÝ>èôAîñÁ|@9¶h§õð³¤æ7(Q£BÏSJC5Í8µÅ¨Ã@ð91YjqÔáÎA£ÝyXòÌìòM Ìä»' òÛÀà+dpÁÞ
ì]Xþ轫Ø?D¿U:²O]8MîÛöá
ý³ æoÛþ
(âàß6±z~ºBë[Ø·éüNÛÕ -MÙíHáuQ ßWf¶$WÙéÏiQó²R)eå,x(»xVÆÖoÇ+ëæá©æú1ùàtâÓ$è*
¡«é
þÍeþFnàØÂ.q
Öãÿa_#þßá·gÙFû_pÃ+ØrYÞ&t¶úCµèw=»úWjÑÿNè¹-ЮEÿ'¡ÓçB]ôG\¯Bÿ7ð|)gûèÔ²Þç$N~»àyV>hÄR~áÿPK
뢙
>ÐÖúðáýYÚ¡8.t²he´&Fj`ßhÃeÉHÙ.fÝÝ衵½èk'É[ÙZ[«!þõ¾ó¾WÐO+S3Zdz.úé¤sF²£5hûH,"3ßGrV;¾~G½ §c6Ki©¹¶íÃÕRÚ!&RZHDºïiT2J,©`Ç=NRe ÔAÕuP}½TÝÕ7
Á
ïþPKøLúm
>çi·V1Û
2*î`VnwUÂ\bþ0oR±v=Ô], DG-ÇòÇBÞeð3Z2cÎVk¦·h¬Ùä´eܬa/%ï5fØ/XeÁLÖ-&-'ëzådÉ6Ö§ì}w}=y{¼c:¥ô@,ëo.¥®'2/GÉò¦åä3n±ä:¦ãôÖ ¯ûÂÀx$Ðsµ@¤dX/0T46ýä´g
V¶<rbPB òí
l(ɯáÒoÇÊëøfzÔ Ù.µZs®äÊO
tw<<IiKÖµ]oÞ\·Í¬o¹N )£RÇ¥)#gægÎ36çɪKJ2'oð¼gäªÍ
s7äÐæM]p+^Ö²d;VoHú×p/ôÿªkH WÃ2î)øHÃ
V|¬á|ʤë!õÇ
OÃg¸ÏB4KÁç¬)ÈjÈA6çñ_`]C
ÜÎã
6¸JX¸x¬ÇÖ²M˽9Ñ+HûfQ ;s,W) Ä
ñ¼éÏÕZ¦+ÑÛ¸iº·#C[å»%ãaÅæså£;9Õi;ìp¯Ñ®¾PY2®»qÓÉM¦-p^÷£èÅsâhG^N4Ij-¥çÍrÐ6?ôBñ|˶|Ëäë£Ñ=Ã)Ûì^\æ8:
¾mI4áîÑÙJ3@«*à".ñã2^«S[ÊbÏд²ÐOGìÛÙÇð:®ðr«öâ(h&ï¾þmû"²
èìÀ'x>¸_#ö[äÄSáþß¡¦";hNEõè.¦õhhZJyS+¡ÐàNsµDìm´¦bS?ÅK>¹m\íUI¼_êÓãátì 3¥èÊ.æu%ðV5¤zWÄæÞÍÕS3Üè;p#}ëlU®öÓ©¢ÇuU:>ÀrmÜ»INC'ï±8áqx1"µ@Äø+âô5Qú8=F¾G?v©ý7%ñü^Y꣨Ú6Qþ'ù}biuaJ~`´aÖñ¾ÃxùaoRû
óxU*ò{à:©8sXÄ»ô1¦"c.^UõTF ~ëèPKYJP
¥/m
ª7ÌÎ"ÆOùÌj¥Zù&ôÁ5hiìp}åÐ×µrí3žI°zm·Ãeâe£úÐô¯üPK$ºËÔ
híØ±ÒqH
1
xÒN éÐ"+¶"y$¥áÔK/=rî±3L¯ô
«ýy¬[¡&Ëʵ¬÷´}ÒÆ>mc·±¯ÛØ6PÑPK¶×%¬
G¦Ö1T»C.k¦í/©ISárÚsµrÑÔ½ÉÊ:t]亯ÙOÞ³C×18T/ÒL9Û v§ 3ÓËqùEAõÓÂ4¤ÙiV3¸A 奢f8;×0«:$]òoÄÅB-@6½Uîú&1¶±NKNÅÕù¬)XÒw,FEm
.àM±×åÃÕ× LÁC)ø"ëu|®à!F0Ã
¾Â£6hØT ã<-éí»S>b[K()°á0áoû»+dÓ^möÐ4|Ê4½Yó%JdP4]Õª®¢$>g^£ijO-L~µîçgûmÌrNgÜ_à~ÐDTCÜéVþ]Î{ÉkE]ä^@*hôò¯ø¦eú&§ÐEÙ]Íö¬^ËK5eZé^½äMàâ×ÈbSs<-õ# ã-Ô_Êp¿ñ¡Î=¡ïÈNx¼Ñ"7E!FǪªâ\ÃÕvj51,ø¨4ìèäùáÛ@¤Á%zöÏCü"`âÖ¼H³L¬f÷ÀÒ·HFÅS(¡ÞF? \Æ;Õàqò¶ø´í¡ýYK|gC|W0@£«ñȯÆtö¤µsÙ]*cÑ=Ä~B´Ä! 8¦èßöÕ¢ÅÁJþx¾
kÄjÅè <¤
©ýº<Òt¼[Þǹ¡t,M'ýHì§-_¡ F
M¹Dí&©Cñ-ÞÅs¼?p/qS¤hh9lU½¡3ã F[ ]%vÂI(רÙ)ü÷HP®ßq´(¡ýBø×¨ßQq¢Vþ7IKPÞ^Ê8IÊp+¨þPKá²îy
¨öèá)ôÏ-|eW-TqÍÂX±pËÿ»u¶ªóÈI:Ô î¦m.ÝÀùJÉסÆ÷º}ÍØEêr7z-±H¿Ö°VSí\x«CÕ£èárè¯pNÍ9M¹ªÑv+
y(©ÿ¾ µz°agìbýÐáSÔÝÚ*OÒóoUÿ®Ó0FÕ×c7L¶·WÎdZñðÄX~ìvöNÌpë¨?¸ëÍvÓïùÔiéNféú
©Ñ"ù.YëÐ襩é°?RÄ(IVN'Üi¥.ãHó8IÊ¢´ã¤
¤Z'!/Ím·û2{^ÛÁ@éOd®ÐHds¿Â¢57¢?®=¹Èýûoè_kÚôL6ØQÖRåÐ6+ûg{ l0³"C9´ÍÔÝE¾¬ô,è]ec® 6ÛÅà.¬²Q0TÔH£ù¹B¢Ù4Úgâf*#K·3é~ÃÁ9ÄyBïáÞÇ&N#!ï#ØøE<&¾~¤×û'8øxEüN³b²
AÅÇ>Ï)ßIbËÄo=&ñrOHª0KÜßKuféçðU;U»38K?
H3¨bJ{J>´<å.¦·)ýPKØßÈ|
É\©sâæ5BËpùN a7eóÑ(OtÓëÎ:©¨ÒkF¯Êpm79µ¬ÇÝ5ºþSµ®HaDq¨/4lº°\¶ZÃ6IV±:eJÏV %zÜbÝØ{s<êÆÕDÒM;´i*Éÿ·à,ýëü1]±,²RSÙ(,ðú;ÛС)74ÌKvêC¥Û°CFÓpýï&Ö8ö5Dñù.qÖ*\
«xIERC
4^Òð2ÖT\Óp74¼"Wñ°×ð:Oe'µÞÀM
oÊå-¹ÂÛÞÁ»ÞÃMF.¤Ô;rïkø
<('ÏÜáy1p}(B~2ÛnC|ç«áð
µx«Q@Zù¬DÚ³ÆÔïwQ6åßn³¯/²âqåSKÖ¾«(¸R.ÿ_
G%Ëø2üµí{÷ÝÁþ-D6Ù{6má!n¿¥^ògWv{ËYãïD{XQ.+øTÄÃj ¾
ÆMP¼CøxV7P¨dûäŦ;Y/pg7=xMâiMÙ¢YÃ2.àæùe_À¸è3u1SY)¢,SDY¦$?å>É0E4JTá£ÓDÅTá
b<i4ù^y@Ówþ1n:®gýbÎýPK@+HM
7ú¦r¸eà6CrNz2ºÏÈd_2h¿"ºÊÒË5¼àk.izʾÃÝ<꼫ԢnÃã¡]wùºý¾á
QùëëöÒ¯`µ4ËrÁ#±Zb¸)¿ãù';Ü^Õ~Zð7ê¾'¼h6{Èß3ÆQX¡¿A¯séE¹foFöBÀë5é³-¬ÊÐ{,äø®¬uW8ô=î}ß²ã#NE*½B¬t$ë>`
Ü«º@1èyWüMzà´7ûÀE©:p±½9ÛBºfþ¿;Îã;î"o`ÖÂî¸oáÒ0¿¹
y<²PPK[x¢
ÜcÈëà¥c?Rë¡´}'wEÏêüCCÄúaúª*ûþûy¯RÂe®h/$5´"i/mäHæÄ#¯ÕÒcò©O¹Ê¿IWFRÐ[ÒKÙ_ÜÝó7/Ý)stnJÙã"ì+YjqõÄS;)
¬Ö#S¢GͬU øæßÂZÎüàÏûSùFhÉ^s<1H¡N¨'¦FÖÓt²ig´ëã[`_IhCÉXÙ
^Z¦Îà,ííèù]ðy+[êÚ^o!ñå¾ç
U9HoØ(½Cc(â*A
YôÙVõ½%N¨]~tp,.S<
S¬+Dý%ÚIÒ(ª!¯ó$ĺeÊ2JNñ;b«âq,¾éÕ?PK¼tÆ#*
d2Ùò¸)_àÔа®t41jXË´0AL´;ôèþÚêÐNtCÛmHEo~w*¤Y|iàfÌÿI¾ò}ÇÀøÐÀWXÎbÅ@w²¸k {<ê£Õøt¼¯Äª-$8¬áqGàÒÚ´"i+Jã¤ê0fÛn¼!#ÉNºûùsÅÒxú¯¾U Ø^öëzB4OÜüÖGOòbqlÑj½ùÈCaoÃz,=KWcFeZ~äuíWq
ÅÑÆi¶Øã ]â@º'¸ÃkÜqe»C²Å&Å£áVïUa«ãüøõñïxá?ì·.øû:ÍÛ\µ$g)ÎÙes\50ÁÐËûåÊïø« ¥¢-è¥Ñ/Gs\ÍõÇ»@2§VPÿÞ?ļÄ
[Î=ÏmáUªô@®8ÿLÀ¨E¾oªP®wv·düÔÝ
h¹Ð<7xæÆJßFÚVÀbÓvzQ8{»íìtÂ$MÒh{ÛyÜ;>¯Òº¿Ù`âËųDiÂñbé¦r³!°|6øG¼çÌòï¹*L×\o§GÐê9î~ê<ݽ¶ònÒÀä
LÇÇ?å
lM×ZÞÅ
}{}¬i²C&iWä>EÎË\¹(óÈ0~/PõN`?ÔOÀêßx¯ðß _¡¡Ob
Ú/±N
ÚÇp MÚ8\BËHí4\BË~¡·'pb¼Y(4Ù2yÕiäõ99µPÆ1=+S:Æ%\¦ÌpWå4ù³d1÷yrl8àµ4)Q
Ôë5$ª¡DáÊÀ7báT®ÆÂX8
WcáXXÂk±p5ÎDa=¾g£ðzLÿ¢ëÖ_PKöf0N
- VMÛõr!CÞ\òó£5³º`êý[2%Qh¹WÍ%÷ìX_R¦¼ÍéÛË}^ÌñeÛºû%Ï\[kVɶæ¾ïÈÓ´.~ºô»¼`½%rÉs¼ZÕ
k2ÀiÒ± 2b2q§¦IL¬Í@ÉiVX¿ì5j%kÄ¥Û·&r2{°×Àn¤
Ä!
Ì`ÖÀ\eN{ÆóA³fà}\3phøÐÀG¸aà&nhøØ9*èùÑP2PFVe`^Â+rØ6n¸¬Àÿ¡lîçä¶hù¦ãfç/ÖÏ®OUÍ;
+hëÉå_jÊfg¦+Z/*
]#kÖJ§©¨v%KfÙF¡mG½ª£Ã/kÑónsË#åà®kSÝeÉ;´YY3/l@zÍM[õ@äß¿åf«
̽T³¾íؾmñvhç35Ó;Òêf:³Yêc]Ï¿uã± ?
)Z(²\µËþBX¢]Y YËñ'¯£\3V3ßò°õ÷zO_î»x·ò.þÊ}ÃÌ÷r|_y¾ßj÷2ÄNZ°c<0nÇkÐûx¯sÓkhùv¶=Uð&A°kClË_Т©ÑíYF¬ç/ <à[ìýñÏñwïO?v\¡1QPW,$V t¦Op8 UÐøK«ßcßû|¶«Î2Ú
ñl:ÖÓqe¯¤Oðe:A~®¼§eJ¦5û
ó,»Lb[UG"¢<±&ÏÑ(Oè*ivc«<QXÀâÈ´"©
ö&¾fìyævwgËáFÛ3úO=Ìür¦3,³Ì?´=㱬ÂèÃU9¤59E_°Ê<8³ W5òXë9¹ü¥£óÚ2v~Aw¬wOÇANýPKýPö
RDUü¤.˨zß¿âĵä7÷ÝwÏ;wî=ïÍËî(à¦Ìani2f8àÎ*øçdWð).ðá¢Ü]âs2.)1Ï0xsE÷W*³UÃ[Ól×ðü¦¶îè«ÚÃ
·4ouU[êËmDA³]; }âìm¡ìCªj»Ö͵û¿¬ßwÈ3Zõݹû6·Bа ÷ôÀâ\ÈTè_ëßhÍMÛk×ËÞÚºçZnPÊîYë,0a|A\×m7`(D¾hW}}½aÍÒ@Rz%Vg;
å·áÖ¢Ík<~@ß
BÅ©x£*ãbÞSV°ÏpYÆ+(Ëø\ÅX¤vîORÆU×pYE
c¸®b U7P¦²ÿ?e1Lík÷èv=qÃu+ø²·$D.å·â«zÞÃ×\´,avê´ÚlòMËý
̨DZ©Ô¬fXùÒÛ¾ïJ`;v`[tÆ}Ù×ݦ³a´y)§L¿~*Ùý:r°|I´éÛtÎɼfÙõ¹åL
~\ܪéëíweXx8zøÏ»ýo~b`A#åâCº
FèBcxë,l%i¦ÑÑSÞ{LFGhBç0Ò¨FáCHÓV¸Ð¿"öKv´+àÞ Sac!Ó ¼Îå·Ïçÿ°
dþ9'çÿoRQH/KñÈEñwãñüÑ_m$¦Å´$ì@ÝÁ;E1-¾ÀlZR÷Âä\Z"Ìa?Ãù/®ªôrÅrEñ}°6uü
²$*mìé(èuí$Na
Á$]StÂ3¨!;Æ=äð-òø¾4ßã,~ ÏÎÎáÎãw\Ä.ø%¼Â^ãþÆBØB%¼i5['
oP²ø¸O!N~Ø'©u3dO%RI|)ß1gBß=ZË%QFѪL9µ±[ì£v·}ÕÁ¾î`ô~mmNPFü|á»ÛHýØãPE]¥hÌ
ÍÿPKÊBö×
.bÒâÖqJâ¤Ä\ÊZ^ÛjeI#)yÞ?þ¥À¸3tàAx³kÇvnávÎå;ßsvÿþ÷Ï¿À"èÈâC
é¸ÓøDG7tàÓÜLã3¹®á«ÈkøR§ÿ5éq+ÛøJ.wpWCá|ëcûÞZ;à^MÔ¦ùcÞ¶¢}ÇkX
o9äF»®yßuyIßÔ
ÇsâÍCQwò~+ð=áŹ¹dÞ¯ /:(íµª",óªKlÑ·¹»ÃCGþ÷ɸéDEÛoYgûad.¯[ö¼(b¿^·îöÅr(Äv!'ÃHb¸xFæ)e¶\NƵ¶-ØQgKÛ¡à1!1\?ý,Sߨ8dîxq·yßCßeðºxßÛ!åªMaÇÄÆCºø%Nä-Y{<næ
JE5&NÈÉ Û®¬ú{^
<y<õÔQÉÆñ!cµ(#õý%t¡¿Ot¨¦º
&Uh<ZbhîRNT¼N¾[þ^h[©£^
\À:OT
%¸Ç0&Ç5R´D{©áÔ5|m`[2¾l`tÌí»ÒËÀ4L0)¶
ìÈÜÿc:eºi÷ñ]X¾
¥á;ßã+ÇæªÊ#ǶVåÚÅ j²¹cVÕÔ7Ýó.¨-æÜÐ+¥¼¸GTg)dSDªÐÞ
ÚCbÑu˱µ½Y$qó°F*Q¹IÍî^àÑâÛÊ! $CÕº"Õ\I¼7Ç'ƤMßOøØ$3dj!ßï!®G
Æ®~£ð±ss¼Ab WQIªë´'Àd»h½H?#I`eþ9ØìÎwÈ&;8ó©ß¡õUéUæ)Òë×:8û §G[>¾3rgh$L0M,ã2.öõnú{PÒ«%Ey¬#Èé+=Z+&yc¨ûUE&I)ì5ºN
öM¼Õø`uÚKSZòì7hO_ ó3É?0:6^ûö#ë`üþS\%§ÌÌSæ§g}ð&ÎQè ˰°N«dVïfï·«x[±-QI(R£ÈHTÒ5U)-^JIïâ=hJZ&)¤2ø¾âôÁPKºÐ
@_
Īåå
)&oìÌWO
æÃU
lZó'åÅ«®¯Z)ßÌÚ®ßu69ÖÈ«ìï)ã¬b¾µ è·i|ÕgØ-=>+Ðy9øø,·7ØeFõY1¬ÏÕÿÉ+%ê¹
Lh$ØU»ZvXH°¥ cÀÚ.Òö¸Ø×5C^Ã×
x!0öß^GvBwy±åí]Õ!¾=«Öº²,2°¬¬FuÚ=`µh<õÁK/nõ\5Ggy±rÑêîT×OÚqÝk3o©Å¶Ë=GfTY²ðaNæ-ÇÎàvtn®:ËJ¯çEÏ?STî66¼O}ËV\L%kü¬6&º)¬%Þ¬äÖWééì¶;_fȼ²kE¶ü[ýèæB>!Ù×½Å8
Áá7TêðviøMè£4ðÞåÆu+:g¸¯ãàðï£ÞkøëGF::E]røõüøö tTÝÅX@è¤ZSêSk*n`@%;ÈßM¢
që_ jÕ¨
Õ¨ýD½Aÿ¢õÖ? ÞF´ú=ý5aø7'§Ð#£4N"ÁHèF$xçMoª ÇC;î²æ÷X¼q9_!+È~\(mZÒîл^i1úIÆgÜvxïÓ"¼_LR´ðßÀývgðÜWNÑldb-#rhjêpô×&´H(¢ÉÄC2ñ×?÷ ¡í°qC»TS5<Ω3±I4b)=dêð
Lb¨H}sgx¸qI/Lâà£×n5!
D¤Ü{||îñ½üüöÀ>öø¸oÃ
jï
|
|
From: Jeff B. <br...@us...> - 2002-10-18 00:01:10
|
Update of /cvsroot/jarspy/JarSpy In directory usw-pr-cvs1:/tmp/cvs-serv6952 Modified Files: build.number Log Message: updated build number Index: build.number =================================================================== RCS file: /cvsroot/jarspy/JarSpy/build.number,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** build.number 17 Oct 2002 23:48:16 -0000 1.8 --- build.number 18 Oct 2002 00:01:07 -0000 1.9 *************** *** 1,3 **** #Build Number for ANT. Do not edit! ! #Thu Oct 17 18:50:36 CDT 2002 ! build.number=12 --- 1,3 ---- #Build Number for ANT. Do not edit! ! #Thu Oct 17 19:03:28 CDT 2002 ! build.number=13 |
|
From: Jeff B. <br...@us...> - 2002-10-18 00:00:32
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/gui
In directory usw-pr-cvs1:/tmp/cvs-serv6765/src/com/ociweb/gui
Modified Files:
ChangeLookAndFeelAction.java
Log Message:
fix some kunststoff theme switching issues
Index: ChangeLookAndFeelAction.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/gui/ChangeLookAndFeelAction.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** ChangeLookAndFeelAction.java 17 Oct 2002 23:47:53 -0000 1.4
--- ChangeLookAndFeelAction.java 18 Oct 2002 00:00:29 -0000 1.5
***************
*** 19,22 ****
--- 19,24 ----
package com.ociweb.gui;
+ import com.incors.plaf.kunststoff.KunststoffLookAndFeel;
+ import com.incors.plaf.kunststoff.KunststoffTheme;
import java.awt.Component;
import java.awt.event.ActionEvent;
***************
*** 55,59 ****
// to metal
if (laf instanceof MetalLookAndFeel) {
! ((MetalLookAndFeel) laf).setCurrentTheme(new DefaultMetalTheme());
}
} catch (Exception e) {
--- 57,65 ----
// to metal
if (laf instanceof MetalLookAndFeel) {
! if (laf instanceof KunststoffLookAndFeel) {
! ((KunststoffLookAndFeel) laf).setCurrentTheme(new KunststoffTheme());
! } else {
! ((MetalLookAndFeel) laf).setCurrentTheme(new DefaultMetalTheme());
! }
}
} catch (Exception e) {
|
|
From: Jeff B. <br...@us...> - 2002-10-17 23:48:18
|
Update of /cvsroot/jarspy/JarSpy In directory usw-pr-cvs1:/tmp/cvs-serv3149 Modified Files: build.number Log Message: updated build number Index: build.number =================================================================== RCS file: /cvsroot/jarspy/JarSpy/build.number,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** build.number 17 Oct 2002 23:30:51 -0000 1.7 --- build.number 17 Oct 2002 23:48:16 -0000 1.8 *************** *** 1,3 **** #Build Number for ANT. Do not edit! ! #Thu Oct 17 18:33:11 CDT 2002 ! build.number=11 --- 1,3 ---- #Build Number for ANT. Do not edit! ! #Thu Oct 17 18:50:36 CDT 2002 ! build.number=12 |
|
From: Jeff B. <br...@us...> - 2002-10-17 23:47:56
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/gui
In directory usw-pr-cvs1:/tmp/cvs-serv3017/src/com/ociweb/gui
Modified Files:
ChangeLookAndFeelAction.java
Log Message:
reorder setlaf
Index: ChangeLookAndFeelAction.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/gui/ChangeLookAndFeelAction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ChangeLookAndFeelAction.java 17 Oct 2002 23:29:04 -0000 1.3
--- ChangeLookAndFeelAction.java 17 Oct 2002 23:47:53 -0000 1.4
***************
*** 50,54 ****
if (laf != null) {
try {
- UIManager.setLookAndFeel(laf);
try {
// deal with Kunststoff issue that leaves the static theme
--- 50,53 ----
***************
*** 61,64 ****
--- 60,64 ----
e.printStackTrace();
}
+ UIManager.setLookAndFeel(laf);
if (parentComponent != null) {
SwingUtilities.updateComponentTreeUI(parentComponent);
|
|
From: Jeff B. <br...@us...> - 2002-10-17 23:30:54
|
Update of /cvsroot/jarspy/JarSpy In directory usw-pr-cvs1:/tmp/cvs-serv30978 Modified Files: build.number Log Message: updated build number Index: build.number =================================================================== RCS file: /cvsroot/jarspy/JarSpy/build.number,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** build.number 27 Sep 2002 00:41:14 -0000 1.6 --- build.number 17 Oct 2002 23:30:51 -0000 1.7 *************** *** 1,3 **** #Build Number for ANT. Do not edit! ! #Thu Sep 26 19:39:43 CDT 2002 ! build.number=10 --- 1,3 ---- #Build Number for ANT. Do not edit! ! #Thu Oct 17 18:33:11 CDT 2002 ! build.number=11 |
|
From: Jeff B. <br...@us...> - 2002-10-17 23:29:08
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui
In directory usw-pr-cvs1:/tmp/cvs-serv30556/src/com/ociweb/jarspy/gui
Modified Files:
JarSpyGUI.java
Log Message:
added some Kunststoff support
Index: JarSpyGUI.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/JarSpyGUI.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** JarSpyGUI.java 27 Sep 2002 00:38:38 -0000 1.40
--- JarSpyGUI.java 17 Oct 2002 23:29:05 -0000 1.41
***************
*** 176,202 ****
private void createActions() {
actions.put(ActionNames.OPEN_ARCHIVE_ACTION,
! new OpenArchiveAction(this));
actions.put(ActionNames.EXIT_ACTION,
! new ExitAction(this));
actions.put(ActionNames.EXTRACT_ARCHIVE_ACTION,
! new ExtractArchiveAction(this, jarInspector));
actions.put(ActionNames.VIEW_MANIFEST_ACTION,
! new ViewManifestAction(this, jarInspector));
actions.put(ActionNames.ABOUT_ACTION,
! new AboutAction(this));
actions.put(ActionNames.DECOMPILE_ACTION,
! new DecompileAction(this, classTree, jarInspector));
actions.put(ActionNames.VIEW_JAR_CONTENTS_ACTION,
! new ViewJarContentsAction(this));
actions.put(ActionNames.SHOW_JAR_LIST_VIEW,
! new ChangeJarViewerComponentAction(this,
! ActionNames.SHOW_JAR_LIST_VIEW,
! classList,
! "/com/ociweb/jarspy/gui/images/list_mode.gif"));
actions.put(ActionNames.SHOW_JAR_TREE_VIEW,
! new ChangeJarViewerComponentAction(this,
! ActionNames.SHOW_JAR_TREE_VIEW,
! classTree,
! "/com/ociweb/jarspy/gui/images/tree_mode.gif"));
}
--- 176,202 ----
private void createActions() {
actions.put(ActionNames.OPEN_ARCHIVE_ACTION,
! new OpenArchiveAction(this));
actions.put(ActionNames.EXIT_ACTION,
! new ExitAction(this));
actions.put(ActionNames.EXTRACT_ARCHIVE_ACTION,
! new ExtractArchiveAction(this, jarInspector));
actions.put(ActionNames.VIEW_MANIFEST_ACTION,
! new ViewManifestAction(this, jarInspector));
actions.put(ActionNames.ABOUT_ACTION,
! new AboutAction(this));
actions.put(ActionNames.DECOMPILE_ACTION,
! new DecompileAction(this, classTree, jarInspector));
actions.put(ActionNames.VIEW_JAR_CONTENTS_ACTION,
! new ViewJarContentsAction(this));
actions.put(ActionNames.SHOW_JAR_LIST_VIEW,
! new ChangeJarViewerComponentAction(this,
! ActionNames.SHOW_JAR_LIST_VIEW,
! classList,
! "/com/ociweb/jarspy/gui/images/list_mode.gif"));
actions.put(ActionNames.SHOW_JAR_TREE_VIEW,
! new ChangeJarViewerComponentAction(this,
! ActionNames.SHOW_JAR_TREE_VIEW,
! classTree,
! "/com/ociweb/jarspy/gui/images/tree_mode.gif"));
}
***************
*** 440,449 ****
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null,
! "JarSpy requires Java Runtime 1.3 or greater.",
! "Incompatible VM",
! JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
new JarSpyGUI();
}
--- 440,456 ----
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null,
! "JarSpy requires Java Runtime 1.3 or greater.",
! "Incompatible VM",
! JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
+ // try to setup the Kunststoff plaf
+ try {
+ UIManager.installLookAndFeel("Kunststoff",
+ "com.incors.plaf.kunststoff.KunststoffLookAndFeel");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
new JarSpyGUI();
}
|
|
From: Jeff B. <br...@us...> - 2002-10-17 23:29:08
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/gui
In directory usw-pr-cvs1:/tmp/cvs-serv30556/src/com/ociweb/gui
Modified Files:
ChangeLookAndFeelAction.java
Log Message:
added some Kunststoff support
Index: ChangeLookAndFeelAction.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/gui/ChangeLookAndFeelAction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ChangeLookAndFeelAction.java 19 Jun 2002 01:19:10 -0000 1.2
--- ChangeLookAndFeelAction.java 17 Oct 2002 23:29:04 -0000 1.3
***************
*** 19,25 ****
package com.ociweb.gui;
! import javax.swing.*;
! import java.awt.*;
import java.awt.event.ActionEvent;
public class ChangeLookAndFeelAction extends AbstractAction {
--- 19,31 ----
package com.ociweb.gui;
! import java.awt.Component;
import java.awt.event.ActionEvent;
+ import javax.swing.AbstractAction;
+ import javax.swing.LookAndFeel;
+ import javax.swing.SwingUtilities;
+ import javax.swing.UIManager;
+ import javax.swing.UnsupportedLookAndFeelException;
+ import javax.swing.plaf.metal.DefaultMetalTheme;
+ import javax.swing.plaf.metal.MetalLookAndFeel;
public class ChangeLookAndFeelAction extends AbstractAction {
***************
*** 45,48 ****
--- 51,64 ----
try {
UIManager.setLookAndFeel(laf);
+ try {
+ // deal with Kunststoff issue that leaves the static theme
+ // member setup the Kunststoff way even after switching back
+ // to metal
+ if (laf instanceof MetalLookAndFeel) {
+ ((MetalLookAndFeel) laf).setCurrentTheme(new DefaultMetalTheme());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
if (parentComponent != null) {
SwingUtilities.updateComponentTreeUI(parentComponent);
|
|
From: Jeff B. <br...@us...> - 2002-10-11 21:15:02
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/tree
In directory usw-pr-cvs1:/tmp/cvs-serv22635
Modified Files:
JarSpyTreeCellRenderer.java
Log Message:
Index: JarSpyTreeCellRenderer.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/tree/JarSpyTreeCellRenderer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** JarSpyTreeCellRenderer.java 20 Jul 2002 18:12:23 -0000 1.1
--- JarSpyTreeCellRenderer.java 11 Oct 2002 21:14:59 -0000 1.2
***************
*** 30,34 ****
* Renders cells in a JarSpyClassTree
*
! * @verson $Id$
*/
class JarSpyTreeCellRenderer implements TreeCellRenderer {
--- 30,34 ----
* Renders cells in a JarSpyClassTree
*
! * @version $Id$
*/
class JarSpyTreeCellRenderer implements TreeCellRenderer {
|
|
From: Jeff B. <br...@us...> - 2002-10-04 02:34:45
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails
In directory usw-pr-cvs1:/tmp/cvs-serv21380/com/ociweb/jarspy/gui/classdetails
Modified Files:
GeneralTab.java
Log Message:
add superclass to general tab
Index: GeneralTab.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails/GeneralTab.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** GeneralTab.java 25 Sep 2002 01:05:45 -0000 1.3
--- GeneralTab.java 4 Oct 2002 02:34:42 -0000 1.4
***************
*** 23,26 ****
--- 23,30 ----
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
+ import java.util.SortedSet;
+ import javax.swing.DefaultComboBoxModel;
+ import javax.swing.JComboBox;
+ import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
***************
*** 39,42 ****
--- 43,47 ----
private JLabel isFinal = new JLabel("");
private JLabel isAbstract = new JLabel("");
+ private JLabel superClass = new JLabel("");
public GeneralTab() {
***************
*** 52,57 ****
gbc.insets.right = 5;
! JLabel[][] labelPairs = {
{new JLabel("Name:"), className},
{new JLabel("Type:"), type},
{new JLabel("Major Version Number:"), classMajorVersion},
--- 57,63 ----
gbc.insets.right = 5;
! JComponent[][] labelPairs = {
{new JLabel("Name:"), className},
+ {new JLabel("Super Class:"), superClass},
{new JLabel("Type:"), type},
{new JLabel("Major Version Number:"), classMajorVersion},
***************
*** 62,66 ****
for (int i = 0; i < labelPairs.length; i++) {
! JLabel[] labelPair = labelPairs[i];
gbc.gridy++;
gbc.anchor = gbc.NORTHEAST;
--- 68,72 ----
for (int i = 0; i < labelPairs.length; i++) {
! JComponent[] labelPair = labelPairs[i];
gbc.gridy++;
gbc.anchor = gbc.NORTHEAST;
***************
*** 85,92 ****
classMajorVersion.setText(String.valueOf(classInfo.getMajorVersion()));
classMinorVersion.setText(String.valueOf(classInfo.getMinorVersion()));
- type.setText(classInfo.isAnInterface() ? "Interface" : "Class");
isFinal.setText(classInfo.isFinal() ? "Yes" : "No");
isAbstract.setText(classInfo.isAbstract() ? "Yes" : "No");
}
}
--- 91,105 ----
classMajorVersion.setText(String.valueOf(classInfo.getMajorVersion()));
classMinorVersion.setText(String.valueOf(classInfo.getMinorVersion()));
isFinal.setText(classInfo.isFinal() ? "Yes" : "No");
isAbstract.setText(classInfo.isAbstract() ? "Yes" : "No");
+ boolean isAnInterface = classInfo.isAnInterface();
+ if (isAnInterface) {
+ type.setText("Interface");
+ superClass.setText("N/A");
+ } else {
+ type.setText("Class");
+ superClass.setText(classInfo.getSuperClassName());
+ }
}
}
|
|
From: Jeff B. <br...@us...> - 2002-10-04 02:34:45
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo
In directory usw-pr-cvs1:/tmp/cvs-serv21380/com/ociweb/classinfo
Modified Files:
ClassReader.java
Log Message:
add superclass to general tab
Index: ClassReader.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/ClassReader.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** ClassReader.java 4 Oct 2002 01:57:16 -0000 1.12
--- ClassReader.java 4 Oct 2002 02:34:42 -0000 1.13
***************
*** 127,131 ****
for (int i = 1; i <= interfaces_count; i++) {
! /*short s = */di.readShort();
}
--- 127,131 ----
for (int i = 1; i <= interfaces_count; i++) {
! di.readShort();
}
***************
*** 196,199 ****
--- 196,203 ----
}
}
+ }
+
+ public String getSuperClassName() {
+ return superClassName_;
}
|
|
From: Jeff B. <br...@us...> - 2002-10-04 01:57:19
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails
In directory usw-pr-cvs1:/tmp/cvs-serv11893/com/ociweb/jarspy/gui/classdetails
Modified Files:
FieldsTab.java MethodsTab.java
Log Message:
implement several Comparable methods to support sorting methods and fields
Index: FieldsTab.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails/FieldsTab.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** FieldsTab.java 18 Sep 2002 23:14:56 -0000 1.4
--- FieldsTab.java 4 Oct 2002 01:57:16 -0000 1.5
***************
*** 19,24 ****
--- 19,27 ----
package com.ociweb.jarspy.gui.classdetails;
+ import com.ociweb.classinfo.CRField;
import com.ociweb.jarspy.ClassInfo;
import java.awt.BorderLayout;
+ import java.util.Iterator;
+ import java.util.Set;
import javax.swing.JTextArea;
***************
*** 41,50 ****
public void setClassInfo(ClassInfo classInfo) {
fieldsTextArea.setText("");
! Object[] fields = classInfo.getFields();
! if (fields.length == 0) {
fieldsTextArea.setText("<none>");
} else {
! for (int i = 0; i < fields.length; i++) {
! fieldsTextArea.append(fields[i].toString() + '\n');
}
}
--- 44,56 ----
public void setClassInfo(ClassInfo classInfo) {
fieldsTextArea.setText("");
! Set fields = classInfo.getFields();
! if (fields.size() == 0) {
fieldsTextArea.setText("<none>");
} else {
! Iterator i = fields.iterator();
! while (i.hasNext()) {
! Object field = i.next();
! fieldsTextArea.append(field.toString() + '\n');
!
}
}
Index: MethodsTab.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails/MethodsTab.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** MethodsTab.java 18 Sep 2002 23:14:56 -0000 1.4
--- MethodsTab.java 4 Oct 2002 01:57:16 -0000 1.5
***************
*** 21,24 ****
--- 21,26 ----
import com.ociweb.jarspy.ClassInfo;
import java.awt.BorderLayout;
+ import java.util.SortedSet;
+ import java.util.Iterator;
import javax.swing.JTextArea;
***************
*** 41,48 ****
public void setClassInfo(ClassInfo classInfo) {
methodsTextArea.setText("");
! Object[] methods = classInfo.getMethods();
!
! for (int i = 0; i < methods.length; i++) {
! methodsTextArea.append(methods[i].toString() + '\n');
}
}
--- 43,51 ----
public void setClassInfo(ClassInfo classInfo) {
methodsTextArea.setText("");
! SortedSet methods = classInfo.getMethods();
! Iterator it = methods.iterator();
! while (it.hasNext()) {
! Object o = it.next();
! methodsTextArea.append(o.toString() + '\n');
}
}
|
|
From: Jeff B. <br...@us...> - 2002-10-04 01:57:19
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo
In directory usw-pr-cvs1:/tmp/cvs-serv11893/com/ociweb/classinfo
Modified Files:
AccessFlags.java CRField.java CRMethod.java ClassReader.java
SignatureDescriptor.java
Log Message:
implement several Comparable methods to support sorting methods and fields
Index: AccessFlags.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/AccessFlags.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** AccessFlags.java 29 Sep 2002 02:21:25 -0000 1.1
--- AccessFlags.java 4 Oct 2002 01:57:16 -0000 1.2
***************
*** 19,29 ****
package com.ociweb.classinfo;
- import java.util.Map;
import java.util.HashMap;
/**
* @version $Id$
*/
! public class AccessFlags {
public static final short ACC_PUBLIC = 0x0001;
--- 19,29 ----
package com.ociweb.classinfo;
import java.util.HashMap;
+ import java.util.Map;
/**
* @version $Id$
*/
! public class AccessFlags implements Comparable {
public static final short ACC_PUBLIC = 0x0001;
***************
*** 74,78 ****
Short key = new Short(accessFlags);
AccessFlags af = (AccessFlags) flagsToObject.get(key);
! if(af == null) {
af = new AccessFlags(accessFlags);
flagsToObject.put(key, af);
--- 74,78 ----
Short key = new Short(accessFlags);
AccessFlags af = (AccessFlags) flagsToObject.get(key);
! if (af == null) {
af = new AccessFlags(accessFlags);
flagsToObject.put(key, af);
***************
*** 91,94 ****
--- 91,101 ----
public String toString() {
return getAccessFlagsString();
+ }
+
+ public int compareTo(Object o) {
+ AccessFlags otherAccessFlags = (AccessFlags) o;
+ int returnValue = accessFlagsString.compareTo(otherAccessFlags.accessFlagsString);
+
+ return returnValue;
}
}
Index: CRField.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/CRField.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CRField.java 29 Sep 2002 02:21:25 -0000 1.4
--- CRField.java 4 Oct 2002 01:57:16 -0000 1.5
***************
*** 24,31 ****
* @version $Id$
*/
! public class CRField {
private AccessFlags accessFlags;
! private String methodName;
private SignatureDescriptor descriptor;
--- 24,31 ----
* @version $Id$
*/
! public class CRField implements Comparable {
private AccessFlags accessFlags;
! private String fieldName;
private SignatureDescriptor descriptor;
***************
*** 33,37 ****
short accessFlags,
String descriptor) {
! this.methodName = methodName;
this.accessFlags = AccessFlags.getAccessFlags(accessFlags);
this.descriptor = new SignatureDescriptor(descriptor);
--- 33,37 ----
short accessFlags,
String descriptor) {
! this.fieldName = methodName;
this.accessFlags = AccessFlags.getAccessFlags(accessFlags);
this.descriptor = new SignatureDescriptor(descriptor);
***************
*** 43,48 ****
buffer.append(descriptor);
buffer.append(" ");
! buffer.append(methodName);
return buffer.toString();
}
}
--- 43,67 ----
buffer.append(descriptor);
buffer.append(" ");
! buffer.append(fieldName);
return buffer.toString();
+ }
+
+ public int compareTo(Object o) {
+ CRField otherField = (CRField) o;
+ int returnValue = accessFlags.compareTo(otherField.accessFlags);
+ if (returnValue == 0) {
+ returnValue = descriptor.compareTo(otherField.descriptor);
+
+ if (returnValue == 0) {
+ returnValue = fieldName.compareTo(otherField.fieldName);
+
+ if (returnValue == 0) {
+ // this should never happen for two CRFields in the same class
+ returnValue = toString().compareTo(otherField.toString());
+ }
+ }
+ }
+
+ return returnValue;
}
}
Index: CRMethod.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/CRMethod.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CRMethod.java 29 Sep 2002 02:21:25 -0000 1.5
--- CRMethod.java 4 Oct 2002 01:57:16 -0000 1.6
***************
*** 24,35 ****
* @version $Id$
*/
! public class CRMethod {
private String descriptor;
CRMethod(String methodName,
short accessFlags,
String descriptor) {
! AccessFlags af = AccessFlags.getAccessFlags(accessFlags);
int indexOfLastParen = descriptor.lastIndexOf(')');
--- 24,41 ----
* @version $Id$
*/
! public class CRMethod implements Comparable {
private String descriptor;
+ private AccessFlags accessFlags;
+ private SignatureDescriptor returnTypeDescriptor;
+ private SignatureDescriptor argumentsDescriptor;
+ private String methodName;
+
CRMethod(String methodName,
short accessFlags,
String descriptor) {
! this.accessFlags = AccessFlags.getAccessFlags(accessFlags);
! this.methodName = methodName;
int indexOfLastParen = descriptor.lastIndexOf(')');
***************
*** 37,45 ****
String arguments = descriptor.substring(1, indexOfLastParen);
! SignatureDescriptor returnTypeDescriptor = new SignatureDescriptor(returnType);
! SignatureDescriptor argumentsDescriptor = new SignatureDescriptor(arguments);
StringBuffer buffer = new StringBuffer();
! buffer.append(af);
buffer.append(returnTypeDescriptor);
buffer.append(" ");
--- 43,51 ----
String arguments = descriptor.substring(1, indexOfLastParen);
! returnTypeDescriptor = new SignatureDescriptor(returnType);
! argumentsDescriptor = new SignatureDescriptor(arguments);
StringBuffer buffer = new StringBuffer();
! buffer.append(this.accessFlags);
buffer.append(returnTypeDescriptor);
buffer.append(" ");
***************
*** 54,57 ****
--- 60,85 ----
public String toString() {
return descriptor;
+ }
+
+ public int compareTo(Object o) {
+ CRMethod otherMethod = (CRMethod) o;
+ int returnValue = accessFlags.compareTo(otherMethod.accessFlags);
+ if (returnValue == 0) {
+ returnValue = returnTypeDescriptor.compareTo(otherMethod.returnTypeDescriptor);
+ if (returnValue == 0) {
+ returnValue = methodName.compareTo(otherMethod.methodName);
+
+ if (returnValue == 0) {
+ returnValue = argumentsDescriptor.compareTo(otherMethod.argumentsDescriptor);
+
+ if (returnValue == 0) {
+ // this should never happen for two CRMethods in the same class
+ returnValue = descriptor.compareTo(descriptor);
+ }
+ }
+ }
+ }
+
+ return returnValue;
}
}
Index: ClassReader.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/ClassReader.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** ClassReader.java 3 Oct 2002 23:33:08 -0000 1.11
--- ClassReader.java 4 Oct 2002 01:57:16 -0000 1.12
***************
*** 26,31 ****
--- 26,34 ----
import java.io.DataInputStream;
import java.io.InputStream;
+ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+ import java.util.SortedSet;
+ import java.util.TreeSet;
/**
***************
*** 42,47 ****
public class ClassReader {
! private CRField[] fields_;
! private CRMethod[] methods_;
private String className_;
--- 45,50 ----
public class ClassReader {
! private SortedSet fields_ = new TreeSet();
! private SortedSet methods_ = new TreeSet();
private String className_;
***************
*** 129,134 ****
short fields_count = di.readShort();
- fields_ = new CRField[fields_count];
-
for (int i = 0; i < fields_count; i++) {
short local_access_flags = di.readShort();
--- 132,135 ----
***************
*** 138,144 ****
CP_Utf8Entry nameEntry = (CP_Utf8Entry) constantPool.getEntryAt(name_index);
CP_Utf8Entry descriptorEntry = (CP_Utf8Entry) constantPool.getEntryAt(descriptor_index);
! fields_[i] = new CRField(nameEntry.getValue(),
! local_access_flags,
! descriptorEntry.getValue());
--- 139,145 ----
CP_Utf8Entry nameEntry = (CP_Utf8Entry) constantPool.getEntryAt(name_index);
CP_Utf8Entry descriptorEntry = (CP_Utf8Entry) constantPool.getEntryAt(descriptor_index);
! fields_.add(new CRField(nameEntry.getValue(),
! local_access_flags,
! descriptorEntry.getValue()));
***************
*** 150,155 ****
do {
bytesRead += di.read(fieldAttribute,
! bytesRead,
! attribute_length - bytesRead);
} while (bytesRead < attribute_length);
--- 151,156 ----
do {
bytesRead += di.read(fieldAttribute,
! bytesRead,
! attribute_length - bytesRead);
} while (bytesRead < attribute_length);
***************
*** 157,161 ****
}
short methods_count = di.readShort();
- methods_ = new CRMethod[methods_count];
for (int i = 0; i < methods_count; i++) {
--- 158,161 ----
***************
*** 166,172 ****
CP_Utf8Entry nameEntry = (CP_Utf8Entry) constantPool.getEntryAt(name_index2);
CP_Utf8Entry descriptorEntry = (CP_Utf8Entry) constantPool.getEntryAt(descriptor_index2);
! methods_[i] = new CRMethod(nameEntry.getValue(),
! methodAccessflag,
! descriptorEntry.getValue());
for (int j = 0; j < attributes_count2; j++) {
--- 166,172 ----
CP_Utf8Entry nameEntry = (CP_Utf8Entry) constantPool.getEntryAt(name_index2);
CP_Utf8Entry descriptorEntry = (CP_Utf8Entry) constantPool.getEntryAt(descriptor_index2);
! methods_.add(new CRMethod(nameEntry.getValue(),
! methodAccessflag,
! descriptorEntry.getValue()));
for (int j = 0; j < attributes_count2; j++) {
***************
*** 178,183 ****
do {
bytesRead += di.read(fieldAttribute,
! bytesRead,
! attribute_length - bytesRead);
} while (bytesRead < attribute_length);
--- 178,183 ----
do {
bytesRead += di.read(fieldAttribute,
! bytesRead,
! attribute_length - bytesRead);
} while (bytesRead < attribute_length);
***************
*** 217,233 ****
/**
! * @return an array of <code>CRMethod</code> objects representing all of
* the methods in this class
*/
! public CRMethod[] getMethods() {
! return methods_;
}
/**
! * @return an array of <code>CRField</code> objects representing all of
* the fields in this class
*/
! public CRField[] getFields() {
! return fields_;
}
--- 217,233 ----
/**
! * @return a SortedSet of <code>CRMethod</code> objects representing all of
* the methods in this class
*/
! public SortedSet getMethods() {
! return Collections.unmodifiableSortedSet(methods_);
}
/**
! * @return a SortedSet of <code>CRField</code> objects representing all of
* the fields in this class
*/
! public SortedSet getFields() {
! return Collections.unmodifiableSortedSet(fields_);
}
Index: SignatureDescriptor.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/SignatureDescriptor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** SignatureDescriptor.java 29 Sep 2002 02:21:25 -0000 1.1
--- SignatureDescriptor.java 4 Oct 2002 01:57:16 -0000 1.2
***************
*** 21,25 ****
* @version $Id$
*/
! public class SignatureDescriptor {
private final String descriptor;
--- 21,25 ----
* @version $Id$
*/
! public class SignatureDescriptor implements Comparable {
private final String descriptor;
***************
*** 72,76 ****
typeDescription +=
convertDescriptor(descriptor.substring
! (arrayCounter, endOfType)) + brackets;
descriptor = descriptor.substring(endOfType + 1);
}
--- 72,76 ----
typeDescription +=
convertDescriptor(descriptor.substring
! (arrayCounter, endOfType)) + brackets;
descriptor = descriptor.substring(endOfType + 1);
}
***************
*** 108,111 ****
--- 108,117 ----
}
return typeDescription;
+ }
+
+ public int compareTo(Object o) {
+ SignatureDescriptor otherDescriptor = (SignatureDescriptor) o;
+ int returnValue = descriptor.compareTo(otherDescriptor.descriptor);
+ return returnValue;
}
|
|
From: Jeff B. <br...@us...> - 2002-10-03 23:33:12
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails
In directory usw-pr-cvs1:/tmp/cvs-serv3937/com/ociweb/jarspy/gui/classdetails
Modified Files:
DependencyTab.java
Log Message:
use Sets instead of Vectors
Index: DependencyTab.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/classdetails/DependencyTab.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** DependencyTab.java 18 Sep 2002 23:14:55 -0000 1.7
--- DependencyTab.java 3 Oct 2002 23:33:08 -0000 1.8
***************
*** 22,26 ****
import java.awt.BorderLayout;
import java.util.Iterator;
! import java.util.Vector;
import javax.swing.JTextArea;
--- 22,26 ----
import java.awt.BorderLayout;
import java.util.Iterator;
! import java.util.Set;
import javax.swing.JTextArea;
***************
*** 43,47 ****
public void setClassInfo(ClassInfo classInfo) {
dependencyTextArea.setText("");
! Vector deps = classInfo.getDependencies();
Iterator iter = deps.iterator();
while (iter.hasNext()) {
--- 43,47 ----
public void setClassInfo(ClassInfo classInfo) {
dependencyTextArea.setText("");
! Set deps = classInfo.getDependencies();
Iterator iter = deps.iterator();
while (iter.hasNext()) {
|
|
From: Jeff B. <br...@us...> - 2002-10-03 23:33:12
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo
In directory usw-pr-cvs1:/tmp/cvs-serv3937/com/ociweb/classinfo
Modified Files:
ClassReader.java
Log Message:
use Sets instead of Vectors
Index: ClassReader.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/ClassReader.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** ClassReader.java 29 Sep 2002 02:31:39 -0000 1.10
--- ClassReader.java 3 Oct 2002 23:33:08 -0000 1.11
***************
*** 26,30 ****
import java.io.DataInputStream;
import java.io.InputStream;
! import java.util.Vector;
/**
--- 26,31 ----
import java.io.DataInputStream;
import java.io.InputStream;
! import java.util.HashSet;
! import java.util.Set;
/**
***************
*** 273,277 ****
}
! public Vector getDependencies() {
return classDependencies_.getDependencies();
}
--- 274,278 ----
}
! public Set getDependencies() {
return classDependencies_.getDependencies();
}
***************
*** 315,319 ****
class CRClassDependencies {
! private Vector classList_ = new Vector();
public void addClass(String newClass) {
--- 316,320 ----
class CRClassDependencies {
! private Set classes = new HashSet();
public void addClass(String newClass) {
***************
*** 334,343 ****
newClass = newClass.replace('/', '.');
! if (!classList_.contains(newClass))
! classList_.addElement(newClass);
}
! public Vector getDependencies() {
! return classList_;
}
}
--- 335,344 ----
newClass = newClass.replace('/', '.');
! if (!classes.contains(newClass))
! classes.add(newClass);
}
! public Set getDependencies() {
! return classes;
}
}
|
|
From: Jeff B. <br...@us...> - 2002-10-03 23:28:53
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy
In directory usw-pr-cvs1:/tmp/cvs-serv2656
Modified Files:
JarInspector.java
Log Message:
store listeners in a HashSet instead of Vector
Index: JarInspector.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/JarInspector.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** JarInspector.java 20 Jul 2002 18:12:23 -0000 1.9
--- JarInspector.java 3 Oct 2002 23:28:51 -0000 1.10
***************
*** 24,31 ****
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Set;
import java.util.TreeSet;
- import java.util.Vector;
- import java.util.Iterator;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
--- 24,31 ----
import java.io.InputStream;
import java.util.Enumeration;
+ import java.util.HashSet;
+ import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
***************
*** 43,47 ****
private Set classSet = new TreeSet();
private JarProcessingListener processingListener;
! private Vector jarInspectorListeners = new Vector();
private void closeJar() {
--- 43,47 ----
private Set classSet = new TreeSet();
private JarProcessingListener processingListener;
! private Set jarInspectorListeners = new HashSet();
private void closeJar() {
***************
*** 75,79 ****
public synchronized void addJarInspectorListener(JarInspectorListener l) {
! if(!jarInspectorListeners.contains(l)) {
jarInspectorListeners.add(l);
}
--- 75,79 ----
public synchronized void addJarInspectorListener(JarInspectorListener l) {
! if (!jarInspectorListeners.contains(l)) {
jarInspectorListeners.add(l);
}
***************
*** 105,109 ****
processingListener
.updateJarProcessingProgress(ci.getClassName(),
! (100 * counter) / total);
}
classSet.add(ci);
--- 105,109 ----
processingListener
.updateJarProcessingProgress(ci.getClassName(),
! (100 * counter) / total);
}
classSet.add(ci);
***************
*** 130,134 ****
(!directory.isDirectory())) {
throw new IllegalArgumentException("Invalid dir: " +
! directory);
}
String directoryName = directory.getPath();
--- 130,134 ----
(!directory.isDirectory())) {
throw new IllegalArgumentException("Invalid dir: " +
! directory);
}
String directoryName = directory.getPath();
***************
*** 153,157 ****
try {
out = new FileOutputStream(directoryName +
! entryName);
in = jarFile.getInputStream(entry);
byte[] data = new byte[1024];
--- 153,157 ----
try {
out = new FileOutputStream(directoryName +
! entryName);
in = jarFile.getInputStream(entry);
byte[] data = new byte[1024];
|
|
From: Jeff B. <br...@us...> - 2002-10-03 23:26:22
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/tree In directory usw-pr-cvs1:/tmp/cvs-serv1936 Modified Files: JarSpyRootTreeNode.java Log Message: remove extra imports Index: JarSpyRootTreeNode.java =================================================================== RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/tree/JarSpyRootTreeNode.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JarSpyRootTreeNode.java 3 Oct 2002 23:24:31 -0000 1.2 --- JarSpyRootTreeNode.java 3 Oct 2002 23:26:19 -0000 1.3 *************** *** 20,33 **** import com.ociweb.jarspy.ClassInfo; - - import javax.swing.tree.TreeNode; - import java.util.Enumeration; - import java.util.Vector; - import java.util.HashSet; - import java.util.Set; import java.util.ArrayList; - import java.util.List; - import java.util.Iterator; import java.util.Collections; /** --- 20,28 ---- import com.ociweb.jarspy.ClassInfo; import java.util.ArrayList; import java.util.Collections; + import java.util.Enumeration; + import java.util.List; + import javax.swing.tree.TreeNode; /** |
|
From: Jeff B. <br...@us...> - 2002-10-03 23:24:34
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/tree
In directory usw-pr-cvs1:/tmp/cvs-serv1325
Modified Files:
JarSpyRootTreeNode.java
Log Message:
change packageNodes to be a List
Index: JarSpyRootTreeNode.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/gui/tree/JarSpyRootTreeNode.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** JarSpyRootTreeNode.java 20 Jul 2002 18:12:23 -0000 1.1
--- JarSpyRootTreeNode.java 3 Oct 2002 23:24:31 -0000 1.2
***************
*** 24,27 ****
--- 24,33 ----
import java.util.Enumeration;
import java.util.Vector;
+ import java.util.HashSet;
+ import java.util.Set;
+ import java.util.ArrayList;
+ import java.util.List;
+ import java.util.Iterator;
+ import java.util.Collections;
/**
***************
*** 33,37 ****
! private Vector packageNodes = new Vector();
private String jarName;
--- 39,43 ----
! private List packageNodes = new ArrayList();
private String jarName;
***************
*** 50,55 ****
int index = fullyQualifiedName.lastIndexOf('.');
- String className = fullyQualifiedName.substring(index + 1);
-
String packageName = "";
--- 56,59 ----
***************
*** 75,79 ****
public TreeNode getChildAt(int childIndex) {
JarSpyPackageTreeNode node =
! (JarSpyPackageTreeNode) packageNodes.elementAt(childIndex);
return node;
--- 79,83 ----
public TreeNode getChildAt(int childIndex) {
JarSpyPackageTreeNode node =
! (JarSpyPackageTreeNode) packageNodes.get(childIndex);
return node;
***************
*** 122,126 ****
*/
public Enumeration children() {
! return packageNodes.elements();
}
--- 126,130 ----
*/
public Enumeration children() {
! return Collections.enumeration(packageNodes);
}
|
|
From: Jeff B. <br...@us...> - 2002-09-29 20:58:43
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/gui
In directory usw-pr-cvs1:/tmp/cvs-serv21600
Modified Files:
MemoryMeter.java
Log Message:
execute gc code outside of event thread
Index: MemoryMeter.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/gui/MemoryMeter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** MemoryMeter.java 18 Sep 2002 22:47:33 -0000 1.7
--- MemoryMeter.java 29 Sep 2002 20:58:40 -0000 1.8
***************
*** 73,76 ****
--- 73,81 ----
/**
+ * a runnable that is executed each time the user clicks the "gc" menu
+ */
+ private Runnable gcRunnable;
+
+ /**
* default constructor uses DEFAULT_REFRESH_INTERVAL
*/
***************
*** 94,97 ****
--- 99,110 ----
}
};
+
+ gcRunnable = new Runnable() {
+ public void run() {
+ System.runFinalization();
+ System.gc();
+ SwingUtilities.invokeLater(updateRunnable);
+ }
+ };
setupPopupMenu();
}
***************
*** 103,109 ****
mi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
! System.runFinalization();
! System.gc();
! SwingUtilities.invokeLater(updateRunnable);
}
});
--- 116,120 ----
mi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
! new Thread(gcRunnable).start();
}
});
|
|
From: Jeff B. <br...@us...> - 2002-09-29 15:06:34
|
Update of /cvsroot/jarspy/JarSpy
In directory usw-pr-cvs1:/tmp/cvs-serv17993
Modified Files:
CHANGES
Log Message:
Index: CHANGES
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/CHANGES,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CHANGES 20 Jul 2002 18:12:23 -0000 1.3
--- CHANGES 29 Sep 2002 15:06:31 -0000 1.4
***************
*** 1,2 ****
--- 1,9 ----
+ Changes in version 0.7.1
+ - new tabbed pane ui
+ - status bar
+ - heap monitor
+ - performance enhancements
+ - view of the constant poool
+
Changes in version 0.6.1
***************
*** 30,32 ****
- main window location
- main window size
! - location of slider in main window
\ No newline at end of file
--- 37,39 ----
- main window location
- main window size
! - location of slider in main window
|
|
From: Jeff B. <br...@us...> - 2002-09-29 14:59:48
|
Update of /cvsroot/jarspy/JarSpy In directory usw-pr-cvs1:/tmp/cvs-serv14216 Modified Files: README Log Message: Index: README =================================================================== RCS file: /cvsroot/jarspy/JarSpy/README,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** README 20 Jul 2002 18:33:10 -0000 1.14 --- README 29 Sep 2002 14:59:45 -0000 1.15 *************** *** 1,3 **** ! JarSpy v0.6.1 http://www.jarspy.org/ ======================================= --- 1,3 ---- ! JarSpy v0.7.1 http://www.jarspy.org/ ======================================= *************** *** 16,19 **** --- 16,20 ---- - A list of all fields declared in each class or interface, including the field type and all access specifiers + - A list of all constant pool entries in each class or interface - Decompile java classes back into Java source code - View the Manifest |
|
From: Jeff B. <br...@us...> - 2002-09-29 02:31:42
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo
In directory usw-pr-cvs1:/tmp/cvs-serv25705
Modified Files:
ClassReader.java
Log Message:
DefaultConstantPool constructor is now private
Index: ClassReader.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/ClassReader.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** ClassReader.java 29 Sep 2002 02:21:25 -0000 1.9
--- ClassReader.java 29 Sep 2002 02:31:39 -0000 1.10
***************
*** 90,94 ****
minorVersion_ = di.readShort();
majorVersion_ = di.readShort();
! constantPool = new DefaultConstantPool(di);
// populate the dependencies...
--- 90,94 ----
minorVersion_ = di.readShort();
majorVersion_ = di.readShort();
! constantPool = DefaultConstantPool.readConstantPool(di);
// populate the dependencies...
|
|
From: Jeff B. <br...@us...> - 2002-09-29 02:31:05
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/constantpool
In directory usw-pr-cvs1:/tmp/cvs-serv25568
Modified Files:
DefaultConstantPool.java
Log Message:
DefaultConstantPool constructor is now private
Index: DefaultConstantPool.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/constantpool/DefaultConstantPool.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** DefaultConstantPool.java 13 Sep 2002 23:12:00 -0000 1.1
--- DefaultConstantPool.java 29 Sep 2002 02:31:01 -0000 1.2
***************
*** 42,46 ****
private final ConstantPoolEntry[] entries;
! public DefaultConstantPool(DataInputStream di)
throws IOException {
--- 42,51 ----
private final ConstantPoolEntry[] entries;
! public static ConstantPool readConstantPool(DataInputStream di)
! throws IOException {
! return new DefaultConstantPool(di);
! }
!
! private DefaultConstantPool(DataInputStream di)
throws IOException {
|
|
From: Jeff B. <br...@us...> - 2002-09-29 02:21:28
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo
In directory usw-pr-cvs1:/tmp/cvs-serv23761
Modified Files:
CRField.java CRMethod.java ClassReader.java
Added Files:
AccessFlags.java SignatureDescriptor.java
Log Message:
refactor some access flag and descriptor code
--- NEW FILE: AccessFlags.java ---
// JarSpy
// Copyright (c) 2001, 2002 Jeff S. Brown
// This file is part of JarSpy.
//
// JarSpy is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// JarSpy is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with JarSpy; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package com.ociweb.classinfo;
import java.util.Map;
import java.util.HashMap;
/**
* @version $Id: AccessFlags.java,v 1.1 2002/09/29 02:21:25 brown_j Exp $
*/
public class AccessFlags {
public static final short ACC_PUBLIC = 0x0001;
public static final short ACC_PRIVATE = 0x0002;
public static final short ACC_PROTECTED = 0x0004;
public static final short ACC_STATIC = 0x0008;
public static final short ACC_FINAL = 0x0010;
public static final short ACC_VOLATILE = 0x0040;
public static final short ACC_TRANSIENT = 0x0080;
private final short accessFlags;
private String accessFlagsString;
private static final Map flagsToObject = new HashMap();
private AccessFlags(short accessFlags) {
this.accessFlags = accessFlags;
StringBuffer buffer = new StringBuffer();
if (0 != (accessFlags & ACC_PUBLIC)) {
buffer.append("public ");
} else if (0 != (accessFlags & ACC_PRIVATE)) {
buffer.append("private ");
} else if (0 != (accessFlags & ACC_PROTECTED)) {
buffer.append("protected ");
}
if (0 != (accessFlags & ACC_STATIC)) {
buffer.append("static ");
}
if (0 != (accessFlags & ACC_FINAL)) {
buffer.append("final ");
} else if (0 != (accessFlags & ACC_VOLATILE)) {
buffer.append("volatile ");
}
if (0 != (accessFlags & ACC_TRANSIENT)) {
buffer.append("transient ");
}
accessFlagsString = buffer.toString();
}
public static final synchronized AccessFlags getAccessFlags(short accessFlags) {
Short key = new Short(accessFlags);
AccessFlags af = (AccessFlags) flagsToObject.get(key);
if(af == null) {
af = new AccessFlags(accessFlags);
flagsToObject.put(key, af);
}
return af;
}
public short getAccessFlags() {
return accessFlags;
}
public String getAccessFlagsString() {
return accessFlagsString;
}
public String toString() {
return getAccessFlagsString();
}
}
--- NEW FILE: SignatureDescriptor.java ---
// Copyright (c) 2001, 2002 Jeff S. Brown
// This file is part of JarSpy.
//
// JarSpy is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// JarSpy is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with JarSpy; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package com.ociweb.classinfo;
/**
* @version $Id: SignatureDescriptor.java,v 1.1 2002/09/29 02:21:25 brown_j Exp $
*/
public class SignatureDescriptor {
private final String descriptor;
public SignatureDescriptor(String descriptor) {
this.descriptor = convertDescriptor(descriptor);
}
public String getDescriptor() {
return descriptor;
}
public String toString() {
return getDescriptor();
}
private String convertDescriptor(String descriptor) {
String typeDescription = "";
while (descriptor.length() > 0) {
if (!"".equals(typeDescription)) {
typeDescription += ", ";
}
if (descriptor.charAt(0) == 'L') {
int endOfType = descriptor.indexOf(';');
if (endOfType < 0) {
endOfType = descriptor.length();
typeDescription +=
descriptor.substring(1, endOfType).replace('/', '.');
descriptor = "";
} else {
typeDescription +=
descriptor.substring(1, endOfType).replace('/', '.');
descriptor = descriptor.substring(endOfType + 1);
}
} else if (descriptor.charAt(0) == '[') {
String brackets = "[]";
int arrayCounter = 1;
while (descriptor.charAt(arrayCounter) == '[') {
brackets += "[]";
arrayCounter++;
}
int endOfType = descriptor.indexOf(';');
if (endOfType < 0) {
typeDescription +=
convertDescriptor(descriptor.substring(1)) + brackets;
descriptor = "";
} else {
typeDescription +=
convertDescriptor(descriptor.substring
(arrayCounter, endOfType)) + brackets;
descriptor = descriptor.substring(endOfType + 1);
}
} else if (descriptor.charAt(0) == 'B') {
typeDescription += "byte";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'C') {
typeDescription += "double";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'D') {
typeDescription += "double";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'F') {
typeDescription += "float";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'I') {
typeDescription += "int";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'J') {
typeDescription += "long";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'S') {
typeDescription += "short";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'V') {
typeDescription += "void";
descriptor = descriptor.substring(1);
} else if (descriptor.charAt(0) == 'Z') {
typeDescription += "boolean";
descriptor = descriptor.substring(1);
} else {
typeDescription += "UNKNOWN TYPE: " + descriptor;
descriptor = "";
}
}
return typeDescription;
}
}
Index: CRField.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/CRField.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CRField.java 19 Jun 2002 01:19:10 -0000 1.3
--- CRField.java 29 Sep 2002 02:21:25 -0000 1.4
***************
*** 19,22 ****
--- 19,23 ----
package com.ociweb.classinfo;
+
/**
* @author Jeff Brown
***************
*** 25,31 ****
public class CRField {
! private short accessFlags;
private String methodName;
! private String descriptor;
CRField(String methodName,
--- 26,32 ----
public class CRField {
! private AccessFlags accessFlags;
private String methodName;
! private SignatureDescriptor descriptor;
CRField(String methodName,
***************
*** 33,44 ****
String descriptor) {
this.methodName = methodName;
! this.accessFlags = accessFlags;
! this.descriptor = descriptor;
}
public String toString() {
StringBuffer buffer = new StringBuffer();
! buffer.append(ClassReader.accessFlagsToString(accessFlags));
! buffer.append(ClassReader.convertDescriptor(descriptor));
buffer.append(" ");
buffer.append(methodName);
--- 34,45 ----
String descriptor) {
this.methodName = methodName;
! this.accessFlags = AccessFlags.getAccessFlags(accessFlags);
! this.descriptor = new SignatureDescriptor(descriptor);
}
public String toString() {
StringBuffer buffer = new StringBuffer();
! buffer.append(accessFlags);
! buffer.append(descriptor);
buffer.append(" ");
buffer.append(methodName);
Index: CRMethod.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/CRMethod.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CRMethod.java 18 Sep 2002 23:14:34 -0000 1.4
--- CRMethod.java 29 Sep 2002 02:21:25 -0000 1.5
***************
*** 26,31 ****
public class CRMethod {
- private String methodName;
- private short accessFlags;
private String descriptor;
--- 26,29 ----
***************
*** 33,63 ****
short accessFlags,
String descriptor) {
! this.methodName = methodName;
! this.accessFlags = accessFlags;
! this.descriptor = descriptor;
! }
- public String toString() {
- StringBuffer buffer = new StringBuffer();
- buffer.append(ClassReader.accessFlagsToString(accessFlags));
- // if (buffer.length() > 0) buffer.append(" ");
int indexOfLastParen = descriptor.lastIndexOf(')');
String returnType = descriptor.substring(indexOfLastParen + 1);
! buffer.append(ClassReader.convertDescriptor(returnType));
buffer.append(" ");
buffer.append(methodName);
buffer.append("(");
! String arguments = descriptor.substring(1, indexOfLastParen);
! buffer.append(ClassReader.convertDescriptor(arguments));
! // System.out.println("descriptor = " + descriptor);
! // System.out.println("arguments = {" + arguments + "}");
!
! // StringTokenizer tokenizer = new StringTokenizer(arguments, ";");
! // while(tokenizer.hasMoreTokens()) {
! // buffer.append(ClassReader.convertDescriptor(tokenizer.nextToken()));
! // }
buffer.append(")");
! return buffer.toString();
}
}
--- 31,57 ----
short accessFlags,
String descriptor) {
! AccessFlags af = AccessFlags.getAccessFlags(accessFlags);
int indexOfLastParen = descriptor.lastIndexOf(')');
String returnType = descriptor.substring(indexOfLastParen + 1);
! String arguments = descriptor.substring(1, indexOfLastParen);
+ SignatureDescriptor returnTypeDescriptor = new SignatureDescriptor(returnType);
+ SignatureDescriptor argumentsDescriptor = new SignatureDescriptor(arguments);
+
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(af);
+ buffer.append(returnTypeDescriptor);
buffer.append(" ");
buffer.append(methodName);
buffer.append("(");
! buffer.append(argumentsDescriptor);
buffer.append(")");
!
! this.descriptor = buffer.toString();
! }
!
! public String toString() {
! return descriptor;
}
}
Index: ClassReader.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/classinfo/ClassReader.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** ClassReader.java 18 Sep 2002 22:58:53 -0000 1.8
--- ClassReader.java 29 Sep 2002 02:21:25 -0000 1.9
***************
*** 28,40 ****
import java.util.Vector;
- // +++++++++++++++++++++++++
- // +++++ WARNING +++++
- // +++++++++++++++++++++++++
- //
- // This file is a bit of a mess right now, and is in the process of being
- // rewritten, so don't get too attached to it! :-)
- //
-
-
/**
* ClassReader is a class that will parse a .class file and provide an API to
--- 28,31 ----
***************
*** 61,64 ****
--- 52,57 ----
private short minorVersion_;
+ private ConstantPool constantPool;
+
private static final int MAGIC_NUMBER = 0xCAFEBABE;
***************
*** 71,89 ****
* value to mask against access_flags to identify signatures
*/
- public static final short ACC_PRIVATE = 0x0002;
-
- /**
- * value to mask against access_flags to identify signatures
- */
- public static final short ACC_PROTECTED = 0x0004;
-
- /**
- * value to mask against access_flags to identify signatures
- */
- public static final short ACC_STATIC = 0x0008;
-
- /**
- * value to mask against access_flags to identify signatures
- */
public static final short ACC_FINAL = 0x0010;
--- 64,67 ----
***************
*** 91,119 ****
* value to mask against access_flags to identify signatures
*/
- // public static final short ACC_SYNCHRONIZED = 0x0020;
-
- /**
- * value to mask against access_flags to identify signatures
- */
- // public static final short ACC_SUPER = 0x0020;
-
- /**
- * value to mask against access_flags to identify signatures
- */
- public static final short ACC_VOLATILE = 0x0040;
-
- /**
- * value to mask against access_flags to identify signatures
- */
- public static final short ACC_TRANSIENT = 0x0080;
-
- /**
- * value to mask against access_flags to identify signatures
- */
- // public static final short ACC_NATIVE = 0x0100;
-
- /**
- * value to mask against access_flags to identify signatures
- */
public static final short ACC_INTERFACE = 0x0200;
--- 69,72 ----
***************
*** 123,147 ****
public static final short ACC_ABSTRACT = 0x0400;
- // --Recycle Bin START (9/13/02 5:57 PM):
- // /**
- // * @param file
- // * <code>ClassReader</code> will attempt to parse. This constructor does
- // * not declare it, but an <code>InvalidClassFileException</code> will be
- // * thrown if the first 4 bytes of the file do not contain 0xCAFEBABE --
- // * the "magic number" of a java class file
- // */
- // public ClassReader(File file) {
- //
- // FileInputStream is = null;
- //
- // try {
- // is = new FileInputStream(file);
- // read(is);//, file.getName());
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
- // --Recycle Bin STOP (9/13/02 5:57 PM)
-
public ClassReader(InputStream is) {
read(is);
--- 76,79 ----
***************
*** 313,325 ****
}
- // --Recycle Bin START (9/13/02 6:01 PM):
- // /**
- // * @return the access flags for this class.
- // */
- // public short getAccessFlags() {
- // return accessFlags_;
- // }
- // --Recycle Bin STOP (9/13/02 6:01 PM)
-
/**
* @return true if this class is marked as public, otherwise false
--- 245,248 ----
***************
*** 350,362 ****
}
- // private String[] constantPool;
- ConstantPool constantPool;
-
public Vector getDependencies() {
return classDependencies_.getDependencies();
}
- // --Recycle Bin (9/13/02 5:57 PM): private Vector classRefs_ = new Vector();
-
private CRClassDependencies classDependencies_ =
new CRClassDependencies();
--- 273,280 ----
***************
*** 393,497 ****
}
- public static final String convertDescriptor(String descriptor) {
-
- String typeDescription = "";
- while (descriptor.length() > 0) {
- if (!"".equals(typeDescription)) {
- typeDescription += ", ";
- }
-
- if (descriptor.charAt(0) == 'L') {
- int endOfType = descriptor.indexOf(';');
- if (endOfType < 0) {
- endOfType = descriptor.length();
- typeDescription +=
- descriptor.substring(1, endOfType).replace('/', '.');
- descriptor = "";
- } else {
- typeDescription +=
- descriptor.substring(1, endOfType).replace('/', '.');
- descriptor = descriptor.substring(endOfType + 1);
- }
- } else if (descriptor.charAt(0) == '[') {
- String brackets = "[]";
- int arrayCounter = 1;
- while (descriptor.charAt(arrayCounter) == '[') {
- brackets += "[]";
- arrayCounter++;
- }
- int endOfType = descriptor.indexOf(';');
- if (endOfType < 0) {
- // endOfType = descriptor.length();
- typeDescription +=
- convertDescriptor(descriptor.substring(1)) + brackets;
- descriptor = "";
- } else {
- typeDescription +=
- convertDescriptor(descriptor.substring
- (arrayCounter, endOfType)) + brackets;
- descriptor = descriptor.substring(endOfType + 1);
- }
- } else if (descriptor.charAt(0) == 'B') {
- typeDescription += "byte";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'C') {
- typeDescription += "double";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'D') {
- typeDescription += "double";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'F') {
- typeDescription += "float";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'I') {
- typeDescription += "int";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'J') {
- typeDescription += "long";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'S') {
- typeDescription += "short";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'V') {
- typeDescription += "void";
- descriptor = descriptor.substring(1);
- } else if (descriptor.charAt(0) == 'Z') {
- typeDescription += "boolean";
- descriptor = descriptor.substring(1);
- } else {
- typeDescription += "UNKNOWN TYPE: " + descriptor;
- descriptor = "";
- }
- }
- return typeDescription;
- }
-
- public static final String accessFlagsToString(short accessFlags) {
- StringBuffer buffer = new StringBuffer();
-
- if (0 != (accessFlags & ACC_PUBLIC)) {
- buffer.append("public ");
- } else if (0 != (accessFlags & ACC_PRIVATE)) {
- buffer.append("private ");
- } else if (0 != (accessFlags & ACC_PROTECTED)) {
- buffer.append("protected ");
- }
-
- if (0 != (accessFlags & ACC_STATIC)) {
- buffer.append("static ");
- }
-
- if (0 != (accessFlags & ACC_FINAL)) {
- buffer.append("final ");
- } else if (0 != (accessFlags & ACC_VOLATILE)) {
- buffer.append("volatile ");
- }
-
- if (0 != (accessFlags & ACC_TRANSIENT)) {
- buffer.append("transient ");
- }
-
- return buffer.toString();
- }
}
--- 311,314 ----
|
|
From: Jeff B. <br...@us...> - 2002-09-29 01:31:00
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy In directory usw-pr-cvs1:/tmp/cvs-serv13458 Modified Files: application.properties Log Message: increment version number Index: application.properties =================================================================== RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/application.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** application.properties 27 Sep 2002 00:23:05 -0000 1.3 --- application.properties 29 Sep 2002 01:30:57 -0000 1.4 *************** *** 1,2 **** ! #Wed Sep 25 15:58:37 CDT 2002 ! app.version=0.7.1 --- 1 ---- ! app.version=0.7.2 |