> From: peter reilly [mailto:[EMAIL PROTECTED]
> > As far as the problem you describe above, this is exactly why I argued
> > against this un-intuitive de-referencing of properties in <macrodef> so
> > vehemently...
>
> Mmm..
> not quite, the problem is due to the available file attribute being a File
> and the import file attribute being a String and interperted differently.
Ah ;-)
> The correct solution is to use <trycatch>, but this is noisy - it needs
> a quiet attribute to suppress the "Caught exception" message.
>
> <macrodef name="conditional-import">
> <attribute name="file"/>
> <sequential>
> <ac:trycatch quiet="yes">
> <try>
> <import file="${file}"/>
> </try>
> <catch/>
> </ac:trycatch>
> </sequential>
> </macrodef>
Adding an attribute to <import> (like you did) is tons better than that.
> > OK, but beside that, what would happen if the <macrodef> was in my
> > antlib.xml. I am rather confused about what *should* happen.
>
> In this case what should work does not (grrr).
> The import task resolves a relative file attribute from the antlib file
> and not the file that contains the conditional-import task.
>
> The problem, is that the macro does not set the location
> attribute of the tasks it runs.
>
> If it sets them, some error messages would make less sense than they
> do at the moment (and some more).
>
> However, the it is most likely more correct to set the location.
Frankly, I'm not sure I followed all the reasoning... It all sounds too
complex for my liking, so I'll just enjoy the new 'optional' attribute of
<import>, and forget the subtleties of a <macrodef> inside an Antlib.xml for
a conditional <import>.
Thanks again, --DD
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]