ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Hatcher <jakarta-...@ehatchersolutions.com>
Subject Re: Embedded dynamic ANT tasks.
Date Mon, 09 Jun 2003 16:49:41 GMT
Very nice!  I've dreamed of something like this for a long while  
(probably a few minutes after I figured out how Ant tasks are written).  
  I believe at least the Mutant proposal had this capability too, so  
maybe its implementation can be revisited to compare with what you've  
done.  I've not looked under the covers of how you implemented it, but  
result is great).

I'm guessing you aren't using the DynamicConfigurator interface, based  
on a follow-up e-mail.  It seems like it would be a lighter-weight way  
to deal with attributes and sub-elements.

I'd be way psyched to have something like this added to Ant's core.

	Erik


On Friday, June 6, 2003, at 10:53  AM, Dawid Weiss wrote:
>
> 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: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message