> 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]

Reply via email to