diff --git a/oak-run/pom.xml b/oak-run/pom.xml index ba79cf1..f368268 100644 --- a/oak-run/pom.xml +++ b/oak-run/pom.xml @@ -238,7 +238,7 @@ org.apache.jackrabbit oak-segment-tar - ${segment.tar.version} + 0.0.15-SNAPSHOT org.apache.jackrabbit diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/console/SegmentTarFixture.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/console/SegmentTarFixture.java index 82184aa..83985a0 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/console/SegmentTarFixture.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/console/SegmentTarFixture.java @@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.console; import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder; +import java.io.Closeable; import java.io.File; import java.io.IOException; @@ -27,6 +28,7 @@ import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders; import org.apache.jackrabbit.oak.segment.file.FileStore; import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder; import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException; +import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.apache.jackrabbit.oak.spi.state.NodeStore; @@ -39,22 +41,18 @@ class SegmentTarFixture implements NodeStoreFixture { builder.withBlobStore(blobStore); } - FileStore store; - try { if (readOnly) { - store = builder.buildReadOnly(); + return new SegmentTarFixture(builder.buildReadOnly()); } else { - store = builder.build(); + return new SegmentTarFixture(builder.build()); } } catch (InvalidFileStoreVersionException e) { throw new IllegalStateException(e); } - - return new SegmentTarFixture(store); } - private final FileStore fileStore; + private final Closeable fileStore; private final SegmentNodeStore segmentNodeStore; @@ -63,6 +61,11 @@ class SegmentTarFixture implements NodeStoreFixture { this.segmentNodeStore = SegmentNodeStoreBuilders.builder(fileStore).build(); } + private SegmentTarFixture(ReadOnlyFileStore fileStore) { + this.fileStore = fileStore; + this.segmentNodeStore = SegmentNodeStoreBuilders.builder(fileStore).build(); + } + @Override public NodeStore getStore() { return segmentNodeStore; diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java index b065339..dea9d0f 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java @@ -35,6 +35,7 @@ import java.util.Set; import java.util.UUID; import com.google.common.collect.Maps; + import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.segment.RecordId; @@ -43,16 +44,16 @@ import org.apache.jackrabbit.oak.segment.SegmentId; import org.apache.jackrabbit.oak.segment.SegmentNodeState; import org.apache.jackrabbit.oak.segment.SegmentNodeStateHelper; import org.apache.jackrabbit.oak.segment.SegmentPropertyState; -import org.apache.jackrabbit.oak.segment.file.FileStore; import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException; import org.apache.jackrabbit.oak.segment.file.JournalReader; +import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; import org.apache.jackrabbit.oak.spi.state.NodeState; class SegmentTarExplorerBackend implements ExplorerBackend { private final File path; - private FileStore.ReadOnlyStore store; + private ReadOnlyFileStore store; private Map> index; diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java index 97e3159..80c6376 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java @@ -29,14 +29,15 @@ import java.util.Date; import java.util.List; import com.google.common.io.Closer; + import org.apache.jackrabbit.oak.plugins.blob.BlobReferenceRetriever; import org.apache.jackrabbit.oak.segment.SegmentBlobReferenceRetriever; import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders; import org.apache.jackrabbit.oak.segment.SegmentVersion; import org.apache.jackrabbit.oak.segment.file.FileStore; -import org.apache.jackrabbit.oak.segment.file.FileStore.ReadOnlyStore; import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder; import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException; +import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; import org.apache.jackrabbit.oak.segment.tool.Backup; import org.apache.jackrabbit.oak.segment.tool.Check; import org.apache.jackrabbit.oak.segment.tool.Compact; @@ -239,7 +240,7 @@ final class SegmentTarUtils { return fileStoreBuilder(new File(path)).build(); } - private static ReadOnlyStore openReadOnlyFileStore(File path) throws IOException, InvalidFileStoreVersionException { + private static ReadOnlyFileStore openReadOnlyFileStore(File path) throws IOException, InvalidFileStoreVersionException { return fileStoreBuilder(isValidFileStoreOrFail(path)) .withSegmentCacheSize(TAR_SEGMENT_CACHE_SIZE) .withMemoryMapping(TAR_STORAGE_MEMORY_MAPPED) @@ -261,7 +262,7 @@ final class SegmentTarUtils { if (!directory.exists()) { return directory; } - FileStore store = openReadOnlyFileStore(directory); + ReadOnlyFileStore store = openReadOnlyFileStore(directory); try { SegmentVersion segmentVersion = getSegmentVersion(store); if (segmentVersion != LATEST_VERSION) { @@ -277,7 +278,7 @@ final class SegmentTarUtils { return directory; } - private static SegmentVersion getSegmentVersion(FileStore fileStore) { + private static SegmentVersion getSegmentVersion(ReadOnlyFileStore fileStore) { return fileStore.getRevisions().getHead().getSegment().getSegmentVersion(); }