has been released just an hour ago, please give our mirrors some time to catch up. Antoine is going to hold back the freshmeat crowd a few more hours.

This really is more or less a pure bugfix release with some nice improvements thrown in, in particular better support for Kaffe and workarounds for some JDK 1.5 oddities. See also here or here.

path: /en/Apache/Ant | #

Almost two weeks ago (gee, I must find more time, somewhere, somehow) Vincent Massol talked about "reusable Ant tasks".

Looking closer, he doesn't really want to reuse the Ant tasks, he wants to reuse logic from the tasks. Instead of

Expand expand = new Expand();
expand.setSrc(new File(zipfile));
expand.setDest(new File(destdir));
you really want to write (pure fiction right now)
ZipUtils.expand(new File(zipfile), new File(destdir));

Ant has already factored out quite some pieces into helper classes, take a look at FileUtils with copyFile and renameFile for example. There certainly is more we could move around into pieces independent of Ant and I expect this to happen when we create more antlibs.

So far I don't sense any resistance against moving code into helper classes, but you must understand this is not a first-class concern for Ant. Ant can reuse Ant quite well ;-)

If you want to reuse a piece of code from Ant and think it is not accessible enough, I wouldn't expect us to reject your patches. The only thing you need to be aware of is that Ant's holy grail of backwards-compatibility applies to the public Java APIs as well, so please don't break them. Join dev@ant and tell us about your ideas.

path: /en/Apache/Ant | #

Have I ever said that IKVM.NET is cool? I should.

Octavo:/tmp bodewig$ cat > build.xml
  <echo>os.name = ${os.name}</echo>
  <echo>java.home = ${java.home}</echo>
  <echo>ant.java.version = ${ant.java.version}</echo>
  <echo>java.vendor = ${java.vendor}</echo>
  <echo>java.version = ${java.version}</echo>
Octavo:/tmp bodewig$ ant
Buildfile: build.xml
     [echo] os.name = Mac OS X
     [echo] java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home
     [echo] ant.java.version = 1.4
     [echo] java.vendor = Apple Computer, Inc.
     [echo] java.version = 1.4.2_05

Total time: 2 seconds

Octavo:/tmp bodewig$ JAVACMD=/usr/bin/mono ANT_OPTS=/Users/bodewig/ikvm/bin/ikvm.exe ant
Unable to locate tools.jar. Expected to find it in /Users/bodewig/ikvm/bin/lib/tools.jar
Buildfile: build.xml
     [echo] os.name = Unix
     [echo] java.home = /Users/bodewig/ikvm/bin
     [echo] ant.java.version = 1.5
     [echo] java.vendor = Jeroen Frijters
     [echo] java.version = 1.4

Total time: 23 seconds

More experiments to come.

The difference between in java.version and ant.java.version means, GNU CLASSPATH already has java.lang.Readable

path: /en/dotNet/ikvmnet | #

Back in the early Ant 1.2 days when Ant still had to explain why it was there and IDE support was nowhere to be found (well, NetBeans had), Simeon Fitch started to work on a GUI front-end for Ant named Antidote. He put a lot of effort into it and was granted committer access to Ant almost immediately since we others simply couldn't keep up with committing his constant stream of patches otherwise. About half a year later Antidote attracted a second committer, Christoph Wilhelms, and we decided to separate Antidote's CVS module from Ant's.

Unfortunately Simeon had to leave the project shortly thereafter and Christoph got eaten up by his job much more often than was good for the project (and for him, I suppose). No other Ant committer wanted to jump in, some of us - like myself - simply don't enjoy GUI stuff enough, others didn't have enough time to share. Antidote turned from a code base that was developed too fast to keep up with into a dormant project.

Antidote is one of the examples I talked about a long time ago. Ant accepted the project even though the Ant community wasn't ready to take ownership of it. We have chosen the committers very carefully, but even then people will leave.

Now the Ant project has pulled the plug, the code base has been retired. This means we'll no longer accept patches for it, because we no longer want to pretend it was supported.

Antidote has found its resting place here - at least until somebody comes, picks it up and rejuvenates it.

path: /en/Apache/Ant | #

is out.

path: /en/Apache/Ant | #

In the tradition of this entry:

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

will work.

path: /en/Apache/Ant | #