Hey Jay, First of all, I do agree with yours and Diane point of view. I do think, the build file writer SHOULD have the ability to stop/fail the build process when a particular "custom" compiler is not present. I have never said anything against it. But I also want build file writer to have the ability to suggest a custom compiler. Those are two seperate issues. I will repeat here:
A. the compiler is NOT SPECIFIED at all in a build file ANT default compiler is picked, or the .ant.properties compiler is picked. The current ANT does that. It picks .ant.properties (assuming build file reads those first), if none compiler is specified it tries modern, if modern is not present it tries classic, if classic is not present it fails. B. the custom compiler MUST be used I imagine the build file writer will check for all needed "custom" compilers first (before doing anything) and if the any of "custom" compilers is not present, simply fail the build with proper message why and which compiler is needed. Current ANT sort of does that. If I specify build.compiler before reading properties, my compiler is forced. If it is not present during the javac task execution exception is thrown. C. the custom compiler is SUGGESTED It cannot be done anyhow at the moment.` I would like to have the ability to do this: check if custom compiler is present, if yes use it, if not check if modern compiler is present, if yes use it, if not check if classic compiler is present, if yes use it, if not fail the build with proper error message, and suggest installing custom compiler. I would imagine that C. behaviour would be added simply to the generic javac task implementation, however, if you oppose it, tell me how I can achieve that by writting my build file -- it is fine with me. I am not saying that this and that behaviour must be inside ANT, I am saying all three options should be doable in ANT. Putting C. as a default behaviour, making B by checking the compiler existance and failing the build if required compiler is not present, and leaving A as is, is for me the simplest possible way of achieving it. If you have any other better proposal for achieving all three possible options otherwise, tell me, it is fine for me to have it there by other means. Thus: > [...] There may > have been a good reason for the user for specifying a non-standard (i.e.: > classic or modern) compiler (e.g.: compiler coverage). By automatically > picking a different compiler because it can't be found I don't think is a > good default behaviour. I fully agree, we have case B here, and no automatic picking should be done by ANT. If the custom is not present, build simply fails with proper error message. In fact, I even think the build should fail before doing anything, to me it is logical to check_for_all_needed_things as a first step of my build file - if one of the required components/compilers is not present, I should not do anything, I should simply fail and list what's missing. That's why I think leaving the check for custom compiler existance up to the javac task itself is bad. Javac to me is simply for "compiling java files". That's why I do not care if it tries different compilers in a standard order, and that's why I like current ant trying modern and then classic. The check for particular custom compiler is not up to javac task, it is a sperate thing. But as I said, I do not really care how it is achieved, I simply want A. B. and C. to be achievable in ANT, that's all. > I also don't think that making the ant tool itself interactive is a good > idea either. [...] I agree, I do not like it either. That's why, for case B. build process should simply fail, for case C. build process should simply follow the "standard" behaviour. I do cancel my "interactive" example from the previous post. cheers Mariusz
