I've been successfully (at least for my build scripts) running ant 1.5.3 with Kaffe. I have found a small cosmetic discrepancy in displaying the final elapsed build time. What I've done is to liberally copy the offending code from ant (attached as test.java) to provide you with a test case. Basically this is the outputs from both Sun JDK and Kaffe:
[EMAIL PROTECTED] jaco]$ javac test/test.java
[EMAIL PROTECTED] jaco]$ java test/test
Total time: 7 minutes 36 seconds (456789)
[EMAIL PROTECTED] jaco]$ /usr/local/kaffe/bin/kaffe test/test
Total time: {0,number} minutes {1,number} seconds (456789)
[EMAIL PROTECTED] jaco]$Greetings, Jaco
package test;
import java.text.ChoiceFormat;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class test {
public static final String ISO8601_DATETIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss";
public static final String ISO8601_DATE_PATTERN = "yyyy-MM-dd";
public static final String ISO8601_TIME_PATTERN = "HH:mm:ss";
public static final DateFormat DATE_HEADER_FORMAT = new SimpleDateFormat("EEE,
dd MMM yyyy HH:mm:ss ", Locale.US);
private static final MessageFormat MINUTE_SECONDS = new
MessageFormat("{0}{1}");
private static final double[] LIMITS = {0, 1, 2};
private static final String[] MINUTES_PART = {"", "1 minute ", "{0,number}
minutes "};
private static final String[] SECONDS_PART = {"0 seconds", "1 second",
"{1,number} seconds"};
private static final ChoiceFormat MINUTES_FORMAT = new ChoiceFormat(LIMITS,
MINUTES_PART);
private static final ChoiceFormat SECONDS_FORMAT = new ChoiceFormat(LIMITS,
SECONDS_PART);
static {
MINUTE_SECONDS.setFormat(0, MINUTES_FORMAT);
MINUTE_SECONDS.setFormat(1, SECONDS_FORMAT);
}
public static String formatElapsedTime(long millis) {
long seconds = millis / 1000;
long minutes = seconds / 60;
Object[] args = {new Long(minutes), new Long(seconds % 60)};
return MINUTE_SECONDS.format(args);
}
public static void main(String[] args) {
long elapsedTime = 456789;
System.out.print("Total time: ");
System.out.print(formatElapsedTime(elapsedTime));
System.out.println(" (" + elapsedTime + ")");
}
}
