public class JMSArcRepositoryClient extends Synchronizer implements ArcRepositoryClient
Modifier and Type | Field and Description |
---|---|
static String |
ARCREPOSITORY_GET_TIMEOUT
settings.common.arcrepositoryClient.getTimeout:
The setting for how many milliseconds we will wait before giving up on a lookup request to the Arcrepository. |
static String |
ARCREPOSITORY_STORE_RETRIES
settings.common.arcrepositoryClient.storeRetries:
The setting for the number of times to try sending a store message before failing, including the first attempt. |
static String |
ARCREPOSITORY_STORE_TIMEOUT
settings.common.arcrepositoryClient.storeTimeout:
the setting for the timeout in milliseconds before retrying when calling ArcRepositoryClient.store(File) . |
protected static org.slf4j.Logger |
log
Logging output place.
|
Modifier | Constructor and Description |
---|---|
protected |
JMSArcRepositoryClient()
Adds this Synchronizer as listener on a jms connection.
|
Modifier and Type | Method and Description |
---|---|
BatchStatus |
batch(FileBatchJob job,
String replicaId,
String... args)
Runs a batch batch job on each file in the ArcRepository.
|
BatchStatus |
batch(FileBatchJob job,
String replicaId,
String batchId,
String... args)
Runs a batch job on each file in the ArcRepository.
|
void |
close()
Removes this object as a JMS listener.
|
File |
correct(String replicaId,
String checksum,
File file,
String credentials)
Method for correcting an entry in a replica.
|
BitarchiveRecord |
get(String arcfile,
long index)
Sends a GetMessage on the "TheArcrepos" queue and waits for a reply.
|
File |
getAllChecksums(String replicaId)
Retrieves all the checksum from the replica through a GetAllChecksumMessage.
|
File |
getAllFilenames(String replicaId)
Retrieves the names of all the files in the replica through a GetAllFilenamesMessage.
|
String |
getChecksum(String replicaId,
String filename)
Retrieves the checksum of a specific file.
|
void |
getFile(String arcfilename,
Replica replica,
File toFile)
Synchronously retrieves a file from a bitarchive and places it in a local file.
|
static JMSArcRepositoryClient |
getInstance()
Get an JMSArcRepositoryClient instance.
|
File |
removeAndGetFile(String fileName,
String bitarchiveId,
String checksum,
String credentials)
Removes a file from the bitarchives, if given credentials and checksum are correct.
|
void |
store(File file)
Sends a StoreMessage via the synchronized JMS connection method sendAndWaitForOneReply().
|
void |
updateAdminChecksum(String filename,
String checksum)
Request update of admin data to specific checksum.
|
void |
updateAdminData(String fileName,
String replicaId,
ReplicaStoreState newval)
Request update of admin data to specific state.
|
onMessage, sendAndWaitForOneReply
protected static final org.slf4j.Logger log
public static final String ARCREPOSITORY_GET_TIMEOUT
public static final String ARCREPOSITORY_STORE_RETRIES
public static final String ARCREPOSITORY_STORE_TIMEOUT
ArcRepositoryClient.store(File)
.protected JMSArcRepositoryClient()
public static JMSArcRepositoryClient getInstance()
public void close()
close
in interface ArcRepositoryClient
close
in interface HarvesterArcRepositoryClient
close
in interface PreservationArcRepositoryClient
close
in interface ViewerArcRepositoryClient
public BitarchiveRecord get(String arcfile, long index) throws ArgumentNotValid, IOFailure
get
in interface ArcRepositoryClient
get
in interface PreservationArcRepositoryClient
get
in interface ViewerArcRepositoryClient
arcfile
- The name of a file.index
- The offset of the wanted record in the fileArgumentNotValid
- If the given arcfile is null or empty, or the given index is negative.IOFailure
- If a wrong message is returned or the get operation failed.public void getFile(String arcfilename, Replica replica, File toFile) throws ArgumentNotValid, IOFailure
getFile
in interface ArcRepositoryClient
getFile
in interface PreservationArcRepositoryClient
getFile
in interface ViewerArcRepositoryClient
arcfilename
- Name of the arcfile to retrieve.replica
- The bitarchive to retrieve the data from.toFile
- Filename of a place where the file fetched can be put.ArgumentNotValid
- If the arcfilename are null or empty, or if either replica or toFile is null.IOFailure
- if there are problems getting a reply or the file could not be found.public void store(File file) throws IOFailure, ArgumentNotValid
store
in interface ArcRepositoryClient
store
in interface HarvesterArcRepositoryClient
store
in interface PreservationArcRepositoryClient
file
- A file to be stored. Must exist.IOFailure
- thrown if store is unsuccessful, or failed to clean up files locally or on the ftp server after
the store operation.ArgumentNotValid
- if file parameter is null or file is not an existing file.public BatchStatus batch(FileBatchJob job, String replicaId, String... args)
Note: The id for the batchjob is the empty string, which removes the possibility of terminating the batchjob remotely while it is running.
batch
in interface ArcRepositoryClient
batch
in interface PreservationArcRepositoryClient
batch
in interface ViewerArcRepositoryClient
job
- An object that implements the FileBatchJob interface. The initialize() method will be called before
processing and the finish() method will be called afterwards. The process() method will be called with each File
entry. An optional function postProcess() allows handling the combined results of the batchjob, e.g. summing the
results, sorting, etc.replicaId
- The archive to execute the job on.args
- The arguments for the batchjob.public BatchStatus batch(FileBatchJob job, String replicaId, String batchId, String... args) throws IOFailure, ArgumentNotValid
job
- An object that implements the FileBatchJob interface. The initialize() method will be called before
processing and the finish() method will be called afterwards. The process() method will be called with each File
entry. An optional function postProcess() allows handling the combined results of the batchjob, e.g. summing the
results, sorting, etc.replicaId
- The archive to execute the job on.args
- The arguments for the batchjob. This is allowed to be null.batchId
- The id for the batch process.ArgumentNotValid
- If the job is null or the replicaId is either null or the empty string.IOFailure
- If no result file is returned.public void updateAdminData(String fileName, String replicaId, ReplicaStoreState newval) throws ArgumentNotValid, IOFailure
updateAdminData
in interface ArcRepositoryClient
updateAdminData
in interface PreservationArcRepositoryClient
fileName
- The file for which admin data should be updated.replicaId
- The id if the replica that the administrative data for fileName is wrong for.newval
- The new value in admin data.ArgumentNotValid
- If one of the arguments are invalid (null or empty string).IOFailure
- If the reply to the request update timed out.public void updateAdminChecksum(String filename, String checksum)
updateAdminChecksum
in interface ArcRepositoryClient
updateAdminChecksum
in interface PreservationArcRepositoryClient
filename
- The file for which admin data should be updated.checksum
- The new checksum for the filepublic File removeAndGetFile(String fileName, String bitarchiveId, String checksum, String credentials) throws IOFailure, ArgumentNotValid
removeAndGetFile
in interface ArcRepositoryClient
removeAndGetFile
in interface PreservationArcRepositoryClient
fileName
- The name of the file to deletebitarchiveId
- The id of the bitarchive to delete the file inchecksum
- The checksum of the deleted filecredentials
- The credentials used to delete the fileArgumentNotValid
- if arguments are null or equal to the empty stringIOFailure
- if we could not delete the remote file, or there was no response to our RemoveAndGetFileMessage
within the allotted time defined by the setting ARCREPOSITORY_STORE_TIMEOUT
.public File getAllChecksums(String replicaId) throws IOFailure, ArgumentNotValid
This is the checksum archive alternative to running a ChecksumBatchJob.
getAllChecksums
in interface PreservationArcRepositoryClient
replicaId
- The id of the replica from which the checksums should be retrieved.IOFailure
- If the reply is not of type GetAllChecksumsMessage or if the file could not properly be
retrieved from the reply message or if the message timed out.ArgumentNotValid
- If the replicaId is null or empty.GetAllChecksumsMessage
public File getAllFilenames(String replicaId) throws ArgumentNotValid, IOFailure
This is the checksum archive alternative to running a FilelistBatchJob.
getAllFilenames
in interface PreservationArcRepositoryClient
replicaId
- The id of the replica from which the list of filenames should be retrieved.IOFailure
- If the reply is not of type GetAllFilenamesMessage or if the file could not properly be
retrieved from the reply messageArgumentNotValid
- If the replicaId is null or empty.GetAllFilenamesMessage
public String getChecksum(String replicaId, String filename) throws ArgumentNotValid, IOFailure
This is the checksum archive alternative to running a ChecksumJob limited to a specific file.
getChecksum
in interface PreservationArcRepositoryClient
replicaId
- The ID of the replica to send the message.filename
- The name of the file for whom the checksum should be retrieved.IOFailure
- If the reply is not of type GetChecksumMessage. Or if the message timed out.ArgumentNotValid
- If either the replicaId of the filename is null or empty.public File correct(String replicaId, String checksum, File file, String credentials) throws IOFailure, ArgumentNotValid
The file which is removed from the replica is put into the tempDir.
correct
in interface PreservationArcRepositoryClient
replicaId
- The id of the replica to send the message.checksum
- The checksum of the corrupt entry in the archive. It is important to validate that the checksum
actually is wrong before correcting the entry.file
- The file to correct the entry in the archive of the replica.credentials
- A string with the password for allowing changes inside an archive. If it does not correspond
to the credentials of the archive, the correction will not be allowed.IOFailure
- If the message is not handled properly.ArgumentNotValid
- If the replicaId, the checksum or the credentials are either null or empty, or if file
is null.Copyright © 2005–2015 The Royal Danish Library, the Danish State and University Library, the National Library of France and the Austrian National Library.. All rights reserved.