rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780471207085

Java Tools for Extreme Programming : Mastering Open Source Tools, Including Ant, JUnit, and Cactus

by ;
  • ISBN13:

    9780471207085

  • ISBN10:

    047120708X

  • Format: Paperback
  • Copyright: 2002-01-01
  • Publisher: Wiley
  • Purchase Benefits
List Price: $39.99

Summary

Learn how to use the hottest new Java open source tools for eXtreme Programming eXtreme Programming (XP) is a new development methodology for building software systems quickly without sacrificing quality. New Java open source tools have appeared recently that help with the most time-consuming and difficult part of the XP process-testing, integration, and deployment. Java Tools for eXtreme Programming is the first complete guide to using those tools for XP. Throughout the book, author Richard Hightower uses a sample application to demonstrate how each Java tool is used. For each tool, he provides a concise description of key concepts, plenty of code examples, and directions for setting up scripts for automating the development step in which the tool is used. The book also features a detailed reference to each of the major tools, complete with coding examples. XP is the most popular new development methodology A practical, code-intensive guide to the tools that enterprise Java developers need when using the XP methodology to build applications Companion Web site features sample code, XP software tool updates, and links to useful XP sites.

Author Biography

RICHARD HIGHTOWER is Director of Development at eBlox, where he spearheads the companys XP adoption efforts and provides technical leadership. He is a regular contributor to Java Developers Journal and is the former Senior Software Engineer for Java Architecture at Intel.

Table of Contents

