ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <>
Subject Re: [VOTE] JDK 1.1 support
Date Thu, 20 Mar 2003 00:51:50 GMT
Christoph Wilhelms wrote:
> Hi Costin!
>>+1 on your comment ( and a preemptive -1 on changing any 
>>public method that
>>uses Hashtables to use Maps -  "just because we can" :-). 
>>Using Maps in new
>>code or tasks should be fine.
>>Refactoring some of the introspection code - like support for 
>>context class
>>loader or jdk1.2 methods - is worth it ( IMO ), as it'll make the code
>>easier to understand. 
> I do not want to sound too arrogant, but IIUC "refactoring" implies the
> stability of interfaces - otherwise it would change/break the interface and
> it isn't refactoring anymore ;). Just if I understood Martin Fowlers
> Refactoring book correctly *g*!

Putting my 'I used to use formal methods' hat on, interfaces as defined 
by Parnell in 1974 were the combination of signature and semantics, not 
just the binary signature that is taken as 'interface' in Java and 
similar languages. Refactoring in the Ant context strives to retain the 
same behavior against the specification, that specification being 
written in Junit test cases and the Gump builds.

A lot of refactoring changes the internals of stuff around. Look at the 
recent CVS diffs for the .dotnet packages if you want to see rampant 
IDEA refactor buttons at work. I do, you see, think it is very cool 
indeed, especially the minimal side effect commands in IDEA. Many of 
which (pull member up, push member down) do change the signatures of 

In an OSS project, we have to deal not only with the external behaviour 
of the app, but with people who have subclasses our classes, and to a 
lesser extent people who are branching from the main CVS tree. If we 
refactor manically the moment Java1.2 is allowed, we will branch too 
rapidly from the 1.1 codebase to be be able to share patches across the 
source trees.

This doesnt mean I am not in favour of refactoring stuff, just that we 
dont make it extra hard for us to do the 1.5.x maintenance as we do so.

View raw message