| | 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 |