-1, I think it is a bad idea
> From: Peter Reilly [mailto:[EMAIL PROTECTED]
>
...
> I see three places where it/unless attributes could be added
> to macrodef.
>
> 1) at the macrodef definition.
> <macrodef name="showdir" if="on.windows">
> <attribute name="dir"/>
> <sequential>
> <ac:shellscript script="cmd.exe" tmpsuffix=".bat">
> <ac:value="/c"/>
> <ac:value="call"/>
> dir @{dir}
> </ac:shellscript>
> </sequential>
> </macrodef>
> <macrodef name="showdir" if="on.linux">
> <sequential>
> <ac:shellscript script="bash">
> ls -rlta @{dir}
> </ac:shellscript>
> </sequential>
> </macrodef>
>
If we have such a thing, how do I know whether the macro exists at all
or not at my point of use. Whether they do the same or have the same
args.
If there were some form if-else, one would at least know there is some
definintion
for it.
> 2) on the sequential element:
>
> <macrodef name="ejb">
> <attribute name="module">
> <sequential unless="@{module}-uptodate">
> <...>
> </sequential>
> </macrodef>
>
So what happens if the property does exists, the definition is empty?
>
> 3) at the macrodef use:
> <ejb module="x" unless="x-uptodate"/>
>
This probably is the most traditional usage of if/unless I do not
completely
like it but at least is in the spirit of other tasks. But do I need
support
from macrodef, or can I write this myself as part of my macrodef.
I.e., shall <macrodef/> hyjack if/unless as reserved attribute names (I
would prefer not).
Another usage of if/unless that may be interesting (not that I am
advocating it or anything)
is at the point of use of elements:
<macrodef name="ejb">
<element name="files"/>
<sequential>
<doejb ....>
<fileset ...>
<files/>
</fileset>
</doejb>
</sequential>
</macrodef>
And at the point of use one can write:
<ejb>
<files if="on.windows">
....
</files>
<files if="on.unix">
....
</files>
</ejb>
Which will pass the different <files/> elements depending of the
properties settings.
Now, the reason I do not like it is because I think we need to put our
effort in some
core way to describe inclusion/exclusion of elements at any level of a
build
(or at least of task) and it should be project-helper the one in charge
of doing it.
This would also include the ideas about having a real expression
language to
specify those inclusions and exclusions.
I think that would be a much more powerful thing to spend our time on
1.7.
Jose Alberto
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]