| | | Copyright |
| | | Forewords |
| | | About the Author |
| | | Acknowledgments |
| | | Preface |
| | |
Part I:
Overview |
| |
| |
Chapter 1.
Introduction to Agile Java Development |
| |
| | What's Covered in This Chapter |
| |
| | Technologies Used in This Book |
| |
| | Software Development Methodology Used in This Book |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 2.
The Sample Application: An Online Timesheet System |
| |
| | What's Covered in This Chapter |
| |
| | Business Requirements |
| |
| | Software Development Methodology |
| |
| | Applying XP and AMDD to Our Sample Application |
| |
| | A Note About Wiki Software |
| |
| | Summary |
| |
| | Recommended Resources |
| | |
Part II:
Building the Sample Application |
| |
| |
Chapter 3.
XP and AMDD-Based Architecture and Design Modeling |
| |
| | What's Covered in This Chapter |
| |
| | Design Approach and Artifact Choices |
| |
| | Free-Form Architecture Diagram |
| |
| | From User Stories to Design |
| |
| | Exploring Classes Using CRC Cards |
| |
| | Application Flow Map (Homegrown Artifact) |
| |
| | UML Class Diagram |
| |
| | UML Package Diagram |
| |
| | Directory Structure |
| |
| | Sample File Names |
| |
| | End-to-End Development Steps |
| |
| | Acceptance Tests |
| |
| | Other Considerations |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 4.
Environment Setup: JDK, Ant, and JUnit |
| |
| | What's Covered in This Chapter |
| |
| | Java Platform Standard Edition Development Kit (JDK) |
| |
| | Directory Structure |
| |
| | Ant |
| |
| | JUnit |
| |
| | SimpleTest: Making the Tools Work Together |
| |
| | Test First Design and Refactoring |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 5.
Using Hibernate for Persistent Objects |
| |
| | What's Covered in This Chapter |
| |
| | An Overview of Object-Relational Mapping (ORM) |
| |
| | Design of Our Sample Database |
| |
| | Where HSQLDB and Hibernate Fit into Our Architecture |
| |
| | HSQLDB |
| |
| | Working with Hibernate |
| |
| | Other Hibernate Features |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 6.
Overview of the Spring Framework |
| |
| | What's Covered in This Chapter |
| |
| | What Is Spring? |
| |
| | Spring Packaging for Development |
| |
| | Spring Packaging for Deployment |
| |
| | Overview of the Spring Modules |
| |
| | Where Spring Framework Fits into Our Architecture |
| |
| | Benefits of Using Spring |
| |
| | Fundamental Spring Concepts |
| |
| | Spring Subprojects |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 7.
The Spring Web MVC Framework |
| |
| | What's Covered in This Chapter |
| |
| | Benefits of the Spring Web MVC Framework |
| |
| | Spring Web MVC Concepts |
| |
| | Spring Setup for Time Expression |
| |
| | Developing Time Expression User Interfaces with Spring |
| |
| | Cascading Style Sheet (CSS) |
| |
| | Timesheet List Screen: A No-Form Controller Example |
| |
| | Enter Hours Screen: A Form Controller Example |
| |
| | Views with No Controllers |
| |
| | Spring HandlerInterceptors |
| |
| | Our Sample Applicationin Action! |
| |
| | New Tag Libraries in Spring Framework 2.0 |
| |
| | A Word About Spring Web Flow and Portlet API |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 8.
The Eclipse Phenomenon! |
| |
| | What's Covered in This Chapter |
| |
| | The Eclipse Foundation |
| |
| | The Eclipse Platform and Projects |
| |
| | Eclipse SDK Concepts |
| |
| | Installing Eclipse |
| |
| | Setting Up Eclipse for Time Expression |
| |
| | Java Development Tools (JDT) Features |
| |
| | Installing the Eclipse Web Tools Platform (WTP) Plug-ins |
| |
| | Using Eclipse for Time Expression |
| |
| | More Eclipse? Yes, Plug-ins Galore! |
| |
| | Eclipse Team Support |
| |
| | Eclipse Help System |
| |
| | Tips and Tricks |
| |
| | Uninstalling Eclipse |
| |
| | An Unfair Comparison to IntelliJ and NetBeans |
| |
| | Summary |
| |
| | Recommended Resources |
| | |
Part III:
Advanced Features |
| |
| |
Chapter 9.
Logging, Debugging, Monitoring, and Profiling |
| |
| | What's Covered in This Chapter |
| |
| | Logging Overview |
| |
| | Jakarta Commons Logging (with Log4j and JDK Logging) |
| |
| | Debugging Java Applications Using Eclipse |
| |
| | Debugging Web User Interfaces Using Firefox |
| |
| | Debugging TimesheetManagerTest End-to-End (Browser to Database) |
| |
| | JMX Management and Monitoring |
| |
| | Java Profilers |
| |
| | Debugging Tips |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 10.
Beyond the Basics |
| |
| | What's Covered in This Chapter |
| |
| | Recently Added Java Features |
| |
| | Ant Tasks |
| |
| | JUnit |
| |
| | Hibernate |
| |
| | The Spring Framework |
| |
| | The Spring and Hibernate Harmony |
| |
| | JSP Tag Libraries |
| |
| | Refactoring |
| |
| | Other Considerations |
| |
| | Clustering |
| |
| | Multithreading |
| |
| | A Note About Java GUI (Thick Client) Applications |
| |
| | Configuration Management (CM) Environments |
| |
| | Asynchronous JavaScript and XML (AJaX) |
| |
| | Javadoc and Comments |
| |
| | Entire System in One WAR File! |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 11.
What Next? |
| |
| | What's Covered in This Chapter |
| |
| | Complete the Time Expression Application |
| |
| | XP and AMDD-Based Software Development |
| |
| | Java Platform |
| |
| | Ant |
| |
| | JUnit |
| |
| | Hibernate |
| |
| | The Spring Framework |
| |
| | Eclipse SDK |
| |
| | Logging, Debugging, Monitoring, and Profiling |
| |
| | Getting Help |
| |
| | A Quick Note About Code "Quality" Tools |
| |
| | Summary |
| |
| | Recommended Resources |
| |
| |
Chapter 12.
Parting Thoughts |
| |
| | My Near Future Plans |
| |
| | The Future, Agile Methods, Java Technology |
| |
| | Cheers! |
| | |
Part IV:
Appendices |
| |
| |
Appendix A.
Downloadable Code for This Book |
| |
| | Third-Party Libraries Shared Directory |
| |
| | Sample Application Directory (rapidjava/timex/) |
| |
| | Refactored Sample Application Directory (rapidjava/timex2/) |
| |
| | Spring-Hibernate Integration Demo Directory (rapidjava/springhibernate/) |
| |
| |
Appendix B.
Refactoring Done to Sample Application |
| |
| | SignInController.java: JMX Monitoring |
| |
| | TimesheetListController.java: JMX Monitoring |
| |
| | Manager Classes: Spring-Hibernate Integration |
| |
| | timesheetlist.jsp: Switch to Include File and Displaytag |
| |
| | enterhours.jsp: Swith to Include File and Timex Tag Library |
| |
| | *Test Classes and TimexTestCase |
| |
| | DateUtil.java: New Method |
| |
| | timex.css: New Styles |
| |
| | timexhsqldb.xml: Bad Data Defect Fix |
| |
| |
Appendix C.
Java Code Conventions |
| |
| |
Appendix D.
Securing Web Applications |
| |
| |
Appendix E.
Sample Development Process Cheat Sheet |
| |
| | Project Initiation |
| |
| | Exploration Phase |
| |
| | Planning |
| |
| | Incrementally Build Software in Iterations |
| |
| |
Appendix F.
Agile Modeling Values, Practices, and Principles Cheat Sheet |
| |
| |
Appendix G.
Extreme Programming (XP) Cheat Sheet |
| |
| | Overview |
| |
| |
Appendix H.
Cool Tools |
| |
| | Cross-Platform Tools |
| |
| | Microsoft Windows-Based Tools |
| |
| | Mac OS X-Based Tools |
| |
| | Linux-Based Tools (KDE) |
| |
| |
Appendix I.
Visual Patterns Research |
| |
| | The Problem |
| |
| | The Past: How We Have Been Kidding Ourselves |
| |
| | The Future: Agile Methods |
| |
| | My Perspective |
| |
| | Join the Community? |
| | | Index |