Acknowledgments xi
Introduction xvii
Part I Introduction and Key Concepts
Introduction to Extreme Programming
1(14)
XP Overview
1(11)
Four Values of XP
2(1)
Five Principles of XP
3(2)
Twelve Practices of XP
5(7)
Adopting XP?
12(1)
Summary
13(2)
J2EE Deployment Concepts
15(14)
The JAR File
17(3)
JAR Files and Applets
18(1)
Executable JAR Files
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)
Summary
27(2)
Example Applications
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)
Database Schema
35(1)
Web Interface
36(3)
Build System
39(4)
Setting Up the Database with Test Data: A Small Taste of Ant
43(5)
Complete Listings
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)
Summary
73(2)
Part II Mastering the Tools
Continuous Integration with Ant
75(16)
Basics of Using Ant
77(2)
Projects, Targets, and Tasks
77(2)
Standard Targets
79(10)
Simple Example
80(2)
Working with Properties
82(1)
Paths and Filesets
83(2)
Conditional Targets
85(2)
Using Filters
87(1)
Nested Builds
88(1)
Summary
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)
Running an Ant Buildfile
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)
Hello World Main Project
104(3)
Creating a Master Buildfile
105(1)
Analysis of the Master Buildfile
106(1)
The Applet Project
107(6)
Overview of the Applet Class
107(4)
Creating a Buildfile for the Applet
111(1)
Building the Applet with Ant
112(1)
Hello World Recap
113(1)
Summary
113(2)
Building J2EE Applications with Ant
115(48)
Hello World
115(1)
Web Application Project
116(18)
Web Application Project Directory Structure
117(1)
HelloWorldServlet.java
117(2)
Analyzing HelloWorldServlet
119(1)
HelloWorld.jsp
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)
Enterprise JavaBeans
134(19)
Directory Structure of the Enterprise Beans Project
134(1)
The HelloWorld Entity Bean
135(2)
The Session Bean
137(3)
The Shadow Proxy Bean
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)
Running the Buildfiles
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)
The Pet Store Case Study
159(3)
Summary
162(1)
Unit Testing with JUnit
163(50)
Overview of JUnit
165(13)
Writing a Test Case
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)
Case Study Conclusion
211(1)
Summary
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)
A Blend of Approaches
217(1)
Why Cactus?
217(1)
Installing Cactus
218(5)
Server-Side Installation
219(1)
Client-Side Installation
220(1)
A Simple Example
221(2)
Cactus Architecture
223(4)
Beginning Execution
223(1)
The beginXXX() Method
224(1)
Calling the Redirector Servlet
224(1)
Server-Side Setup
224(1)
Server-Side Execution
225(1)
Results Collection and Post-Processing
225(2)
Writing Cactus Tests
227(9)
The Code Under Test
227(2)
Extending the Appropriate Class
229(1)
The beginXXX() Method
230(1)
The Implicit Objects
231(1)
setUp() and tearDown()
232(1)
testXXX()
233(1)
endXXX()
234(2)
Cactus with Ant
236(2)
The Strategy
236(2)
Testing Filters
238(2)
An Example
238(2)
JSPTestCases and Custom Tags
240(19)
Case Study: The Pet Store with Custom Tags
259(7)
The Business Need
259(1)
Finding a Starting Point
259(1)
The TestCase
260(6)
Summary
266(1)
Functional Testing with HttpUnit
267(28)
Why Functional Testing?
267(1)
Why HttpUnit?
268(2)
HttpUnit Basics
270(12)
WebClient Functionality
270(1)
Response Inspection and Multiple Pages
271(11)
Advanced Topics in HttpUnit
282(4)
DOM Inspection
282(2)
Headers and Cookies
284(1)
Frames
284(1)
SSL
285(1)
HttpUnitOptions
285(1)
Technical Limitations
285(1)
Spider Example
286(7)
Spider Development: First Iteration
286(2)
Spider Development: Second Iteration
288(5)
Future Work on the Spider
293(1)
Summary
293(2)
Measuring Application Performance with JMeter
295(28)
Overview of JMeter
296(1)
JMeter Concepts
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)
Business Need
315(2)
Creating the Test
317(2)
Analysis
319(3)
Conclusion
322(1)
Summary
322(1)
Load Testing with JUnitPerf
323(20)
JUnit Perf Concepts
324(1)
TimedTest Example
324(8)
LoadTest Example
332(2)
Case Study
334(7)
HTTPUnit Test
334(2)
JMeter Configuration
336(1)
Putting It All Together
337(3)
Conclusion
340(1)
Summary
341(2)
Part III API and Tag Reference
Ant Tag Reference
343(34)
Ant Command Line Options
343(1)
XML Tag
344(1)
Ant Parent Elements
344(4)
Project Tag
344(1)
Target Tag
345(1)
Path Tag
346(1)
Filter Tag
347(1)
Tstamp Tag
348(1)
Ant Key Tasks
348(4)
Ant Task
348(1)
Antcall Task
349(1)
Available Task
349(1)
Echo Task
350(1)
Fail Task
351(1)
Property Task
351(1)
Taskdef Task
352(1)
Directory and File System Tasks
352(4)
Chmod Task
352(1)
Copy Task
353(1)
Delete Task
354(1)
Mkdir Task
355(1)
Move Task
355(1)
Touch Task
356(1)
External Execution Tasks
356(8)
Apply Task
356(2)
Exec Task
358(1)
Execon Task
358(2)
Java Task
360(1)
Javac Task
361(1)
Sql Task
362(2)
File Library Tasks
364(3)
Jar Task
364(1)
War Task
364(2)
Zip Task
366(1)
Unjar, Unzip, and Unwar Tasks
367(1)
File Readers Writers and Tokenizers
367(2)
Replace Task
367(1)
Mail Task
368(1)
Source Control Tasks
369(1)
Cvs Task
369(1)
Get Task
369(1)
Some Key Optional Tasks
370(2)
Junit Task
370(2)
JunitReport Task
372(1)
Frequently Used Nested Parameters and Elements
372(5)
Classpath Element
372(1)
Mapper Element
373(1)
Fileset Element
374(1)
Patternset Element
375(1)
Zipfileset Element
376(1)
Ant API Reference
377(30)
Package org.apache.tools.ant
378(26)
Class AntClassLoader
378(1)
Class BuildEvent
379(1)
Interface BuildListener
380(1)
Interface BuildLogger
381(1)
Class DefaultLogger
382(1)
Class DesirableFilter
383(1)
Class DirectoryScanner
384(2)
Interface FileScanner
386(2)
Class IntrospectionHelper
388(1)
Class Main
389(1)
Class PathTokenizer
389(1)
Class Project
390(5)
Class ProjectHelper
395(1)
Class RuntimeConfigurable
395(1)
Class Target
396(2)
Class Location
398(1)
Class Task
398(2)
Class TaskAdapter
400(1)
Class BuildException
401(1)
Class UnknownElement
402(1)
Class XmlLogger
403(1)
Putting It Together
404(3)
JUnit API Reference
407(24)
Package junit.framework
407(17)
Class Assert
407(4)
Interface Protectable
411(1)
Interface Test
412(1)
Class TestCase
412(5)
Interface TestListener
417(1)
Class TestFailure
417(1)
Class TestResult
418(1)
Constructor
419(2)
Class TestSuite
421(3)
Package junit.extensions
424(7)
Class ActiveTestSuite
424(1)
Class ExceptionTestCase
425(1)
Constructor
426(1)
Class RepeatedTest
426(1)
Class TestDecorator
427(1)
Class TestSetup
428(1)
Methods
429(2)
Cactus API Reference
431(32)
Package org.apache.cactus
431(23)
Class AbstractTest Case
432(3)
Class Cookie
435(5)
Filter TestCase
440(1)
Class JspTestCase
441(1)
Class ServiceDefinition
442(1)
Class ServiceEnumeration
442(1)
Class ServletTestCase
442(4)
Class ServletTestRequest Deprecated
446(1)
Class ServletURL
447(2)
Class WebRequest
449(3)
Class WebResponse
452(1)
Class WebTestResult
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)
Class PageContextWrapper
459(1)
Class RequestDispatcherWrapper
459(1)
Class ServletConfigWrapper
460(1)
Class ServletContextWrapper
461(2)
HttpUnit API Reference
463(44)
Package com.meterware.httpunit
463(32)
Class AuthorizationRequiredException
464(1)
Class GetMethodWebRequest
464(1)
Class HTMLSegment
465(3)
Class HttpException
468(1)
Class HttpInternalErrorException
469(1)
Class HttpNotFoundException
469(1)
Class HttpUnitOptions
469(2)
Class HttpUnitUtils
471(1)
Class IllegalRequestParameterException
472(1)
Class MessageBodyWebRequest
473(1)
Class PostMethodWebRequest
473(1)
Class PutMethodWebRequest
474(1)
Class SubmitButton
475(1)
Class TableCell
476(1)
Class WebClient
476(5)
Class WebConversation
481(1)
Class Webform
481(4)
Class WebLink
485(1)
Class WebRequest
486(4)
Class WebResponse
490(3)
Class WebTable
493(2)
JUnitPerf API Reference
495(1)
Package com.clarkware.junitperf
495(12)
Class ConstantTimer
495(1)
Class LoadTest
496(4)
Class RandomTimer
500(1)
Class ThreadBarrier
500(1)
Class ThreadedTest
501(1)
Class ThreadedTestGroup
502(1)
Class TimedTest
503(2)
Interface Timer
505(2)
Index 507

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program