Class FileCacheDataLoader
java.lang.Object
eu.europa.esig.dss.service.http.commons.FileCacheDataLoader
- All Implemented Interfaces:
DataLoader
,DSSCacheFileLoader
,DSSFileLoader
,Serializable
This class provides some caching features to handle the resources. The default cache folder is set to
java.io.tmpdir
. The urls of the resources is transformed to the
file name by replacing the special characters by _
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface eu.europa.esig.dss.spi.client.http.DataLoader
DataLoader.DataAndUrl
-
Constructor Summary
ConstructorDescriptionEmpty constructorFileCacheDataLoader
(DataLoader dataLoader) Default constructor -
Method Summary
Modifier and TypeMethodDescriptionvoid
addToBeIgnored
(String urlString) This methods allows to indicate which resources must be ignored.void
addToBeLoaded
(String url) This methods allows to indicate if the resource must be obtained.createFile
(String urlString, byte[] bytes) Allows to add a given array ofbyte
as a cache file representing by theurl
.byte[]
Execute a HTTP GET operation.byte[]
Executes a GET request to the provided URL, with a forced cacherefresh
when definedExecute a HTTP GET operation.Gets the dataloadergetDocument
(String url) Returns DSSDocument from the provided urlgetDocument
(String url, boolean refresh) This method allows to download aDSSDocument
from a specifiedurl
with a custom setting indicating whether therefresh
of the document's cache shall be enforced, when applicableAllows to load a document for a given url from the cache folder.protected boolean
isNetworkProtocol
(String urlString) Checks if the URL defines a network protocolbyte[]
loadFileFromCache
(String urlString) Deprecated.since DSS 6.1.byte[]
Executes a HTTP POST operationboolean
Removes the file from cache with the given urlvoid
setCacheExpirationTime
(long cacheExpirationTimeInMilliseconds) Sets the expiration time for the cached files in milliseconds.void
setContentType
(String contentType) This allows to set the content type.void
setDataLoader
(DataLoader dataLoader) Sets the data loader for a remote documents access (e.g. online)void
setFileCacheDirectory
(File fileCacheDirectory) This method allows to set the file cache directory.void
setResourceLoader
(ResourceLoader resourceLoader) Sets the ResourceLoader for an absolute path creation
-
Constructor Details
-
FileCacheDataLoader
public FileCacheDataLoader()Empty constructor -
FileCacheDataLoader
Default constructor- Parameters:
dataLoader
-DataLoader
to use for remote access (e.g. online)
-
-
Method Details
-
getDataLoader
-
setDataLoader
Sets the data loader for a remote documents access (e.g. online)- Parameters:
dataLoader
-DataLoader
-
setFileCacheDirectory
This method allows to set the file cache directory. If the cache folder does not exists then it's created.- Parameters:
fileCacheDirectory
-File
pointing the cache folder to be used.
-
setCacheExpirationTime
public void setCacheExpirationTime(long cacheExpirationTimeInMilliseconds) Sets the expiration time for the cached files in milliseconds. If the defined time has passed after the cache file's last modification time, then a fresh copy is downloaded and cached, otherwise a cached copy is used. A negative value is interpreted as undefined (cache does not expire). Default:-1
- Parameters:
cacheExpirationTimeInMilliseconds
- value in milliseconds
-
setResourceLoader
Sets the ResourceLoader for an absolute path creation- Parameters:
resourceLoader
-ResourceLoader
-
addToBeLoaded
This methods allows to indicate if the resource must be obtained. If this method has been invoked then only the provided URL will be processed.- Parameters:
url
- to be processed
-
addToBeIgnored
This methods allows to indicate which resources must be ignored. It is useful in a test environment where some of fake sources a not available. It prevents to wait for the timeout.- Parameters:
urlString
- to be ignored. It can be the original URL or the cache file name
-
get
Executes a GET request to the provided URL, with a forced cacherefresh
when defined- Parameters:
url
- to accessrefresh
- if true indicates that the cached data should be refreshed- Returns:
- binaries of the extracted data object
-
get
Description copied from interface:DataLoader
Execute a HTTP GET operation.- Specified by:
get
in interfaceDataLoader
- Parameters:
url
- the url to access- Returns:
byte
array of obtained data or null- Throws:
DSSException
-
getDocument
This method allows to download aDSSDocument
from a specifiedurl
with a custom setting indicating whether therefresh
of the document's cache shall be enforced, when applicable- Specified by:
getDocument
in interfaceDSSCacheFileLoader
- Parameters:
url
-String
remote location of the document to downloadrefresh
- indicates whether the refresh of the cached document shall be enforced- Returns:
DSSDocument
-
getDocument
Description copied from interface:DSSFileLoader
Returns DSSDocument from the provided url- Specified by:
getDocument
in interfaceDSSFileLoader
- Parameters:
url
-String
url of the document to obtain- Returns:
DSSDocument
retrieved document
-
remove
Description copied from interface:DSSCacheFileLoader
Removes the file from cache with the given url- Specified by:
remove
in interfaceDSSCacheFileLoader
- Specified by:
remove
in interfaceDSSFileLoader
- Parameters:
url
-String
url of the remote file location (the same what was used on file saving)- Returns:
- TRUE when file was successfully deleted, FALSE otherwise
-
isNetworkProtocol
-
createFile
-
loadFileFromCache
Deprecated.since DSS 6.1. Please use#getDocumentFromCache
method insteadAllows to load the file for a given file name from the cache folder.- Parameters:
urlString
-String
url- Returns:
- the content of the file or
null
if the file does not exist - Throws:
DSSException
- in case if the file does not exist in the cache
-
getDocumentFromCache
Description copied from interface:DSSCacheFileLoader
Allows to load a document for a given url from the cache folder. If the document is not found in the cache, returns NULL.- Specified by:
getDocumentFromCache
in interfaceDSSCacheFileLoader
- Parameters:
url
-String
url of the file- Returns:
DSSDocument
or NULL if the file does not exist
-
post
Description copied from interface:DataLoader
Executes a HTTP POST operation- Specified by:
post
in interfaceDataLoader
- Parameters:
urlString
- to accesscontent
- the content to post- Returns:
byte
array of obtained data- Throws:
DSSException
-
get
Description copied from interface:DataLoader
Execute a HTTP GET operation. This method is used when many URls are available to access the same resource. The operation stops after the first successful download.- Specified by:
get
in interfaceDataLoader
- Parameters:
urlStrings
-List
ofString
s representing the URLs to be used in sequential way to obtain the data.- Returns:
DataAndUrl
representing the array of obtained data and used url, or null
-
setContentType
Description copied from interface:DataLoader
This allows to set the content type. Example: Content-Type "application/ocsp-request"- Specified by:
setContentType
in interfaceDataLoader
- Parameters:
contentType
- to set the Content-Type
-