I agree with you on this... I had to use foreach for the first time recently and was astounded that it had been written that way. It completely confuses the issue of property immutability, and makes the parameter hard to find. You need to know what the argument is before you look for it. Think about explaining property imutability to someone... ${foo.bar} can never change... exept when it isn't a property... "how do I know it isn't a property?" they ask... The answer would be you just have to know the tasks where ${foo.bar} might not be a property, and check what the parameter name is. At that point the person you are explaining this to rolls their eyes and says "Ugh. That is annoying" :)
I stopped arguing this point, as I was the only one concerned apparently, but since Jose Alberto brings it up again...
Having ${NAME} not evaluate to the value, if any, of the NAME property, at the time the task it's used in (<macrodef> is this case) is executed, is REALLY REALLY BAD in my sincere opinion. Maybe <foreach> does it, but that
I think macrodef should not duplicate this problem and if foreach ever came into ant it should have a namechange and new parameter system.
-Gus
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]