Hello Dawid, I was thinking about something like that. There is DynamicConfigurator to support dynamic properties, but there is no way to create dynamic tasks. Maybe we should ask ANT developers to support task factories in addition to class names. It would be a simple patch. For example in ComponentHelper.createNewTask() we can add something like:
if (o instanceof TaskFactory) { o=((TaskFactory)o).createNewTask(taskType); } // continue if (o instanceof Task) { .... - Alexey. -- { http://trelony.cjb.net/ } Alexey N. Solofnenko Pleasant Hill, CA (GMT-8 usually) -----Original Message----- From: Dawid Weiss [mailto:[EMAIL PROTECTED] Sent: Friday, June 06, 2003 7:53 AM To: user@ant.apache.org Subject: Embedded dynamic ANT tasks. Dear ANT community, I thought one day: maybe it would be fun if I could define ANT tasks INSIDE the ANT script that is being executed? So it could look like this: > <!-- Define an embedded task and use it immediately --> > <target name="example" depends="prepare"> > > <!-- define the task --> > <embeddedtaskdef name="counterTask"><![CDATA[ > String message; > int min; > int max; > > void setMin(int min) { > // note how 'global' is used instead of 'this' > // global scope refers to the task instance anyway. > global.min = min; > } > > void setMax(int max) { > global.max = max; > } > > void setMessage(String message) { > global.message = message; > } > > void execute() { > if (message != null) > System.out.print(message); > for (int i=min;i<max;i++) { > System.out.print(i); > if (i+1 != max) System.out.print(","); > } > } > ]]></embeddedtaskdef> > > <!-- use the defined task right away! --> > <counterTask min="0" max="10" message="The numbers from 0 to 10 are: " /> > <counterTask min="5" max="20" message="And the numbers from 5 to 20 are: " /> > </target> I've played with BSH and BCEL and the solution can be found at: http://www.cs.put.poznan.pl/dweiss/index.php/projects/bsh-binding/index.xml? lang=en I personally find it quite a useful task, even though it started purely as a toy and a mind-exerciser :) Regards, Dawid _______________________ Dawid Weiss, http://www.cs.put.poznan.pl/dweiss Laboratory of Intelligent Decision Support Systems, Poznan UT, Poland --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]