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();
}