Class BaseResourceDownloader
- java.lang.Object
-
- net.adoptopenjdk.icedteaweb.resources.downloader.BaseResourceDownloader
-
- All Implemented Interfaces:
ResourceDownloader
- Direct Known Subclasses:
ExactVersionedResourceDownloader,RangeVersionedResourceDownloader,UnversionedResourceDownloader
abstract class BaseResourceDownloader extends java.lang.Object implements ResourceDownloader
Base class for resource downloader.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.Exception>downLoadExceptionsprivate java.util.List<java.net.URL>downloadUrlsprivate static LoggerLOGprotected Resourceresource
-
Constructor Summary
Constructors Constructor Description BaseResourceDownloader(Resource resource, java.util.List<java.net.URL> downloadUrls)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private voidcheckForProxyError()Resourcedownload()private java.util.concurrent.CompletableFuture<Resource>downloadFrom(java.net.URL url)private static booleanendsWithBlankLine(java.lang.String head)private voidensureRequestInterval()private java.lang.StringexceptionMessage()private java.lang.StringexceptionMessage(java.lang.Exception e)private <R> java.util.Optional<R>futureToOptional(java.util.concurrent.Future<R> future)private CloseableConnectiongetDownloadConnection(java.net.URL location)private DownloadDetailsgetDownloadDetails(CloseableConnection connection)private DownloadDetailsgetInputStreamFromDirectSocket(java.net.URL url)private intgetTimeValue(java.lang.String key)protected abstract VersionIdgetVersion(java.net.URL downloadFrom, java.lang.String versionHeaderValue)(package private) voidinvalidateExistingEntryInCache(VersionId version)protected abstract booleanisUpToDate(java.net.URL resourceHref, VersionId version, long lastModified)private java.lang.Object[]loadUrlWithInvalidHeaderBytes(java.net.URL url)private longparseLong(java.lang.String s, long defaultValue)private ResourcetryDownloading(java.net.URL downloadFrom)private longtryDownloading(DownloadDetails downloadDetails)
-
-
-
Constructor Detail
-
BaseResourceDownloader
BaseResourceDownloader(Resource resource, java.util.List<java.net.URL> downloadUrls)
-
-
Method Detail
-
download
public Resource download()
- Specified by:
downloadin interfaceResourceDownloader
-
exceptionMessage
private java.lang.String exceptionMessage()
-
exceptionMessage
private java.lang.String exceptionMessage(java.lang.Exception e)
-
checkForProxyError
private void checkForProxyError()
-
downloadFrom
private java.util.concurrent.CompletableFuture<Resource> downloadFrom(java.net.URL url)
-
tryDownloading
private Resource tryDownloading(java.net.URL downloadFrom) throws java.io.IOException
- Throws:
java.io.IOException
-
ensureRequestInterval
private void ensureRequestInterval()
-
getDownloadConnection
private CloseableConnection getDownloadConnection(java.net.URL location) throws java.io.IOException
- Throws:
java.io.IOException
-
getTimeValue
private int getTimeValue(java.lang.String key)
-
tryDownloading
private long tryDownloading(DownloadDetails downloadDetails) throws java.io.IOException
- Throws:
java.io.IOException
-
getVersion
protected abstract VersionId getVersion(java.net.URL downloadFrom, java.lang.String versionHeaderValue)
-
isUpToDate
protected abstract boolean isUpToDate(java.net.URL resourceHref, VersionId version, long lastModified)
-
getDownloadDetails
private DownloadDetails getDownloadDetails(CloseableConnection connection) throws java.io.IOException
- Throws:
java.io.IOException
-
getInputStreamFromDirectSocket
private DownloadDetails getInputStreamFromDirectSocket(java.net.URL url) throws java.io.IOException
- Throws:
java.io.IOException
-
loadUrlWithInvalidHeaderBytes
private java.lang.Object[] loadUrlWithInvalidHeaderBytes(java.net.URL url) throws java.io.IOException- Throws:
java.io.IOException
-
endsWithBlankLine
private static boolean endsWithBlankLine(java.lang.String head)
-
parseLong
private long parseLong(java.lang.String s, long defaultValue)
-
futureToOptional
private <R> java.util.Optional<R> futureToOptional(java.util.concurrent.Future<R> future)
-
invalidateExistingEntryInCache
void invalidateExistingEntryInCache(VersionId version)
-
-