org.fcrepo.server.journal.recoverylog
Class JournalRecoveryLog

java.lang.Object
  extended by org.fcrepo.server.journal.recoverylog.JournalRecoveryLog
All Implemented Interfaces:
JournalConstants
Direct Known Subclasses:
BufferedJournalRecoveryLog, RenamingJournalRecoveryLog, UnbufferedJournalRecoveryLog

public abstract class JournalRecoveryLog
extends Object
implements JournalConstants

The abstract base for all JournalRecoveryLog classes.

Author:
Jim Blake

Field Summary
protected  ServerInterface server
           
 
Fields inherited from interface org.fcrepo.server.journal.JournalConstants
ARGUMENT_NAME_ALT_IDS, ARGUMENT_NAME_CHECKSUM, ARGUMENT_NAME_CHECKSUM_TYPE, ARGUMENT_NAME_CONTEXT, ARGUMENT_NAME_CONTROL_GROUP, ARGUMENT_NAME_DATATYPE, ARGUMENT_NAME_DISSEMINATOR_ID, ARGUMENT_NAME_DISSEMINATOR_LABEL, ARGUMENT_NAME_DISSEMINATOR_STATE, ARGUMENT_NAME_DS_CONTENT, ARGUMENT_NAME_DS_ID, ARGUMENT_NAME_DS_LABEL, ARGUMENT_NAME_DS_LOCATION, ARGUMENT_NAME_DS_STATE, ARGUMENT_NAME_ENCODING, ARGUMENT_NAME_END_DATE, ARGUMENT_NAME_FORCE, ARGUMENT_NAME_FORMAT, ARGUMENT_NAME_FORMAT_URI, ARGUMENT_NAME_IN, ARGUMENT_NAME_IS_LITERAL, ARGUMENT_NAME_LABEL, ARGUMENT_NAME_LAST_MODIFIED_DATE, ARGUMENT_NAME_LOCATION, ARGUMENT_NAME_LOG_MESSAGE, ARGUMENT_NAME_MIME_TYPE, ARGUMENT_NAME_NAMESPACE, ARGUMENT_NAME_NEW_PID, ARGUMENT_NAME_NUM_PIDS, ARGUMENT_NAME_OBJECT, ARGUMENT_NAME_OWNERID, ARGUMENT_NAME_PID, ARGUMENT_NAME_RELATIONSHIP, ARGUMENT_NAME_SERIALIZATION, ARGUMENT_NAME_START_DATE, ARGUMENT_NAME_STATE, ARGUMENT_NAME_VERSION_DATE, ARGUMENT_NAME_VERSIONABLE, ARGUMENT_TYPE_BINDING_MAP, ARGUMENT_TYPE_BOOLEAN, ARGUMENT_TYPE_DATE, ARGUMENT_TYPE_INTEGER, ARGUMENT_TYPE_NULL, ARGUMENT_TYPE_STREAM, ARGUMENT_TYPE_STRING, ARGUMENT_TYPE_STRINGARRAY, CONTEXT_MAPNAME_ACTION, CONTEXT_MAPNAME_ENVIRONMENT, CONTEXT_MAPNAME_RECOVERY, CONTEXT_MAPNAME_RESOURCE, CONTEXT_MAPNAME_SUBJECT, DEFAULT_AGE_LIMIT, DEFAULT_FILENAME_PREFIX, DEFAULT_SIZE_LIMIT, DOCUMENT_ENCODING, DOCUMENT_VERSION, FORMAT_JOURNAL_FILENAME_TIMESTAMP, METHOD_ADD_DATASTREAM, METHOD_ADD_DISSEMINATOR, METHOD_ADD_RELATIONSHIP, METHOD_GET_NEXT_PID, METHOD_INGEST, METHOD_MODIFY_DATASTREAM_BY_REFERENCE, METHOD_MODIFY_DATASTREAM_BY_VALUE, METHOD_MODIFY_DISSEMINATOR, METHOD_MODIFY_OBJECT, METHOD_PURGE_DATASTREAM, METHOD_PURGE_DISSEMINATOR, METHOD_PURGE_OBJECT, METHOD_PURGE_RELATIONSHIP, METHOD_PUT_TEMP_STREAM, METHOD_SET_DATASTREAM_STATE, METHOD_SET_DATASTREAM_VERSIONABLE, METHOD_SET_DISSEMINATOR_STATE, PARAMETER_IGNORE_HASH, PARAMETER_JOURNAL_FILE_AGE_LIMIT, PARAMETER_JOURNAL_FILE_SIZE_LIMIT, PARAMETER_JOURNAL_FILENAME_PREFIX, PARAMETER_JOURNAL_MODE, PARAMETER_JOURNAL_READER_CLASSNAME, PARAMETER_JOURNAL_RECOVERY_LOG_CLASSNAME, PARAMETER_JOURNAL_WRITER_CLASSNAME, PARAMETER_RECOVERY_LOG_FILENAME, PARAMETER_RECOVERY_LOG_LEVEL, PASSWORD_CIPHER_TYPE, QNAME_ATTR_BIND_KEY_NAME, QNAME_ATTR_BIND_LABEL, QNAME_ATTR_CLIENT_IP, QNAME_ATTR_DATASTREAM_ID, QNAME_ATTR_DS_BIND_MAP_ID, QNAME_ATTR_DS_BIND_MAP_LABEL, QNAME_ATTR_DS_BIND_MECHANISM_PID, QNAME_ATTR_LOGIN_ID, QNAME_ATTR_METHOD, QNAME_ATTR_NAME, QNAME_ATTR_PASSWORD_TYPE, QNAME_ATTR_REPOSITORY_HASH, QNAME_ATTR_SEQ_NO, QNAME_ATTR_STATE, QNAME_ATTR_TIMESTAMP, QNAME_ATTR_TYPE, QNAME_ATTR_USERID, QNAME_TAG_ARGUMENT, QNAME_TAG_ARRAYELEMENT, QNAME_TAG_CONTEXT, QNAME_TAG_DS_BINDING, QNAME_TAG_DS_BINDING_MAP, QNAME_TAG_JOURNAL, QNAME_TAG_JOURNAL_ENTRY, QNAME_TAG_MULTI_VALUE_MAP, QNAME_TAG_MULTI_VALUE_MAP_KEY, QNAME_TAG_MULTI_VALUE_MAP_VALUE, QNAME_TAG_NOOP, QNAME_TAG_NOW, QNAME_TAG_PASSWORD, SYSTEM_PROPERTY_PREFIX, TIMESTAMP_FORMAT, VALUE_FALSE, VALUE_JOURNAL_MODE_NORMAL, VALUE_JOURNAL_MODE_RECOVER, VALUE_RECOVERY_LOG_LEVEL_HIGH, VALUE_RECOVERY_LOG_LEVEL_LOW, VALUE_RECOVERY_LOG_LEVEL_MEDIUM, VALUE_TRUE
 
