ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Reilly <peter.rei...@corvil.com>
Subject Re: task available task
Date Thu, 22 Jan 2004 10:35:41 GMT
Some quick answers without writing code;

Steve Loughran wrote:

>
> just thought...who else thinks it would be handy to have a task that 
> probed for a task being defined at that point in the build.
>
>
> e.g.
>
> <taskavailable property="nice.present" task="nice"/>
>
> To date we can do the thing with the classname, but that requires 
> knowing the full classname, an implementation detail that should not 
> matter,
>
>
> Assuming this is a good thing,
>
> 1. what is the trick for looking up a taskname?

Use def = ComponentHelper#getDefinition(componentname)
  note that in ant1.6.0 tasks and datatypes are in the same map - so 
this would return the anttypedefinion
 for "fileset" as well as "echo". Note that this will return sucessfully 
for optional tasks - like "script".
The available task would also need to check if the class of the 
anttypedefintion can be found:
 i.e. if   def.getExposedClass(getProject())  is present.

>
> 2. what should the task do? It could set the property to the name of 
> the impl class.

In ant1.6.0 things are a little more compilicated - macrodefs, 
scriptdefs etc are also tasks - it would
make more sense to set the property to "yes".

>
> 3. what about namespaces?

Namespaces URIs + task name are mapped to a component name as URI + ":" 
+ taskname

so ComponentHelper#getDefinition("antlib:net.sf.antcontrib:for") would 
work for:

  <project xmlns:ac="antlib:net.sf.antcontrib">

      <taskavailable property="for.present" task="antlib:net.sf.antcontrib:for"/>

  </project>


Users may expect the following:

    <project xmlns:ac="antlib:net.sf.antcontrib">

      <taskavailable property="for.present" task="ac:for"/>

  </project>

Peter

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


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


Mime
View raw message