Blogxter: What's coming in Ant in Action?
What's coming in Ant in Action?
12-Apr-2007 13:39:19, steve

I've received a couple of emails asking me what is exactly new in < href="">Ant in Action, so it's time I listed it.

  • The application is completely new. Its a diary application which can store events in a calendar. it starts of very minimal, but adds an Atom feed (through Rome) in the Web chapter, then adds persistence with EJB3. Nothing too complex, but it explores today's problems (webapps, feeds, persistence).
  • The application is Java 5+. Generics, annotations, etc. There's no details on the impact of Java 5, except when it impacts the build (e.g. the need to add the annotation JARs to the javac classpath)
  • Everything is very test driven. I've stuck with JUnit 3.8.x, not just because the junit task uses it, but because Cactus relies on it, and Cactus is the only way to run unittests inside the app server side (right now). There isnt enough in JUnit4 to justify the transition, because named methods works pretty well. TestNG, now that does bring value.
  • Libraries are managed with Ivy 1.4.1. Pulling down artifacts, sharing across projects.
  • Generating java code from XML via XSL.
  • Managing big builds using import, presetdef and macrodef.
  • I've chosen Luntbuild over CruiseControl for the continous integration server. CruiseControl is a very high-touch tool, and it doesn't let me chain work across projects the way Luntbuild, Bamboo and the like can do.
  • Deployment with SmartFrog. We look at how to do do a complete deployment of database, app server and applications, with JDBC driver installation and all the other details needed to bring up a full functional application server.
  • The Extending Ant section covers tasks, scripting, conditions, datatypes and resources. All with AntUnit tests. Every Ant task and type needs AntUnit tests. Existing tests written using ant-testutil can remain, but AntUnit is way more productive for writing new tests.

I've got some content that didn't make it in to the printed edition, that I will stick up on the site at some point:

  • Deployment with Cargo
  • Adding a project to Gump
There's some stuff I've dropped from this edition:
  • XDoclet, because it is covered well elsewhere, and because Java5 annotations will eventually eliminate it. Eventually, but not yet, because without annotations for servlets and JSP libraries, there is still some value in XDoclet.
  • The cc tasks of ant-contrib. The chapter on Native code from the first edition is gone.
  • How to work with Web Services by creating WSDL with Axis and Java2wsdl, then testing it with the wsdltodotnet task. I'm too unhappy with the current approach of JAX-WS to generating WSDL from method calls to encourage other people to use it. At the same time, I don't have space in 20 pages to explain XSD, WSDL and contract-first Web Service dev. If we had an alternative to WSDL and XSD, life would be easier.

I will stick the relevant chapters from the first edition up on the web at some point, so people who really need them can have them.

Anyone new to Ant should pick Ant in Action up for the coverage of the task and types, and the idea of evolving the build file, the tests and the source together. Experienced Ant users should grab it for the big project Ant: imports, macros and presets, and Ivy-based library management. Big projects need this stuff.

(C) 2003-2006 1060 Research Limited
1060 Registered Trademark and NetKernel Trademark of 1060 Research Limited
Powered by Netkernel