Acknowledgments |
|
xi | |
Introduction |
|
xvii | |
Part I Introduction and Key Concepts |
|
|
Introduction to Extreme Programming |
|
|
1 | (14) |
|
|
1 | (11) |
|
|
2 | (1) |
|
|
3 | (2) |
|
|
5 | (7) |
|
|
12 | (1) |
|
|
13 | (2) |
|
|
15 | (14) |
|
|
17 | (3) |
|
|
18 | (1) |
|
|
19 | (1) |
|
Web Applications and the WAR File |
|
|
20 | (2) |
|
Enterprise Beans and the EJB JAR File |
|
|
22 | (4) |
|
Enterprise Applications and the EAR File |
|
|
26 | (1) |
|
|
27 | (2) |
|
|
29 | (46) |
|
Simple Example: Model 2 Hello World |
|
|
30 | (1) |
|
Case Study Example: The Pet Store |
|
|
31 | (1) |
|
Baseline Version of the Pet Store |
|
|
32 | (11) |
|
Model Classes (Public Interface) |
|
|
32 | (2) |
|
dbmodel Classes (Implementation) |
|
|
34 | (1) |
|
|
35 | (1) |
|
|
36 | (3) |
|
|
39 | (4) |
|
Setting Up the Database with Test Data: A Small Taste of Ant |
|
|
43 | (5) |
|
|
48 | (25) |
|
Model Package Complete Listings |
|
|
48 | (5) |
|
dbmodel Package Complete Listings |
|
|
53 | (7) |
|
Test Package Complete Listings |
|
|
60 | (7) |
|
JSPs and Web.xml Complete Listings |
|
|
67 | (6) |
|
|
73 | (2) |
Part II Mastering the Tools |
|
|
Continuous Integration with Ant |
|
|
75 | (16) |
|
|
77 | (2) |
|
Projects, Targets, and Tasks |
|
|
77 | (2) |
|
|
79 | (10) |
|
|
80 | (2) |
|
|
82 | (1) |
|
|
83 | (2) |
|
|
85 | (2) |
|
|
87 | (1) |
|
|
88 | (1) |
|
|
89 | (2) |
|
Building Java Applications with Ant |
|
|
91 | (24) |
|
Hello World Model Project |
|
|
92 | (8) |
|
Overview of Model Classes |
|
|
92 | (2) |
|
Creating a Project Directory Structure for Model |
|
|
94 | (1) |
|
Creating a Buildfile for a Shared Library |
|
|
94 | (1) |
|
Analysis of the Model Project Buildfile |
|
|
95 | (4) |
|
|
99 | (1) |
|
Hello World Application Project |
|
|
100 | (4) |
|
Overview of Application Java Classes |
|
|
100 | (1) |
|
Creating a Project Directory Structure for the Application |
|
|
101 | (1) |
|
Creating a Manifest File for a Standalone Application |
|
|
101 | (1) |
|
Creating an Ant Buildfile for a Standalone Application |
|
|
102 | (2) |
|
|
104 | (3) |
|
Creating a Master Buildfile |
|
|
105 | (1) |
|
Analysis of the Master Buildfile |
|
|
106 | (1) |
|
|
107 | (6) |
|
Overview of the Applet Class |
|
|
107 | (4) |
|
Creating a Buildfile for the Applet |
|
|
111 | (1) |
|
Building the Applet with Ant |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (2) |
|
Building J2EE Applications with Ant |
|
|
115 | (48) |
|
|
115 | (1) |
|
|
116 | (18) |
|
Web Application Project Directory Structure |
|
|
117 | (1) |
|
|
117 | (2) |
|
Analyzing HelloWorldServlet |
|
|
119 | (1) |
|
|
120 | (1) |
|
Deployment Descriptor for the HelloWorld Web Application |
|
|
120 | (2) |
|
Buildfile for the HelloWorld Web Application |
|
|
122 | (6) |
|
Building and Deploying the Web Application |
|
|
128 | (2) |
|
Running the Web Application |
|
|
130 | (2) |
|
HelloWorld.jsp Applet Delivery |
|
|
132 | (1) |
|
Including an Applet in a WAR File |
|
|
132 | (2) |
|
|
134 | (19) |
|
Directory Structure of the Enterprise Beans Project |
|
|
134 | (1) |
|
The HelloWorld Entity Bean |
|
|
135 | (2) |
|
|
137 | (3) |
|
|
140 | (3) |
|
The Enterprise JavaBeans Deployment Descriptor |
|
|
143 | (3) |
|
The Enterprise Bean Buildfile |
|
|
146 | (2) |
|
Analyzing the Buildfile for Enterprise Beans |
|
|
148 | (3) |
|
Defining the ejb Property In the Web Application Buildfile |
|
|
151 | (1) |
|
|
152 | (1) |
|
EAR Enterprise Application |
|
|
153 | (6) |
|
The HelloWorld Main Project Buildfile |
|
|
153 | (3) |
|
Analyzing the Buildfile for the Enterprise Application |
|
|
156 | (2) |
|
Enterprise Application Deployment Descriptor |
|
|
158 | (1) |
|
|
159 | (3) |
|
|
162 | (1) |
|
|
163 | (50) |
|
|
165 | (13) |
|
|
166 | (6) |
|
Integrating JUnit with Ant |
|
|
172 | (6) |
|
Case Study: Adding an Entity Bean to the Pet Store |
|
|
178 | (34) |
|
Overview of Existing JUnit Tests |
|
|
178 | (11) |
|
Adding an Enterprise JavaBean to the Pet Store |
|
|
189 | (13) |
|
Creating an Ant Buildfile to Deploy Our Entity Bean |
|
|
202 | (7) |
|
Modifying the Test Buildfile to Test Our Entity Bean |
|
|
209 | (2) |
|
|
211 | (1) |
|
|
212 | (1) |
|
Testing Container Services with Cactus |
|
|
213 | (54) |
|
Why In-Container Testing? |
|
|
214 | (3) |
|
Testing in Isolation: Mock Objects |
|
|
214 | (1) |
|
Testing in Context: Integration Testing |
|
|
215 | (2) |
|
|
217 | (1) |
|
|
217 | (1) |
|
|
218 | (5) |
|
|
219 | (1) |
|
|
220 | (1) |
|
|
221 | (2) |
|
|
223 | (4) |
|
|
223 | (1) |
|
|
224 | (1) |
|
Calling the Redirector Servlet |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
225 | (1) |
|
Results Collection and Post-Processing |
|
|
225 | (2) |
|
|
227 | (9) |
|
|
227 | (2) |
|
Extending the Appropriate Class |
|
|
229 | (1) |
|
|
230 | (1) |
|
|
231 | (1) |
|
|
232 | (1) |
|
|
233 | (1) |
|
|
234 | (2) |
|
|
236 | (2) |
|
|
236 | (2) |
|
|
238 | (2) |
|
|
238 | (2) |
|
JSPTestCases and Custom Tags |
|
|
240 | (19) |
|
Case Study: The Pet Store with Custom Tags |
|
|
259 | (7) |
|
|
259 | (1) |
|
|
259 | (1) |
|
|
260 | (6) |
|
|
266 | (1) |
|
Functional Testing with HttpUnit |
|
|
267 | (28) |
|
|
267 | (1) |
|
|
268 | (2) |
|
|
270 | (12) |
|
|
270 | (1) |
|
Response Inspection and Multiple Pages |
|
|
271 | (11) |
|
Advanced Topics in HttpUnit |
|
|
282 | (4) |
|
|
282 | (2) |
|
|
284 | (1) |
|
|
284 | (1) |
|
|
285 | (1) |
|
|
285 | (1) |
|
|
285 | (1) |
|
|
286 | (7) |
|
Spider Development: First Iteration |
|
|
286 | (2) |
|
Spider Development: Second Iteration |
|
|
288 | (5) |
|
Future Work on the Spider |
|
|
293 | (1) |
|
|
293 | (2) |
|
Measuring Application Performance with JMeter |
|
|
295 | (28) |
|
|
296 | (1) |
|
|
297 | (2) |
|
Using JMeter to Test a Web Application Navigation |
|
|
299 | (7) |
|
Using JMeter to Test the Web Application's Form Entry |
|
|
306 | (7) |
|
Using JMeter to Test Performance of Our RDBMS |
|
|
313 | (1) |
|
Case Study: The Pet Store |
|
|
314 | (8) |
|
|
315 | (2) |
|
|
317 | (2) |
|
|
319 | (3) |
|
|
322 | (1) |
|
|
322 | (1) |
|
Load Testing with JUnitPerf |
|
|
323 | (20) |
|
|
324 | (1) |
|
|
324 | (8) |
|
|
332 | (2) |
|
|
334 | (7) |
|
|
334 | (2) |
|
|
336 | (1) |
|
|
337 | (3) |
|
|
340 | (1) |
|
|
341 | (2) |
Part III API and Tag Reference |
|
|
|
343 | (34) |
|
|
343 | (1) |
|
|
344 | (1) |
|
|
344 | (4) |
|
|
344 | (1) |
|
|
345 | (1) |
|
|
346 | (1) |
|
|
347 | (1) |
|
|
348 | (1) |
|
|
348 | (4) |
|
|
348 | (1) |
|
|
349 | (1) |
|
|
349 | (1) |
|
|
350 | (1) |
|
|
351 | (1) |
|
|
351 | (1) |
|
|
352 | (1) |
|
Directory and File System Tasks |
|
|
352 | (4) |
|
|
352 | (1) |
|
|
353 | (1) |
|
|
354 | (1) |
|
|
355 | (1) |
|
|
355 | (1) |
|
|
356 | (1) |
|
|
356 | (8) |
|
|
356 | (2) |
|
|
358 | (1) |
|
|
358 | (2) |
|
|
360 | (1) |
|
|
361 | (1) |
|
|
362 | (2) |
|
|
364 | (3) |
|
|
364 | (1) |
|
|
364 | (2) |
|
|
366 | (1) |
|
Unjar, Unzip, and Unwar Tasks |
|
|
367 | (1) |
|
File Readers Writers and Tokenizers |
|
|
367 | (2) |
|
|
367 | (1) |
|
|
368 | (1) |
|
|
369 | (1) |
|
|
369 | (1) |
|
|
369 | (1) |
|
|
370 | (2) |
|
|
370 | (2) |
|
|
372 | (1) |
|
Frequently Used Nested Parameters and Elements |
|
|
372 | (5) |
|
|
372 | (1) |
|
|
373 | (1) |
|
|
374 | (1) |
|
|
375 | (1) |
|
|
376 | (1) |
|
|
377 | (30) |
|
Package org.apache.tools.ant |
|
|
378 | (26) |
|
|
378 | (1) |
|
|
379 | (1) |
|
|
380 | (1) |
|
|
381 | (1) |
|
|
382 | (1) |
|
|
383 | (1) |
|
|
384 | (2) |
|
|
386 | (2) |
|
Class IntrospectionHelper |
|
|
388 | (1) |
|
|
389 | (1) |
|
|
389 | (1) |
|
|
390 | (5) |
|
|
395 | (1) |
|
Class RuntimeConfigurable |
|
|
395 | (1) |
|
|
396 | (2) |
|
|
398 | (1) |
|
|
398 | (2) |
|
|
400 | (1) |
|
|
401 | (1) |
|
|
402 | (1) |
|
|
403 | (1) |
|
|
404 | (3) |
|
|
407 | (24) |
|
|
407 | (17) |
|
|
407 | (4) |
|
|
411 | (1) |
|
|
412 | (1) |
|
|
412 | (5) |
|
|
417 | (1) |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
419 | (2) |
|
|
421 | (3) |
|
|
424 | (7) |
|
|
424 | (1) |
|
|
425 | (1) |
|
|
426 | (1) |
|
|
426 | (1) |
|
|
427 | (1) |
|
|
428 | (1) |
|
|
429 | (2) |
|
|
431 | (32) |
|
Package org.apache.cactus |
|
|
431 | (23) |
|
|
432 | (3) |
|
|
435 | (5) |
|
|
440 | (1) |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
442 | (1) |
|
|
442 | (4) |
|
Class ServletTestRequest Deprecated |
|
|
446 | (1) |
|
|
447 | (2) |
|
|
449 | (3) |
|
|
452 | (1) |
|
|
453 | (1) |
|
Package org.apache.cactus.util |
|
|
454 | (3) |
|
Class AssertUtils Deprecated |
|
|
454 | (2) |
|
Class ClientCookie Deprecated |
|
|
456 | (1) |
|
Package org.apache.cactus.server |
|
|
457 | (6) |
|
Class FilterConfigWrapper |
|
|
457 | (1) |
|
Class HttpServletRequestWrapper |
|
|
458 | (1) |
|
|
459 | (1) |
|
Class RequestDispatcherWrapper |
|
|
459 | (1) |
|
Class ServletConfigWrapper |
|
|
460 | (1) |
|
Class ServletContextWrapper |
|
|
461 | (2) |
|
|
463 | (44) |
|
Package com.meterware.httpunit |
|
|
463 | (32) |
|
Class AuthorizationRequiredException |
|
|
464 | (1) |
|
Class GetMethodWebRequest |
|
|
464 | (1) |
|
|
465 | (3) |
|
|
468 | (1) |
|
Class HttpInternalErrorException |
|
|
469 | (1) |
|
Class HttpNotFoundException |
|
|
469 | (1) |
|
|
469 | (2) |
|
|
471 | (1) |
|
Class IllegalRequestParameterException |
|
|
472 | (1) |
|
Class MessageBodyWebRequest |
|
|
473 | (1) |
|
Class PostMethodWebRequest |
|
|
473 | (1) |
|
Class PutMethodWebRequest |
|
|
474 | (1) |
|
|
475 | (1) |
|
|
476 | (1) |
|
|
476 | (5) |
|
|
481 | (1) |
|
|
481 | (4) |
|
|
485 | (1) |
|
|
486 | (4) |
|
|
490 | (3) |
|
|
493 | (2) |
|
|
495 | (1) |
|
Package com.clarkware.junitperf |
|
|
495 | (12) |
|
|
495 | (1) |
|
|
496 | (4) |
|
|
500 | (1) |
|
|
500 | (1) |
|
|
501 | (1) |
|
|
502 | (1) |
|
|
503 | (2) |
|
|
505 | (2) |
Index |
|
507 | |