Constructor Summary
protected JournalRecoveryLog(Map<String,String> parameters, String role, ServerInterface server)
          Concrete sub-classes must implement this constructor.
 
Method Summary
static JournalRecoveryLog getInstance(Map<String,String> parameters, String role, ServerInterface server)
          Create an instance of the proper JournalRecoveryLog child class, as determined by the server parameters.
 void log(ConsumerJournalEntry journalEntry)
          Format a journal entry for writing to the logger.
abstract  void log(String message)
          Concrete sub-classes should probably synchronize this method, since it can be called either from the JournalConsumerThread or from the Server.
protected  void log(String message, Writer writer)
          Concrete sub-classes call this method to perform the final formatting if a log entry.
 void logHeaderInfo(Map<String,String> parameters)
          Concrete sub-classes should call this method from their constructor, or as soon as the log is ready for writing.
abstract  void shutdown()
          Concrete sub-classes should probably synchronize this method, since it can be called either from the JournalConsumerThread or from the Server.
 void shutdown(String message)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

server

protected final ServerInterface server
Constructor Detail

JournalRecoveryLog

protected JournalRecoveryLog(Map<String,String> parameters,
                             String role,
                             ServerInterface server)
                      throws ModuleInitializationException
Concrete sub-classes must implement this constructor. Checks the server parameters to find out what Logging Level to use - default is Low.

Throws:
ModuleInitializationException
Method Detail

getInstance

public static JournalRecoveryLog getInstance(Map<String,String> parameters,
                                             String role,
                                             ServerInterface server)
                                      throws ModuleInitializationException
Create an instance of the proper JournalRecoveryLog child class, as determined by the server parameters.

Throws:
ModuleInitializationException

log

public abstract void log(String message)
Concrete sub-classes should probably synchronize this method, since it can be called either from the JournalConsumerThread or from the Server.


shutdown

public abstract void shutdown()
Concrete sub-classes should probably synchronize this method, since it can be called either from the JournalConsumerThread or from the Server. For the same reason, they should also provide for the possibility that it will be called multiple times, or that a call to log() will happen after the call to shutdown().


shutdown

public void shutdown(String message)

logHeaderInfo

public void logHeaderInfo(Map<String,String> parameters)
Concrete sub-classes should call this method from their constructor, or as soon as the log is ready for writing.


log

public void log(ConsumerJournalEntry journalEntry)
Format a journal entry for writing to the logger. Take logging level into account.


log

protected void log(String message,
                   Writer writer)
Concrete sub-classes call this method to perform the final formatting if a log entry.



Copyright © 2011 DuraSpace. All Rights Reserved.