Class Get

  extended by
      extended by
          extended by
All Implemented Interfaces:

public class Get
extends Task

Gets a particular file from a URL source. Options include verbose reporting, timestamp based fetches and controlling actions on failures. NB: access through a firewall only works if the whole Java runtime is correctly configured.

Ant 1.1

Nested Class Summary
protected static class Get.Base64Converter
          Provide this for Backward Compatibility.
static interface Get.DownloadProgress
          Interface implemented for reporting progess of downloading.
static class Get.NullProgress
          do nothing with progress info
static class Get.VerboseProgress
          verbose progress system prints to some output stream
Field Summary
Fields inherited from class
target, taskName, taskType, wrapper
Fields inherited from class
description, location, project
Constructor Summary
Method Summary
 boolean doGet(int logLevel, Get.DownloadProgress progress)
          make a get request, with the supplied progress and logging info.
 void execute()
          Does the work.
 void setDest( dest)
          Where to copy the source file.
 void setIgnoreErrors(boolean v)
          If true, log errors but do not treat as fatal.
 void setPassword(java.lang.String p)
          password for the basic authentication.
 void setSrc( u)
          Set the URL to get.
 void setUsername(java.lang.String u)
          Username for basic auth.
 void setUseTimestamp(boolean v)
          If true, conditionally download a file based on the timestamp of the local copy.
 void setVerbose(boolean v)
          If true, show verbose progress information.
Methods inherited from class
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
Methods inherited from class
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public Get()
Method Detail


public void execute()
             throws BuildException
Does the work.

execute in class Task
BuildException - Thrown in unrecoverable error.


public boolean doGet(int logLevel,
                     Get.DownloadProgress progress)
make a get request, with the supplied progress and logging info. All the other config parameters are set at the task level, source, dest, ignoreErrors, etc.

logLevel - level to log at, see Project.log(String, int)
progress - progress callback; null for no-callbacks
true for a successful download, false otherwise. The return value is only relevant when ignoreErrors is true, as when false all failures raise BuildExceptions.
Throws: - for network trouble
BuildException - for argument errors, or other trouble when ignoreErrors is false.


public void setSrc( u)
Set the URL to get.

u - URL for the file.


public void setDest( dest)
Where to copy the source file.

dest - Path to file.


public void setVerbose(boolean v)
If true, show verbose progress information.

v - if "true" then be verbose


public void setIgnoreErrors(boolean v)
If true, log errors but do not treat as fatal.

v - if "true" then don't report download errors up to ant


public void setUseTimestamp(boolean v)
If true, conditionally download a file based on the timestamp of the local copy.

In this situation, the if-modified-since header is set so that the file is only fetched if it is newer than the local file (or there is no local file) This flag is only valid on HTTP connections, it is ignored in other cases. When the flag is set, the local copy of the downloaded file will also have its timestamp set to the remote file time.

Note that remote files of date 1/1/1970 (GMT) are treated as 'no timestamp', and web servers often serve files with a timestamp in the future by replacing their timestamp with that of the current time. Also, inter-computer clock differences can cause no end of grief.

v - "true" to enable file time fetching


public void setUsername(java.lang.String u)
Username for basic auth.

u - username for authentication


public void setPassword(java.lang.String p)
password for the basic authentication.

p - password for authentication