Costin Manolache wrote:
Steve Loughran wrote:

I know Ant2.0-the-rewrite is essentially dead (and essentially obsolete through evolution in the codebase), but I still think we ought to consider using the name as and when the time is appropriate. If we add enough interesting stuff to 1.7, it could be the time.


Please, not again :-)

ok.




One thing that was voted on (positively, I recall), way way back in time, was for Ant2.0 to fail on undefined properties.


Having just struggled with a build file refactor that introduced the problem, a problem I only dealt with by resorting to IntelliJ's property-aware ant file editor, I am starting to think the fail-on-undefined property mechanism is good.

But at the same time, those echo statements with undefined properties are ubiquitous, and they need to stay in. And we need the option of turning strict property evaluation off or on.




My preferred way to do this would be to


1. either or both of a new command line option, a new property to set. to turn strict property evaluation on.

The nice thing about these two is that they can be applied to existing files. The property set tactic would let you use build.properties to set the flag, and enable inline in projects that will still work in ant 1.6, but get complex w/ <ant> and <antcall>

2. in strict mode, any expansion of a unknown property into a string would throw a BuildException



3. But there would be a non-throwing expansion method for code that explicitly wanted to not fail on missing strings in their .


4. <echo>, <fail> and a few others would be modified to use the new non throwing expansion mechanism.

The problem with this is that while

<echo>${undefined}</echo> would work as intended,

<echo message="${undefined}" /> would always throw an exception.

The only fix there would be a new datatype NonvalidatingString() that would expand properties but not bail.

Would that be enough? Would it work and be usable?



What about just displaying a warning "Use of undefined property foo at line xxx" instead of failing ?


I suppose the problem was that undefined properties were just ignored, and you had a hard time debugging this ( I had similar problems many times ).

you can get those messages if you crank up the verbosity, but you still need to go through the lines and look at them. I suppose if we had a better listener model then I could run a listener to filter for the relevant message topic and highlight them.



I would preffer a warning for undefined properties outside echo/fail instead of the option to fail - since in the second case it may fail in too many build.xml files, forcing people to just disable it.

I'd have the default of non-strict; fail-on-undefined would be an option people could turn on for better diagnostics.



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to