Professional Java Tools for Extreme Programming: Ant, XDoclet, JUnit, Cactus, and Maven by Richard HightowerProfessional Java Tools for Extreme Programming: Ant, XDoclet, JUnit, Cactus, and Maven by Richard Hightower

Professional Java Tools for Extreme Programming: Ant, XDoclet, JUnit, Cactus, and Maven

byRichard Hightower, Warner Onstine, Paul Visan

Paperback | April 23, 2004

Pricing and Purchase Info

$69.42 online 
$78.00 list price save 11%
Earn 347 plum® points

Prices and offers may vary in store

Quantity:

In stock online

Ships free on orders over $25

Not available in stores

about

What is this book about?

The Extreme Programming (XP) methodology enables you to build and test enterprise systems quickly without sacrificing quality. In the last few years, open source developers have created or significantly improved a host of Java XP tools, from XDoclet, Maven, AntHill, and Eclipse to Ant, JUnit, and Cactus. This practical, code-intensive guide shows you how to put these tools to work — and capitalize on the benefits of Extreme Programming.

Using an example pet store application, our expert Java developers demonstrate how to harness the latest versions of Ant and XDoclet for automated building and continuous integration. They then explain how to automate the testing process using JUnit, Cactus, and other tools, and to enhance project management and continuous integration through Maven and AntHill. Finally, they show you how to work with XP tools in the new Eclipse IDE.

Complete with real-world advice on how to implement the principles and practices of effective developers, this book delivers everything you need to harness the power of Extreme Programming in your own projects.

What does this book cover?

Here are some of the things you'll find out about in this book:

  • How to automate the building of J2EE apps and components with Ant and XDoclet
  • Techniques for automating Java testing using JUnit
  • Procedures for automating servlet, JSP, and other J2EE testing using Cactus
  • Ways to automate Swing testing with Jemmy, JFCUnit, and Abbot
  • How to manage projects using Maven
  • Techniques for automating continuous integration with AntHill and Cruise Control
  • How to harness plugins for JUnit, Cactus, and Ant in the Eclipse IDE
  • Ways to implement Extreme Programming best practices

Who is this book for?

This book is for enterprise Java developers who have a general familiarity with the XP methodology and want to put leading Java XP tools to work in the development process.

Richard Hightower is Chief Mentor/Consultant for ArcMind, a full-service software development company. Rick is a software engineer by training who specializes in software development tools and processes, and developing enterprise applications using J2EE, XML, UML, JDBC, SQL, and open source technologies. Formerly he was the Senior Soft...
Loading
Title:Professional Java Tools for Extreme Programming: Ant, XDoclet, JUnit, Cactus, and MavenFormat:PaperbackDimensions:768 pages, 9.3 × 7.46 × 1.6 inPublished:April 23, 2004Publisher:WileyLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:0764556177

ISBN - 13:9780764556173

Look for similar items by category:

Reviews

Read from the Book

