Class ChecksumClient
- java.lang.Object
-
- dk.netarkivet.archive.checksum.distribute.ChecksumClient
-
- All Implemented Interfaces:
ReplicaClient
public class ChecksumClient extends Object implements ReplicaClient
Proxy for remote checksum archive. Establishes the jms connection to the remote checksum archive.Can be used in combination with any type of ChecksumServerAPI.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Method for closing this instance.static ChecksumClient
getInstance(ChannelID theCRin)
The method for invoking an instance of this class.ReplicaType
getType()
Method for retrieving the type of replica.BatchMessage
sendBatchJob(BatchMessage msg)
Method for sending batch job messages to the replica.BatchMessage
sendBatchJob(ChannelID replyChannel, FileBatchJob job)
Method for sending batch job messages to the replica.void
sendCorrectMessage(CorrectMessage msg)
Method for sending correct messages to the replica.void
sendGetAllChecksumsMessage(GetAllChecksumsMessage msg)
Method for sending the GetAllChecksumMessage to the ChecksumReplica.void
sendGetAllFilenamesMessage(GetAllFilenamesMessage msg)
Method for sending a GetAllFilenamesMessage to a checksum archive.void
sendGetChecksumMessage(GetChecksumMessage msg)
Method for retrieving the checksum of a specific arcfile within the archive.GetChecksumMessage
sendGetChecksumMessage(ChannelID replyChannel, String filename)
Method for retrieving the checksum of a specific arcfile within the archive.void
sendGetFileMessage(GetFileMessage gfm)
This method is intended to retrieve an arc-file from the archive.void
sendGetMessage(GetMessage msg)
This method is intended to retrieve a record from an arc-file within the archive.void
sendRemoveAndGetFileMessage(RemoveAndGetFileMessage msg)
This method is intended to retrieve an arc-file from the archive.void
sendUploadMessage(RemoteFile rf, String precomputedChecksum)
Method for uploading a file to the archive.
-
-
-
Method Detail
-
getInstance
public static ChecksumClient getInstance(ChannelID theCRin) throws IOFailure, ArgumentNotValid
The method for invoking an instance of this class.- Parameters:
theCRin
- The channel for contacting the checksum archive.- Returns:
- A new instance.
- Throws:
IOFailure
- If there is a problem with the connection.ArgumentNotValid
- If the checksum replica channel is null.
-
sendCorrectMessage
public void sendCorrectMessage(CorrectMessage msg) throws ArgumentNotValid
Method for sending correct messages to the replica. This CorrectMessage is used to correct a bad entry in the archive.- Specified by:
sendCorrectMessage
in interfaceReplicaClient
- Parameters:
msg
- The CorrectMessage to send to the replica.- Throws:
ArgumentNotValid
- If the CorrectMessage is null.
-
sendGetAllFilenamesMessage
public void sendGetAllFilenamesMessage(GetAllFilenamesMessage msg) throws ArgumentNotValid
Method for sending a GetAllFilenamesMessage to a checksum archive.- Specified by:
sendGetAllFilenamesMessage
in interfaceReplicaClient
- Parameters:
msg
- The GetAllFilenamesMessage, which will be send through the jms connection to the checksum archive.- Throws:
ArgumentNotValid
- If the GetAllFilenamesMessage is null.
-
sendGetAllChecksumsMessage
public void sendGetAllChecksumsMessage(GetAllChecksumsMessage msg) throws ArgumentNotValid
Method for sending the GetAllChecksumMessage to the ChecksumReplica.- Specified by:
sendGetAllChecksumsMessage
in interfaceReplicaClient
- Parameters:
msg
- The GetAllChecksumMessage, which will be sent through the jms connection to the checksum archive.- Throws:
ArgumentNotValid
- If the GetAllChecksumsMessage is null.
-
sendGetChecksumMessage
public void sendGetChecksumMessage(GetChecksumMessage msg)
Method for retrieving the checksum of a specific arcfile within the archive.- Specified by:
sendGetChecksumMessage
in interfaceReplicaClient
- Parameters:
msg
- The GetChecksumMessage which will be sent to the checksum archive though the jms connection.
-
sendGetChecksumMessage
public GetChecksumMessage sendGetChecksumMessage(ChannelID replyChannel, String filename) throws ArgumentNotValid
Method for retrieving the checksum of a specific arcfile within the archive.- Specified by:
sendGetChecksumMessage
in interfaceReplicaClient
- Parameters:
replyChannel
- The channel where the reply should be sent.filename
- The GetChecksumMessage which has been sent to the checksum archive though the jms connection.- Returns:
- The GetChecksumMessage which is sent.
- Throws:
ArgumentNotValid
- If the reply channel is null or if the filename is either null or the empty string.
-
getType
public ReplicaType getType()
Method for retrieving the type of replica. In this case the replica is a checksum replica.- Specified by:
getType
in interfaceReplicaClient
- Returns:
- The type of this replica, in this case Checksum replica.
-
sendUploadMessage
public void sendUploadMessage(RemoteFile rf, String precomputedChecksum) throws ArgumentNotValid
Method for uploading a file to the archive. This is only uploaded to one of the archives, not all of them. Thus using the 'any' channel.- Specified by:
sendUploadMessage
in interfaceReplicaClient
- Parameters:
rf
- The file to upload to the archive.precomputedChecksum
- A precomputed checksum- Throws:
ArgumentNotValid
- If the remote file is null.
-
sendBatchJob
public BatchMessage sendBatchJob(ChannelID replyChannel, FileBatchJob job) throws IllegalState, ArgumentNotValid
Method for sending batch job messages to the replica. This is not allowed since this archive at the end of this client is a checksum archive, which cannot handle batch jobs.- Specified by:
sendBatchJob
in interfaceReplicaClient
- Parameters:
replyChannel
- The channel where the reply should be sent.job
- The batchjob to execute.- Returns:
- Nothing. It always throws an exception, since it is not allowed to run batchjobs on a checksum archive.
- Throws:
IllegalState
- Always. Since it is not legal to send a batchjob to a checksum replica.ArgumentNotValid
- If the channel or the batchjob is null.
-
sendBatchJob
public BatchMessage sendBatchJob(BatchMessage msg) throws IllegalState, ArgumentNotValid
Method for sending batch job messages to the replica. This is not allowed since this archive at the end of this client is a checksum archive, which cannot handle batch jobs.- Specified by:
sendBatchJob
in interfaceReplicaClient
- Parameters:
msg
- The batch message.- Returns:
- Nothing. It always throws an exception, since it is not allowed to run batchjobs on a checksum archive.
- Throws:
IllegalState
- Always. Since it is not legal to send a batchjob to a checksum replica.ArgumentNotValid
- If the message is null.
-
sendGetMessage
public void sendGetMessage(GetMessage msg) throws IllegalState, ArgumentNotValid
This method is intended to retrieve a record from an arc-file within the archive. But since this handles checksum archive, it does not have the actual arc-files, and this function should therefore fail.- Specified by:
sendGetMessage
in interfaceReplicaClient
- Parameters:
msg
- The GetMessage for retrieving the arc-record from the archive.- Throws:
IllegalState
- Always. Since checksum replicas cannot handle this kind of messages.ArgumentNotValid
- If the message is null.
-
sendGetFileMessage
public void sendGetFileMessage(GetFileMessage gfm) throws IllegalState, ArgumentNotValid
This method is intended to retrieve an arc-file from the archive. But since this handles checksum archive, it does not have the actual arc-files, and this function should therefore fail.- Specified by:
sendGetFileMessage
in interfaceReplicaClient
- Parameters:
gfm
- The GetFileMessage for retrieving the arc-file from the archive.- Throws:
IllegalState
- Always. Since checksum replicas cannot handle this kind of messages.ArgumentNotValid
- If the message is null.
-
sendRemoveAndGetFileMessage
public void sendRemoveAndGetFileMessage(RemoveAndGetFileMessage msg) throws IllegalState, ArgumentNotValid
This method is intended to retrieve an arc-file from the archive. But since this handles checksum archive, it does not have the actual arc-files, and this function should therefore fail.- Specified by:
sendRemoveAndGetFileMessage
in interfaceReplicaClient
- Parameters:
msg
- The RemoveAndGetFileMessage for removing and retrieving an arc-file from the archive.- Throws:
IllegalState
- Always. Since checksum replicas cannot handle this kind of messages.ArgumentNotValid
- If the message is null.
-
close
public void close()
Method for closing this instance.- Specified by:
close
in interfaceReplicaClient
-
-