Class CachingArchiveManager
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.spi.persistence.persistentcache.CachingArchiveManager
-
- All Implemented Interfaces:
SegmentArchiveManager
public class CachingArchiveManager extends java.lang.Object implements SegmentArchiveManager
-
-
Constructor Summary
Constructors Constructor Description CachingArchiveManager(PersistentCache persistentCache, SegmentArchiveManager delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
backup(@NotNull java.lang.String archiveName, @NotNull java.lang.String backupArchiveName, @NotNull java.util.Set<java.util.UUID> recoveredEntries)
Method that is doing a backup of the archive given witharchiveName
intobackupArchiveName
.void
copyFile(@NotNull java.lang.String from, @NotNull java.lang.String to)
Copies the archive with all the segments.@NotNull SegmentArchiveWriter
create(@NotNull java.lang.String archiveName)
Creates a new archive.boolean
delete(@NotNull java.lang.String archiveName)
Deletes the archive if exists.boolean
exists(@NotNull java.lang.String archiveName)
Check if archive exists.@Nullable SegmentArchiveReader
forceOpen(java.lang.String archiveName)
Opens an archive that wasn't closed correctly.@NotNull java.util.List<java.lang.String>
listArchives()
List names of the available .tar archives.@Nullable SegmentArchiveReader
open(@NotNull java.lang.String archiveName)
Opens a given archive for reading.void
recoverEntries(@NotNull java.lang.String archiveName, @NotNull java.util.LinkedHashMap<java.util.UUID,byte[]> entries)
Finds all the segments included in the archive.boolean
renameTo(@NotNull java.lang.String from, @NotNull java.lang.String to)
Renames the archive.
-
-
-
Constructor Detail
-
CachingArchiveManager
public CachingArchiveManager(PersistentCache persistentCache, SegmentArchiveManager delegate)
-
-
Method Detail
-
listArchives
@NotNull public @NotNull java.util.List<java.lang.String> listArchives() throws java.io.IOException
Description copied from interface:SegmentArchiveManager
List names of the available .tar archives.- Specified by:
listArchives
in interfaceSegmentArchiveManager
- Returns:
- archive list
- Throws:
java.io.IOException
-
open
@Nullable public @Nullable SegmentArchiveReader open(@NotNull @NotNull java.lang.String archiveName) throws java.io.IOException
Description copied from interface:SegmentArchiveManager
Opens a given archive for reading.- Specified by:
open
in interfaceSegmentArchiveManager
- Returns:
- the archive reader or null if the archive doesn't exist or doesn't have a valid index
- Throws:
java.io.IOException
-
forceOpen
@Nullable public @Nullable SegmentArchiveReader forceOpen(java.lang.String archiveName) throws java.io.IOException
Description copied from interface:SegmentArchiveManager
Opens an archive that wasn't closed correctly.- Specified by:
forceOpen
in interfaceSegmentArchiveManager
- Returns:
- the archive reader or null if the implementation doesn't support opening an unclosed archive
- Throws:
java.io.IOException
-
create
@NotNull public @NotNull SegmentArchiveWriter create(@NotNull @NotNull java.lang.String archiveName) throws java.io.IOException
Description copied from interface:SegmentArchiveManager
Creates a new archive.- Specified by:
create
in interfaceSegmentArchiveManager
- Returns:
- the archive writer
- Throws:
java.io.IOException
-
delete
public boolean delete(@NotNull @NotNull java.lang.String archiveName)
Description copied from interface:SegmentArchiveManager
Deletes the archive if exists.- Specified by:
delete
in interfaceSegmentArchiveManager
- Returns:
- true if the archive was removed, false otherwise
-
renameTo
public boolean renameTo(@NotNull @NotNull java.lang.String from, @NotNull @NotNull java.lang.String to)
Description copied from interface:SegmentArchiveManager
Renames the archive.- Specified by:
renameTo
in interfaceSegmentArchiveManager
- Parameters:
from
- the existing archiveto
- new name- Returns:
- true if the archive was renamed, false otherwise
-
copyFile
public void copyFile(@NotNull @NotNull java.lang.String from, @NotNull @NotNull java.lang.String to) throws java.io.IOException
Description copied from interface:SegmentArchiveManager
Copies the archive with all the segments.- Specified by:
copyFile
in interfaceSegmentArchiveManager
- Parameters:
from
- the existing archiveto
- new name- Throws:
java.io.IOException
-
exists
public boolean exists(@NotNull @NotNull java.lang.String archiveName)
Description copied from interface:SegmentArchiveManager
Check if archive exists.- Specified by:
exists
in interfaceSegmentArchiveManager
- Parameters:
archiveName
- archive to check- Returns:
- true if archive exists, false otherwise
-
recoverEntries
public void recoverEntries(@NotNull @NotNull java.lang.String archiveName, @NotNull @NotNull java.util.LinkedHashMap<java.util.UUID,byte[]> entries) throws java.io.IOException
Description copied from interface:SegmentArchiveManager
Finds all the segments included in the archive.- Specified by:
recoverEntries
in interfaceSegmentArchiveManager
- Parameters:
archiveName
- archive to recoverentries
- results will be put there, in the order of presence in the archive- Throws:
java.io.IOException
-
backup
public void backup(@NotNull @NotNull java.lang.String archiveName, @NotNull @NotNull java.lang.String backupArchiveName, @NotNull @NotNull java.util.Set<java.util.UUID> recoveredEntries) throws java.io.IOException
Description copied from interface:SegmentArchiveManager
Method that is doing a backup of the archive given witharchiveName
intobackupArchiveName
. In addition, set of UUIDs of recovered segments is provided which can be inspected during backup. Method is invoked during archive recovery procedure and concrete implementation can decide whether original archive should be deleted or modified.- Specified by:
backup
in interfaceSegmentArchiveManager
- Throws:
java.io.IOException
-
-