Let's start by getting the title out of the way. This book is about open source tools for Java software development projects. Yes, there is a short introductory chapter on XP, and the tools discussed may be of use to XP practitioners, professional or otherwise, but in no way do you have to be following XP or any agile methodology to benefit from using the tools described in this book.
The book is presented in the usual Wrox style, with head and shoulder shots of some of the authors gracing the front cover. It is an expanded second edition of a book from 2001, with 'Professional' tacked onto the start of the title.
Once past the introduction to XP, the book moves on via an overview of Java and J2EE deployment concepts to 3 sections covering tools for building projects (Ant, XDoclet), automated testing (JUnit, JUnitPerf, HttpUnit, JMeter, Cactus, JspTestCases, jcoverage, Jemmy, jfcUnit, Abbot) and continuous integration (CruiseControl, Anthill). Interspersed with these are chapters on CVS, Bugzilla and Maven. These are followed by 150 pages of API reference and an appendix listing the sample application used when discussing some of the tools. There is a distinct J2EE bias to the book, with much space devoted to building and testing web applications and EJBs.
With eight different authors credited, you might expect the quality of the chapters to vary, and you would be right. Several are good, particularly where the document for the tool in question is sparse. I found the chapter on "Swing testing with Jemmy" particularly useful, and the chapter on Maven a good introduction to Maven. Most of the others cover their subject in a workmanlike fashion, but I did feel that a couple offered little beyond so much rehashing of the documentation. No indication is given as to the division of authorial responsibility.
Sadly, the book is badly let down by some of the code extracts. There are obvious syntax errors, and extra spacing scattered haphazardly. Some, but as far as I can tell not all, of the code can be downloaded from the Wrox website, but even here some of the samples are incomplete.
Every Java programmer needs to know these tools exist, and the aim of the book to explain and spread good software development practice by showing how such practices can be implemented with readily available tools is laudable. This book is not a must-have, but is worth passing around colleagues new to Java. Though do warn them about the code samples first.