%PDF-1.3 % 88 0 obj > endobj xref 88 20 0000000016 00000 n 0000000748 00000 n 0000001334 00000 n 0000001503 00000 n 0000001641 00000 n 0000001933 00000 n 0000002731 00000 n 0000003272 00000 n 0000004130 00000 n 0000005984 00000 n 0000006288 00000 n 0000007085 00000 n 0000007871 00000 n 0000008212 00000 n 0000015706 00000 n 0000017581 00000 n 0000019905 00000 n 0000020045 00000 n 0000000835 00000 n 0000001312 00000 n trailer ] >> startxref 0 %%EOF 89 0 obj > endobj 106 0 obj > stream Hb```"g ? ~0M#M Jd?''wITmyB.#)15{ps..@:AdZf, 6yt]%PR?:l72AVMTFf X*2 Gi[N t^[\l&''[u8 JVb]"m [xm(tZX30Yi.0qg`t]qL2Q|/F*o"% endstream endobj 107 0 obj 376 endobj 90 0 obj > endobj 91 0 obj > /ExtGState > >> endobj 92 0 obj > endobj 93 0 obj > endobj 94 0 obj > endobj 95 0 obj > endobj 96 0 obj > stream HWr6>R &xg?%3?3N`PSBBRl @R?!vq{~B''wfY|\pPHR??UV$Qgh5 c+}_r, B/SYQdrY+|[t}- L''rm2/"XoCU?Z,''!K  ð$S+d1XTN:%7O;)y?,  cc~e%V=j?}6 8]??GJ#,Y alJeFmw,0''KL%({A&g?/kEIgUa:U`.uRx?.?=,v.-?NfdD3s|7Kl7_ ''??m"U!sF(K6|'Zª=?zC=!3zBa/%C ? >]tCCc55«EVl\!>wkzu [9(c; Z w- T;x5j? .]%v i5ayC-X|>w r @C > endobj 98 0 obj > endobj 99 0 obj > endobj 100 0 obj > endobj 101 0 obj > stream HtT Tg!L&h q&:*+(--  D  $"CD**=JKNi]{f9`8O]^ {|u*1F?{z.\?Resd r??h?/FU! ?*T)d:Y/%$BSd!ErW2eL.KM(Tx:V+4 G[#'',P''??eeRT?>6ha,s`0-1Â81[±\! f3^rc4b7Bo eVz!=5dji79-rUb.KI*g?2lK(f?3+t?s.\Lcv"F9 0??&9355FRUkTIzWa3n+sB]1#?c7SS}8M~ #;?ZµC^`*J?B"?cG6!P[m?N[_`*y;MU^i},2Jgn? 88?A?CouUl h*???.]I#J#v~z}_\`qNOZ?II*i`is_ñ!p?+`6!WnXZk_+#dqElDhJfs9{L4z{/U.Ai Ya0>Q.?my7DXVV/4+-?Og! qFe2?N vPqLc D?~SeM {%?Px1%P/W543y]dO45-_|0k_4s6V#N_wR?VdHkJcE4?vQp [Z#rB]xwE&]+#$F` G{i?ZpV.uqyk?;;`#XIQ0N5{Akfrs o5jn3u%+Q1 yFuB],%,;?u6w??"vrXpAl^+r%kV(V 1S5M&?Mk0c OV2UG+n.I''f2VuCRJSY%YNYgca tu5''?2_{5t?=D*`h0664.|?:0u\SIwTkq=*X@V L `}HC0Çv~tnTKRG7wM_ -c?s{y]?`2R#b?gu`E0~PE;EAX2C:(+YU(.`e0Nib.?zZC/TweW2_ARr: g^]=.)I (,Q`$x(-" ,?{2 v & bö!&:> J.L6+yÁo =dx?OJfM?V6+U{2K (51?]PqWbtnH T*5:mz7yu?@ë==3yc?Y5(aYsj\`q è`/1xg!rW=>h|7.#XAXrA XAwTDd$dllj?B&qm?0?o1>g]d +"4???!`EP%ma??Ffrh8x Q*9|?M7S"Nd?`?)>? m]NX%4iY"p g*GJ%OTj Wfw915)Gt";^}6o}){no`pX7% pon,fzW;P$ ''L&(~eb?!mt]qJ §bQ? S#9kZHms+U?TBB"%tCY/E)6,s ?37~}&{$!~~\K3+''IR&IAY_-#+H\O6 ~dkU!r %-"d-m1:mF;pe?lD5YKD:QjC|=(g:ktu^1~n4h;+fz_Vnpog?b ? .?NU Meuu?E0 F@!?./O6((?&4:.MJvC_cv^iJ1 ;JF''P-*4f9_ yE }-h$u"9I'':FKDM]M59\k]RzEI?Pa=slN{qF.H&kR).gFlMi# zlI^F?#AGh\$xO2]l)bKF439?`?y ]?8J-)sBmy-~?ItEid(BF x8geS?(6-j/03?slXD$CuPp{[QBeR$%I&''&zq}>iVG7` |~| ^)8u7 ^n[N~~5$6Q C>ZM>?i VC1\&pf ;?[vnwSC(ZD@1ya$rR$j«t?:3/^aDP6d?e@gt^h_aC96''d5U^%!F-W( Xk0EB5Z]ss:/\2^\8RD?">bm6Sc7xZ=5jFA(ZboIU{= qx>_jxg Iq_v" B7Rde(+-N9 : ¸z;?S2:}/ w.^\a2bKPu_dcm;7 ja0 K),0MzA_F%IpLs\u~f>46 ?t^uWl :hSlX?owbl?B8;t:?sX=X TI2?lkd9yoC*-/FS?Gp82].rpp]]kdK pqg;nk,p4N@mJ(0c* 5,+v`miv}a6go>GoSZy $} Ju?FAA|4aS\vQ?.&U8 d F''o]{v.?9\?h]a*'';SK1UJRLVq tOtT?1I"XDbR-S8GiBJg?H~O.2,$}q?^lsa&s+f9iiOI.o%MO4]|u-k?h!&u .do w3y}hMÇH?\@V?vVd|XK:AS!,? eA[  98`4;unpvwM ?@*?F?%iB,kOa&qFtxyD$JzFAmKHu@;;:?=~~pDGam aKYhq 0S}g@GFg2 AMb*z) \g/=(D7+2B+8il,h h2h\H?~ ??7WA JnQ_/ x!NgR?''44&I3O.OcjgJUW}x\''IgKhWEl0.d83d39\Y2^{=M">G,&:@,O?/};5?O5)Xl, l`N].z `Ef*[T|.P_mlu%" W+?DOsphmm9K}&*qA\ / !5v ?_o{{:?pk''TTE/?f\"@T6g>_q:N^c3Z4|4vW?G _?,8ITwo2hx/H7T''oo]?SoOW0Zsw endstream endobj 102 0 obj > stream HlT}PSW!! )bdx???b@$ MG2=jWNh;Nlj_B{?$v !/ !H0Tn `?|DtZV {Y@?` `$[??sTt!H b_D.99UwN'' Eny? !*gejUA>l9\J~9F$FT. Q%3WV1 ?Vht~sC!S6oF6]4k??,8NGiUgMBl#$Qz$F=Sl­?G4(?l!OjY@ RaiP.9`:54?Ku"M?8$T^Y "V?W_>vGCt{fJkV|.}k?_o1@pCoMA=F?F4v^`3??KfdOP?Oy"Un7 n)D|èoRi0w\jiABR;?:g{&72GuS!k%.U?\k9{oWU}g?fO\W`i08?rt1OCo@ E,\U]7iE?GLzo2Y,QyGkU.àJ?m70=* -P&F{$a?E1*\KE1J p''"v-(E/RIsyyCjIWT ]*?*+? endstream endobj 103 0 obj > stream HlT{Xq*fgF1FDhQ ª+,,MDAXXR#00M!(jTTmlPI?_{Wf?99$F$I ._dOL8]2y.zR^?#TG(TH.n(b%y30p2z\W")&mf+z Dz?~`IgZw?{ ?\_ mo^V*e+&A7W^?Z"%g''w1f?frE )Nfy, .?"Zf _GU$?V>G z#XYv;T_ w-9Z\.*.= n?;. SyC~MIPR]"OtaaV R)0RB 4S07j8pC?zlz($ P7^~n ?aJ?R{Z-wE4v;w_k.*3M[~x|Zrtqp$BP]v/UZ Cy  ''  ''  4j endstream endobj 104 0 obj > endobj 105 0 obj > stream HLT{T0=?Sck=&bWQ|":K"By@ o@xR VN|Q Zf7?gzC~m=|? g[s g5VZ|v?jf+ G`\_À]zbmfvX{|X|X}X,ddcSY K\~yoNqb xoioP?e?-wyK}i{~Z8/b&z|x6jVslj?L2} \u+ Ph2SR#3+lp{lL7tU8t4#?N?q,>3pA??cDUuF#hPK.-6BD)RYI$k?PhZUUT$qRG6mvl9Z:C*;E: CQ w;qCsB, d{3Y90''?S0YMH"H''ad)"''^F# ::4 H0NNcg#e?KW%X"WsAQ!I!d9.6EC4C ?ZMIONbcVjKq5>0 ''? Q"B?BQBkEZ\~*H?Ai/h4]TWrCb >}t*1 ]Q2(+KXZ O k/.MO%Q](tm}wK 1|![~FQ3I?l-fpRm1 >Cm/g P^)L?T!N:RW M ?rB D[?³9 SXbW;'')vnLeejCM.u$3L;Xy''wX[`7J.3eÅvVZ%W5''UD\l1>6^792|D>?6?RJX$QJRReI1H>s}07 ''zsC?M E:NS%I(2z=_>qh''?MtcqWL8&D''bí4,4t_C''y]3\YhE #hhtOuhg $%s=. T?"B# ''eI8)/%3?~7z ?Yj7zY1Cc)85V -AT$!$"adky`gW3=0| ? a8¤ân?G?~oaqL~6A{.,$?{3xA# }.qV?1M{m4]?Y1LI{ ?P^AMeg:}q2[Y.?Nn5IQD@G@v\rI(/)!Z|Sm??iO?oww~JTy1~:1x=;8Jyd/^-Lt8%0[;w)+x ~ 8_>W(L--jq9.v;Z[Trb*ZzI+|i"OCk /^sj6&"Ao",;;i]0qYYt-?6/çe4?gz?L%^sRqDGQU2Yf:&u]GCiM ?TWk X4*lDl#N ^m G4 \tTt>? FhOl{V,#OQ%P"zCsa%_?7 3G9''==K% ?),l > endobj 2 0 obj > /ExtGState > >> endobj 3 0 obj > stream HWnH]P?3/ 6?Y?Zc^d? Wq?/{?AD `a,;?m''l4T?uM:}%F?^V"K\X\VVL? bwtW9F6AUH''N%)[5+Z)zhCSC5]CQEfl]W''P%Ml?#0^-TyIhrD$QAPvl~Q3?zt\ sd:av?f-jlgY;%%$9=Lp?lk.[?hX''/znkPfXZEo7 mc,YJeS?9*..FC>1vH- hy g^?azM7l.YU%{4sw?3/,0 ?:5q ~R=4{DLC1OW|q?)TdVF!?/}" -g_1IiE.N"fwabFaDJ%PW$6os?{9N GS  > endobj 5 0 obj > /ExtGState > >> endobj 6 0 obj > stream HW?8fKa+zZrgL&IwA tDJR9E?KR]b*1-y?>g~^ mv3E~+ZEk7 Raus= h4?/b?0#7qs-8RQOw?7''4zZ?s#ZU/'$?QP?HpA/evOY;wH?vNAme''vM?AY6J??&I@CWv6s1||i~?w?i\R+2?Z?XnYOJ*cYdEw6~q/ BQ%eQ9nx9m+2iEW }E?i2te^?; y 0 @APl?u_V;"/zc&j^Y:6P5:{uTt$8 ?. ??pr?/sÐ&?wA|-Dw#$xFU,foR ?XvtL?s-*Wb^ Dy|/6jeD smp?Stxi(?) ?H\Qt[c#6N_ .LUI-Vlg=" 4[S4t&ufb% :_a4bQ- FY|5X6g{DVJ ?^JP+=nCxTZn27sDaP?PL??C8 cQ5%QR7~i0o AÓUp[~zd$am_Ol| @3Engw:Y7''4`.WX qkbzEWOag+9?(;ac ¸,ObJS7S b7 b^P+gA: ?0H~`O$=X ziB Qs$BhI8u9Zh7{%_DGFR>[9h\Y3#cfDa??jh"m?k?]][Qa7\*h~#U&Hn7DJ[jRBEU|-sAeeeB:#y{N>Whk Mqubm(G C ,zF]4?^K > endobj 8 0 obj > /ExtGState > >> endobj 9 0 obj > stream HW??TH4C? h4) 4MU/5fMybmD-V9;y(#o1-z{iQcqF7j?t''iE^4.i^:Vun(oJR>/Y+/U-;UtRUt?*6f}=M/ZjTs^)jOi6|h;U4cg{[8q"*>a?R2/XfOv@FR-j?C^W.S?--Onc;?b?;(KF]8#0P{^?O4$F}z\X4dc\nae+ ;?"?VpjM|+yj''NWQq+?P_n(&21BQ?y?][CGbEAjn;WW~HH ^G9UH3D{''E|3 6byU?We??nr5 \5Dzt/28VLubz:t^,lCL| ?629xt0=We&HlZb]p? #W;=H1\2& 0kp>N;I$XF1tMM NbI. ro\F?( +{V8;.Rv?\M w''eIh#y(!0}LBaqe 59(R?Ub`Yð: B? dK{! DV.okq"?n;7Ry Y:?+RN?{w`­dewVe ?BoHZ`?_E_b"%^?G2?!*(-D1#chc! `D?^ `OP64.?p&w,@9D[_Ba_Bg?# y2_+Li_q"wMpodi$?wv ;?[Vt''. }g~.qpj&k}l_m?(M+v-LVbzQf`?G ?Qkej?,!3-''zUWCAl?;_RR_M@Sk+gd7Byifo~@! bz2o^24b ) h&SO!I,,?0 KSI6Bp,.e C@ECf3??OJcGab ?=B$6Q@+W4gf0 (L3@B/2"Le&E0Ljii4%6M~}\E/?#|@t\%,b) }l !oYdx%BI4bI;9(Q?xfVg"D$ 2 o?W(Ev]`x?{XD [vWf/ m(Kbfj1(øGiq%YFQzqBnBN''^f?:?8Y?c/b?$s=*,` h/:8s1D89 ?~WXs S,^.s_Xy$KVe5[\eemD~r* -k7 :Xw?8%{ 0!*@ endstream endobj 10 0 obj > endobj 11 0 obj > /ExtGState > >> endobj 12 0 obj > stream HWMFG)l~+fX?,0?CCW8g/96l?^8,|/š["M#Qr_|\H"ElDm:"?qo6ky?caxb_l^$(Ic%yj''Cs2,px|e??ROf?l0NJC7jDT?cIxXmv>]?d82d!Di:?fK?/&S??#^$$vd{T4S?:}#vWmk;9?Pu/6uS{b{?W''QrM}"/"a?rN{c GUMujZ8]PESJ=v*??d?^u9[Q@sC'',U7/z f,e?Kww4HqP>4t*UV`J?( ?U \m''p g?utX\Zy jO"T kPL _j0Bj''K??2q1 *497m%t?P? |I _s''8C: iRJ,qVqf\L wB^r]ZqaqjBiV|0%;~6s[%S5! O {~hjK u7]]''Qjf U?iUuFER9MThq>8z 8t?Lh##dy (,G0Ie?`1VH3+5 OZM`$ y 4M]?)A??[UG9R5J ?5=u8?df ? {F^NC?&?qvIUx6?k?H(Z,SA_^f/?OkSV*8qWZ w4 L?AT7?*/c?wKI7 \xo ]Qx+|?x''~XJc8 EZ zgC+-G!%;qdd[L[Mx0!cEH;(>cIO_IEd>H#Zgx.v?1`zlxQR|Z > endobj 14 0 obj > /ExtGState > >> endobj 15 0 obj > stream HW??qx''y]{.h@@Q{x3/#O2 Ic!6lQSN=_]x}r)IBg:> dSNv$JeS?}?W:tQXi=aO&A??gm`6?@D?u)z+?5dqsW@^NrrT0M??s?^kI*OK\u #(rIJ 9q*Qfh9-2 s v!NmC.F#Cf[?)  b@?zE^J nvjmE{L3w?AhMW}%+?NrmJ/tzw(KeKdB^ `fF@?48 Z? 8''@RViz?::+_G}c)[wo>[!;T $?l?5ZVCi@inHA->aY>?34z _7DiSI?U3jMXT?W7~u.,Ao0+X o0ykn>H_h?|yY~J9lJNl;39A?wO1]\Q;+?$h*~x??~Sv{Eo[Wzc?d?Q`r{pvk4Mw\ZM''.wf~YOK7/~wp-e> o_|12 X~0o3q5M? _f8I|9`?$+(;4xSb?a?,Kt$D>7bZx-v?zLB?{+\+WxJSg$GNG:nP''V.u"-Q:~zGtS~7,uMRJ:1 ~*k/vCwKo&z %+)L"\.4{Im{?)C8vPBc56lB` j?33dDEExHb;00?YeW_yXCs~bIag~eC&~(NQ? ZC.c{ lp?nvd(Fj;?h.%[.0? endstream endobj 16 0 obj > endobj 17 0 obj > /ExtGState > >> endobj 18 0 obj > stream HW??0Ku PYr*o,Ngj2*-TLg8,^pEbsB,H$FDF4&joZ:6?l/^b#\/tPQq-;,\u?f=/>,w}QB?DwTE+tß]y,Q]Q)-ey.?8.d5T.N\)Ei#YE'';Wls| 3F59C}M~A{feJ\EUP, fn4E&P^ ]5HGM6j2yL* ;Cd c?p9nT _ pLzMT`~2?gYS\T ]tq$J8[EaFIdkPw2{q}!zn ?^|@juF.GO#5WEd?/O?q³ a4@ij 1?psð15Is )L_1_4.b/Wl>H'' ax''kpM?fp "2Gs6V%?$&9DW\>?P7uuHNM=JB!]xl{p[c_~KPM/oM$I }LHwwn?''7~?p?~D^9?Xgm-??jb=v&t?igc6`?8Adp?JWW3mC|[7''2?LnNdd9 ~\?/[cSl/?q|Y##?O\l84+>K_ Q 6"7HG+K R0.c:(sqnj?M%;~(N ?|I?[uJf?@ycz?Jl?~y !fl.;S^+Q!Q''W%+\z>ZrIyy;F ?8zdV>f?~2H?1YZkwZ?0Z.?y?udV]x?EKS'' RGNG&t$ZDQ^D MLEa L,F}EN ''\$d88%?BXGERJml7Wo#\w?$"?r- E5(L #?k7"VSb{dAL@@HXD!)I:^z $D^J )F2T$Xwab/Y''oh:z?r!^ ? \qN{zxHs?cx\w@!?xSlalGN3QhN&xY-M~0!c>va`KM?? ?%z2k?!?gZ6 3q:v >h"''F\Mp 5r? z7 9:B?_C''G8b>-q_Y5)MP@bpPk!)vQkep!B5 1n\5 `3 S uG2Z%d4`%f endstream endobj 19 0 obj > endobj 20 0 obj > /ExtGState > >> endobj 21 0 obj > stream HW?6CWVTJIlRv?I)*3u/I?Y -3g !vA@B^>e1g=>Bh''kZyLg5;H-y 7?# i)5?48iYAMo?''uUo.U{MX\-=*ub?su7e6?"dP:ag.1)x?,J7T4[*=,OwTmUa|Q_U m2,8l6_Z  tE],?#t1m??|?t=t9hLo4 ]qnohW0m%A? Am u 97w~=_? ]sTj1?B1.L9i/-t?9`V3LSB@j]pQ3?m{_N6R7fHy$OE!?3jr ]Ler l$p?~S/jLw:izr\LU 67-mE?Pz?:!8Q:*U`pH~r\tnl&{O QU[wV7h±E!DQ^JUX?X%t] zoa]l] `# ?"zkè NI 0W&YTWvma*,2''Lv''bN/x`Z  :p>,-i-?vq Cqb(eMExwqciCg > endobj 23 0 obj > /ExtGState > >> endobj 24 0 obj > stream HW?FC>Lc: 1}(Ej,sZP1du1+? - r%mC;e n^{hw ?}HIQ?N"5*$(5Cti?>Q59:{f(UuW8i*65fV\ZfD{?0J9tL.XkO;"\7wCW??HHARt(??QG3-Kqnœvv= OX)Ytt)?u36~QE_4 cgtS$DT6Jnz28U b(9;e|V_o ?0F?(Itn3XkRu6Mi2u" V%pEeR?KtT^jREEu*e[M/[ Q''h9Fj3/YH''p''LiRG^t? _2W&Jo l2.2[\>S6n5;]S (WnL~iyqX :N:l:"sV "44w 65vp>pD?=c]H*=GW?]^l[R-2mi$+,T5@?:u _?s&O|rvUé,+1LNt| M grmDW ?)eL*;;g*1k.b&ylg8M++EPDz,q2ZVG5U-2W?Ew [Ca??zN6j$F''0Az?U5?TT e?#wFn-y ;?9.cXT&? 6?P ?O''iz 1:0qY{I?i9 j:|rD?DNyhEUancY/AX%_2$&)k45of1XeN;Q?Eoh? > endobj 26 0 obj > /ExtGState > >> endobj 27 0 obj > stream HWr8])&Vvt?NMfN; $|($eE?s.$e{z5YiH\{?v_nOiQmvm!ESl(6N:53P/Z  $z@O=_DUmD10ME$,jeC$]*K-?UA##C[@?A3''_[ N\3DH?JFY¥][vWim+vö# =3%NjOr^^=_p,dqvI{Rj 11(>j?nYzVC|=E/k6kG{?Ue3G gGI)*GB OU?N6?ZpJ~/1?>?? 2Cdd+~i *E{sk8l?R `nce!?OQ{??f")Htt:v(_?}]2bA_2uj;h|#p],$={"ee}i">n0''???CW9CW| 6ResT,`T#?{+igFD{30clN.#G?ZOX5k?^!kXS!o Uq4fV 1+T9o Q/+_/_f29Cb&VtB^S8@XFN(CYZ?''|/ ?Gy}fM54Y&_ (].sczjgO_m||1V&h@V^Wi]"`W*wm_??hLW@6 RI( PS?!2Mi!1pU q-%E`+iAD)/"AA#^I-@:04DFqJ)6G &QS?Qx-k?"?}c|>}/>@H bd>&OYH/J]?c?!le;qdd[9+?^r=__4Ert?+;/iajKN¯b???!RsTbfZ1(xDiq%Y52 K? ?x|8!?y^?s{ > endobj 29 0 obj > endobj 30 0 obj > endobj 31 0 obj > endobj 32 0 obj > endobj 33 0 obj > endobj 34 0 obj > endobj 35 0 obj > endobj 36 0 obj > stream H{PSWo7D)wIr{3-v+*?k/P( @A Äg$@@B ]??u?kop33sws? F;vIX LG)I3H"WapyhBwa''ihx\UaL1''>Ed"#7j ivfO5jI"u.Q[5-$|V+{ 2D*%u|~LO\''JBpK|!_IŒ|!UgR[(Y[/,|i`B%RHR!!(]cB!( AnT"-C?N\ .oQ{T$h|; ^?3326u?nZQ5~5s&"F !s]V x~]33cvwwcg4vUAb\~ zxwq6V?;D?t??;yao? YjB9e{x,u7ItS71onNoy;;Ui8YADfEdkrois=m"iirMpRTWf6RBr4:?f"]e94L#%j?c4n(MsX?jn?{ xs LD0 0 Fu Z5xu/ 6!_A#8E?ngiQI''M->\;xqyV?o  .{o?{syU.Sst3kZ?-ZQ fTixtvMZú1 6[OTTJT,o ElfvWt(n{D?`VzPMIZ(XXH)%se(_?I|7UIs3 6t{?&[??P53:ypy^;M$n~8O53 Gic7I2%sp!Mqm8P@T.Rh)T PJ) " uL\0iYLt[a1n%>>jrQ2M¥O ?R?b9Ak?cAFzZA.@?15QJ(z{ y-^?;S NwU_GtRuZP\maN?~`dNjO5?>g~8ZEmS%xS?~ju7Hs Z^3?,\.?dH\6''7p})lFFQ?m?)_t?#OIM&F'' =a+;%t?8R c2q|m?|×HNee jS*rH"?( 0?\H>TXQ+e]_!b??B)J(TWiP@h!Bjx>"AP.Lcip??A}0&WelQ''OdT@?7tBvs??B88?/=Zp q b:]Q!7e$K$1LClIUXG\@4 ?iCi%2B uj?N6=Ld[;S}1?8 mhO7??"6fw\GG WPeyAjC?E(= v{?7uX!l{]U?Y? jfQz^YDT'$;A{xoC''U@.7 > endobj 38 0 obj > stream H PSWo5F&?VXjWDG$DG@Bn7`P! \m}?vm3]tDvZw?s9!,r(RYT]2]Jo-ZSXk~MR$f.sqpTr}E W''!(so[K&kd3d".?>#Fx?)[KT6efvg?S4]"KL4%E?)Ue2O!dLBHRVd??4Uj7q*"5)L!z3$fj *5|F 1I7x2?%9-9A''! O>k''h 67 NIdL\f93A?:A\dC]\^&l?VgA?,RW 7u:ZEp6L9?QR(?nO?nKHs;,H/ :3CCZ .Cm%Lg()H6Q5:G%npmLkmB]2sP&z ?fqH7%r5p!`YlRW"`''1bK,?-T4WSYYg`6f+?%*;F?0n^rVj_cOFcH1e1F?"&r?[%D4v:{v\ 0)O'')BoP?_~JbMI%w\7"b2;#Vs~ps-Hk^4 EK8qBI)pC=Bu;}?JmE;0K+Z}?iJ9FSAeIy> GAQ/NG*G)A>e!p((,i"Iyiqy:6 7y vW??i_rFS6k"*]F1^mg?{ B#l ( C? tq^8U*P(K c0rØ_2 _Bp3? C"=''F b|j>E?(8*Ezg )X6Ne+d92U:O a&Wqjj4A?''? W-?!t*W?[?DEH2gxJ`xm3>Q''? d6x:PWx }r9Dyb*2Mkf1`R~lF`| l Af?}ydalC?|]\"9-X4huKR]kbRB~ ,OI$6 p}B}''38v^2\?^1TlfJE=/] ($ Y(i{4+8|g51Z3=, 3A|4eW?tc?BsS6''V=i# bg TO!;~$qOjS;PCMXrXs^D1>3fm[''T¾Sn .?0VN[BZ&jh]g.y 2, ?.W 0k z ]K7^WIP}T8Pc53P )3(2H1S$XkF[-''. !WUqa:Ih$L*BiJOU}VushzPM?! ?''}v~3V*|>ges~,! >7ufTLnG$5"+.U:d JK[H=]r?/5{fRP|?H`Z/ 6?Ls~Z0{`~3{,^>}SO>o8Omy;w`) `}Sp endstream endobj 39 0 obj > endobj 40 0 obj > stream HlT{Tw!dV6{?]ZU+k9B@AQ1B!lC BAfY)GeI]q? @8--C ?? |js?"?bk Fk?187NC?sz ]6[O Gc+a''ht?r8 xXk t?#~y h 9#m&=xnxqf{;?b"WMLKd40-\NwdhYsr&?O4S(LHNv/6=z zI  !@9IJ[LGDvY8Fh|"% )x:z_xH? @XH94\4*b2)??1W 76KI/j*Y?dwOa9??q-r!TSp%$? 5+ßKV]fO6t''C "Is"^?[ ? GJ`U+(q u?#3]}Err mQ5a_e ~?0@"> z$?^SzQt|P>v(''?)]]?%(#r[I&8=MN{''_"+Y|?OL;;)?+Bj+i405FrCVyXh?j$V ?x=h)4`Ic?Y?k¯[S|y*qu[`C$;By?G 9w^h?u2n?NU?ie+}o^`}oQuQ &>y^!??4%@ R x|ObaUFag.Kdg7g](o.sut-o]OX endstream endobj 41 0 obj > endobj 42 0 obj > stream HlRkLSg aA?bSa2NnHRV?%V 0?!V1^BEP1$NT`d{?Hc|/!,yfbd?L B!$1 ,NOp4~u_b??z*?UGO[V?~M96o0.M-?5SX">bpIbidzK?&74A=?s k4{.~&,nv-?N%''E %YA_y ?h2H`AE@?fd¾CUXhF7E %hZ6Ury aI''/ +dkutw6r6jH*?.Z#S K:UN|_,zg=i0| k=]#LEIKSIT?)3mA #~gOPMo@gMx CZlEYDN"B ?62mGiop 7_ß?Q?bX$?:v+G7t''D BH-813''a_ B AuQF) [JUtXL2^~Dl&#X=''?fXqk4?OnX8 }TK$@@J+jb2 endstream endobj 43 0 obj > endobj 44 0 obj > stream HtTyPgDeluzV "r`)YE)aQ"3DTPSDWGjjbH4h?q}&IuU?~~xM ~b ;B?yIxFf9y_X ILSZ12=1ÜaN1%3RS\El?F?19?`4$Y?$c9!?`N1fVs 9 ?LD1m!Ws7ON[tqzq" 8|xnq\}&j7r.p~8 ''p Wu~diN Z!Nn B]v%16s )J8w7%6$o{rjoJKCI+{?~T{? !hx?JU@?u\UkWrII?=2OCq2nFB: 6AVp#J*HR\?X1MQ|wUjz-{^pdsDk?? aA)?`iB -P YlGb\Dct? 4c S"&Q9Hi''tl/@gX*4zRma~s=`{E9$jStW:X@UDfm@wQ|O=Mk?Ya _IQU_c?  cf5P|7 TMgc R G~ "IC8)FmW/R~q. bXNw! s\ 23xnV5=G?*$FX,äj,W4!5}*~SHE\TBb?sdgTBu(qxbt8dp]AnO-{)7D=8N1 6"wE;AVQO[P9{\\bE???cY-?z''|?i55[?d@a@B?$ 5 > endobj 46 0 obj > stream Hbd`ab`ddqpq?J,HsKOJ,)a!Cq > endobj 48 0 obj > stream HU{PSn4r''?7ZUBO@ $Bx$!@ $$B~J:^^?KK`H0x1{vM(33oa??,YH 3?i.\35F`?5G~h(UMP7&7M$ U Nd1Q]~wrb0k2t9x 8 oAs_S_WIL1?H~[ 1mgGj?Zcj`/%?qQ* ZlXTF~?? f1AaT6FLzk8ZwCr/dFOY$g2G (to*''rxM;GMvvs''iNc#0?u|=>>6OIn?Bm~+d?8--Fm!?DbOniLk]}dn$,kNpv?=/"v( fEyW7^vR%v"R(6]?5zX*?v?0gp45` MF18 l 7]A@`rx4iqL|0=U$_?~y4z1`oZD-J)WHIPT(;0m?ir??7?03%{ME`wS;_PU>k}t4%iWLbf Q NQuqO }>Ha?R[?pIK4ZXdw?v+d??d2LpZ'',r5Vcu:zCEyHUjkkN]Q/411"''5G:U8#Go%?]JrB?QGrA[5K*CAYTX]?@yQx]6Kqh tx?\DaZ^LnHy 4''g4802q`Fl1aa6)bF1Q1z''z2nF(X}T\> p-2L''w &"Xq&11*[4R,?0=ReI>c?11T)jZ JznCb "Sd\}dLXF0?j9cU7Mr_6Pl?z*?xKntj;hH{"?1,ZM?IcZ%A uHS*;74 #=^Us? r ?n21?$g?v@w?`3A?V`5z0}rh+` endstream endobj 49 0 obj > endobj 50 0 obj > stream HTPn -/JCX4w `?]u$aKay:UEU > stream 8;Z]">7uQB#Y!Em=35VH)Uge_#SB+;jGk HeC?K*!(W5R7-[kd3U%T_DJ2co(]OkgU;u'',mCf=g((4 ]fTapZ0C9LWc!:r>l]/:JFIpVOOmU_Dg">lBIkJIU[nWejk=#GH endstream endobj 52 0 obj 377 endobj 53 0 obj > stream 8;Z]!;%eL($q.Z+"o7g>/WMT#/V\t\O:H4,E(X@nMbmnW"A)9gPddV7.[1;.+$?GH 84T9;RY$D(+6`#H7VgDmZ/mm41^q4B,ifUrpj2\@D-uTE`%*h$b7s#&7N6n iT9%e$\XL^e7''9Br2gtJ U^O>`df"QLagnhI2:pa#J:R^''M1I@WjT&''KS:Dlbc(cEnlkAPRl.R.6#fS#3O@b(L !%_\0R^7BQSKT;m95b)!dMJBrd^H;/;tfI%pY@H=m 2Th@=?IfEg+&UGIH%0-mPLW]~> endstream endobj 54 0 obj 370 endobj 55 0 obj > stream 8;Z]">7SOn$j;"Y$Z_dfPq!AD_qOY''VTl%]I=O-1!**2aOIgX.>6":5ck^9sjqBtG ,a Mt#oW!AEQuO3\!>#p_tTS1"d=X:q$tR#4Bj2*5*0Rs*#TQ# [Lbi>SZQ@/:MV#m+-uNn;l>P&^p:&TnUtA[`kD7cpW95$&-NV_]uCHg_eNJW[/3/@ JkS@Zf%T*o.''4d>@j-=%=/fkKV-''/6M_/7EcUS(k44!"`l1%CA&=%HuK?BO@UCo:o >p=-[2),W923C&(M%K8, 8"/~> endstream endobj 56 0 obj 352 endobj 57 0 obj > stream 8;Z\u9+Ji^$q,OD$i2n!MaVpof\d&qjf+/-35[G#_]5 .ql\B9aQnn S81]ITY^s4rE5n oC''4 VZGC+-/G/t +WV)/4Vi$J(%5ZBPZI516U!#(6[g!nbIE>gde[Hn(nfMCp(=Y-b*[YcOK7+E@dO?U J`HS?;#.qO!2Y*S[2gF"ld\I(,[% endstream endobj 58 0 obj 349 endobj 59 0 obj > stream 8;Z\t;%CMe#XlB+"hDpuO!_;)6-9ITIG''[)Mpl+1&lhO3eK;2c[=B)`"nRH".fn(O F"JgP . :i.FNHH#QW\gAA3!aD.u]T"''q!kQ+J8J4N0LpnCC/>Fm.ZV9fNh-BE3mR,MT5IJ@> IBPDk*_!q&og7@CT]sgOmjDoFYk`gT51]S@7eVrF5$ endstream endobj 60 0 obj 319 endobj 61 0 obj > stream 8;Z]!CC\6)%"l+j"`p4@9q?fl]YGcFqIr1*P.HZHWY/ endstream endobj 62 0 obj 354 endobj 63 0 obj > stream 8;Z]!CC\6)%"l+j"`p4@BjFjRj?]l#MGO1JXhctDX[Z8=/Q=B /s/6BobS 3P#uB+@$QCMIP0O["G8id3($kenODcj1sd(8L*!B!msR6AF4SuNc]X5:#E[C :P`@C''/Ocs\(4o\q:7kst ''-qdEXKaFF:>9pt_"l>MqgYeDR; endstream endobj 64 0 obj 347 endobj 65 0 obj > stream 8;Z\6>7SOn%.!jFR-RFZ6=O)K4@s4kp+b.Vg.l;d:iNgmnq$LM.=__N"lkU8Q4DF& Vj^LKW7V4Drkrar#Z4C.)`8QE8pk_>L"=b1dX[bNBQX@6[kYdRfJ,MlJi6L_6CUGt M;gb+JM:u4.OZo&KA0#XA)J*oQ^US9kE? mi!toRFr?8*91uc1ZnRM0dP5SGJTlm8_B0`A\lW ,X"Bl07O0+BOIm\~> endstream endobj 66 0 obj 347 endobj 67 0 obj > stream 8;Z]";%CJd$q%T*"`p5k[@J/2O8oJin[+?lJEs^ZVMTP&M"m$aQ[XQ$GhS6DGhiuT /ND@N%>l/GPb68AXUPOP''7 ae88Qd:_)+[iXHsq8=H&RriWV]]" V?-#p+ElAf)1ltV"[6^X2@aOG2L27e7C/TQBd+f/g^LX`T&Yr^&rY>0LpaOk''.%2h G810nni]T+?;*SUj_ endstream endobj 68 0 obj 341 endobj 69 0 obj > stream 8;Z\u>n2K0&;7Uo"aT2XL9sF-Z@D &q;sHWp_cL=$!Iik?['' 3oaI bZG&#L.kRf TKZgPJ0D1?\GdmSWNR#UgE@n+I$ZJoX/VskpGp15YQ\g0q07#;*,/sgF+X6 36qYJ*D8FYf]YRi$Qs5B$EuUP3=''aALLk\a;Dgfa1,Xu(,f2et[R8TU=@?em''/Z:& UHeUZZ$#PiN^iNdk/HSAU;*;klYQVDJFg/~> endstream endobj 70 0 obj 366 endobj 71 0 obj 481 endobj 72 0 obj > stream J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g.@L`YKUJNGBP\poR=_;Dl''P(T (7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 PbLSZTLEE(8E@''*1mg_*eTnN*;*''V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD'' dKoL!8Ka#EV,@V!\j8ZFbp6EE 0nf;(&;QU6bUD'')c@\ 9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_a P(]I1aRc(K1^ue> gF/(+GaKo$qneLWDrQ#;5\S(\$q''4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R endstream endobj 73 0 obj [ /Indexed /DeviceRGB 255 72 0 R ] endobj 74 0 obj > endobj 75 0 obj > endobj 76 0 obj > endobj 77 0 obj > endobj 78 0 obj /This endobj 79 0 obj > endobj 80 0 obj > endobj 81 0 obj > endobj 82 0 obj > endobj 83 0 obj > endobj 84 0 obj > endobj 85 0 obj > endobj 86 0 obj > endobj 87 0 obj > endobj xref 0 88 0000000000 65535 f 0000024330 00000 n 0000024496 00000 n 0000024690 00000 n 0000027350 00000 n 0000027516 00000 n 0000027688 00000 n 0000030483 00000 n 0000030649 00000 n 0000030808 00000 n 0000033275 00000 n 0000033444 00000 n 0000033617 00000 n 0000036154 00000 n 0000036323 00000 n 0000036483 00000 n 0000039195 00000 n 0000039364 00000 n 0000039524 00000 n 0000042274 00000 n 0000042443 00000 n 0000042592 00000 n 0000045276 00000 n 0000045445 00000 n 0000045618 00000 n 0000048299 00000 n 0000048468 00000 n 0000048628 00000 n 0000051159 00000 n 0000051957 00000 n 0000052806 00000 n 0000053603 00000 n 0000054402 00000 n 0000055203 00000 n 0000055398 00000 n 0000056191 00000 n 0000056501 00000 n 0000060211 00000 n 0000060574 00000 n 0000065473 00000 n 0000065768 00000 n 0000067868 00000 n 0000068168 00000 n 0000069489 00000 n 0000069843 00000 n 0000073222 00000 n 0000073441 00000 n 0000073881 00000 n 0000074175 00000 n 0000077496 00000 n 0000077569 00000 n 0000077869 00000 n 0000078404 00000 n 0000078425 00000 n 0000078953 00000 n 0000078974 00000 n 0000079484 00000 n 0000079505 00000 n 0000080012 00000 n 0000080033 00000 n 0000080510 00000 n 0000080531 00000 n 0000081043 00000 n 0000081064 00000 n 0000081569 00000 n 0000081590 00000 n 0000082095 00000 n 0000082116 00000 n 0000082615 00000 n 0000082636 00000 n 0000083160 00000 n 0000083181 00000 n 0000083202 00000 n 0000083778 00000 n 0000083831 00000 n 0000083862 00000 n 0000083906 00000 n 0000084034 00000 n 0000084098 00000 n 0000084121 00000 n 0000084173 00000 n 0000084215 00000 n 0000084291 00000 n 0000084346 00000 n 0000084395 00000 n 0000084431 00000 n 0000084508 00000 n 0000084575 00000 n trailer ] >> startxref 173 %%EOF

