Package 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:
  `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.

Since:
  Ant 1.7

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DEFAULT_TIMEOUT`
The default timeout.
`static final String`
`ERROR_BAD_TIMEOUT`
Error when invalid timeout value is defined
`static final String`
`ERROR_BAD_URL`
Error message when an invalid url is used.
`static final String`
`ERROR_BOTH_TARGETS`
Error message when url and host are specified.
`static final String`
`ERROR_NO_HOST_IN_URL`
Error message when no hostname in url.
`static final String`
`ERROR_NO_HOSTNAME`
Error when no hostname is defined
`static final String`
`ERROR_ON_NETWORK`
Network error message is seen.
`static final String`
`METHOD_NAME`
Deprecated.
Since 1.10.6
`static final 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

Constructors
Constructor
Description
`IsReachable()`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`eval()`
Evaluate the condition.
`void`
`setHost(String host)`
Set the host to ping.
`void`
`setTimeout(int timeout)`
Set the timeout for the reachability test in seconds.
`void`
`setUrl(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 Details

### DEFAULT_TIMEOUT

public static final int DEFAULT_TIMEOUT
The default timeout.

See Also:
  - Constant Field Values

### ERROR_NO_HOSTNAME

public static final String ERROR_NO_HOSTNAME
Error when no hostname is defined

See Also:
  - Constant Field Values

### ERROR_BAD_TIMEOUT

public static final String ERROR_BAD_TIMEOUT
Error when invalid timeout value is defined

See Also:
  - Constant Field Values

### ERROR_ON_NETWORK

public static final String ERROR_ON_NETWORK
Network error message is seen.

See Also:
  - Constant Field Values

### ERROR_BOTH_TARGETS

public static final String ERROR_BOTH_TARGETS
Error message when url and host are specified.

See Also:
  - Constant Field Values

### MSG_NO_REACHABLE_TEST

public static final String MSG_NO_REACHABLE_TEST
Error message when no reachably test avail.

See Also:
  - Constant Field Values

### ERROR_BAD_URL

public static final 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 String ERROR_NO_HOST_IN_URL
Error message when no hostname in url.

See Also:
  - Constant Field Values

### METHOD_NAME

@Deprecated public static final String METHOD_NAME
Deprecated.
Since 1.10.6
The method name to look for in InetAddress

See Also:
  - Constant Field Values

## Constructor Details

### IsReachable

public IsReachable()

## Method Details

### setHost

public void setHost(String host)
Set the host to ping.

Parameters:
  `host` - the host to ping.

### setUrl

public void setUrl(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