We've settled on * allow tasks to be loaded from jars. tasks should be indicated by either xml file in TSK-INF/taskdefs.xml or manifest file.
and we've also agreed that these jars could also contain data types and other pluggable components. What we have not defined at this point is whether we should use 1) Entries in the MANIFEST.MF 2) an XML file 3) something else to provide Ant with all necessary information about the specific library. My preference here is to use an XML file and the syntax one would use in a build file as well, i.e. use <taskdef> to define a task, <typedef> to define a data type and so on. This file should reside in META-INF and I propose META-INF/antlib.xml. The main reason is consistency. Other details to resolve are * Will each task library be loaded with a class loader of its own to avoid class-name or class-version clashes? I'm not a class loader expert and can only hope that breaking JDK 1.1 compatibility will make the whole class loader business a bit easier. At first glance, they should probably be separate. * Will each task library be assigned to an XML-Namespace to avoid task-name clashes? IMHO, yes. Maybe we should use the name of the jar file (without extension) as the namespace prefix. * The extension of the library file itself. ".tsk" has been proposed, but this might put too much focus on tasks. How about ".ant"? * We've agreed to store documentation within the library itself - where? We shouldn't store formated docs but only the source XML files for the documentation inside the libs IMHO - I'd put them in META-INF/doc maybe with subdirectories for tasks and types so that a task generating the documentation can easily sort them into categories. * others? Stefan