>This is true, but difficult to do. Some of the implementations of the different features change/improve if other features are present. For example the implementation of "onerror" uses the new anttypedefintion class. The implementation of the psuedo task "antlib" uses the add(Type) mechanism rather than explicity stating addTypedef and addTaskdef, this allowed other tasks that extend Definer to used in the antlib task (for example a definer that wraps Runnable objects as ant tasks, or a future implemation of roles).
>Also from a practical point of view, I find it difficult to maintain multiple >patched ant versions. True >The add[Configured](Type) methods are meant more for container like objects - >like the antlib task, the filterchain type or the condition base class. It >also allows custom extensions (e.g. new conditions) to be dropped in by third >party classes without special treatment. This (addConfigured) is important for antlibs to work. Antoine