common/build.retry.xml
author Simon Howkins <simonh@symbian.org>
Wed, 27 Oct 2010 16:22:14 +0100
changeset 1316 0b4a09013baf
parent 977 293f16b1c667
permissions -rw-r--r--
Added copyright messages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
977
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     1
<?xml version="1.0"?>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     2
<project name="SF-RETRY" default="all" xmlns:hlm="http://www.nokia.com/helium">
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     3
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     4
    <dirname property="sf.retry.dir" file="${ant.file.SF-RETRY}"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     5
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     6
    <macrodef name="retry">
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     7
        <attribute name="tries" default="3" description="How many times to try the nested script"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     8
        <attribute name="uniquename" description="An identifier specific to this thread, or a constant for single-threaded contexts"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
     9
        <attribute name="failonerror" default="true" description="Set to false to avoid an abort after all attempts"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    10
        <element name="sequential" description="The tasks to retry"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    11
        <element name="cleanup" optional="true" description="Tasks to run to clean up after a failed try"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    12
        <sequential>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    13
            <trycatch reference="exception.@{uniquename}.ref" property="exception.@{uniquename}.prop">
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    14
                <try>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    15
                    <sequential/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    16
                </try>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    17
                <catch>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    18
                    <math result="newtries.@{uniquename}" operation="-" operand2="@{tries}" operand1="1" datatype="int"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    19
                    <if>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    20
                        <not>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    21
                            <equals arg1="${newtries.@{uniquename}}" arg2="0"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    22
                        </not>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    23
                        <then>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    24
                            <!-- Clean up ready to try again -->
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    25
                            <cleanup/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    26
                            <sleep seconds="1"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    27
                            <!-- Recurse (via helper) -->
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    28
                            <retry-helper tries="${newtries.@{uniquename}}" uniquename="@{uniquename}" failonerror="@{failonerror}">
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    29
                                <sequence>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    30
                                    <sequential/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    31
                                </sequence>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    32
                                <cleanup-helper>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    33
                                    <cleanup/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    34
                                </cleanup-helper>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    35
                            </retry-helper>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    36
                        </then>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    37
                        <else>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    38
                            <if>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    39
                                <istrue value="@{failonerror}"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    40
                                <then>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    41
                                    <throw refid="exception.@{uniquename}.ref"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    42
                                </then>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    43
                            </if>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    44
                        </else>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    45
                    </if>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    46
                </catch>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    47
            </trycatch>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    48
        </sequential>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    49
    </macrodef>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    50
    <macrodef name="retry-helper" description="Don't use this directly, use 'retry'">
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    51
        <attribute name="tries"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    52
        <attribute name="uniquename"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    53
        <attribute name="failonerror"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    54
        <element name="sequence"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    55
        <element name="cleanup-helper"/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    56
        <sequential>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    57
            <retry tries="@{tries}" uniquename="@{uniquename}" failonerror="@{failonerror}">
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    58
                <sequential>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    59
                    <sequence/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    60
                </sequential>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    61
                <cleanup>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    62
                    <cleanup-helper/>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    63
                </cleanup>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    64
            </retry>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    65
        </sequential>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    66
    </macrodef>
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    67
293f16b1c667 Retry "module" for ant scripts, initially used by source syncing operations.
Simon Howkins <simonh@symbian.org>
parents:
diff changeset
    68
</project>