Java Power Tools

Posted in Books, Java by Dan on October 13th, 2008

I’ve been keen to take a look at John Ferguson Smart‘s Java Power Tools since I first found out about it. Fortunately, it has just been added to the ACM’s online books programme so, as an ACM member, I’ve been able to read it online.

The book consists of 30 chapters, each dedicated to a different development tool. Build tools, version control, continuous integration, testing, profiling, static analysis and issue-tracking are among the topics covered. For most tasks, more than one option is presented. For example, the book covers both Ant and Maven, and JUnit and TestNG. All of the tools covered are open source and freely available.

Java Power Tools

Some of the chapters will only be of interest to beginning Java developers. I imagine that most Java professionals already know how to use Ant and some kind of version control system. On the other hand, the book also introduces some tools which are not so well-known, so you are sure to find something useful here.

CVS and Subversion are the version control options demonstrated. I can’t help thinking that Git (or even Mercurial) would have been a better choice for inclusion than CVS.  Usage of distributed version control systems is growing whereas CVS has effectively been supplanted by Subversion.

Elsewhere there are no such omissions. The author covers four different continuous integration servers: CruiseControl, Continuum, LuntBuild and Hudson. This is probably overkill. I haven’t used LuntBuild, but I would quickly dismiss CruiseControl and Continuum in favour of Hudson. It would have been sufficient to cover Hudson and one other.

The coverage of testing tools is particularly thorough, and is probably the most useful part for experienced developers. Not only does it cover JUnit 4 and TestNG, but it also goes into some detail on a variety of related tools, such as DbUnit, FEST and Selenium, and performance testing tools including JMeter and JUnitPerf.

I found the chapter on the JDK’s profiling tools to be useful and there is also a chapter on profiling from Eclipse, but nothing on the NetBeans profiler. This is my only real gripe with the book. Three of the chapters are Eclipse-only with no alternatives offered for users of other IDEs. One of these is the chapter on the Jupiter code review plug-in. ReviewBoard might have been a better choice.

All-in-all though, this is a substantially useful book. At 910 pages it covers a broad range of topics without skimping on the necessary detail. There are dozens of ideas for improving and automating your software development processes.

If you want more information, Meera Subbarao at JavaLobby has also reviewed Java Power Tools.