yesterday we released Ant 1.8.3, go grab it from the download page. By pure coincidence it was released on a leap-day.

This release really mostly is a bug fix release, see the release notes for a complete list. There isnt anything major sticking out to me, but I know people have been bitten by some of the bugs - like forked Java processes hanging when they read from - so for them the new release was important.

The dev team has decided to drop Java 1.4 support (as Ant's runtime) for trunk, so this may likely be the last release supporting Java 1.4. We have prepared a branch so we may be able to create more 1.8.x releases if a major bug raises its head. For trunk this means we'll be able to start using "modern" features like generics. It also means I can merge some improvements like Zip64 support from Commons Compress into Ant.

One of the fixes introduced a new class in order to better multiplex between System.out and System.err when forking a new process. This allows Ant 1.8.3 to be detected by either

  <antversion property="Ant-1.8.3-or-later"


  <available property="Ant-1.8.3-or-later"

It's been the first time I acted as Ant's release manager since Ant 1.1 more than eleven years ago, quite a bit has changed WRT process but also automation since then. It wasn't as painful as I feared it to be, largely because we no longer ship optional tasks that require third party jars that cannot be downloaded freely.

path: /en/Apache/Ant | #

A few days after Apache Commons Compress 1.3 has been released the Compress Antlib has seen a new release as well. This gives Ant support for Zip64 extensions, the Unix dump format (read-only) and the Pack200 format.

Prior to this release Pack200 support has already been available via a a task at but the Compress Antlib also adds a pack200resource as well as a pack200normalize task that can be used to "normalize" a JAR so that it can be signed, packed and unpacked with the signature remaining valid.

path: /en/Apache/Ant | #

The last log4net release already stopped supporting Compact Framework 1.x and the Shared Source CLI as part of the binary distributions - but versions for them are still buildable from source. In order to figure out what platforms we will need to support in future releases the team is asking log4net's users to participate in a small survey.

Rather than repeating Roy's whole mail, here is the original announcement.

path: /en/Apache/Log4Net | #

As the release manager of this baby I'm happy it is done, the final steps took longer than I anticipated. As a user of log4net I'd say it was about time. Almost exactly five and a half years after the 1.2.10 release Apache log4net has a new release with lots of bug fixes a few new features - and support for .NET 4.0 as well as the Client Profiles of 3.5 and 4.0.

See the release notes for all the details, download 1.2.11 (remember to unblock the ZIP), tell us if anything doesn't work and join the community.

path: /en/Apache/Log4Net | #

I spent large chunks of July and August working on Zip64 support for the ZIP package of Commons Compress and think it is in a state where we can have more people test it. It needs some interop tests against PKZip (dont have access to it myself) and I may need to document the known interop problems with OpenJDK7, but that's it.

As a side effect of the Zip64 stuff (which enables Compress to deal with archives and entries > 4GB or with more than 64K entries) Commons Compress 1.3 will require Java5 as I thought we'd need Deflater#getBytesRead but it turned out this method does not return the actual number of bytes read but the number modulo 2^32 (it seems to be an unsigned int that's wrapping around) - at least for Java5 and 6, OpenJDK7 seems to be OK.

Given that Java5 was not strictly necessary I may even think about backporting the stuff to Ant's zip package.

Then Compress' trunk contains read-only support for the Unix dump format due to Bear Giles and support for Pack200 compression. It may even get support for XZ compression based on XZ for Java due to Lasse Collin - if we can find an easy way to integrate it.

path: /en/Apache/Commons | #