RSS Feed

New Adventures in Software


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.

One Response to 'Java Power Tools'

Subscribe to comments with RSS

  1. John Smart said,

    on December 23rd, 2008 at 6:45 am

    Hi Dan,

    Thanks for your useful comments – I’ll definitely be considering many of the tools you mentioned for the second edition. Your point on distributed version control systems is very valid, and it is an area I am keen to research further. There are also plenty more testing tools out there, such as the excellent easyb, which are on the list for the next edition.

    Your comments on the CI tools are interesting, and reflect how fast this market has been moving over the last few years. When the book was planned, Hudson wasn’t even on the radar (it was included right at the end of the writing phase)! You are right in implying that Hudson has now pretty much taken an undisputed lead in the O/S CI servers.

    Concerning commercial tools, my decision to exclude them was primarily one of scope, and also of existing documentation – most commercial tools already have decent documentation, which is not always the case with O/S tools. In future editions, however, you can expect to see references to JIRA and some of the other commercial tools of this type.

    Cheers,

    John Smart.