Professional Java tools for extreme programming: Ant, XDoclet, JUnit, Cactus and Maven (Wiley, 2004)