So Apache Ant 1.8.0 is out and I'm supposed to follow a tradition I started with Ant 1.6.2. If you can be sure that you are at least using Ant 1.7.0 then the built-in <antversion> task/condition will do:

  <antversion property="Ant-1.8.0-or-later"
              atleast="1.8.0"/>

otherwise the trick of checking for a class that has been introduced with Ant 1.8.0 can always be used:

  <available property="Ant-1.8.0-or-later"
             classname="org.apache.tools.ant.types.resources.MappedResource"/>

path: /en/Apache/Ant | # | Writebacks

Antoine Levy-Lambert has recently built the first release candidate for Ant 1.8.0 and called for a vote, so we should be close to the first Ant release since eighteen months. This release mostly brings enhancements and bug fixes to many tasks and types (this is the real strength of Ant IMHO) but there also are a few core changes, the full list is here.

My personal top five changes (I know there are six items, but the first one doesn't count ;-):

extension-point and some changes in import and its new cousin include have been inspired by Easyant which can now use an un-patched version of Ant together with a custom ProjectHelper to create a build system quite different from Ant's original ideas. ProjectHelper is the mechanism that allowed me to sketch JavaFront or Nicolas Lalevée to write GroovyFront which lets you write build files in Groovy.

path: /en/Apache/Ant | # | Writebacks

When my Mum called us this morning to tell us that my brother's first daughter was born my kids celebrated "finally I'm a cousin".

Welcome Carina - being born on 11/11 will not always be easy in the rhine area - and congratulations Claudia and Maik.

path: /en/personal/family | # | Writebacks

The GWT Tasks stuff made me work through some very old TODO items that have seriously been sitting in my inbox unanswered far too long.

More than three years ago I wrote an Ant task to be used inside NAnt or MSBuild build files and apparently some people actually use it. About a year ago Martin Harper told me that only lower case Ant properties worked but I never got around looking into it.

It turned out that I foolishly used used System.Collections.Specialized.StringDictionary to store the properties, which is not case sensitive. While I was at at it, I moved the whole class up to .NET 2.0 using generics and provided a Visual Studio solution.

Here is a new drop of source code as well as a pre-compiled DLL containing the task. The DLL has been compiled against NAnt 0.8.5 using VS 2008 - if you need any other combination (or a version not compiled against NAnt), please grab the source ZIP and compile it yourself.

The source is also available from a darcs repository:

darcs get http://stefan.samaflost.de/repos/anttask/

path: /en/dotNet | # | Writebacks

The Apache Gump project is five years old today and its birthday present is support for git.

To be honest I started working on git support when I saw JUnit moving away from Sourceforge a few weeks ago - and I didn't realize Gump's birthday was upcoming until last week. Still it is a nice coincidence and made a good tag line.

The Python code to use git has been in trunk for a a few days and I merged it into the code base running main Gump yesterday. Of course I managed to break the four lines of Python code I didn't run via Pylint, twice. Sorry for the broken Gump runs last night.

Norman Maurer helped me out when I had trouble getting git installed on the Solaris Zone (one of many people I owe a beer in Amsterdam) and I hope I now have a working version of git on vmgump. When all things look good I'll turn the switch on JUnit.

Next up will be darcs, Mercurial and Bazaar - but since we don't really have any project using them, it is a rather low priority project to me.

path: /en/Apache/Gump | # | Writebacks