Class URLHandlerDispatcher
java.lang.Object
org.apache.ivy.util.url.URLHandlerDispatcher
- All Implemented Interfaces:
TimeoutConstrainedURLHandler, URLHandler
An implementation of
URLHandler which uses an underlying URLHandler per protocol
and a fallback default URLHandler for dealing with downloads, uploads and
general reachability checks-
Nested Class Summary
Nested classes/interfaces inherited from interface URLHandler
URLHandler.URLInfo -
Field Summary
Fields inherited from interface URLHandler
REQUEST_METHOD_GET, REQUEST_METHOD_HEAD, UNAVAILABLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddownload(URL src, File dest, CopyProgressListener l) voiddownload(URL src, File dest, CopyProgressListener listener, TimeoutConstraint timeoutConstraint) Downloads the resource available atsrcto the targetdestlonggetContentLength(URL url) Please prefer getURLInfo when several infos are needed.longgetContentLength(URL url, int timeout) longgetContentLength(URL url, TimeoutConstraint timeoutConstraint) Returns the number of bytes of data that's available for the resource at the passedurl.getHandler(String protocol) longgetLastModified(URL url) Please prefer getURLInfo when several infos are needed.longgetLastModified(URL url, int timeout) Please prefer getURLInfo when several infos are needed.longgetLastModified(URL url, TimeoutConstraint timeoutConstraint) Returns the last modified timestamp of the resource accessible at the passedurl.getURLInfo(URL url) getURLInfo(URL url, int timeout) getURLInfo(URL url, TimeoutConstraint timeoutConstraint) Returns theURLHandler.URLInfoextracted from the given url, orURLHandler.UNAVAILABLEwhen the url is not reachable.booleanisReachable(URL url) Please prefer getURLInfo when several infos are needed.booleanisReachable(URL url, int timeout) Please prefer getURLInfo when several infos are needed.booleanisReachable(URL url, TimeoutConstraint timeoutConstraint) Returns true if the passedURLis reachable.openStream(URL url) openStream(URL url, TimeoutConstraint timeoutConstraint) Opens and returns anInputStreamto the passedurl.voidsetDefault(URLHandler default1) voidsetDownloader(String protocol, URLHandler downloader) voidsetRequestMethod(int requestMethod) voidupload(File src, URL dest, CopyProgressListener l) voidupload(File src, URL dest, CopyProgressListener listener, TimeoutConstraint timeoutConstraint)
-
Constructor Details
-
URLHandlerDispatcher
public URLHandlerDispatcher()
-
-
Method Details
-
isReachable
Description copied from interface:URLHandlerPlease prefer getURLInfo when several infos are needed.- Specified by:
isReachablein interfaceURLHandler- Parameters:
url- the url to check- Returns:
- true if the target is reachable
-
isReachable
Description copied from interface:URLHandlerPlease prefer getURLInfo when several infos are needed.- Specified by:
isReachablein interfaceURLHandler- Parameters:
url- the url to checktimeout- the timeout in milliseconds- Returns:
- true if the target is reachable
-
isReachable
Description copied from interface:TimeoutConstrainedURLHandlerReturns true if the passedURLis reachable. Else returns false. Uses the passedtimeoutConstraintfor determining the connectivity to the URL.Please use
TimeoutConstrainedURLHandler.getURLInfo(URL, TimeoutConstraint)if more one information about theurlis needed- Specified by:
isReachablein interfaceTimeoutConstrainedURLHandler- Parameters:
url- The URL to accesstimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Returns:
- boolean
-
getContentLength
Description copied from interface:URLHandlerPlease prefer getURLInfo when several infos are needed.- Specified by:
getContentLengthin interfaceURLHandler- Parameters:
url- the url to check- Returns:
- the length of the target if the given url is reachable, 0 otherwise. No error code in case of http urls.
-
getContentLength
- Specified by:
getContentLengthin interfaceURLHandler- Parameters:
url- the url to checktimeout- the maximum time before considering an url is not reachable a timeout of zero indicates no timeout- Returns:
- the length of the target if the given url is reachable, 0 otherwise. No error code in case of http urls.
-
getContentLength
Description copied from interface:TimeoutConstrainedURLHandlerReturns the number of bytes of data that's available for the resource at the passedurl. Returns 0 if the passedurlisn't reachable- Specified by:
getContentLengthin interfaceTimeoutConstrainedURLHandler- Parameters:
url- The URL to accesstimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Returns:
- long
-
getLastModified
Description copied from interface:URLHandlerPlease prefer getURLInfo when several infos are needed.- Specified by:
getLastModifiedin interfaceURLHandler- Parameters:
url- the url to check- Returns:
- last modified timestamp of the given url
-
getLastModified
Description copied from interface:URLHandlerPlease prefer getURLInfo when several infos are needed.- Specified by:
getLastModifiedin interfaceURLHandler- Parameters:
url- the url to checktimeout- the timeout in milliseconds- Returns:
- last modified timestamp of the given url
-
getLastModified
Description copied from interface:TimeoutConstrainedURLHandlerReturns the last modified timestamp of the resource accessible at the passedurl.Please use
TimeoutConstrainedURLHandler.getURLInfo(URL, TimeoutConstraint)if more one information about theurlis needed- Specified by:
getLastModifiedin interfaceTimeoutConstrainedURLHandler- Parameters:
url- The URL to accesstimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Returns:
- long
-
getURLInfo
- Specified by:
getURLInfoin interfaceURLHandler- Parameters:
url- The url from which information is retrieved.- Returns:
- The URLInfo extracted from the given url, or
URLHandler.UNAVAILABLEinstance when the url is not reachable.
-
getURLInfo
- Specified by:
getURLInfoin interfaceURLHandler- Parameters:
url- The url from which information is retrieved.timeout- The timeout in milliseconds.- Returns:
- The URLInfo extracted from the given url, or
URLHandler.UNAVAILABLEwhen the url is not reachable, never null.
-
getURLInfo
Description copied from interface:TimeoutConstrainedURLHandlerReturns theURLHandler.URLInfoextracted from the given url, orURLHandler.UNAVAILABLEwhen the url is not reachable. Never returns null.- Specified by:
getURLInfoin interfaceTimeoutConstrainedURLHandler- Parameters:
url- The URL for which the information is to be retrievedtimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Returns:
- URLInfo
-
openStream
- Specified by:
openStreamin interfaceURLHandler- Parameters:
url- ditto- Returns:
- InputStream
- Throws:
IOException- if something goes wrong
-
openStream
Description copied from interface:TimeoutConstrainedURLHandlerOpens and returns anInputStreamto the passedurl.- Specified by:
openStreamin interfaceTimeoutConstrainedURLHandler- Parameters:
url- The URL to which anInputStreamhas to be openedtimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Returns:
- InputStream
- Throws:
IOException- if something goes wrong
-
download
- Specified by:
downloadin interfaceURLHandler- Parameters:
src- URLdest- Filel- CopyProgressListener- Throws:
IOException- if something goes wrong
-
download
public void download(URL src, File dest, CopyProgressListener listener, TimeoutConstraint timeoutConstraint) throws IOException Description copied from interface:TimeoutConstrainedURLHandlerDownloads the resource available atsrcto the targetdest- Specified by:
downloadin interfaceTimeoutConstrainedURLHandler- Parameters:
src- The source URL to download the resource fromdest- The destinationFileto download the resource tolistener- The listener that will be notified of the download progresstimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Throws:
IOException- if something goes wrong
-
upload
- Specified by:
uploadin interfaceURLHandler- Parameters:
src- Filedest- URLl- CopyProgressListener- Throws:
IOException- if something goes wrong
-
upload
public void upload(File src, URL dest, CopyProgressListener listener, TimeoutConstraint timeoutConstraint) throws IOException Description copied from interface:TimeoutConstrainedURLHandler- Specified by:
uploadin interfaceTimeoutConstrainedURLHandler- Parameters:
src- The sourceFileto uploaddest- The target URL where theFilehas to be uploadedlistener- The listener that will be notified of the upload progresstimeoutConstraint- The connectivity timeout constraints. Can be null, in which case the timeouts are implementation specific- Throws:
IOException- if something goes wrong
-
setRequestMethod
public void setRequestMethod(int requestMethod) - Specified by:
setRequestMethodin interfaceURLHandler
-
setDownloader
-
getHandler
-
getDefault
-
setDefault
-