On Thu, Apr 23, 2009 at 8:13 AM, Jeffrey E Care <ca...@us.ibm.com> wrote:
> Off and on we've discussed more robust ways of determining target
> enablement, such as adding some type of EL syntax to if/unless.
>
> It dawned on me yesterday that we might already have the makings of a very
> robust system: why not use conditions nested in targets to determine if the
> target is enabled? I think effectively this is what people do already by
> having the "real" target depend on a "decision" target that sets (or
> doesn't) the controlling property used in the if attribute of the real
> target.
>
> We can quibble on the schema, but here's an example to illustrate the point:
>
> <target name="doSomeWork">
>   <target-enabled>
>     <and>
>       <istrue value="${controlling.property.1}"/>
>      <istrue value="${controlling.property.2}"/>
>     </and>
>   </target-enabled>
>
>   <!-- real work starts here -->
> </target>
>
> Thoughts?

Sounds like all we need is a <return/> "task" then ;-)

<ac:if> ... <ac:then> <return/> </ac:then> </ac:if>

More seriously, <target-enabled> sounds like a good idea, it's more
declarative, albeit a little heavy syntax wise (but then isn't Ant
heavy syntax wise ;-).

And advantage of doing it like this is that it's more obvious that
it's "evaluated" *after* the dependent targets, unlike the if/unless
attribute syntax (a common new user mistake is to assume if/unless are
evaluated before dependent targets are "run").

As long as <target-enabled> is restricted as the first child of
<target> only. --DD

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

Reply via email to