Table of Contents

Introduction.

Part I: Key Concepts.

Chapter 1: Introduction to Extreme Programming.

Chapter 2: J2EE Deployment Concepts.

Chapter 3: Storing and Managing Code with CVS.

Part II: Automated Building and Continuous Integration.

Chapter 4: Ant Primer.

Chapter 5: Building Java Applications with Ant.

Chapter 6: Building J2EE Applications with Ant.

Chapter 7: XDoclet Primer.

Chapter 8: Building J2EE Web Components with Ant and XDoclet.

Chapter 9: Building EJBs with Ant and XDoclet.

Chapter 10: Building Struts Apps with Ant and XDoclet.

Chapter 11: Creating Custom Ant Tasks.

Chapter 12: Creating XDoclet Custom Tags and Templates.

Part III: Automated Java Testing.

Chapter 13: Unit Testing with JUnit.

Chapter 14: Load Testing with JunitPerf.

Chapter 15: Defect Tracking with Bugzilla.

Part IV: Automated J2EE Testing.

Chapter 16: Functional Testing with HttpUnit.

Chapter 17: Performance Testing with Jmeter.

Chapter 18: Cactus Primer.

Chapter 19: Testing Servlets and Filters with Cactus.

Chapter 20: JspTestCases and Testing Custom Tags with Cactus.

Chapter 21: Testing EJBs with Cactus.

Chapter 22: Code Coverage with jcoverage.

Part V: Automated Swing Testing.

Chapter 23: Swing Testing with Jemmy.

Chapter 24: Swing Testing with jfcUnit.

Chapter 25: Swing Testing with Abbot.

Part VI: Continuous Integration, Project Management, and IDEs.

Chapter 26: Managing Projects with Maven.

Chapter 27: Automating Continuous Integration with CruiseControl.

Chapter 28: Automating Continuous Integration with AntHill.

Part VII: API Tag Reference.

Chapter 29: Ant Tag Reference.

Chapter 30: Ant API Reference.

Chapter 31: JUnit API Reference.

Chapter 32: Cactus API Reference.

Chapter 33: HttpUnit API Reference.

Chapter 34: JUnitPerf API Reference.

Part VIII: Appendix.

Appendix A: Example Applications Used in This Book.

Index.

Editorial Reviews

“ ...Practical account of using standard tools… ”   ("Visual Systems Journal," March 2005)