Thanks to everyone who contributed. I now know the design decision that lays behind the functioning of <condition>.
My Java is only now having the rust knocked off it, so I'm chary of trying to write a custom task for this purpose. I have been working on Plan B, creating the intermediate XML file from which I hope to load the properties. I have set up a test harness build.xml file and sucessfully generated the properties XML file and loaded the values from it to the build environment. The issue I'm now struggling with is the timing of the loading of the property values. If I put the <xmlproperty> element as a child of <project> and set the <xslt> task as the default, the properties are loaded from the file as soon as ant starts to run. While this is not surprising, it doesn't get me what I want. What I'm looking to do is generate the XML properties file first and then read the values from it. Is there some way to do this? Thanks. -- Charles Knell [EMAIL PROTECTED] - email -----Original Message----- From: Matt Benson <[EMAIL PROTECTED]> Sent: Fri, 4 Aug 2006 07:43:35 -0700 (PDT) To: Ant Users List <user@ant.apache.org> Subject: Re: Setting the value of a property conditonally --- [EMAIL PROTECTED] wrote: > I've been testing the <condition> task and either it > is very limited in its functioning or I am carrying > the wrong mental model into the exercise. Charles, I am going back to your initial mail to address your statement of having the wrong mental model. Here is where you originally hit the proverbial nail on the head. Ant's condition task was designed with the simplest paradigm in mind: if, if, if. <condition>'s 'else' attribute is a recent addition as the manual attests (since 1.6.3, which for all practical purposes, means since 1.6.5, i.e. the current version). 'else' can be used for convenience when you don't want to say: <condition name="foo" value="foo"> <equals arg1="${arg}" arg2="FOO" /> </condition> <condition name="foo" value="bar"> <not><equals arg1="${arg}" arg2="FOO" /></not> </condition> Obviously here it is easy to use: <condition name="foo" value="foo" else="bar"> <equals arg1="${arg}" arg2="FOO" /> </condition> So for more complex situations you could simply use multiple conditions as you would e.g. multiple ifs in code, arranged from highest to lowest priority. But for the particular task you are describing here, I might well take Antoine LL's advice and write a custom task. HTH, Matt > > I work mostly in XSLT these days. There I can set > the value of a variable by testing any number of > conditions and nested conditions using the > <xsl:choose> element. > > <condition> appears to be based on the > "if-then-else" model. What I'm looking for is a > means of setting a property on the > "if-then-else-elsif" model. > > Is there some way of doing this with ant 1.65 as it > stands or do I have to write an extension to > accomplish this? > > Thanks. > > -- > Charles Knell > [EMAIL PROTECTED] - email > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]