## org.apache.tools.ant.taskdefs.condition
Class IsReachable

    java.lang.Object
      org.apache.tools.ant.ProjectComponent
          org.apache.tools.ant.taskdefs.condition.IsReachable

All Implemented Interfaces:
  java.lang.Cloneable, Condition

    public class IsReachable

extends ProjectComponent
implements Condition

Test for a host being reachable using ICMP "ping" packets & echo operations. Ping packets are very reliable for assessing reachability in a LAN or WAN, but they do not get through any well-configured firewall. Echo (port 7) may.

This condition turns unknown host exceptions into false conditions. This is because on a laptop, DNS is one of the first services lost when the network goes; you are implicitly offline.

If a URL is supplied instead of a host, the hostname is extracted and used in the test--all other parts of the URL are discarded.

The test may not work through firewalls; that is, something may be reachable using a protocol such as HTTP, while the lower level ICMP packets get dropped on the floor. Similarly, a host may be detected as reachable with ICMP, but not reachable on other ports (i.e. port 80), because of firewalls.

Requires Java 5+ to work properly. On Java 1.4, if a hostname can be resolved, the destination is assumed to be reachable.

Since:
  Ant 1.7

Field Summary
`static int` `DEFAULT_TIMEOUT` The default timeout.
`static java.lang.String` `ERROR_BAD_TIMEOUT` Error when invalid timeout value is defined
`static java.lang.String` `ERROR_BAD_URL` Error message when an invalid url is used.
`static java.lang.String` `ERROR_BOTH_TARGETS` Error message when url and host are specified.
`static java.lang.String` `ERROR_NO_HOST_IN_URL` Error message when no hostname in url.
`static java.lang.String` `ERROR_NO_HOSTNAME` Error when no hostname is defined
`static java.lang.String` `ERROR_ON_NETWORK` Network error message is seen.
`static java.lang.String` `METHOD_NAME` The method name to look for in InetAddress
`static java.lang.String` `MSG_NO_REACHABLE_TEST` Error message when no reachably test avail.

Fields inherited from class org.apache.tools.ant.ProjectComponent
`description, location, project`

Constructor Summary
`IsReachable()`

Method Summary
`boolean` `eval()` Evaluate the condition.
`void` `setHost(java.lang.String host)` Set the host to ping.
`void` `setTimeout(int timeout)` Set the timeout for the reachability test in seconds.
`void` `setUrl(java.lang.String url)` Set the URL from which to extract the hostname.

Methods inherited from class org.apache.tools.ant.ProjectComponent
`clone, getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_TIMEOUT

    public static final int DEFAULT_TIMEOUT

  The default timeout.

  See Also:
    Constant Field Values

### ERROR_NO_HOSTNAME

    public static final java.lang.String ERROR_NO_HOSTNAME

  Error when no hostname is defined

  See Also:
    Constant Field Values

### ERROR_BAD_TIMEOUT

    public static final java.lang.String ERROR_BAD_TIMEOUT

  Error when invalid timeout value is defined

  See Also:
    Constant Field Values

### ERROR_ON_NETWORK

    public static final java.lang.String ERROR_ON_NETWORK

  Network error message is seen.

  See Also:
    Constant Field Values

### ERROR_BOTH_TARGETS

    public static final java.lang.String ERROR_BOTH_TARGETS

  Error message when url and host are specified.

  See Also:
    Constant Field Values

### MSG_NO_REACHABLE_TEST

    public static final java.lang.String MSG_NO_REACHABLE_TEST

  Error message when no reachably test avail.

  See Also:
    Constant Field Values

### ERROR_BAD_URL

    public static final java.lang.String ERROR_BAD_URL

  Error message when an invalid url is used.

  See Also:
    Constant Field Values

### ERROR_NO_HOST_IN_URL

    public static final java.lang.String ERROR_NO_HOST_IN_URL

  Error message when no hostname in url.

  See Also:
    Constant Field Values

### METHOD_NAME

    public static final java.lang.String METHOD_NAME

  The method name to look for in InetAddress

  See Also:
    Constant Field Values

Constructor Detail

### IsReachable

    public IsReachable()

Method Detail

### setHost

    public void setHost(java.lang.String host)

  Set the host to ping.

  Parameters:
    `host` - the host to ping.

### setUrl

    public void setUrl(java.lang.String url)

  Set the URL from which to extract the hostname.

  Parameters:
    `url` - a URL object.

### setTimeout

    public void setTimeout(int timeout)

  Set the timeout for the reachability test in seconds.

  Parameters:
    `timeout` - the timeout in seconds.

### eval

    public boolean eval()
                 throws BuildException

  Evaluate the condition.

  Specified by:
    `eval` in interface `Condition`
  Returns:
    true if the condition is true.
  Throws:
    `BuildException` - if an error occurs