On Friday 15 August 2003 05:36, Costin Manolache wrote: > Stefan Bodewig wrote: > > On Wed, 13 Aug 2003, Costin Manolache <[EMAIL PROTECTED]> wrote: > >> All this overriding may create some bad maintaince problems. > > > > I agree for overriding in arbitrary namespaces, but we have to keep > > supporting it for the default namespace. > > > > We've added support for task overloading when Ant added a task with > > the name <manifest> and FOP's build broke as they had a manifest task > > of their own. Without overriding, each new task in Ant could > > potentially break build files. > > Namespaces are supposed to be a better/different solution for this problem. > > I agree we should keep overriding for the default namespace, for backward > compat. But I don't think it is a good idea to support overriding in any > other case, and the default namespace should have a strong warning that > namespaces should be used instead of overriding.
The current code has a bug in this area: I was porting from: int logLevel = Project.MSG_WARN; if (old.getName().equals(taskClass.getName())) { ClassLoader oldLoader = old.getClassLoader(); ClassLoader newLoader = taskClass.getClassLoader(); // system classloader on older JDKs can be null if (oldLoader != null && newLoader != null && oldLoader instanceof AntClassLoader && newLoader instanceof AntClassLoader && ((AntClassLoader) oldLoader).getClasspath() .equals(((AntClassLoader) newLoader).getClasspath()) ) { // same classname loaded from the same // classpath components logLevel = Project.MSG_VERBOSE; } } project.log("Trying to override old definition of task " + taskName, logLevel); to: int logLevel = Project.MSG_WARN; if (def.getClassName().equals(old.getClassName()) && def.getClassLoader() == old.getClassLoader()) { logLevel = Project.MSG_VERBOSE; } project.log( "Trying to override old definition of task " + name, logLevel); This does not work for the new types of definitions (macrodef, presetdef, and scriptdef), so I am thinking of changing this to always do the warning (unless they are the same definition as reported by the AntTypeDefinition). Peter --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]