ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Weighill-Smith <>
Subject Re: new Task subclass
Date Thu, 22 Jul 2004 11:22:27 GMT
My vote for a "language" within if/unless elements is to use XPath (1 or
2). Pretty powerful and standard within the XML domain! You could even
think of supporting path expressions that access the entities (targets,
properties, types etc.) within the current Ant build file and could
provide some supporting functions that allow tasks and/or targets (in
the current build) to be invoked or other ant-specific operations to be

To maintain backwards compatibility, all that is needed is a delimiter
that indicates that an XPath expression is being used. E.g.

... if="debugmode" ...

for backwards compatibility or

... if="@call("available", "file", ${file}) == true()" ...

to indicate that the "available" task should be called with the
specified property set as the "file" attribute (XPath supports "varargs"
so having name/value pairs of parameters to define the attributes of the
invoked task is easy to implement). Explicit functions could be made
available for the most common task invocations in conditions.

Finally, it would even be possible to drop the delimiter and evaluate
the expression as an XPath instead of as a property name if there are
any "illegal" property name characters (such as "(", "/" or whitespace)
in the expression.

Phil :n)

On Thu, 2004-07-22 at 11:47, Stefan Bodewig wrote:

> On Thu, 22 Jul 2004, Jose Alberto Fernandez
> <> wrote:
> > As per if/unless itself, I really would like to explore more what
> > some people have suggested about having a richer language than just
> > set/unset.
> PropertyHelper?
> IOW, I think we already have the infrastructure needed to do that in
> Ant's core.
> Stefan
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

Phil Weighill-Smith <>
Volantis Systems

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message