>>> Could taskdefs be specified immediately. ie. move the main >>> chunk of it from init to execute. >> >> count this as a second vote ;) > >Motion thirded.
This has me intrigued. I do not believe it is as simple as moving this code from init to execute. The trouble is that Ant constructs instances of all the tasks up front (calling init as it goes), then goes off and executes them. Defering the taskdef to execute means that the new tasks will not be defined in time. An alternative would be to allow taskdefs to be deferred as an option. What that would do instead of creating the "real" task is to create a instance of a new class, say "proxyTask". This task would be special and would simply accumulate the attributes, as well as being passed the name of the real task. When it comes time to execute this task, it would attempt to create an instance of the real task, apply all the attributes, and finally invoke init followed by execute. What I like about this proposal is that virtually all the complexity is internal - the user can be blissfully unaware of the internal machinery required to make this work. - Sam Ruby
