org.apache.jackrabbit.core.journal
Class MemoryJournal

java.lang.Object
  extended by org.apache.jackrabbit.core.journal.AbstractJournal
      extended by org.apache.jackrabbit.core.journal.MemoryJournal
All Implemented Interfaces:
Journal

public class MemoryJournal
extends AbstractJournal

Memory-based journal, useful for testing purposes only.


Nested Class Summary
 class MemoryJournal.MemoryRecord
          Memory record.
 class MemoryJournal.MemoryRecordIterator
          Record iterator implementation.
 
Constructor Summary
MemoryJournal()
           
 
Method Summary
protected  void append(AppendRecord record, InputStream in, int length)
          Append a record backed by a file.
 void close()
          Close this journal.
protected  void doLock()
          Lock the journal revision.
protected  void doUnlock(boolean successful)
          Unlock the journal revision.
 InstanceRevision getInstanceRevision()
          Gets the instance that manages the cluster node's local revision.
 long getReadDelay()
          Return the read delay in milliseconds.
 RecordIterator getRecords()
          Return an iterator over all available records in the journal.
 RecordIterator getRecords(long startRevision)
          Return an iterator over all records after the specified revision.
 long getWriteDelay()
          Return the write delay in milliseconds.
 void init(String id, NamespaceResolver resolver)
          Initialize journal.
 void setReadDelay(long readDelay)
          Set the read delay in milliseconds.
 void setRecords(List<MemoryJournal.MemoryRecord> records)
          Set records.
 void setWriteDelay(long writeDelay)
          Set the write delay in milliseconds.
 
Methods inherited from class org.apache.jackrabbit.core.journal.AbstractJournal
appending, createProducer, doSync, getConsumer, getId, getNamePathResolver, getProducer, getRepositoryHome, getResolver, getRevision, lockAndSync, register, setRepositoryHome, setRevision, sync, unlock, unregister
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MemoryJournal

public MemoryJournal()
Method Detail

getInstanceRevision

public InstanceRevision getInstanceRevision()
                                     throws JournalException
Gets the instance that manages the cluster node's local revision.

Returns:
the InstanceRevision manager
Throws:
JournalException - on error

init

public void init(String id,
                 NamespaceResolver resolver)
          throws JournalException
Initialize journal.

Specified by:
init in interface Journal
Overrides:
init in class AbstractJournal
Parameters:
id - id this journal should use to write its own records
resolver - resolver used when reading/writing records
Throws:
JournalException - if an error occurs

doLock

protected void doLock()
               throws JournalException
Lock the journal revision. Subclass responsibility.

Specified by:
doLock in class AbstractJournal
Throws:
JournalException - if an error occurs

append

protected void append(AppendRecord record,
                      InputStream in,
                      int length)
               throws JournalException
Append a record backed by a file. On exit, the new revision must have been set inside the appended record. Subclass responsibility.

Specified by:
append in class AbstractJournal
Parameters:
record - record to append
in - input stream
length - number of bytes in input stream
Throws:
JournalException - if an error occurs

doUnlock

protected void doUnlock(boolean successful)
Unlock the journal revision. Subclass responsibility.

Specified by:
doUnlock in class AbstractJournal
Parameters:
successful - flag indicating whether the update process was successful

getRecords

public RecordIterator getRecords(long startRevision)
                          throws JournalException
Return an iterator over all records after the specified revision.

Parameters:
startRevision - start point (exlusive)
Returns:
an iterator over all records after the specified revision.
Throws:
JournalException - if an error occurs

getRecords

public RecordIterator getRecords()
                          throws JournalException
Return an iterator over all available records in the journal.

Returns:
an iterator over all records.
Throws:
JournalException - if an error occurs

setRecords

public void setRecords(List<MemoryJournal.MemoryRecord> records)
Set records. Used to share records between two journal implementations.

Parameters:
records - array list that should back up this memory journal

getReadDelay

public long getReadDelay()
Return the read delay in milliseconds.

Returns:
read delay

setReadDelay

public void setReadDelay(long readDelay)
Set the read delay in milliseconds.

Parameters:
readDelay - read delay

getWriteDelay

public long getWriteDelay()
Return the write delay in milliseconds.

Returns:
write delay

setWriteDelay

public void setWriteDelay(long writeDelay)
Set the write delay in milliseconds.

Parameters:
writeDelay - write delay

close

public void close()
Close this journal. This should release any resources still held by this journal.



Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.