Class WaitFor

All Implemented Interfaces:
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
  • Field Details

    • ONE_MILLISECOND

      public static final long ONE_MILLISECOND
      a millisecond
      See Also:
    • ONE_SECOND

      public static final long ONE_SECOND
      a second in milliseconds
      See Also:
    • ONE_MINUTE

      public static final long ONE_MINUTE
      a minute in milliseconds
      See Also:
    • ONE_HOUR

      public static final long ONE_HOUR
      an hour in milliseconds
      See Also:
    • ONE_DAY

      public static final long ONE_DAY
      a day in milliseconds
      See Also:
    • ONE_WEEK

      public static final long ONE_WEEK
      a week in milliseconds
      See Also:
    • DEFAULT_MAX_WAIT_MILLIS

      public static final long DEFAULT_MAX_WAIT_MILLIS
      default wait time
      See Also:
    • DEFAULT_CHECK_MILLIS

      public static final long DEFAULT_CHECK_MILLIS
      default check time
      See Also:
  • Constructor Details

    • WaitFor

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

      public WaitFor(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 Details

    • 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(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