org.apache.tools.ant.taskdefs

Class WaitFor

  • All Implemented Interfaces:
    java.lang.Cloneable
    Direct Known Subclasses:
    BlockFor


    public class WaitFor
    extends ConditionBase
    Wait for an external event to occur. Wait for an external process to start or to complete some task. This is useful with the parallel task to synchronize the execution of tests with server startup. The following attributes can be specified on a waitfor task:
    • maxwait - maximum length of time to wait before giving up
    • maxwaitunit - The unit to be used to interpret maxwait attribute
    • checkevery - amount of time to sleep between each check
    • checkeveryunit - The unit to be used to interpret checkevery attribute
    • timeoutproperty - name of a property to set if maxwait has been exceeded.
    The maxwaitunit and checkeveryunit are allowed to have the following values: millisecond, second, minute, hour, day and week. The default is millisecond. For programmatic use/subclassing, there are two methods that may be overridden, processSuccess and processTimeout
    Since:
    Ant 1.5
    • Constructor Detail

      • WaitFor

        public WaitFor()
        Constructor, names this task "waitfor".
      • WaitFor

        public WaitFor(java.lang.String taskName)
        Constructor that takes the name of the task in the task name.
        Parameters:
        taskName - the name of the task.
        Since:
        Ant 1.8
    • Method Detail

      • setMaxWait

        public void setMaxWait(long time)
        Set the maximum length of time to wait.
        Parameters:
        time - a long value
      • setMaxWaitUnit

        public void setMaxWaitUnit(WaitFor.Unit unit)
        Set the max wait time unit
        Parameters:
        unit - an enumerated Unit value
      • setCheckEvery

        public void setCheckEvery(long time)
        Set the time between each check
        Parameters:
        time - a long value
      • setCheckEveryUnit

        public void setCheckEveryUnit(WaitFor.Unit unit)
        Set the check every time unit
        Parameters:
        unit - an enumerated Unit value
      • setTimeoutProperty

        public void setTimeoutProperty(java.lang.String p)
        Name the property to set after a timeout.
        Parameters:
        p - the property name
      • execute

        public void execute()
                     throws BuildException
        Check repeatedly for the specified conditions until they become true or the timeout expires.
        Throws:
        BuildException - on error
      • calculateCheckEveryMillis

        public long calculateCheckEveryMillis()
        Get the check wait time, in milliseconds.
        Returns:
        how long to wait between checks
        Since:
        Ant 1.8
      • calculateMaxWaitMillis

        public long calculateMaxWaitMillis()
        Get the maximum wait time, in milliseconds.
        Returns:
        how long to wait before timing out
        Since:
        Ant 1.8
      • processSuccess

        protected void processSuccess()
        Actions to be taken on a successful waitfor. This is an override point. The base implementation does nothing.
        Since:
        Ant1.7
      • processTimeout

        protected void processTimeout()
        Actions to be taken on an unsuccessful wait. This is an override point. It is where the timeout processing takes place. The base implementation sets the timeoutproperty if there was a timeout and the property was defined.
        Since:
        Ant1.7