Class MemoryJournal
- java.lang.Object
-
- org.apache.jackrabbit.core.journal.AbstractJournal
-
- 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
Nested Classes Modifier and Type Class Description static class
MemoryJournal.MemoryRecord
Memory record.class
MemoryJournal.MemoryRecordIterator
Record iterator implementation.
-
Constructor Summary
Constructors Constructor Description MemoryJournal()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
append(AppendRecord record, InputStream in, int length)
Append a record backed by a file.protected void
appending(AppendRecord record)
Notification method called by an appended record at creation time.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
createProducer, doSync, doSync, getConsumer, getId, getNamePathResolver, getProducer, getRepositoryHome, getResolver, getRevision, lockAndSync, register, setInternalVersionManager, setRepositoryHome, setRevision, sync, syncAgainOnNewRecords, unlock, unregister
-
-
-
-
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 interfaceJournal
- Overrides:
init
in classAbstractJournal
- Parameters:
id
- id this journal should use to write its own recordsresolver
- 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 classAbstractJournal
- Throws:
JournalException
- if an error occurs
-
appending
protected void appending(AppendRecord record)
Description copied from class:AbstractJournal
Notification method called by an appended record at creation time. May be overridden by subclasses to save some context information inside the appended record.- Overrides:
appending
in classAbstractJournal
- Parameters:
record
- record that was appended
-
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 classAbstractJournal
- Parameters:
record
- record to appendin
- input streamlength
- 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 classAbstractJournal
- 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.
-
-