Index: oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/LargeOperationIT.java =================================================================== --- oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/LargeOperationIT.java (revision 1738724) +++ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/LargeOperationIT.java (working copy) @@ -136,7 +136,7 @@ @Parameterized.Parameters public static Collection fixtures() throws IOException { File file = new File(new File("target"), "tar." + System.nanoTime()); - SegmentStore segmentStore = new FileStore(file, 266, true); + SegmentStore segmentStore = FileStore.builder(file).withMaxFileSize(256).withMemoryMapping(true).build(); List fixtures = Lists.newArrayList(); SegmentFixture segmentFixture = new SegmentFixture(segmentStore); Index: oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakTarMKRepositoryStub.java =================================================================== --- oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakTarMKRepositoryStub.java (revision 1738724) +++ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakTarMKRepositoryStub.java (working copy) @@ -49,7 +49,7 @@ try { File directory = new File("target", "tarmk-" + System.currentTimeMillis()); - this.store = new FileStore(directory, 1, false); + this.store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); Jcr jcr = new Jcr(new Oak(new SegmentNodeStore(store))); QueryEngineSettings qs = new QueryEngineSettings(); qs.setFullTextComparisonWithoutIndex(true); Index: oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java =================================================================== --- oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java (revision 1738724) +++ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java (working copy) @@ -136,7 +136,11 @@ @Parameterized.Parameters public static Collection fixtures() throws IOException { File file = getTestDir("tar"); - SegmentStore segmentStore = new FileStore(createBlobStore(), file, 266, true); + SegmentStore segmentStore = FileStore.builder(file) + .withBlobStore(createBlobStore()) + .withMaxFileSize(256) + .withMemoryMapping(true) + .build(); List fixtures = Lists.newArrayList(); SegmentFixture segmentFixture = new SegmentFixture(segmentStore); @@ -146,7 +150,11 @@ FileBlobStore fbs = new FileBlobStore(getTestDir("fbs1").getAbsolutePath()); fbs.setReferenceKeyPlainText("foobar"); - SegmentStore segmentStoreWithFBS = new FileStore(fbs, getTestDir("tar2"), 266, true); + SegmentStore segmentStoreWithFBS = FileStore.builder(getTestDir("tar2")) + .withBlobStore(fbs) + .withMaxFileSize(256) + .withMemoryMapping(true) + .build(); SegmentFixture segmentFixtureFBS = new SegmentFixture(segmentStoreWithFBS); if (segmentFixtureFBS.isAvailable()) { fixtures.add(new Object[] {segmentFixtureFBS}); Index: oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RefreshOnGCTest.java =================================================================== --- oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RefreshOnGCTest.java (revision 1738724) +++ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RefreshOnGCTest.java (working copy) @@ -21,7 +21,6 @@ import static java.io.File.createTempFile; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_NONE; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assert.assertTrue; import java.io.File; @@ -89,9 +88,9 @@ } }; strategy.setPersistCompactionMap(usePersistedMap); - fileStore = newFileStore(directory) + fileStore = FileStore.builder(directory) .withGCMonitor(gcMonitor) - .create() + .build() .setCompactionStrategy(strategy); NodeStore nodeStore = new SegmentNodeStore(fileStore); Index: oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/nodetype/UpgradeTest.java =================================================================== --- oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/nodetype/UpgradeTest.java (revision 1738724) +++ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/nodetype/UpgradeTest.java (working copy) @@ -37,12 +37,12 @@ import org.apache.jackrabbit.commons.cnd.CndImporter; import org.apache.jackrabbit.oak.jcr.Jcr; import org.apache.jackrabbit.oak.plugins.segment.SegmentStore; +import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; import org.junit.Test; import net.lingala.zip4j.core.ZipFile; import static org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.newSegmentNodeStore; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -62,7 +62,7 @@ repoZip.extractAll(testFolder.getPath()); tmpZip.delete(); - SegmentStore store = newFileStore(repoHome).create(); + SegmentStore store = FileStore.builder(repoHome).build(); Repository repo = new Jcr(newSegmentNodeStore(store).create()).createRepository(); Session s = repo.login(new SimpleCredentials("admin", "admin".toCharArray())); Index: oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneBlobCacheTest.java =================================================================== --- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneBlobCacheTest.java (revision 1738724) +++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneBlobCacheTest.java (working copy) @@ -63,10 +63,10 @@ public void setUp() throws Exception { fileDataStore = new ReadAccessCountingDataStore(); fileDataStore.init(tempFolder.newFolder().getAbsolutePath()); - FileStore.Builder fileStoreBuilder = FileStore.newFileStore(tempFolder.newFolder()) + FileStore.Builder fileStoreBuilder = FileStore.builder(tempFolder.newFolder()) .withBlobStore(new DataStoreBlobStore(fileDataStore)).withMaxFileSize(256) .withCacheSize(64).withMemoryMapping(false); - store = fileStoreBuilder.create(); + store = fileStoreBuilder.build(); NodeStore nodeStore = new SegmentNodeStore(store); root = nodeStore.getRoot(); builder = root.builder(); Index: oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakDirectoryTest.java =================================================================== --- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakDirectoryTest.java (revision 1738724) +++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakDirectoryTest.java (working copy) @@ -315,10 +315,10 @@ @Test public void largeFile() throws Exception{ - FileStore store = FileStore.newFileStore(tempFolder.getRoot()) + FileStore store = FileStore.builder(tempFolder.getRoot()) .withMemoryMapping(false) .withBlobStore(new BlackHoleBlobStore()) - .create(); + .build(); SegmentNodeStore nodeStore = SegmentNodeStore.newSegmentNodeStore(store).create(); IndexDefinition defn = new IndexDefinition(INITIAL_CONTENT, EmptyNodeState.EMPTY_NODE); Directory directory = new OakDirectory(nodeStore.getRoot().builder(), defn, false); @@ -370,10 +370,10 @@ @Test public void dirNameInException_Writes() throws Exception{ FailOnDemandBlobStore blobStore = new FailOnDemandBlobStore(); - FileStore store = FileStore.newFileStore(tempFolder.getRoot()) + FileStore store = FileStore.builder(tempFolder.getRoot()) .withMemoryMapping(false) .withBlobStore(blobStore) - .create(); + .build(); SegmentNodeStore nodeStore = SegmentNodeStore.newSegmentNodeStore(store).create(); String indexPath = "/foo/bar"; Index: oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java =================================================================== --- oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java (revision 1738724) +++ oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java (working copy) @@ -95,8 +95,7 @@ setClusterId(clusterId.value(options)).getNodeStore(); fixture = new MongoFixture(store); } else { - fixture = new SegmentFixture(new FileStore( - new File(nonOptions.get(0)), 256)); + fixture = new SegmentFixture(FileStore.builder(new File(nonOptions.get(0))).withMaxFileSize(256).build()); } List scriptArgs = nonOptions.size() > 1 ? Index: oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java =================================================================== --- oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java (revision 1738724) +++ oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java (working copy) @@ -115,7 +115,7 @@ } private void refreshStore() throws IOException { - this.store = new ReadOnlyStore(path); + this.store = FileStore.builder(path).buildReadOnly(); } private void refreshModel() { Index: oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java =================================================================== --- oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java (revision 1738724) +++ oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java (working copy) @@ -345,7 +345,11 @@ @Override public Oak getOak(int clusterId) throws Exception { - FileStore fs = new FileStore(base, maxFileSizeMB, cacheSizeMB, memoryMapping); + FileStore fs = FileStore.builder(base) + .withMaxFileSize(maxFileSizeMB) + .withCacheSize(cacheSizeMB) + .withMemoryMapping(memoryMapping) + .build(); return newOak(new SegmentNodeStore(fs)); } @@ -364,10 +368,13 @@ blobStore = blobStoreFixtures[i].setUp(); } - stores[i] = new FileStore(blobStore, - new File(base, unique), - EmptyNodeState.EMPTY_NODE, - maxFileSizeMB, cacheSizeMB, memoryMapping); + stores[i] = FileStore.builder(new File(base, unique)) + .withBlobStore(blobStore) + .withRoot(EmptyNodeState.EMPTY_NODE) + .withMaxFileSize(maxFileSizeMB) + .withCacheSize(cacheSizeMB) + .withMemoryMapping(memoryMapping) + .build(); cluster[i] = newOak(new SegmentNodeStore(stores[i])); } return cluster; Index: oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreDiff.java =================================================================== --- oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreDiff.java (revision 1738724) +++ oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreDiff.java (working copy) @@ -40,18 +40,17 @@ import java.util.Iterator; import java.util.List; +import com.google.common.base.Function; import joptsimple.OptionParser; import joptsimple.OptionSet; import joptsimple.OptionSpec; - import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.PropertyState; +import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore.ReadOnlyStore; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.NodeStateDiff; -import com.google.common.base.Function; - public class FileStoreDiff { public static void main(String[] args) throws Exception { @@ -139,7 +138,7 @@ + "'."); return; } - ReadOnlyStore store = new ReadOnlyStore(dir, newBasicReadOnlyBlobStore()); + ReadOnlyStore store = FileStore.builder(dir).withBlobStore(newBasicReadOnlyBlobStore()).buildReadOnly(); RecordId idL = null; RecordId idR = null; try { Index: oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java =================================================================== --- oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java (revision 1738724) +++ oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java (working copy) @@ -24,12 +24,9 @@ import static java.util.Collections.reverseOrder; import static java.util.Collections.sort; import static org.apache.jackrabbit.oak.plugins.segment.SegmentVersion.LATEST_VERSION; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; -import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.ArrayDeque; import java.util.Deque; @@ -208,29 +205,34 @@ public static FileStore openFileStore(String directory, boolean force) throws IOException { - return newFileStore(checkFileStoreVersionOrFail(directory, force)) + return FileStore.builder(checkFileStoreVersionOrFail(directory, force)) .withCacheSize(TAR_SEGMENT_CACHE_SIZE) - .withMemoryMapping(TAR_STORAGE_MEMORY_MAPPED).create(); + .withMemoryMapping(TAR_STORAGE_MEMORY_MAPPED).build(); } public static FileStore openFileStore(String directory, boolean force, BlobStore blobStore) throws IOException { - return newFileStore(checkFileStoreVersionOrFail(directory, force)) + return FileStore.builder(checkFileStoreVersionOrFail(directory, force)) .withCacheSize(TAR_SEGMENT_CACHE_SIZE) .withMemoryMapping(TAR_STORAGE_MEMORY_MAPPED) - .withBlobStore(blobStore).create(); + .withBlobStore(blobStore).build(); } public static ReadOnlyStore openReadOnlyFileStore(File directory) throws IOException { - return new ReadOnlyStore(isValidFileStoreOrFail(directory), - TAR_SEGMENT_CACHE_SIZE, TAR_STORAGE_MEMORY_MAPPED); + return FileStore.builder(isValidFileStoreOrFail(directory)) + .withCacheSize(TAR_SEGMENT_CACHE_SIZE) + .withMemoryMapping(TAR_STORAGE_MEMORY_MAPPED) + .buildReadOnly(); } public static ReadOnlyStore openReadOnlyFileStore(File directory, BlobStore blobStore) throws IOException { - return new ReadOnlyStore(isValidFileStoreOrFail(directory), - TAR_SEGMENT_CACHE_SIZE, TAR_STORAGE_MEMORY_MAPPED, blobStore); + return FileStore.builder(isValidFileStoreOrFail(directory)) + .withCacheSize(TAR_SEGMENT_CACHE_SIZE) + .withMemoryMapping(TAR_STORAGE_MEMORY_MAPPED) + .withBlobStore(blobStore) + .buildReadOnly(); } public static BlobStore newBasicReadOnlyBlobStore() { Index: oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreRevisionRecovery.java =================================================================== --- oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreRevisionRecovery.java (revision 1738724) +++ oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreRevisionRecovery.java (working copy) @@ -35,10 +35,10 @@ import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; +import com.google.common.collect.ImmutableSet; import joptsimple.OptionParser; import joptsimple.OptionSet; import joptsimple.OptionSpec; - import org.apache.jackrabbit.oak.plugins.segment.RecordId; import org.apache.jackrabbit.oak.plugins.segment.RecordType; import org.apache.jackrabbit.oak.plugins.segment.Segment; @@ -49,8 +49,6 @@ import org.apache.jackrabbit.oak.plugins.segment.file.FileStore.ReadOnlyStore; import org.apache.jackrabbit.oak.plugins.segment.memory.MemoryStore; -import com.google.common.collect.ImmutableSet; - public class FileStoreRevisionRecovery { @SuppressWarnings("deprecation") @@ -104,12 +102,7 @@ SortedMap candidates, final SegmentVersion version) throws IOException { - ReadOnlyStore store = new ReadOnlyStore(dir) { - @Override - public SegmentVersion getVersion() { - return version; - } - }; + ReadOnlyStore store = FileStore.builder(dir).withSegmentVersion(version).buildReadOnly(); final SortedMap roots = newTreeMap(reverseOrder()); Index: oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java =================================================================== --- oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java (revision 1738724) +++ oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java (working copy) @@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.backup; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import java.io.File; import java.io.IOException; @@ -48,12 +47,12 @@ checkArgument(store instanceof SegmentNodeStore); Stopwatch watch = Stopwatch.createStarted(); NodeState current = ((SegmentNodeStore) store).getSuperRoot(); - FileStore.Builder builder = newFileStore(destination) + FileStore.Builder builder = FileStore.builder(destination) .withDefaultMemoryMapping(); if (USE_FAKE_BLOBSTORE) { builder.withBlobStore(new BasicReadOnlyBlobStore()); } - FileStore backup = builder.create(); + FileStore backup = builder.build(); try { SegmentNodeState state = backup.getHead(); Compactor compactor = new Compactor(backup.getTracker()); Index: oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java =================================================================== --- oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java (revision 1738724) +++ oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java (working copy) @@ -18,11 +18,10 @@ */ package org.apache.jackrabbit.oak.plugins.backup; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; - import java.io.File; import java.io.IOException; +import com.google.common.base.Stopwatch; import org.apache.jackrabbit.oak.plugins.segment.Compactor; import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; @@ -31,8 +30,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Stopwatch; - public class FileStoreRestore { private static final Logger log = LoggerFactory @@ -49,10 +46,10 @@ + " is not a valid FileStore directory"); } - FileStore restore = new ReadOnlyStore(source); + FileStore restore = FileStore.builder(source).buildReadOnly(); Stopwatch watch = Stopwatch.createStarted(); - FileStore store = newFileStore(destination).create(); + FileStore store = FileStore.builder(destination).build(); SegmentNodeState current = store.getHead(); try { Compactor compactor = new Compactor(store.getTracker()); Index: oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java =================================================================== --- oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java (revision 1738724) +++ oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java (working copy) @@ -371,7 +371,7 @@ // Build the FileStore - Builder builder = FileStore.newFileStore(getDirectory()) + Builder builder = FileStore.builder(getDirectory()) .withCacheSize(getCacheSize()) .withMaxFileSize(getMaxFileSize()) .withMemoryMapping(getMode().equals("64")) @@ -383,7 +383,7 @@ builder.withBlobStore(blobStore); } - store = builder.create(); + store = builder.build(); // Create a compaction strategy Index: oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java =================================================================== --- oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (revision 1738724) +++ oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (working copy) @@ -184,7 +184,7 @@ /** * Version of the segment storage format. */ - private final SegmentVersion version = SegmentVersion.V_11; + private final SegmentVersion version; /** * {@code GCMonitor} monitoring this instance's gc progress @@ -217,7 +217,7 @@ * @return a new {@link Builder} instance. */ @Nonnull - public static Builder newFileStore(@Nonnull File directory) { + public static Builder builder(@Nonnull File directory) { return new Builder(checkNotNull(directory)); } @@ -225,15 +225,25 @@ * Builder for creating {@link FileStore} instances. */ public static class Builder { + private final File directory; + private BlobStore blobStore; // null -> store blobs inline + private NodeState root = EMPTY_NODE; + private int maxFileSize = 256; + private int cacheSize; // 0 -> DEFAULT_MEMORY_CACHE_SIZE + private boolean memoryMapping; + private final LoggingGCMonitor gcMonitor = new LoggingGCMonitor(); + private StatisticsProvider statsProvider = StatisticsProvider.NOOP; + private SegmentVersion version = SegmentVersion.LATEST_VERSION; + private Builder(File directory) { this.directory = directory; } @@ -335,7 +345,10 @@ return this; } - /** + public Builder withSegmentVersion(SegmentVersion version) { + this.version = checkNotNull(version); + return this; + } /** * Create a new {@link FileStore} instance with the settings specified in this @@ -355,79 +368,40 @@ * @throws IOException */ @Nonnull - public FileStore create() throws IOException { - return new FileStore( - blobStore, directory, root, maxFileSize, cacheSize, memoryMapping, gcMonitor, statsProvider, false); + public FileStore build() throws IOException { + return new FileStore(this, false); } - } - @Deprecated - public FileStore(BlobStore blobStore, File directory, int maxFileSizeMB, boolean memoryMapping) - throws IOException { - this(blobStore, directory, EMPTY_NODE, maxFileSizeMB, 0, memoryMapping, - GCMonitor.EMPTY, StatisticsProvider.NOOP, false); - } + public ReadOnlyStore buildReadOnly() throws IOException { + return new ReadOnlyStore(this); + } - @Deprecated - public FileStore(File directory, int maxFileSizeMB, boolean memoryMapping) - throws IOException { - this(null, directory, maxFileSizeMB, memoryMapping); } - @Deprecated - public FileStore(File directory, int maxFileSizeMB) - throws IOException { - this(null, directory, maxFileSizeMB, MEMORY_MAPPING_DEFAULT); - } + private FileStore(Builder builder, boolean readOnly) throws IOException { + this.version = builder.version; - @Deprecated - public FileStore(File directory, int maxFileSizeMB, int cacheSizeMB, - boolean memoryMapping) throws IOException { - this(null, directory, EMPTY_NODE, maxFileSizeMB, cacheSizeMB, memoryMapping, - GCMonitor.EMPTY, StatisticsProvider.NOOP, false); - } - - @Deprecated - FileStore(File directory, NodeState initial, int maxFileSize) throws IOException { - this(null, directory, initial, maxFileSize, -1, MEMORY_MAPPING_DEFAULT, - GCMonitor.EMPTY, StatisticsProvider.NOOP, false); - } - - @Deprecated - public FileStore( - BlobStore blobStore, final File directory, NodeState initial, int maxFileSizeMB, - int cacheSizeMB, boolean memoryMapping) throws IOException { - this(blobStore, directory, initial, maxFileSizeMB, cacheSizeMB, memoryMapping, - GCMonitor.EMPTY, StatisticsProvider.NOOP,false); - } - - private FileStore( - BlobStore blobStore, final File directory, NodeState initial, int maxFileSizeMB, - int cacheSizeMB, boolean memoryMapping, GCMonitor gcMonitor, StatisticsProvider statsProvider, - boolean readonly) - throws IOException { - - if (readonly) { - checkNotNull(directory); - checkState(directory.exists() && directory.isDirectory()); + if (readOnly) { + checkNotNull(builder.directory); + checkState(builder.directory.exists() && builder.directory.isDirectory()); } else { - checkNotNull(directory).mkdirs(); + checkNotNull(builder.directory).mkdirs(); } - if (cacheSizeMB < 0) { + if (builder.cacheSize < 0) { this.tracker = new SegmentTracker(this, 0, getVersion()); - } else if (cacheSizeMB > 0) { - this.tracker = new SegmentTracker(this, cacheSizeMB, getVersion()); + } else if (builder.cacheSize > 0) { + this.tracker = new SegmentTracker(this, builder.cacheSize, getVersion()); } else { this.tracker = new SegmentTracker(this, getVersion()); } - this.blobStore = blobStore; - this.directory = directory; - this.maxFileSize = maxFileSizeMB * MB; - this.memoryMapping = memoryMapping; - this.gcMonitor = gcMonitor; + this.blobStore = builder.blobStore; + this.directory = builder.directory; + this.maxFileSize = builder.maxFileSize * MB; + this.memoryMapping = builder.memoryMapping; + this.gcMonitor = builder.gcMonitor; - if (readonly) { + if (readOnly) { journalFile = new RandomAccessFile(new File(directory, JOURNAL_FILE_NAME), "r"); } else { @@ -440,7 +414,7 @@ Integer[] indices = map.keySet().toArray(new Integer[map.size()]); Arrays.sort(indices); for (int i = indices.length - 1; i >= 0; i--) { - if (!readonly) { + if (!readOnly) { readers.add(TarReader.open(map.get(indices[i]), memoryMapping)); } else { // only try to read-only recover the latest file as that might @@ -453,9 +427,9 @@ long initialSize = size(); this.approximateSize = new AtomicLong(initialSize); - this.stats = new FileStoreStats(statsProvider, this, initialSize); + this.stats = new FileStoreStats(builder.statsProvider, this, initialSize); - if (!readonly) { + if (!readOnly) { if (indices.length > 0) { this.writeNumber = indices[indices.length - 1] + 1; } else { @@ -492,7 +466,7 @@ journalFile.seek(journalFile.length()); - if (!readonly) { + if (!readOnly) { lockFile = new RandomAccessFile( new File(directory, LOCK_FILE_NAME), "rw"); lock = lockFile.getChannel().lock(); @@ -505,14 +479,14 @@ head = new AtomicReference(id); persistedHead = new AtomicReference(id); } else { - NodeBuilder builder = EMPTY_NODE.builder(); - builder.setChildNode("root", initial); + NodeBuilder nodeBuilder = EMPTY_NODE.builder(); + nodeBuilder.setChildNode("root", builder.root); head = new AtomicReference(tracker.getWriter().writeNode( - builder.getNodeState()).getRecordId()); + nodeBuilder.getNodeState()).getRecordId()); persistedHead = new AtomicReference(null); } - if (!readonly) { + if (!readOnly) { flushThread = BackgroundThread.run( "TarMK flush thread [" + directory + "]", 5000, // 5s interval new Runnable() { @@ -556,7 +530,7 @@ sufficientDiskSpace = new AtomicBoolean(true); - if (readonly) { + if (readOnly) { log.info("TarMK ReadOnly opened: {} (mmap={})", directory, memoryMapping); } else { @@ -1419,29 +1393,10 @@ */ public static class ReadOnlyStore extends FileStore { - public ReadOnlyStore(File directory, int cacheSize, - boolean memoryMapping) throws IOException { - this(directory, cacheSize, memoryMapping, null); + private ReadOnlyStore(Builder builder) throws IOException { + super(builder, true); } - public ReadOnlyStore(File directory, int cacheSize, - boolean memoryMapping, BlobStore blobStore) throws IOException { - super(blobStore, directory, EMPTY_NODE, -1, cacheSize, - memoryMapping, GCMonitor.EMPTY, StatisticsProvider.NOOP, - true); - } - - public ReadOnlyStore(File directory) throws IOException { - super(null, directory, EMPTY_NODE, -1, 0, MEMORY_MAPPING_DEFAULT, - GCMonitor.EMPTY, StatisticsProvider.NOOP, true); - } - - public ReadOnlyStore(File directory, BlobStore blobStore) - throws IOException { - super(blobStore, directory, EMPTY_NODE, -1, 0, - MEMORY_MAPPING_DEFAULT, GCMonitor.EMPTY, StatisticsProvider.NOOP, true); - } - /** * Go to the specified {@code revision} * Index: oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/ConsistencyChecker.java =================================================================== --- oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/ConsistencyChecker.java (revision 1738724) +++ oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/ConsistencyChecker.java (working copy) @@ -39,6 +39,7 @@ import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.segment.SegmentBlob; import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore; +import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore.ReadOnlyStore; import org.apache.jackrabbit.oak.plugins.segment.file.JournalReader; import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry; @@ -117,7 +118,7 @@ */ public ConsistencyChecker(File directory, long debugInterval) throws IOException { - store = new ReadOnlyStore(directory); + store = FileStore.builder(directory).buildReadOnly(); this.debugInterval = debugInterval; } Index: oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/RevisionHistory.java =================================================================== --- oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/RevisionHistory.java (revision 1738724) +++ oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/RevisionHistory.java (working copy) @@ -53,7 +53,7 @@ * @throws IOException */ public RevisionHistory(@Nonnull File directory) throws IOException { - this.store = new ReadOnlyStore(checkNotNull(directory)); + this.store = FileStore.builder(checkNotNull(directory)).buildReadOnly(); } private static NodeState getNode(SegmentNodeState root, String path) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java (working copy) @@ -20,7 +20,6 @@ import static org.apache.commons.io.FileUtils.deleteQuietly; import static org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.newSegmentNodeStore; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assert.assertEquals; import java.io.ByteArrayInputStream; @@ -63,7 +62,7 @@ @Test public void testBackup() throws Exception { - FileStore source = newFileStore(src).withMaxFileSize(8).create(); + FileStore source = FileStore.builder(src).withMaxFileSize(8).build(); NodeStore store = newSegmentNodeStore(source).create(); init(store); @@ -82,7 +81,7 @@ @Test public void testRestore() throws Exception { - FileStore source = newFileStore(src).withMaxFileSize(8).create(); + FileStore source = FileStore.builder(src).withMaxFileSize(8).build(); NodeStore store = newSegmentNodeStore(source).create(); init(store); @@ -92,7 +91,7 @@ FileStoreRestore.restore(destination, src); - source = newFileStore(src).withMaxFileSize(8).create(); + source = FileStore.builder(src).withMaxFileSize(8).build(); compare(source, destination); source.close(); } @@ -116,7 +115,7 @@ private static void compare(FileStore store, File destination) throws IOException { - FileStore backup = newFileStore(destination).withMaxFileSize(8).create(); + FileStore backup = FileStore.builder(destination).withMaxFileSize(8).build(); assertEquals(store.getHead(), backup.getHead()); backup.close(); } Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactionAndCleanupIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactionAndCleanupIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactionAndCleanupIT.java (working copy) @@ -32,7 +32,6 @@ import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_ALL; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_NONE; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_OLD; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -63,7 +62,6 @@ import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; -import org.apache.jackrabbit.oak.plugins.segment.file.NonCachingFileStore; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry; @@ -104,9 +102,9 @@ // really long time span, no binary cloning - FileStore fileStore = FileStore.newFileStore(directory) + FileStore fileStore = FileStore.builder(directory) .withMaxFileSize(1) - .create(); + .build(); final SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); CompactionStrategy custom = new CompactionStrategy(false, false, CLEAN_OLD, TimeUnit.HOURS.toMillis(1), (byte) 0) { @@ -213,7 +211,7 @@ final int blobSize = 5 * 1024 * 1024; final int dataNodes = 10000; - FileStore fileStore = new FileStore(directory, 1); + FileStore fileStore = FileStore.builder(directory).withMaxFileSize(1).build(); final SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); CompactionStrategy custom = new CompactionStrategy(false, false, CLEAN_OLD, TimeUnit.HOURS.toMillis(1), (byte) 0) { @@ -314,7 +312,7 @@ */ @Test public void testMixedSegments() throws Exception { - FileStore store = new FileStore(directory, 2, false); + FileStore store = FileStore.builder(directory).withMaxFileSize(2).withMemoryMapping(true).build(); final SegmentNodeStore nodeStore = new SegmentNodeStore(store); final AtomicBoolean compactionSuccess = new AtomicBoolean(true); CompactionStrategy strategy = new CompactionStrategy(true, false, CLEAN_NONE, 0, (byte) 5) { @@ -391,7 +389,7 @@ */ @Test public void cleanupCyclicGraph() throws IOException, ExecutionException, InterruptedException { - FileStore fileStore = newFileStore(directory).create(); + FileStore fileStore = FileStore.builder(directory).build(); final SegmentWriter writer = fileStore.getTracker().getWriter(); final SegmentNodeState oldHead = fileStore.getHead(); @@ -415,7 +413,7 @@ fileStore.setHead(oldHead, newHead); fileStore.close(); - fileStore = newFileStore(directory).create(); + fileStore = FileStore.builder(directory).build(); traverse(fileStore.getHead()); fileStore.cleanup(); @@ -446,7 +444,7 @@ public void preCompactionReferences() throws IOException, CommitFailedException, InterruptedException { for (String ref : new String[] {"merge-before-compact", "merge-after-compact"}) { File repoDir = new File(directory, ref); - FileStore fileStore = newFileStore(repoDir).withMaxFileSize(2).create(); + FileStore fileStore = FileStore.builder(repoDir).withMaxFileSize(2).build(); final SegmentNodeStore nodeStore = newSegmentNodeStore(fileStore).create(); fileStore.setCompactionStrategy(new CompactionStrategy(true, false, CLEAN_NONE, 0, (byte) 5) { @Override @@ -496,7 +494,7 @@ } // Re-initialise the file store to simulate off-line gc - fileStore = newFileStore(repoDir).withMaxFileSize(2).create(); + fileStore = FileStore.builder(repoDir).withMaxFileSize(2).build(); try { // The 1M blob should get gc-ed. This works for case 1. // However it doesn't for case 2 as merging after compaction @@ -606,7 +604,7 @@ @Test public void propertyRetention() throws IOException, CommitFailedException { - FileStore fileStore = new NonCachingFileStore(directory, 1); + FileStore fileStore = FileStore.builder(directory).withMaxFileSize(1).build(); try { final SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); CompactionStrategy strategy = new CompactionStrategy(false, false, CLEAN_ALL, 0, (byte) 0) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMapTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMapTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMapTest.java (working copy) @@ -100,7 +100,7 @@ public CompactionMapTest(boolean usePersistedMap) throws IOException { directory = mkDir(); - store = FileStore.newFileStore(directory).create(); + store = FileStore.builder(directory).build(); compactionMap1 = createCompactionMap(usePersistedMap); referenceMap1 = randomRecordIdMap(rnd, store.getTracker(), 10, 10); Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/ExternalBlobIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/ExternalBlobIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/ExternalBlobIT.java (working copy) @@ -16,18 +16,34 @@ */ package org.apache.jackrabbit.oak.plugins.segment; +import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.SEGMENT_MK; +import static org.apache.jackrabbit.oak.commons.FixturesHelper.getFixtures; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; +import java.util.Random; + +import javax.annotation.Nonnull; + import com.google.common.collect.Lists; - import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.core.data.FileDataStore; import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.PropertyState; +import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.blob.ReferenceCollector; import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore; import org.apache.jackrabbit.oak.plugins.memory.AbstractBlob; import org.apache.jackrabbit.oak.plugins.segment.file.FileBlob; -import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; @@ -39,23 +55,6 @@ import org.junit.Ignore; import org.junit.Test; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; -import java.util.Random; - -import javax.annotation.Nonnull; - -import static org.apache.jackrabbit.oak.commons.FixturesHelper.getFixtures; -import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.SEGMENT_MK; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assume.assumeTrue; -import static org.junit.Assert.assertTrue; - public class ExternalBlobIT { private SegmentStore store; @@ -158,7 +157,7 @@ protected SegmentNodeStore getNodeStore(BlobStore blobStore) throws IOException { if (nodeStore == null) { - store = new FileStore(blobStore, getWorkDir(), 256, false); + store = FileStore.builder(getWorkDir()).withBlobStore(blobStore).withMaxFileSize(256).withMemoryMapping(false).build(); nodeStore = new SegmentNodeStore(store); } return nodeStore; Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/HeavyWriteIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/HeavyWriteIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/HeavyWriteIT.java (working copy) @@ -92,7 +92,7 @@ @Test public void heavyWrite() throws IOException, CommitFailedException, InterruptedException { - final FileStore store = new FileStore(directory, 128, false); + final FileStore store = FileStore.builder(directory).withMaxFileSize(128).withMemoryMapping(false).build(); final SegmentNodeStore nodeStore = new SegmentNodeStore(store); CompactionStrategy custom = new CompactionStrategy(false, false, CLEAN_OLD, 30000, (byte) 0) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java (working copy) @@ -32,7 +32,6 @@ import static org.apache.jackrabbit.oak.plugins.segment.SegmentVersion.V_11; import static org.apache.jackrabbit.oak.plugins.segment.TestUtils.newValidOffset; import static org.apache.jackrabbit.oak.plugins.segment.TestUtils.randomRecordIdMap; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; @@ -102,7 +101,7 @@ directory.delete(); directory.mkdir(); - segmentStore = newFileStore(directory).create(); + segmentStore = FileStore.builder(directory).build(); } @After Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java (working copy) @@ -37,7 +37,6 @@ import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.apache.jackrabbit.oak.plugins.segment.CompactionMap.sum; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_OLD; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assume.assumeTrue; import static org.slf4j.helpers.MessageFormatter.arrayFormat; import static org.slf4j.helpers.MessageFormatter.format; @@ -231,10 +230,10 @@ directory.delete(); directory.mkdir(); - fileStore = newFileStore(directory) + fileStore = FileStore.builder(directory) .withMemoryMapping(true) .withGCMonitor(gcMonitor) - .create(); + .build(); SegmentNodeStoreBuilder nodeStoreBuilder = SegmentNodeStore .newSegmentNodeStore(fileStore); nodeStoreBuilder.withCompactionStrategy(false, false, Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentDataStoreBlobGCIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentDataStoreBlobGCIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentDataStoreBlobGCIT.java (working copy) @@ -107,10 +107,10 @@ protected SegmentNodeStore getNodeStore(BlobStore blobStore) throws IOException { if (nodeStore == null) { - FileStore.Builder builder = FileStore.newFileStore(getWorkDir()) + FileStore.Builder builder = FileStore.builder(getWorkDir()) .withBlobStore(blobStore).withMaxFileSize(256) .withCacheSize(64).withMemoryMapping(false); - store = builder.create(); + store = builder.build(); CompactionStrategy compactionStrategy = new CompactionStrategy(false, true, CompactionStrategy.CleanupType.CLEAN_OLD, 0, CompactionStrategy.MEMORY_THRESHOLD_DEFAULT) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentGraphTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentGraphTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentGraphTest.java (working copy) @@ -46,6 +46,7 @@ import com.google.common.collect.Multiset; import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.oak.plugins.segment.SegmentGraph.Graph; +import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore.ReadOnlyStore; import org.junit.After; import org.junit.Before; @@ -109,7 +110,7 @@ @Test public void testSegmentGraph() throws IOException { - ReadOnlyStore store = new ReadOnlyStore(storeDir); + ReadOnlyStore store = FileStore.builder(storeDir).buildReadOnly(); try { Graph segmentGraph = parseSegmentGraph(store, Predicates.alwaysTrue()); assertEquals(segments, newHashSet(segmentGraph.vertices())); @@ -125,7 +126,7 @@ @Test public void testSegmentGraphWithFilter() throws IOException { - ReadOnlyStore store = new ReadOnlyStore(storeDir); + ReadOnlyStore store = FileStore.builder(storeDir).buildReadOnly(); try { Predicate filter = createRegExpFilter(".*testWriter.*", store.getTracker()); Graph segmentGraph = parseSegmentGraph(store, filter); @@ -142,7 +143,7 @@ @Test public void testGCGraph() throws IOException { - ReadOnlyStore store = new ReadOnlyStore(storeDir); + ReadOnlyStore store = FileStore.builder(storeDir).buildReadOnly(); try { Graph gcGraph = SegmentGraph.parseGCGraph(store); assertEquals(gcGenerations, newHashSet(gcGraph.vertices())); Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentOverflowExceptionIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentOverflowExceptionIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentOverflowExceptionIT.java (working copy) @@ -23,7 +23,6 @@ import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_OLD; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.MEMORY_THRESHOLD_DEFAULT; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assume.assumeTrue; import java.io.ByteArrayInputStream; @@ -109,7 +108,7 @@ @Test public void run() throws IOException, CommitFailedException, InterruptedException { - FileStore fileStore = newFileStore(directory).withGCMonitor(gcMonitor).create(); + FileStore fileStore = FileStore.builder(directory).withGCMonitor(gcMonitor).build(); try { final SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); fileStore.setCompactionStrategy(new CompactionStrategy(false, false, CLEAN_OLD, 1000, MEMORY_THRESHOLD_DEFAULT) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentVersionTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentVersionTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentVersionTest.java (working copy) @@ -24,6 +24,7 @@ import static org.apache.jackrabbit.oak.api.Type.STRING; import static org.apache.jackrabbit.oak.api.Type.STRINGS; import static org.apache.jackrabbit.oak.plugins.segment.SegmentVersion.LATEST_VERSION; +import static org.apache.jackrabbit.oak.plugins.segment.SegmentVersion.V_10; import static org.apache.jackrabbit.oak.plugins.segment.SegmentVersion.V_11; import static org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType.CLEAN_NONE; import static org.junit.Assert.assertEquals; @@ -86,13 +87,7 @@ @Test public void compareOldRevision() throws Exception { - FileStore fileStoreV10 = new FileStore(directory, 1) { - @SuppressWarnings("deprecation") - @Override - public SegmentVersion getVersion() { - return SegmentVersion.V_10; - } - }; + FileStore fileStoreV10 = FileStore.builder(directory).withMaxFileSize(1).withSegmentVersion(V_10).build(); try { NodeState content = addTestContent(fileStoreV10, "content").getChildNode("content"); assertVersion(content, SegmentVersion.V_10); @@ -142,13 +137,7 @@ @Test public void readOldVersions() throws Exception { - FileStore fileStoreV10 = new FileStore(directory, 1) { - @SuppressWarnings("deprecation") - @Override - public SegmentVersion getVersion() { - return SegmentVersion.V_10; - } - }; + FileStore fileStoreV10 = FileStore.builder(directory).withMaxFileSize(1).withSegmentVersion(V_10).build(); try { NodeState content = addTestContent(fileStoreV10, "content"); assertVersion(content, SegmentVersion.V_10); @@ -156,7 +145,7 @@ fileStoreV10.close(); } - FileStore fileStoreV11 = new FileStore(directory, 1); + FileStore fileStoreV11 = FileStore.builder(directory).withMaxFileSize(1).build(); try { verifyContent(fileStoreV11, "content"); } finally { @@ -166,13 +155,7 @@ @Test public void mixedVersions() throws IOException, CommitFailedException { - FileStore fileStoreV10 = new FileStore(directory, 1) { - @SuppressWarnings("deprecation") - @Override - public SegmentVersion getVersion() { - return SegmentVersion.V_10; - } - }; + FileStore fileStoreV10 = FileStore.builder(directory).withMaxFileSize(1).withSegmentVersion(V_10).build(); try { NodeState content10 = addTestContent(fileStoreV10, "content10"); assertVersion(content10, SegmentVersion.V_10); @@ -180,7 +163,7 @@ fileStoreV10.close(); } - FileStore fileStoreV11 = new FileStore(directory, 1); + FileStore fileStoreV11 = FileStore.builder(directory).withMaxFileSize(1).build(); try { NodeState content11 = addTestContent(fileStoreV11, "content11"); assertVersion(content11, V_11); @@ -193,20 +176,14 @@ @Test public void migrate() throws IOException, CommitFailedException { - FileStore fileStoreV10 = new FileStore(directory, 1) { - @SuppressWarnings("deprecation") - @Override - public SegmentVersion getVersion() { - return SegmentVersion.V_10; - } - }; + FileStore fileStoreV10 = FileStore.builder(directory).withMaxFileSize(1).withSegmentVersion(V_10).build(); try { addTestContent(fileStoreV10, "content10"); } finally { fileStoreV10.close(); } - FileStore fileStoreV11 = new FileStore(directory, 1); + FileStore fileStoreV11 = FileStore.builder(directory).withMaxFileSize(1).build(); try { fileStoreV11.setCompactionStrategy(new CompactionStrategy(false, false, CLEAN_NONE, 0, (byte) 0) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionEstimatorTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionEstimatorTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionEstimatorTest.java (working copy) @@ -60,7 +60,7 @@ final int MB = 1024 * 1024; final int blobSize = 2 * MB; - FileStore fileStore = new FileStore(directory, 2, false); + FileStore fileStore = FileStore.builder(directory).withMaxFileSize(2).withMemoryMapping(false).build(); SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); // 1. Create some blob properties Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/ExternalBlobReferenceTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/ExternalBlobReferenceTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/ExternalBlobReferenceTest.java (working copy) @@ -49,7 +49,7 @@ @Before public void createFileStore() throws Exception { blobStore = mock(BlobStore.class); - fileStore = FileStore.newFileStore(segmentFolder.getRoot()).withBlobStore(blobStore).create(); + fileStore = FileStore.builder(segmentFolder.getRoot()).withBlobStore(blobStore).build(); } @After Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java (working copy) @@ -18,14 +18,14 @@ import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Sets.newTreeSet; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.apache.commons.io.FileUtils.deleteDirectory; +import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.SEGMENT_MK; import static org.apache.jackrabbit.oak.commons.FixturesHelper.getFixtures; -import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.SEGMENT_MK; import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE; import static org.apache.jackrabbit.oak.plugins.segment.SegmentVersion.V_11; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; import java.io.ByteArrayInputStream; @@ -39,7 +39,6 @@ import java.util.Random; import com.google.common.base.Strings; - import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.plugins.segment.Compactor; import org.apache.jackrabbit.oak.plugins.segment.RecordId; @@ -91,10 +90,10 @@ } public void testRestartAndGC(boolean memoryMapping) throws IOException { - FileStore store = new FileStore(directory, 1, memoryMapping); + FileStore store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(memoryMapping).build(); store.close(); - store = new FileStore(directory, 1, memoryMapping); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(memoryMapping).build(); SegmentNodeState base = store.getHead(); SegmentNodeBuilder builder = base.builder(); byte[] data = new byte[10 * 1024 * 1024]; @@ -106,12 +105,12 @@ store.setHead(store.getHead(), base); store.close(); - store = new FileStore(directory, 1, memoryMapping); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(memoryMapping).build(); store.gc(); store.flush(); store.close(); - store = new FileStore(directory, 1, memoryMapping); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(memoryMapping).build(); store.close(); } @@ -119,7 +118,7 @@ public void testCompaction() throws IOException { int largeBinarySize = 10 * 1024 * 1024; - FileStore store = new FileStore(directory, 1, false); + FileStore store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); SegmentWriter writer = store.getTracker().getWriter(); SegmentNodeState base = store.getHead(); @@ -141,7 +140,7 @@ // First simulate the case where during compaction a reference to the // older segments is added to a segment that the compactor is writing - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); head = store.getHead(); assertTrue(store.size() > largeBinarySize); builder = head.builder(); @@ -151,7 +150,7 @@ store.close(); // In this case the revision cleanup is unable to reclaim the old data - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); assertTrue(store.size() > largeBinarySize); store.cleanup(); assertTrue(store.size() > largeBinarySize); @@ -159,7 +158,7 @@ // Now we do the same thing, but let the compactor use a different // SegmentWriter - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); head = store.getHead(); assertTrue(store.size() > largeBinarySize); writer = new SegmentWriter(store, V_11, ""); @@ -173,7 +172,7 @@ store.close(); // Revision cleanup is now able to reclaim the extra space (OAK-1932) - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); assertTrue(store.size() > largeBinarySize); store.cleanup(); assertTrue(store.size() < largeBinarySize); @@ -182,7 +181,7 @@ @Test public void testRecovery() throws IOException { - FileStore store = new FileStore(directory, 1, false); + FileStore store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); store.flush(); RandomAccessFile data0 = new RandomAccessFile(new File(directory, "data00000a.tar"), "r"); @@ -202,7 +201,7 @@ store.setHead(base, builder.getNodeState()); store.close(); - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); assertEquals("b", store.getHead().getString("step")); store.close(); @@ -211,7 +210,7 @@ file.setLength(pos1); file.close(); - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); assertEquals("a", store.getHead().getString("step")); store.close(); @@ -220,7 +219,7 @@ file.setLength(pos0); file.close(); - store = new FileStore(directory, 1, false); + store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); assertFalse(store.getHead().hasProperty("step")); store.close(); } @@ -253,7 +252,7 @@ @Test // See OAK-2049 public void segmentOverflow() throws IOException { for (int n = 1; n < 255; n++) { // 255 = ListRecord.LEVEL_SIZE - FileStore store = new FileStore(directory, 1, false); + FileStore store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); SegmentWriter writer = store.getTracker().getWriter(); // writer.length == 32 (from the root node) @@ -285,7 +284,7 @@ @Test public void nonBlockingROStore() throws IOException { - FileStore store = new FileStore(directory, 1, false); + FileStore store = FileStore.builder(directory).withMaxFileSize(1).withMemoryMapping(false).build(); store.flush(); // first 1kB SegmentNodeState base = store.getHead(); SegmentNodeBuilder builder = base.builder(); @@ -295,7 +294,7 @@ ReadOnlyStore ro = null; try { - ro = new ReadOnlyStore(directory); + ro = FileStore.builder(directory).buildReadOnly(); assertEquals(store.getHead(), ro.getHead()); } finally { if (ro != null) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreStatsTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreStatsTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreStatsTest.java (working copy) @@ -49,9 +49,9 @@ @Before public void createFileStore() throws Exception { BlobStore blobStore = mock(BlobStore.class); - fileStore = FileStore.newFileStore(segmentFolder.newFolder()) + fileStore = FileStore.builder(segmentFolder.newFolder()) .withBlobStore(blobStore) - .withStatisticsProvider(statsProvider).create(); + .withStatisticsProvider(statsProvider).build(); } @After Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreTest.java (working copy) @@ -21,7 +21,6 @@ import static java.io.File.createTempFile; import static org.apache.commons.io.FileUtils.deleteDirectory; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import java.io.File; import java.io.IOException; @@ -51,7 +50,7 @@ @Ignore("OAK-4054") // FIXME OAK-4054 @Test public void containsSegment() throws IOException { - FileStore fileStore = newFileStore(directory).create(); + FileStore fileStore = FileStore.builder(directory).build(); try { SegmentId id = new SegmentId(fileStore.getTracker(), 0, 0); if (fileStore.containsSegment(id)) { Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/JournalEntryTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/JournalEntryTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/JournalEntryTest.java (working copy) @@ -19,6 +19,10 @@ package org.apache.jackrabbit.oak.plugins.segment.file; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.io.File; import java.nio.charset.Charset; import java.util.List; @@ -33,11 +37,6 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - public class JournalEntryTest { @Rule @@ -45,8 +44,8 @@ @Test public void timestampInJournalEntry() throws Exception{ - FileStore fileStore = newFileStore(tempFolder.getRoot()).withMaxFileSize(5) - .withNoCache().withMemoryMapping(true).create(); + FileStore fileStore = FileStore.builder(tempFolder.getRoot()).withMaxFileSize(5) + .withNoCache().withMemoryMapping(true).build(); SegmentNodeStore nodeStore = SegmentNodeStore.newSegmentNodeStore(fileStore).create(); Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/LargeNumberOfPropertiesTestIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/LargeNumberOfPropertiesTestIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/LargeNumberOfPropertiesTestIT.java (working copy) @@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.segment.file; import static org.apache.commons.io.FileUtils.deleteDirectory; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assume.assumeTrue; import java.io.File; @@ -77,8 +76,8 @@ @Test public void corruption() throws Exception { - FileStore fileStore = newFileStore(directory).withMaxFileSize(5) - .withNoCache().withMemoryMapping(true).create(); + FileStore fileStore = FileStore.builder(directory).withMaxFileSize(5) + .withNoCache().withMemoryMapping(true).build(); SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); NodeBuilder root = nodeStore.getRoot().builder(); Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/NonCachingFileStore.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/NonCachingFileStore.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/NonCachingFileStore.java (working copy) @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.jackrabbit.oak.plugins.segment.file; - -import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE; - -import java.io.File; -import java.io.IOException; - -public class NonCachingFileStore extends FileStore { - public NonCachingFileStore(File directory, int maxFileSizeMB) throws IOException { - super(directory, EMPTY_NODE, maxFileSizeMB); - } -} Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/SegmentReferenceLimitTestIT.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/SegmentReferenceLimitTestIT.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/SegmentReferenceLimitTestIT.java (working copy) @@ -20,7 +20,6 @@ package org.apache.jackrabbit.oak.plugins.segment.file; import static org.apache.commons.io.FileUtils.deleteDirectory; -import static org.apache.jackrabbit.oak.plugins.segment.file.FileStore.newFileStore; import static org.junit.Assume.assumeTrue; import java.io.File; @@ -85,8 +84,8 @@ @Test public void corruption() throws IOException, CommitFailedException, ExecutionException, InterruptedException { - FileStore fileStore = newFileStore(directory).withMaxFileSize(1) - .withNoCache().withMemoryMapping(true).create(); + FileStore fileStore = FileStore.builder(directory).withMaxFileSize(1) + .withNoCache().withMemoryMapping(true).build(); SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore); NodeBuilder root = nodeStore.getRoot().builder(); Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/migration/ExternalToExternalMigrationTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/migration/ExternalToExternalMigrationTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/migration/ExternalToExternalMigrationTest.java (working copy) @@ -37,7 +37,7 @@ @Override protected NodeStore createNodeStore(BlobStore blobStore, File repository) throws IOException { File segmentDir = new File(repository, "segmentstore"); - segmentStore = FileStore.newFileStore(segmentDir).withBlobStore(blobStore).create(); + segmentStore = FileStore.builder(segmentDir).withBlobStore(blobStore).build(); return SegmentNodeStore.newSegmentNodeStore(segmentStore).create(); } Index: oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/migration/SegmentToExternalMigrationTest.java =================================================================== --- oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/migration/SegmentToExternalMigrationTest.java (revision 1738724) +++ oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/migration/SegmentToExternalMigrationTest.java (working copy) @@ -37,11 +37,11 @@ @Override protected NodeStore createNodeStore(BlobStore blobStore, File repository) throws IOException { File segmentDir = new File(repository, "segmentstore"); - FileStore.Builder builder = FileStore.newFileStore(segmentDir); + FileStore.Builder builder = FileStore.builder(segmentDir); if (blobStore != null) { builder.withBlobStore(blobStore); } - segmentStore = builder.create(); + segmentStore = builder.build(); return SegmentNodeStore.newSegmentNodeStore(segmentStore).create(); } Index: oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTestUtils.java =================================================================== --- oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTestUtils.java (revision 1738724) +++ oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTestUtils.java (working copy) @@ -49,8 +49,8 @@ } public static void assertEqualStores(File d1, File d2) throws IOException { - FileStore f1 = new FileStore(d1, 1, false); - FileStore f2 = new FileStore(d2, 1, false); + FileStore f1 = FileStore.builder(d1).withMaxFileSize(1).withMemoryMapping(false).build(); + FileStore f2 = FileStore.builder(d2).withMaxFileSize(1).withMemoryMapping(false).build(); try { assertEquals(f1.getHead(), f2.getHead()); } finally { Index: oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/DataStoreTestBase.java =================================================================== --- oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/DataStoreTestBase.java (revision 1738724) +++ oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/DataStoreTestBase.java (working copy) @@ -62,12 +62,12 @@ fds.setMinRecordLength(4092); fds.init(path); DataStoreBlobStore blobStore = new DataStoreBlobStore(fds); - return FileStore.newFileStore(d) + return FileStore.builder(d) .withMaxFileSize(1) .withMemoryMapping(false) .withNoCache() .withBlobStore(blobStore) - .create(); + .build(); } protected byte[] addTestContent(NodeStore store, String child, int size) Index: oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java =================================================================== --- oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java (revision 1738724) +++ oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java (working copy) @@ -80,11 +80,11 @@ } private static FileStore newFileStore(File directory) throws IOException { - return FileStore.newFileStore(directory) + return FileStore.builder(directory) .withMaxFileSize(1) .withMemoryMapping(false) .withNoCache() - .create(); + .build(); } protected FileStore setupPrimary(File directory) throws IOException { Index: oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentFactory.java =================================================================== --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentFactory.java (revision 1738724) +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentFactory.java (working copy) @@ -44,12 +44,12 @@ @Override public NodeStore create(BlobStore blobStore, Closer closer) throws IOException { - Builder builder = FileStore.newFileStore(new File(dir, "segmentstore")); + Builder builder = FileStore.builder(new File(dir, "segmentstore")); if (blobStore != null) { builder.withBlobStore(blobStore); } builder.withMaxFileSize(256).withMemoryMapping(mmap); - FileStore fs = builder.create(); + FileStore fs = builder.build(); closer.register(asCloseable(fs)); return SegmentNodeStore.newSegmentNodeStore(fs).create(); } Index: oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java =================================================================== --- oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java (revision 1738724) +++ oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java (working copy) @@ -38,7 +38,7 @@ File directory = getTestDirectory(); File source = new File(directory, "source"); source.mkdirs(); - FileStore fileStore = FileStore.newFileStore(source).create(); + FileStore fileStore = FileStore.builder(source).build(); SegmentNodeStore segmentNodeStore = SegmentNodeStore.newSegmentNodeStore(fileStore).create(); RepositoryImpl repository = (RepositoryImpl) new Jcr(new Oak(segmentNodeStore)).createRepository(); Session session = repository.login(CREDENTIALS); @@ -58,7 +58,7 @@ @Override protected void doUpgradeRepository(File source, NodeStore target) throws RepositoryException, IOException { - FileStore fileStore = FileStore.newFileStore(source).create(); + FileStore fileStore = FileStore.builder(source).build(); SegmentNodeStore segmentNodeStore = SegmentNodeStore.newSegmentNodeStore(fileStore).create(); try { final RepositorySidegrade sidegrade = new RepositorySidegrade(segmentNodeStore, target); Index: oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java =================================================================== --- oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java (revision 1738724) +++ oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java (working copy) @@ -43,7 +43,7 @@ sourceDir.mkdirs(); - FileStore fileStore = FileStore.newFileStore(sourceDir).create(); + FileStore fileStore = FileStore.builder(sourceDir).build(); SegmentNodeStore segmentNodeStore = SegmentNodeStore.newSegmentNodeStore(fileStore).create(); RepositoryImpl repository = (RepositoryImpl) new Jcr(new Oak(segmentNodeStore)).createRepository(); Session session = repository.login(CREDENTIALS); @@ -60,7 +60,7 @@ doUpgradeRepository(sourceDir, target); fileStore.flush(); - fileStore = FileStore.newFileStore(sourceDir).create(); + fileStore = FileStore.builder(sourceDir).build(); segmentNodeStore = SegmentNodeStore.newSegmentNodeStore(fileStore).create(); repository = (RepositoryImpl) new Jcr(new Oak(segmentNodeStore)).createRepository(); session = repository.login(CREDENTIALS); @@ -82,7 +82,7 @@ @Override protected void doUpgradeRepository(File source, NodeStore target) throws RepositoryException, IOException { - FileStore fileStore = FileStore.newFileStore(source).create(); + FileStore fileStore = FileStore.builder(source).build(); SegmentNodeStore segmentNodeStore = SegmentNodeStore.newSegmentNodeStore(fileStore).create(); try { final RepositorySidegrade repositoryUpgrade = new RepositorySidegrade(segmentNodeStore, target); Index: oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositoryUpgradeTest.java =================================================================== --- oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositoryUpgradeTest.java (revision 1738724) +++ oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositoryUpgradeTest.java (working copy) @@ -67,7 +67,7 @@ final File dir = new File(getTestDirectory(), "segments"); dir.mkdirs(); try { - fileStore = FileStore.newFileStore(dir).withMaxFileSize(128).create(); + fileStore = FileStore.builder(dir).withMaxFileSize(128).build(); upgradeComplete = false; } catch (IOException e) { throw new RuntimeException(e); Index: oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeFromTwoSourcesTest.java =================================================================== --- oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeFromTwoSourcesTest.java (revision 1738724) +++ oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeFromTwoSourcesTest.java (working copy) @@ -52,7 +52,7 @@ final File dir = new File(getTestDirectory(), "segments"); dir.mkdirs(); try { - fileStore = FileStore.newFileStore(dir).withMaxFileSize(128).create(); + fileStore = FileStore.builder(dir).withMaxFileSize(128).build(); upgradeComplete = false; } catch (IOException e) { throw new RuntimeException(e); Index: oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java =================================================================== --- oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java (revision 1738724) +++ oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java (working copy) @@ -50,11 +50,11 @@ @Override public NodeStore open() throws IOException { - FileStore.Builder builder = FileStore.newFileStore(new File(directory, "segmentstore")); + FileStore.Builder builder = FileStore.builder(new File(directory, "segmentstore")); if (blob != null) { builder.withBlobStore(blob.open()); } - fs = builder.create(); + fs = builder.build(); return SegmentNodeStore.newSegmentNodeStore(fs).create(); }