I'm not following this line of thought...
From what I gathered, JDK 1.1 support is already broken in a few places in Ant 1.5.x, *and* there are very few 1.1 users since nobody ever complained about 1.5.1/2's bytecode not being 1.1 compatible!
Leaving JDK 1.1 behind should also mean forking the 1.6 code from the 1.5 code.
slowly and surely, it will.
I don't see reasons to try to back-port fixes made on 1.6 to the 1.5. Only bugs identified by people running JDK 1.1 should make it to the 1.5 branch. This should be the only activity going on in that 1.5 branch.
to date we are putting fixes to the 1.5 branch into 1.5.x, both minor and major, the zip work being the biggest. If any of that work had been in Java1.2 style, we couldnt have back ported it. Some of the changes (I think of the weak reference stuff) did have extra work to get into 1.1 compliance, incidentally.
Once 1.6 ships, then we can stop doing any work to the 1.5.x branch, so this issue of having to back port code into a java1.1. compatible branch goes away. Except for people who want to maintain 1.1 support, and they get to do the work themselves.
Given the above, there are no reasons to limit the 1.6 code base from *any* change that's JDK 1.2 (Java 2) compatible. That includes moving everything to the Java 2 Collections.
I dont see the java2 collections as the compelling reason for this. They are nice, I use them, but it is really things like classloader, security manager, weak references and other major system changes that are forcing the move.
As I said before, 1.5.x is a damn good release (once 1.5.3 is out), and should more than satisfy JDK 1.1 users (wherever they're hiding). The buck has to stop somewhere, and from the votes, it's clear 1.6 should depend on JDK 1.2. This should not prevent though JDK 1.2 to be fully used everywhere it's possible.
Steve and Costin might as well -1 the move to JDK 1.2 with this kind of thinking. --DD
I'm very happy with the move. I just don't think we should use this as an excuse to go s/Hashtable/HashMap/ s/Vector/ArrayList/ through all the old code, of which there is a frighteningly large amount, just for the sake of it. I know this is at odds with 'refactor mercilessly', but as Conor's test coverage data shows, we dont have the test coverage to refactor mercilessly :(
Actually I think, like Costin, we could take some of the common reflection points and move them to java1.2. Like where we set file timestamps, because if this is done often enough then we gain a real speedup.
-Steve