dk.netarkivet.archive.bitarchive.distribute
Class BitarchiveClient

java.lang.Object
  extended by dk.netarkivet.archive.bitarchive.distribute.BitarchiveClient

public class BitarchiveClient
extends java.lang.Object

Proxy for remote bitarchive. Establishes a JMS connection to the remote bitarchive


Field Summary
protected static org.apache.commons.logging.Log log
           
 
Method Summary
 BatchMessage batch(BatchMessage bMsg)
          Submit an already constructed get message to the archive.
 BatchMessage batch(ChannelID replyChannel, FileBatchJob job)
          Submit a batch job to the archive.
 void close()
          Release jms connections.
 void get(GetMessage msg)
          Submit an already constructed batch message to the archive.
 GetMessage get(java.lang.String arcfile, long index)
          Submit a get request to the bitarchive.
 void getFile(GetFileMessage msg)
          Submit an already constructed getfile message to the archive.
static BitarchiveClient getInstance(ChannelID all_ba_in, ChannelID any_ba_in, ChannelID the_bamon_in)
          Factory that establish the connection to the server.
 void removeAndGetFile(RemoveAndGetFileMessage msg)
          Forward the message to ALL_BA.
 void upload(RemoteFile rf)
          Submit an upload request to the bitarchive.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static final org.apache.commons.logging.Log log
Method Detail

getInstance

public static BitarchiveClient getInstance(ChannelID all_ba_in,
                                           ChannelID any_ba_in,
                                           ChannelID the_bamon_in)
                                    throws IOFailure
Factory that establish the connection to the server.

Parameters:
all_ba_in - topic to all bitarchives
any_ba_in - queue to one of the bitarchives
the_bamon_in - queue to the bitarchive monitor
Returns:
A BitarchiveClient
Throws:
IOFailure - If there is a problem making the connection.

get

public GetMessage get(java.lang.String arcfile,
                      long index)
Submit a get request to the bitarchive.

Parameters:
arcfile - The file containing the requested record
index - Offset of the ARC record in the file
Returns:
The submitted message or null if an error occured

get

public void get(GetMessage msg)
Submit an already constructed batch message to the archive. The reply goes directly back to whoever sent the message.

Parameters:
msg - the message to be processed by the get command.

getFile

public void getFile(GetFileMessage msg)
Submit an already constructed getfile message to the archive.

Parameters:
msg - get file message to retrieve

removeAndGetFile

public void removeAndGetFile(RemoveAndGetFileMessage msg)
Forward the message to ALL_BA.

Parameters:
msg - the message to forward

upload

public void upload(RemoteFile rf)
Submit an upload request to the bitarchive.

Parameters:
rf - The file to upload
Throws:
IOFailure - If access to file denied
ArgumentNotValid - if arcfile is null

batch

public BatchMessage batch(BatchMessage bMsg)
                   throws ArgumentNotValid
Submit an already constructed get message to the archive. This is used by the ArcRepository when forwarding batch jobs from its clients.

Parameters:
bMsg - a BatchMessage
Returns:
The submitted message
Throws:
ArgumentNotValid - if message is null.

batch

public BatchMessage batch(ChannelID replyChannel,
                          FileBatchJob job)
                   throws ArgumentNotValid,
                          IOFailure
Submit a batch job to the archive. This is used by the ArcRepository when it needs to run batch jobs for its own reasons (i.e. when checksumming a file as part of the Store operation.

Parameters:
replyChannel - The channel that the reply of this job should be sent to.
job - The job that should be run on the bit archive handled by this client.
Returns:
The submitted message
Throws:
ArgumentNotValid - if any parameter was null.
IOFailure - if sending the batch message did not succeed.

close

public void close()
Release jms connections.