I am afraid I was not too convincing yesterday, so let me give some simple
reasons for my submission.
Path, Argument and FileSet already provide valuable functionalities: Path takes
care of file and path separators,
FileSet finds file satisfying a given pattern, Argument quotes individual
arguments that have space in them.
They all help you organize your build file by grouping related elements
together in two dimensions rather than as
a long list:
<argument id="jvmargs">
<argument value="-Djava.security.manager"/>
<argument
value="-Djava.security.policy=${build.dir}/config/${name}_java2.policy"/>
<argument
value="-Djava.security.auth.policy=${build.dir}/config/${name}_jaas.policy"/>
<argument
value="-Djava.security.auth.login.config=${build.dir}/config/${name}_jaas.config"/>
<argument value="-Dpros.home=${build.dir}"/>
</argument>
is easier to read than:
<property name="jvmargs"
value="-Djava.security.manager
-Djava.security.policy=${build.dir}/config/${name}_java2.policy
-Djava.security.auth.policy=${build.d
ir}/config/${name}_jaas.policy
-Djava.security.auth.login.config=${build.dir}/config/${name}_jaas.config
-Dpros.home=${build.dir}"/>
Note that all these functionalities already exist in core Ant.
When references were introduced, they were useful within a Path or a FileSet,
but it became apparent that I could use
those in a Property and make the functionality of DataTypes available to
anything that can use a Property (a big example
is the filter capability of copydir).
All this requires very little new code: I just shuffled some code around to
make it reusable, and it does not turn Ant into
a new scripting language.
I know that you can do anything with the Script task, but core Ant can already
do what I described. It is only a matter
of making it available to the user.
Vincent.
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com