Class FileCacheDataLoader
java.lang.Object
eu.europa.esig.dss.service.http.commons.FileCacheDataLoader
- All Implemented Interfaces:
DataLoader,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
ConstructorsConstructorDescriptionEmpty constructorFileCacheDataLoader(DataLoader dataLoader) Default constructor -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToBeIgnored(String urlString) This methods allows to indicate which resources must be ignored.voidaddToBeLoaded(String url) This methods allows to indicate if the resource must be obtained.createFile(String urlString, byte[] bytes) Allows to add a given array ofbyteas a cache file representing by theurlString.byte[]Execute a HTTP GET operation.byte[]Execute a HTTP GET operation with indication concerning the mandatory nature of the operation.Execute a HTTP GET operation.Gets the dataloadergetDocument(String url) Returns DSSDocument from the provided urlprotected booleanisNetworkProtocol(String urlString) Checks if the URL defines a network protocolbyte[]loadFileFromCache(String urlString) Allows to load the file for a given file name from the cache folder.byte[]Executes a HTTP POST operationbooleanRemoves the file from FileSystem with the given urlvoidsetCacheExpirationTime(long cacheExpirationTimeInMilliseconds) Sets the expiration time for the cached files in milliseconds.voidsetContentType(String contentType) This allows to set the content type.voidsetDataLoader(DataLoader dataLoader) Sets the data loader for a remote documents access (e.g.voidsetFileCacheDirectory(File fileCacheDirectory) This method allows to set the file cache directory.voidsetResourceLoader(ResourceLoader resourceLoader) Sets the ResourceLoader for an absolute path creation
-
Constructor Details
-
FileCacheDataLoader
public FileCacheDataLoader()Empty constructor -
FileCacheDataLoader
Default constructor- Parameters:
dataLoader-DataLoaderto use for remote access (e.g. online)
-
-
Method Details
-
getDataLoader
Gets the dataloader- Returns:
DataLoader
-
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-Filepointing 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
Description copied from interface:DataLoaderExecute a HTTP GET operation with indication concerning the mandatory nature of the operation.- Specified by:
getin interfaceDataLoader- Parameters:
url- to accessrefresh- if true indicates that the cached data should be refreshed- Returns:
bytearray of obtained data or null- Throws:
DSSException
-
get
Description copied from interface:DataLoaderExecute a HTTP GET operation.- Specified by:
getin interfaceDataLoader- Parameters:
url- the url to access- Returns:
bytearray of obtained data or null- Throws:
DSSException
-
getDocument
Description copied from interface:DSSFileLoaderReturns DSSDocument from the provided url- Specified by:
getDocumentin interfaceDSSFileLoader- Parameters:
url-Stringurl of the document to obtain- Returns:
DSSDocumentretrieved document
-
remove
Description copied from interface:DSSFileLoaderRemoves the file from FileSystem with the given url- Specified by:
removein interfaceDSSFileLoader- Parameters:
url-Stringurl of the remote file location (the same what was used on file saving)- Returns:
- TRUE when file was successfully deleted, FALSE otherwise
-
isNetworkProtocol
Checks if the URL defines a network protocol- Parameters:
urlString-Stringurl to check- Returns:
- TRUE if the URL defines a network protocol, FALSE otherwise
-
createFile
Allows to add a given array ofbyteas a cache file representing by theurlString.- Parameters:
urlString- the URL to add to the cachebytes- the content of the cache file- Returns:
File
-
loadFileFromCache
Allows to load the file for a given file name from the cache folder.- Parameters:
urlString-Stringurl- Returns:
- the content of the file or
nullif the file does not exist - Throws:
DSSException- in case if the file does not exist in the cache
-
post
Description copied from interface:DataLoaderExecutes a HTTP POST operation- Specified by:
postin interfaceDataLoader- Parameters:
urlString- to accesscontent- the content to post- Returns:
bytearray of obtained data- Throws:
DSSException
-
get
Description copied from interface:DataLoaderExecute 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:
getin interfaceDataLoader- Parameters:
urlStrings-ListofStrings representing the URLs to be used in sequential way to obtain the data.- Returns:
DataAndUrlrepresenting the array of obtained data and used url, or null
-
setContentType
Description copied from interface:DataLoaderThis allows to set the content type. Example: Content-Type "application/ocsp-request"- Specified by:
setContentTypein interfaceDataLoader- Parameters:
contentType- to set the Content-Type
-