Mmh - you know the Wiki?
http://wiki.apache.org/ant/AntOddities 


"Leveraging Ant" in the manual - could be an idea. A kind of samples for
little more complex tasks?
Suggestions?


The example for <antcall>:

<project default="dispatch">
    <!-- Dispatch according to a property value -->
    <target name="dispatch">
      <!-- check for valid property values for nicer error handling -->
      <!-- but it´s not needed :)
      <fail message="Unsupported value">
        <condition>
          <not>
            <or>
              <equals arg1="${nr}" arg2="1"/>
              <equals arg1="${nr}" arg2="2"/>
            </or>
          </not>
        </condition>
      </fail>
      -->
      <antcall target="dispatch_${nr}"/>
    </target>

    <target name="dispatch_1">
        <echo>target number one</echo>
    </target>
    <target name="dispatch_2">
        <echo>target number two</echo>
    </target>
</project>





Jan


>-----Ursprüngliche Nachricht-----
>Von: Rhino [mailto:[EMAIL PROTECTED] 
>Gesendet: Mittwoch, 21. Dezember 2005 16:20
>An: Ant Users List
>Betreff: Re: Testing multiple values?
>
>Excellent! I'm sure I won't be the only one to benefit from 
>this technique.
>
>Hmm, what do you think of having a new section in the manual, 
>along the lines of "Advanced Techniques for Ant Users" or 
>"Leveraging Ant" or something like that? I'm concerned that 
>people wouldn't be all that likely to discover your technique 
>in the antcall article; they may not even realize that antcall 
>is something that they'd want to use to handle multiple values 
>of a variable.
>
>That's why I think a new section that discusses techniques 
>which combine various different tasks might be the way to go....
>
>
>Rhino
>
>----- Original Message ----- 
>From: <[EMAIL PROTECTED]>
>To: <user@ant.apache.org>
>Sent: Wednesday, December 21, 2005 9:22 AM
>Subject: AW: Testing multiple values?
>
>
>:-)
>
>Ok, I will add an example with that to <antcall>
>
>
>Jan
>
>>-----Ursprüngliche Nachricht-----
>>Von: Rhino [mailto:[EMAIL PROTECTED]
>>Gesendet: Mittwoch, 21. Dezember 2005 14:42
>>An: Ant Users List
>>Betreff: Re: Testing multiple values?
>>
>>Oh, right, it's all coming back to me! You taught me that
>>trick a couple of years back on this list. I hadn't thought of
>>that as a solution to my current problem but you're right, it
>>would work for that,  too.
>>
>>Excellent! These 'tricks' make Ant conditional processing much
>>more palateable than having to set a property so that you can
>>set another property so that you can invoke or bypass another
>>target just to display a message. Why aren't these tricks
>>documented in the manual? There should really be a section for
>>techniques like this....
>>
>>Rhino
>>
>>----- Original Message -----
>>From: <[EMAIL PROTECTED]>
>>To: <user@ant.apache.org>
>>Sent: Wednesday, December 21, 2005 1:05 AM
>>Subject: AW: Testing multiple values?
>>
>>
>>Another trick is using
>>  <antcall target="handle${script1.result}">
>>and provide a couple of targets.
>>
>>
>>Jan
>>
>>>-----Ursprüngliche Nachricht-----
>>>Von: Rhino [mailto:[EMAIL PROTECTED]
>>>Gesendet: Mittwoch, 21. Dezember 2005 00:07
>>>An: Ant Users List
>>>Betreff: Re: Testing multiple values?
>>>
>>>Wow, that's remarkably easy and straightforward, which is not
>>>what I expect from Ant when it comes to conditions :-)
>>>
>>>I'll give this a try and post back if it doesn't work properly.
>>>
>>>Thank you!!
>>>
>>>Rhino
>>>
>>>----- Original Message -----
>>>From: "Ondrej Svetlik" <[EMAIL PROTECTED]>
>>>To: "Ant Users List" <user@ant.apache.org>
>>>Sent: Tuesday, December 20, 2005 4:52 PM
>>>Subject: Re: Testing multiple values?
>>>
>>>
>>>> Well, how about
>>>>
>>>> <exec />
>>>> <fail message="Script1 failed. See Script1.out.">
>>>> <condition>
>>>> <equals arg1="${script1.result}" arg2="1" />
>>>> </condition>
>>>> </fail>
>>>>
>>>> <fail message="WinSCP3 environment not initialized. Please
>>>click on the
>>>> keyfile and supply the passphrase.">
>>>> <condition>
>>>> <equals arg1="${script1.result}" arg2="-1073741819" />
>>>> </condition>
>>>> </fail>
>>>>
>>>> Best regards,
>>>>
>>>> Ondrej Svetlik
>>>>
>>>> Rhino wrote:
>>>>> How do I handle three different possible values from an
>>>'exec' task when
>>>>> I want one value to be ignored and each of the other two
>>>values to invoke
>>>>> different targets?
>>>>>
>>>>> I have an exec task that has the parameter
>>>>> resultproperty="script1.result". The value of
>>>script1.result can be: 0
>>>>> (indicates that the script worked fine without errors); 1
>>>(indicates that
>>>>> the script ran but had errors); or -1073741819 (indicates that the
>>>>> WinSCP3 environment was not initialized properly; basically, the
>>>>> passphrase hadn't yet been entered so that WinSCP3 could 
>verify the
>>>>> login).
>>>>>
>>>>> When script.result is 0, I want to move on to the next
>>>target within my
>>>>> build. When script.result is 1, I want to fail with the
>>>error message
>>>>> ("Script1 failed. See Script1.out."). When script1.result is
>>>>> -1073741819, I want to fail with the error message
>>>("WinSCP3 environment
>>>>> not initialized. Please click on the keyfile and supply the
>>>passphrase.")
>>>>>
>>>>> My script currently handles the 0 and 1 conditions just
>>>fine but I don't
>>>>> know how to change my code to handle the third value for
>>>script1.result.
>>>>> Here is what I have so far:
>>>>>
>>>>> <target name="upload-Tonge" description="Upload to the
>>>Tonge server.">
>>>>>
>>>>> <echo message="Uploading to Tonge...."/>
>>>>>
>>>>> <!--echoproperties prefix="server"/-->
>>>>>
>>>>> <exec executable="${WinSCP3.com}" os="Windows XP"
>>>output="${script1.out}"
>>>>> error="${script1.err}"
>>>>>
>>>>> resultproperty="script1.result"
>>>>>
>>>>> description="Run a trivial script that doesn't change
>>>anything, just to
>>>>> show that everything works.">
>>>>>
>>>>> <arg line="/console /script=${script1.in}"/>
>>>>>
>>>>> </exec>
>>>>>
>>>>>
>>>>>
>>>>> </target>
>>>>>
>>>>> <target name="check-Script1" depends="upload-Tonge"
>>>description="See if
>>>>> Script1 worked.">
>>>>>
>>>>> <echo message="Check script1 result"/>
>>>>>
>>>>> <condition property="script1.failed">
>>>>>
>>>>> <equals arg1="${script1.result}" arg2="1"/>
>>>>>
>>>>> </condition>
>>>>>
>>>>> <echo message="script1.result=${script1.result}"/>
>>>>>
>>>>> <antcall target="upload-Tonge-Script1-errors"/>
>>>>>
>>>>> </target>
>>>>>
>>>>> <target name="upload-Tonge-Script1-errors" if="script1.failed">
>>>>>
>>>>> <fail message="Oops, script ${script1.name} failed on Tonge
>>>server. See
>>>>> ${script1.out} and ${script1.err}."/>
>>>>>
>>>>> </target>
>>>>>
>>>>>
>>>>>
>>>>> <target name="upload-Tonge-Script2-errors" if="script2.failed">
>>>>>
>>>>> <fail message="Oops, script ${script2.name} failed on Tonge
>>>server. See
>>>>> ${script2.out} and/or ${script2.err}."/>
>>>>>
>>>>> </target>
>>>>>
>>>>>
>>>>> Do I need a different condition task to handle the
>>>-1073741819 value for
>>>>> script1.result? If yes, don't I have to worry about the
>>>'upload-Bongo'
>>>>> task executing twice? Or can I modify the existing
>>>condition task to
>>>>> invoke two different targets based on the non-zero value of
>>>>> script.result, one target for script1.result = 1 and a
>>>different target
>>>>> for script1.result = -1073741819?
>>>>>
>>>>> Or do I need to change the script more radically and do
>>>things a whole
>>>>> different way?
>>>>>
>>>>> I'd prefer to stay with core tasks if at all possible.
>>>>>
>>>>> Rhino
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>> -- 
>>>> No virus found in this incoming message.
>>>> Checked by AVG Free Edition.
>>>> Version: 7.1.371 / Virus Database: 267.14.1/207 - Release
>>>Date: 19/12/2005
>>>>
>>>>
>>>
>>>
>>>
>>>-- 
>>>No virus found in this outgoing message.
>>>Checked by AVG Free Edition.
>>>Version: 7.1.371 / Virus Database: 267.14.1/207 - Release
>>>Date: 19/12/2005
>>>
>>>
>>>---------------------------------------------------------------------
>>>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]
>>
>>
>>-- 
>>No virus found in this incoming message.
>>Checked by AVG Free Edition.
>>Version: 7.1.371 / Virus Database: 267.14.1/207 - Release
>>Date: 19/12/2005
>>
>>
>>
>>
>>-- 
>>No virus found in this outgoing message.
>>Checked by AVG Free Edition.
>>Version: 7.1.371 / Virus Database: 267.14.2/208 - Release
>>Date: 20/12/2005
>>
>>
>>---------------------------------------------------------------------
>>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]
>
>
>-- 
>No virus found in this incoming message.
>Checked by AVG Free Edition.
>Version: 7.1.371 / Virus Database: 267.14.2/208 - Release 
>Date: 20/12/2005
>
>
>
>
>-- 
>No virus found in this outgoing message.
>Checked by AVG Free Edition.
>Version: 7.1.371 / Virus Database: 267.14.2/208 - Release 
>Date: 20/12/2005
>
>
>---------------------------------------------------------------------
>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]

Reply via email to