Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java
 Wed Jun  1 07:48:51 2016
@@ -19,7 +19,6 @@
 
 package org.apache.jackrabbit.oak.backup;
 
-import static org.apache.jackrabbit.oak.segment.SegmentNodeStore.builder;
 import static org.junit.Assert.assertEquals;
 
 import java.io.ByteArrayInputStream;
@@ -31,6 +30,7 @@ import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -63,7 +63,7 @@ public class FileStoreBackupTest {
     public void testBackup() throws Exception {
         FileStore source = FileStore.builder(src).withMaxFileSize(8).build();
 
-        NodeStore store = builder(source).build();
+        NodeStore store = SegmentNodeStoreBuilders.builder(source).build();
         init(store);
 
         // initial content
@@ -82,7 +82,7 @@ public class FileStoreBackupTest {
     public void testRestore() throws Exception {
         FileStore source = FileStore.builder(src).withMaxFileSize(8).build();
 
-        NodeStore store = builder(source).build();
+        NodeStore store = SegmentNodeStoreBuilders.builder(source).build();
         init(store);
         FileStoreBackup.backup(store, destination);
         addTestContent(store);
@@ -115,7 +115,7 @@ public class FileStoreBackupTest {
     private static void compare(FileStore store, File destination)
             throws IOException {
         FileStore backup = 
FileStore.builder(destination).withMaxFileSize(8).build();
-        assertEquals(store.getHead(), backup.getHead());
+        assertEquals(store.getRevisions().getHead(), 
backup.getRevisions().getHead());
         backup.close();
     }
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointTest.java
 Wed Jun  1 07:48:51 2016
@@ -30,7 +30,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -43,7 +42,7 @@ public class CheckpointTest {
 
     @Test
     public void testCheckpoint() throws CommitFailedException, IOException {
-        SegmentNodeStore store = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        SegmentNodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         addTestNode(store, "test-checkpoint");
         verifyNS(store, true);
         rmTestNode(store, "test-checkpoint");
@@ -55,7 +54,7 @@ public class CheckpointTest {
 
     @Test
     public void testRelease() throws CommitFailedException, IOException {
-        SegmentNodeStore store = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        SegmentNodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         addTestNode(store, "test-checkpoint");
         String cp = verifyNS(store, true);
 
@@ -100,7 +99,7 @@ public class CheckpointTest {
      */
     @Test
     public void testShortWait() throws Exception {
-        final SegmentNodeStore store = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        final SegmentNodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         store.setCheckpointsLockWaitTime(1);
 
         final Semaphore semaphore = new Semaphore(0);
@@ -149,7 +148,7 @@ public class CheckpointTest {
     @Test
     public void testLongWait() throws Exception {
         final int blockTime = 1;
-        final SegmentNodeStore store = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        final SegmentNodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         store.setCheckpointsLockWaitTime(blockTime + 1);
 
         final Semaphore semaphore = new Semaphore(0);

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 Wed Jun  1 07:48:51 2016
@@ -28,7 +28,6 @@ import static org.apache.jackrabbit.oak.
 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.plugins.memory.EmptyNodeState.EMPTY_NODE;
-import static org.apache.jackrabbit.oak.segment.SegmentNodeStore.builder;
 import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.DEFAULT;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -92,7 +91,7 @@ public class CompactionAndCleanupIT {
                 .withGCOptions(DEFAULT.setRetainedGenerations(2))
                 .withMaxFileSize(1)
                 .build();
-        SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
         try {
             // 5MB blob
@@ -191,7 +190,7 @@ public class CompactionAndCleanupIT {
                 .withGCOptions(DEFAULT.setRetainedGenerations(2))
                 .withMaxFileSize(1)
                 .build();
-        SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
         NodeBuilder builder = nodeStore.getRoot().builder();
         addNodes(builder, 10);
@@ -245,7 +244,7 @@ public class CompactionAndCleanupIT {
                 .withMemoryMapping(true)
                 .withGCOptions(DEFAULT.setForceAfterFail(true))
                 .build();
-        final SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(store).build();
+        final SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(store).build();
         final AtomicBoolean compactionSuccess = new AtomicBoolean(true);
 
         NodeBuilder root = nodeStore.getRoot().builder();
@@ -253,7 +252,7 @@ public class CompactionAndCleanupIT {
         nodeStore.merge(root, EmptyHook.INSTANCE, CommitInfo.EMPTY);
 
         final Set<UUID> beforeSegments = new HashSet<UUID>();
-        collectSegments(store, beforeSegments);
+        collectSegments(store.getReader(), store.getRevisions(), 
beforeSegments);
 
         final AtomicReference<Boolean> run = new 
AtomicReference<Boolean>(true);
         final List<String> failedCommits = newArrayList();
@@ -292,7 +291,7 @@ public class CompactionAndCleanupIT {
         assertTrue("Failed commits: " + failedCommits, 
failedCommits.isEmpty());
 
         Set<UUID> afterSegments = new HashSet<UUID>();
-        collectSegments(store, afterSegments);
+        collectSegments(store.getReader(), store.getRevisions(), 
afterSegments);
         try {
             for (UUID u : beforeSegments) {
                 assertFalse("Mixed segments found: " + u, 
afterSegments.contains(u));
@@ -314,7 +313,7 @@ public class CompactionAndCleanupIT {
     public void cleanupCyclicGraph() throws IOException, ExecutionException, 
InterruptedException {
         FileStore fileStore = FileStore.builder(getFileStoreFolder()).build();
         final SegmentWriter writer = fileStore.getWriter();
-        final SegmentNodeState oldHead = fileStore.getHead();
+        final SegmentNodeState oldHead = fileStore.getReader().readHeadState();
 
         final SegmentNodeState child = run(new Callable<SegmentNodeState>() {
             @Override
@@ -333,16 +332,16 @@ public class CompactionAndCleanupIT {
         });
 
         writer.flush();
-        fileStore.setHead(oldHead, newHead);
+        fileStore.getRevisions().setHead(oldHead.getRecordId(), 
newHead.getRecordId());
         fileStore.close();
 
         fileStore = FileStore.builder(getFileStoreFolder()).build();
 
-        traverse(fileStore.getHead());
+        traverse(fileStore.getReader().readHeadState());
         fileStore.cleanup();
 
         // Traversal after cleanup might result in an SNFE
-        traverse(fileStore.getHead());
+        traverse(fileStore.getReader().readHeadState());
 
         fileStore.close();
     }
@@ -377,7 +376,7 @@ public class CompactionAndCleanupIT {
                     .withMaxFileSize(2)
                     .withGCOptions(gcOptions)
                     .build();
-            final SegmentNodeStore nodeStore = builder(fileStore).build();
+            final SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
             try {
                 // add some content
                 NodeBuilder preGCBuilder = nodeStore.getRoot().builder();
@@ -435,8 +434,9 @@ public class CompactionAndCleanupIT {
         }
     }
 
-    private static void collectSegments(SegmentStore store, final Set<UUID> 
segmentIds) {
-        new SegmentParser(store) {
+    private static void collectSegments(SegmentReader reader, Revisions 
revisions,
+                                        final Set<UUID> segmentIds) {
+        new SegmentParser(reader) {
             @Override
             protected void onNode(RecordId parentId, RecordId nodeId) {
                 super.onNode(parentId, nodeId);
@@ -508,7 +508,7 @@ public class CompactionAndCleanupIT {
                 super.onListBucket(parentId, listId, index, count, capacity);
                 segmentIds.add(listId.asUUID());
             }
-        }.parseNode(store.getHead().getRecordId());
+        }.parseNode(revisions.getHead());
     }
 
     private static void createNodes(NodeBuilder builder, int count, int depth) 
{
@@ -535,7 +535,7 @@ public class CompactionAndCleanupIT {
                 .withGCOptions(gcOptions)
                 .build();
         try {
-            final SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+            final SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
             // Add a property
             NodeBuilder builder = nodeStore.getRoot().builder();
@@ -580,7 +580,7 @@ public class CompactionAndCleanupIT {
     public void checkpointDeduplicationTest() throws IOException, 
CommitFailedException {
         FileStore fileStore = FileStore.builder(getFileStoreFolder()).build();
         try {
-            SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+            SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
             NodeBuilder builder = nodeStore.getRoot().builder();
             builder.setChildNode("a").setChildNode("aa");
             builder.setChildNode("b").setChildNode("bb");

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java
 Wed Jun  1 07:48:51 2016
@@ -22,7 +22,6 @@ import java.io.IOException;
 
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -30,7 +29,6 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.junit.After;
 import org.junit.Before;
 
 public class CompactorTest {
@@ -42,11 +40,6 @@ public class CompactorTest {
         segmentStore = new MemoryStore();
     }
 
-    @After
-    public void closeSegmentStore() {
-        segmentStore.close();
-    }
-
     private NodeState addChild(NodeState current, String name) {
         NodeBuilder builder = current.builder();
         builder.child(name);

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
 Wed Jun  1 07:48:51 2016
@@ -164,7 +164,7 @@ public class ExternalBlobIT {
     protected SegmentNodeStore getNodeStore(BlobStore blobStore) throws 
IOException {
         if (nodeStore == null) {
             store = 
FileStore.builder(getWorkDir()).withBlobStore(blobStore).withMaxFileSize(256).withMemoryMapping(false).build();
-            nodeStore = SegmentNodeStore.builder(store).build();
+            nodeStore = SegmentNodeStoreBuilders.builder(store).build();
         }
         return nodeStore;
     }

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/HeavyWriteIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/HeavyWriteIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/HeavyWriteIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/HeavyWriteIT.java
 Wed Jun  1 07:48:51 2016
@@ -63,7 +63,7 @@ public class HeavyWriteIT {
     @Test
     public void heavyWrite() throws IOException, CommitFailedException, 
InterruptedException {
         final FileStore store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(128).withMemoryMapping(false).build();
-        final SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(store).build();
+        final SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(store).build();
 
         int writes = 100;
         final AtomicBoolean run = new AtomicBoolean(true);

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/InitializerTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/InitializerTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/InitializerTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/InitializerTest.java
 Wed Jun  1 07:48:51 2016
@@ -24,9 +24,8 @@ import java.io.IOException;
 import com.google.common.collect.ImmutableMap;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
+import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -37,7 +36,7 @@ public class InitializerTest {
 
     @Test
     public void testInitializerSegment() throws CommitFailedException, 
IOException {
-        NodeStore store = SegmentNodeStore.builder(new MemoryStore()).build();
+        NodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
 
         NodeBuilder builder = store.getRoot().builder();
         new InitialContent().initialize(builder);

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/MergeTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/MergeTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/MergeTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/MergeTest.java
 Wed Jun  1 07:48:51 2016
@@ -29,7 +29,6 @@ import java.util.concurrent.atomic.Atomi
 import javax.annotation.Nonnull;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitHook;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -43,7 +42,7 @@ public class MergeTest {
 
     @Test
     public void testSequentialMerge() throws CommitFailedException, 
IOException {
-        NodeStore store = SegmentNodeStore.builder(new MemoryStore()).build();
+        NodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
 
         assertFalse(store.getRoot().hasProperty("foo"));
         assertFalse(store.getRoot().hasProperty("bar"));
@@ -65,7 +64,7 @@ public class MergeTest {
 
     @Test
     public void testOptimisticMerge() throws CommitFailedException, 
IOException {
-        NodeStore store = SegmentNodeStore.builder(new MemoryStore()).build();
+        NodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
 
         NodeBuilder a = store.getRoot().builder();
         a.setProperty("foo", "abc");
@@ -89,7 +88,7 @@ public class MergeTest {
 
     @Test
     public void testPessimisticMerge() throws Exception {
-        final SegmentNodeStore store = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        final SegmentNodeStore store = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         final Semaphore semaphore = new Semaphore(0);
         final AtomicBoolean running = new AtomicBoolean(true);
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java
 Wed Jun  1 07:48:51 2016
@@ -71,7 +71,7 @@ public class RecordTest {
 
     private final byte[] bytes = HELLO_WORLD.getBytes(Charsets.UTF_8);
 
-    private SegmentStore store;
+    private FileStore store;
 
     private SegmentWriter writer;
 
@@ -395,7 +395,7 @@ public class RecordTest {
         byte[] data = new byte[Segment.MEDIUM_LIMIT + 1];
         random.nextBytes(data);
 
-        SegmentNodeStore extStore = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        SegmentNodeStore extStore = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         NodeBuilder extRootBuilder = extStore.getRoot().builder();
         Blob extBlob = extRootBuilder.createBlob(new 
ByteArrayInputStream(data));
         extRootBuilder.setProperty("binary", extBlob, BINARY);
@@ -434,7 +434,8 @@ public class RecordTest {
     @Test
     public void testCancel() throws IOException {
         NodeBuilder builder = EMPTY_NODE.builder();
-        SegmentBufferWriter bufferWriter = new SegmentBufferWriter(store, 
LATEST_VERSION, "test", 0);
+        SegmentBufferWriter bufferWriter = new SegmentBufferWriter(store, 
store.getTracker(),
+                store.getReader(), LATEST_VERSION, "test", 0);
         NodeState state = writer.writeNode(builder.getNodeState(), 
bufferWriter, Suppliers.ofInstance(true));
         assertNull(state);
     }

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java
 Wed Jun  1 07:48:51 2016
@@ -30,6 +30,7 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.segment.Segment.MEDIUM_LIMIT;
 import static org.apache.jackrabbit.oak.segment.Segment.SMALL_LIMIT;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
+import static org.apache.jackrabbit.oak.segment.SegmentWriters.segmentWriter;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
@@ -49,9 +50,9 @@ public class RecordUsageAnalyserTest {
 
     @Before
     public void setup() throws IOException {
-        SegmentStore store = new MemoryStore();
-        writer = new SegmentWriter(store, new SegmentBufferWriter(store, 
LATEST_VERSION, "", 0));
-        analyser = new RecordUsageAnalyser(store);
+        MemoryStore store = new MemoryStore();
+        writer = segmentWriter(store, LATEST_VERSION, "", 0);
+        analyser = new RecordUsageAnalyser(store.getReader());
     }
 
     @Test

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java
 Wed Jun  1 07:48:51 2016
@@ -26,7 +26,6 @@ import static com.google.common.collect.
 import static com.google.common.util.concurrent.Futures.addCallback;
 import static 
com.google.common.util.concurrent.Futures.immediateCancelledFuture;
 import static 
com.google.common.util.concurrent.MoreExecutors.listeningDecorator;
-import static java.lang.Boolean.getBoolean;
 import static java.lang.Integer.MAX_VALUE;
 import static java.lang.String.valueOf;
 import static java.lang.System.getProperty;
@@ -231,10 +230,10 @@ public class SegmentCompactionIT {
                 .withGCMonitor(gcMonitor)
                 .withGCOptions(gcOptions)
                 .build();
-        nodeStore = SegmentNodeStore.builder(fileStore).build();
+        nodeStore = SegmentNodeStoreBuilders.builder(fileStore).build();
 
         CacheStats segmentCacheStats = fileStore.getSegmentCacheStats();
-        CacheStats stringCacheStats = 
fileStore.getReader().getStringCacheStats();
+        CacheStats stringCacheStats = fileStore.getStringCacheStats();
         List<Registration> registrations = newArrayList();
         registrations.add(registerMBean(segmentCompactionMBean,
                 new ObjectName("IT:TYPE=Segment Compaction")));

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java
 Wed Jun  1 07:48:51 2016
@@ -103,7 +103,7 @@ public class SegmentDataStoreBlobGCIT {
                     .withMemoryMapping(false)
                     .withGCOptions(gcOptions);
             store = builder.build();
-            nodeStore = SegmentNodeStore.builder(store).build();
+            nodeStore = SegmentNodeStoreBuilders.builder(store).build();
         }
         return nodeStore;
     }

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java
 Wed Jun  1 07:48:51 2016
@@ -27,6 +27,7 @@ import static org.apache.jackrabbit.oak.
 import static 
org.apache.jackrabbit.oak.segment.SegmentGraph.createRegExpFilter;
 import static org.apache.jackrabbit.oak.segment.SegmentGraph.parseSegmentGraph;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
+import static org.apache.jackrabbit.oak.segment.SegmentWriters.segmentWriter;
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
@@ -67,17 +68,12 @@ public class SegmentGraphTest {
     public void setup() throws IOException {
         FileStore store = FileStore.builder(getStoreFolder()).build();
         try {
-            SegmentNodeState root = store.getHead();
+            SegmentNodeState root = store.getReader().readHeadState();
             segments.add(getSegmentId(root));
 
-            SegmentWriter w1 = new SegmentWriter(store,
-                    new SegmentBufferWriter(store, LATEST_VERSION, "writer1", 
0));
-
-            SegmentWriter w2 = new SegmentWriter(store,
-                    new SegmentBufferWriter(store, LATEST_VERSION, "writer2", 
0));
-
-            SegmentWriter w3 = new SegmentWriter(store,
-                    new SegmentBufferWriter(store, LATEST_VERSION, "writer3", 
0));
+            SegmentWriter w1 = segmentWriter(store, LATEST_VERSION, "writer1", 
0);
+            SegmentWriter w2 = segmentWriter(store, LATEST_VERSION, "writer2", 
0);
+            SegmentWriter w3 = segmentWriter(store, LATEST_VERSION, "writer3", 
0);
 
             SegmentPropertyState p1 = w1.writeProperty(createProperty("p1", 
"v1"));
             segments.add(getSegmentId(p1));
@@ -107,7 +103,7 @@ public class SegmentGraphTest {
             addReference(references, getSegmentId(n1), getSegmentId(p2));
             addReference(references, getSegmentId(n1), getSegmentId(p3));
 
-            store.setHead(root, n3);
+            store.getRevisions().setHead(root.getRecordId(), n3.getRecordId());
 
             w1.flush();
             w2.flush();

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentIdFactoryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentIdFactoryTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentIdFactoryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentIdFactoryTest.java
 Wed Jun  1 07:48:51 2016
@@ -29,7 +29,7 @@ import org.apache.jackrabbit.oak.segment
 import org.junit.Test;
 
 public class SegmentIdFactoryTest {
-    private final SegmentStore store;
+    private final MemoryStore store;
     private final SegmentTracker tracker;
 
     public SegmentIdFactoryTest() throws IOException {
@@ -98,13 +98,13 @@ public class SegmentIdFactoryTest {
     @Test(expected = IllegalStateException.class)
     public void dataAIOOBE() throws IOException {
         MemoryStore store = new MemoryStore();
-        Segment segment = store.getHead().getSegment();
+        Segment segment = store.getRevisions().getHead().getSegment();
         byte[] buffer = new byte[segment.size()];
         segment.readBytes(Segment.MAX_SEGMENT_SIZE - segment.size(), buffer, 
0, segment.size());
 
         SegmentId id = tracker.newDataSegmentId();
         ByteBuffer data = ByteBuffer.wrap(buffer);
-        Segment s = new Segment(store, id, data);
+        Segment s = new Segment(store.getTracker(), store.getReader(), id, 
data);
         s.getRefId(1);
     }
 
@@ -115,7 +115,7 @@ public class SegmentIdFactoryTest {
     public void bulkAIOOBE() {
         SegmentId id = tracker.newBulkSegmentId();
         ByteBuffer data = ByteBuffer.allocate(4);
-        Segment s = new Segment(store, id, data);
+        Segment s = new Segment(store.getTracker(), store.getReader(), id, 
data);
         s.getRefId(1);
     }
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentOverflowExceptionIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentOverflowExceptionIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentOverflowExceptionIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentOverflowExceptionIT.java
 Wed Jun  1 07:48:51 2016
@@ -95,7 +95,7 @@ public class SegmentOverflowExceptionIT
     public void run() throws IOException, CommitFailedException, 
InterruptedException {
         FileStore fileStore = 
FileStore.builder(getFileStoreFolder()).withGCMonitor(gcMonitor).build();
         try {
-            final SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+            final SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
             long start = System.currentTimeMillis();
             int snfeCount = 0;
             while (System.currentTimeMillis() - start < TIMEOUT) {

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
 Wed Jun  1 07:48:51 2016
@@ -34,6 +34,7 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.segment.SegmentParser.BlobType.MEDIUM;
 import static org.apache.jackrabbit.oak.segment.SegmentParser.BlobType.SMALL;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
+import static org.apache.jackrabbit.oak.segment.SegmentWriters.segmentWriter;
 import static org.apache.jackrabbit.oak.segment.TestUtils.newRecordId;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -55,19 +56,18 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.SegmentParser.ValueInfo;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 public class SegmentParserTest {
-    private SegmentStore store;
+    private MemoryStore store;
     private SegmentWriter writer;
 
     private static class TestParser extends SegmentParser {
         private final String name;
 
-        private TestParser(SegmentStore store, String name) {
-            super(store);
+        private TestParser(SegmentReader reader, String name) {
+            super(reader);
             this.name = name;
         }
 
@@ -139,18 +139,13 @@ public class SegmentParserTest {
     @Before
     public void setup() throws IOException {
         store = new MemoryStore();
-        writer = new SegmentWriter(store, new SegmentBufferWriter(store, 
LATEST_VERSION, "", 0));
-    }
-
-    @After
-    public void tearDown() {
-        store.close();
+        writer = segmentWriter(store, LATEST_VERSION, "", 0);
     }
 
     @Test
     public void emptyNode() throws IOException {
         SegmentNodeState node = writer.writeNode(EMPTY_NODE);
-        NodeInfo info = new TestParser(store, "emptyNode") {
+        NodeInfo info = new TestParser(store.getReader(), "emptyNode") {
             @Override protected void onTemplate(RecordId parentId, RecordId 
templateId) { }
         }.parseNode(node.getRecordId());
         assertEquals(node.getRecordId(), info.nodeId);
@@ -165,7 +160,7 @@ public class SegmentParserTest {
         NodeBuilder builder = EMPTY_NODE.builder();
         builder.setChildNode("child");
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
-        NodeInfo info = new TestParser(store, "singleChildNode") {
+        NodeInfo info = new TestParser(store.getReader(), "singleChildNode") {
             @Override protected void onNode(RecordId parentId, RecordId 
nodeId) { }
             @Override protected void onTemplate(RecordId parentId, RecordId 
templateId) { }
         }.parseNode(node.getRecordId());
@@ -183,7 +178,7 @@ public class SegmentParserTest {
         builder.setChildNode("two");
         builder.setProperty("three", 42);
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
-        NodeInfo info = new TestParser(store, "node") {
+        NodeInfo info = new TestParser(store.getReader(), "node") {
             @Override protected void onNode(RecordId parentId, RecordId 
nodeId) { }
             @Override protected void onTemplate(RecordId parentId, RecordId 
templateId) { }
             @Override protected void onMap(RecordId parentId, RecordId mapId, 
MapRecord map) { }
@@ -205,7 +200,7 @@ public class SegmentParserTest {
         builder.setProperty("jcr:primaryType", "type", NAME);
         builder.setProperty("jcr:mixinTypes", ImmutableList.of("type1", 
"type2"), NAMES);
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
-        NodeInfo nodeInfo = new TestParser(store, "template") {
+        NodeInfo nodeInfo = new TestParser(store.getReader(), "template") {
             @Override
             protected void onTemplate(RecordId parentId, RecordId templateId) {
                 TemplateInfo info = parseTemplate(templateId);
@@ -229,7 +224,7 @@ public class SegmentParserTest {
     public void emptyMap() throws IOException {
         Map<String, RecordId> empty = newHashMap();
         MapRecord map = writer.writeMap(null, empty);
-        MapInfo mapInfo = new TestParser(store, "emptyMap") {
+        MapInfo mapInfo = new TestParser(store.getReader(), "emptyMap") {
             @Override protected void onMapLeaf(RecordId parentId, RecordId 
mapId, MapRecord map) { }
         }.parseMap(null, map.getRecordId(), map);
         assertEquals(map.getRecordId(), mapInfo.mapId);
@@ -242,7 +237,7 @@ public class SegmentParserTest {
         MapRecord base = writer.writeMap(null, createMap(33, rnd));
         MapRecord map = writer.writeMap(base, createMap(1, rnd));
         final AtomicInteger size = new AtomicInteger();
-        MapInfo mapInfo = new TestParser(store, "nonEmptyMap") {
+        MapInfo mapInfo = new TestParser(store.getReader(), "nonEmptyMap") {
             @Override
             protected void onMapDiff(RecordId parentId, RecordId mapId, 
MapRecord map) {
                 MapInfo mapInfo = parseMapDiff(mapId, map);
@@ -287,7 +282,7 @@ public class SegmentParserTest {
         NodeBuilder builder = EMPTY_NODE.builder();
         builder.setProperty("p", 1);
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
-        NodeInfo nodeInfo = new TestParser(store, "singleValueProperty") {
+        NodeInfo nodeInfo = new TestParser(store.getReader(), 
"singleValueProperty") {
             @Override
             protected void onProperty(RecordId parentId, RecordId propertyId, 
PropertyTemplate template) {
                 PropertyInfo propertyInfo = parseProperty(parentId, 
propertyId, template);
@@ -306,7 +301,7 @@ public class SegmentParserTest {
         NodeBuilder builder = EMPTY_NODE.builder();
         builder.setProperty("p", ImmutableList.of(1L, 2L, 3L, 4L), LONGS);
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
-        NodeInfo nodeInfo = new TestParser(store, "multiValueProperty") {
+        NodeInfo nodeInfo = new TestParser(store.getReader(), 
"multiValueProperty") {
             @Override
             protected void onProperty(RecordId parentId, RecordId propertyId, 
PropertyTemplate template) {
                 PropertyInfo propertyInfo = parseProperty(parentId, 
propertyId, template);
@@ -323,7 +318,7 @@ public class SegmentParserTest {
     @Test
     public void smallBlob() throws IOException {
         SegmentBlob blob = writer.writeBlob(createRandomBlob(4));
-        ValueInfo valueInfo = new TestParser(store, "smallBlob") {
+        ValueInfo valueInfo = new TestParser(store.getReader(), "smallBlob") {
             @Override
             protected void onBlob(RecordId parentId, RecordId blobId) {
                 BlobInfo blobInfo = parseBlob(blobId);
@@ -339,7 +334,7 @@ public class SegmentParserTest {
     @Test
     public void mediumBlob() throws IOException {
         SegmentBlob blob = writer.writeBlob(createRandomBlob(SMALL_LIMIT));
-        ValueInfo valueInfo = new TestParser(store, "mediumBlob") {
+        ValueInfo valueInfo = new TestParser(store.getReader(), "mediumBlob") {
             @Override
             protected void onBlob(RecordId parentId, RecordId blobId) {
                 BlobInfo blobInfo = parseBlob(blobId);
@@ -355,7 +350,7 @@ public class SegmentParserTest {
     @Test
     public void longBlob() throws IOException {
         SegmentBlob blob = writer.writeBlob(createRandomBlob(MEDIUM_LIMIT));
-        ValueInfo valueInfo = new TestParser(store, "longBlob") {
+        ValueInfo valueInfo = new TestParser(store.getReader(), "longBlob") {
             @Override
             protected void onBlob(RecordId parentId, RecordId blobId) {
                 BlobInfo blobInfo = parseBlob(blobId);
@@ -378,7 +373,7 @@ public class SegmentParserTest {
     @Test
     public void shortString() throws IOException {
         RecordId stringId = writer.writeString("short");
-        BlobInfo blobInfo = new TestParser(store, 
"shortString").parseString(stringId);
+        BlobInfo blobInfo = new TestParser(store.getReader(), 
"shortString").parseString(stringId);
         assertEquals(stringId, blobInfo.blobId);
         assertEquals(SMALL, blobInfo.blobType);
         assertEquals(6, blobInfo.size);
@@ -387,7 +382,7 @@ public class SegmentParserTest {
     @Test
     public void mediumString() throws IOException {
         RecordId stringId = writer.writeString(repeat("s", SMALL_LIMIT));
-        BlobInfo blobInfo = new TestParser(store, 
"mediumString").parseString(stringId);
+        BlobInfo blobInfo = new TestParser(store.getReader(), 
"mediumString").parseString(stringId);
         assertEquals(stringId, blobInfo.blobId);
         assertEquals(MEDIUM, blobInfo.blobType);
         assertEquals(SMALL_LIMIT + 2, blobInfo.size);
@@ -396,7 +391,7 @@ public class SegmentParserTest {
     @Test
     public void longString() throws IOException {
         RecordId stringId = writer.writeString(repeat("s", MEDIUM_LIMIT));
-        BlobInfo blobInfo = new TestParser(store, "longString"){
+        BlobInfo blobInfo = new TestParser(store.getReader(), "longString"){
             @Override protected void onList(RecordId parentId, RecordId 
listId, int count) { }
         }.parseString(stringId);
         assertEquals(stringId, blobInfo.blobId);
@@ -407,7 +402,7 @@ public class SegmentParserTest {
     @Test
     public void emptyList() {
         RecordId listId = newRecordId(store.getTracker(), new Random());
-        ListInfo listInfo = new TestParser(store, "emptyList").parseList(null, 
listId, 0);
+        ListInfo listInfo = new TestParser(store.getReader(), 
"emptyList").parseList(null, listId, 0);
         assertEquals(listId, listInfo.listId);
         assertEquals(0, listInfo.count);
         assertEquals(0, listInfo.size);
@@ -422,7 +417,7 @@ public class SegmentParserTest {
             list.add(writer.writeString("string " + rnd.nextLong()));
         }
         RecordId listId = writer.writeList(list);
-        ListInfo listInfo = new TestParser(store, "nonEmptyList"){
+        ListInfo listInfo = new TestParser(store.getReader(), "nonEmptyList"){
             @Override
             protected void onListBucket(RecordId parentId, RecordId listId, 
int index, int count, int capacity) {
                 parseListBucket(listId, index, count, capacity);

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
 Wed Jun  1 07:48:51 2016
@@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.segmen
 import static junit.framework.Assert.assertEquals;
 import static 
org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
+import static org.apache.jackrabbit.oak.segment.SegmentWriters.segmentWriter;
 
 import java.io.IOException;
 import java.util.Calendar;
@@ -48,7 +49,7 @@ public class SegmentSizeTest {
     @Rule
     public TemporaryFolder folder = new TemporaryFolder();
 
-    private SegmentStore store;
+    private FileStore store;
 
     @Before
     public void setup() throws IOException {
@@ -180,7 +181,7 @@ public class SegmentSizeTest {
 
     @Test
     public void testFlatNodeUpdate() throws IOException {
-        SegmentStore store = new MemoryStore();
+        MemoryStore store = new MemoryStore();
         SegmentWriter writer = store.getWriter();
 
         NodeBuilder builder = EMPTY_NODE.builder();
@@ -204,8 +205,7 @@ public class SegmentSizeTest {
     }
 
     private void expectSize(int expectedSize, NodeBuilder builder) throws 
IOException {
-        SegmentWriter writer = new SegmentWriter(store,
-                new SegmentBufferWriter(store, LATEST_VERSION, "test", 0));
+        SegmentWriter writer = segmentWriter(store, LATEST_VERSION, "test", 0);
         RecordId id = writer.writeNode(builder.getNodeState()).getRecordId();
         writer.flush();
         Segment segment = id.getSegment();
@@ -214,8 +214,7 @@ public class SegmentSizeTest {
     }
 
     private void expectAmortizedSize(int expectedSize, NodeBuilder builder) 
throws IOException {
-        SegmentWriter writer = new SegmentWriter(store,
-                new SegmentBufferWriter(store, LATEST_VERSION, "test", 0));
+        SegmentWriter writer = segmentWriter(store, LATEST_VERSION, "test", 0);
         NodeState state = builder.getNodeState();
         RecordId id1 = writer.writeNode(state).getRecordId();
         RecordId id2 = writer.writeNode(state).getRecordId();

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/TemplateTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/TemplateTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/TemplateTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/TemplateTest.java
 Wed Jun  1 07:48:51 2016
@@ -28,23 +28,17 @@ import java.util.ArrayList;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 public class TemplateTest {
-    private SegmentStore store;
+    private MemoryStore store;
 
     @Before
     public void setup() throws IOException {
         store = new MemoryStore();
     }
 
-    @After
-    public void tearDown() {
-        store.close();
-    }
-
     @Test
     public void testHashCode() throws IOException {
         // child node null vs ""
@@ -52,8 +46,8 @@ public class TemplateTest {
         PropertyState mixin = createProperty("mixin", "mixin");
         PropertyTemplate[] properties = new PropertyTemplate[0];
 
-        Template t0 = new Template(store, primary, mixin, properties, "");
-        Template t1 = new Template(store, primary, mixin, properties, null);
+        Template t0 = new Template(store.getReader(), primary, mixin, 
properties, "");
+        Template t1 = new Template(store.getReader(), primary, mixin, 
properties, null);
 
         assertNotEquals(t0.hashCode(), t1.hashCode());
     }
@@ -67,8 +61,8 @@ public class TemplateTest {
         PropertyTemplate[] properties = new PropertyTemplate[0];
         String childNode = "c";
 
-        Template t0 = new Template(store, primary, null, properties, 
childNode);
-        Template t1 = new Template(store, primary, mixin, properties, 
childNode);
+        Template t0 = new Template(store.getReader(), primary, null, 
properties, childNode);
+        Template t1 = new Template(store.getReader(), primary, mixin, 
properties, childNode);
 
         assertNotEquals(t0.hashCode(), t1.hashCode());
     }
@@ -86,8 +80,8 @@ public class TemplateTest {
 
         String childNode = "c";
 
-        Template t0 = new Template(store, primary, mixin, pt0, childNode);
-        Template t1 = new Template(store, primary, mixin, pt1, childNode);
+        Template t0 = new Template(store.getReader(), primary, mixin, pt0, 
childNode);
+        Template t1 = new Template(store.getReader(), primary, mixin, pt1, 
childNode);
 
         assertEquals(t0, t1);
     }

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/CompactionEstimatorTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/CompactionEstimatorTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/CompactionEstimatorTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/CompactionEstimatorTest.java
 Wed Jun  1 07:48:51 2016
@@ -29,7 +29,7 @@ import java.util.Random;
 import com.google.common.base.Suppliers;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.file.FileStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -53,7 +53,7 @@ public class CompactionEstimatorTest {
         final int blobSize = 2 * MB;
 
         FileStore fileStore = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(2).withMemoryMapping(false).build();
-        SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
         // 1. Create some blob properties
         NodeBuilder builder = nodeStore.getRoot().builder();

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java
 Wed Jun  1 07:48:51 2016
@@ -79,15 +79,15 @@ public class FileStoreIT {
         store.close();
 
         store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(memoryMapping).build();
-        SegmentNodeState base = store.getHead();
+        SegmentNodeState base = store.getReader().readHeadState();
         SegmentNodeBuilder builder = base.builder();
         byte[] data = new byte[10 * 1024 * 1024];
         new Random().nextBytes(data);
         Blob blob = builder.createBlob(new ByteArrayInputStream(data));
         builder.setProperty("foo", blob);
-        store.setHead(base, builder.getNodeState());
+        store.getRevisions().setHead(base.getRecordId(), 
builder.getNodeState().getRecordId());
         store.flush();
-        store.setHead(store.getHead(), base);
+        store.getRevisions().setHead(store.getRevisions().getHead(), 
base.getRecordId());
         store.close();
 
         store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(memoryMapping).build();
@@ -107,22 +107,22 @@ public class FileStoreIT {
         RandomAccessFile data0 = new RandomAccessFile(new 
File(getFileStoreFolder(), "data00000a.tar"), "r");
         long pos0 = data0.length();
 
-        SegmentNodeState base = store.getHead();
+        SegmentNodeState base = store.getReader().readHeadState();
         SegmentNodeBuilder builder = base.builder();
         builder.setProperty("step", "a");
-        store.setHead(base, builder.getNodeState());
+        store.getRevisions().setHead(base.getRecordId(), 
builder.getNodeState().getRecordId());
         store.flush();
         long pos1 = data0.length();
         data0.close();
 
-        base = store.getHead();
+        base = store.getReader().readHeadState();
         builder = base.builder();
         builder.setProperty("step", "b");
-        store.setHead(base, builder.getNodeState());
+        store.getRevisions().setHead(base.getRecordId(), 
builder.getNodeState().getRecordId());
         store.close();
 
         store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
-        assertEquals("b", store.getHead().getString("step"));
+        assertEquals("b", store.getReader().readHeadState().getString("step"));
         store.close();
 
         RandomAccessFile file = new RandomAccessFile(
@@ -131,7 +131,7 @@ public class FileStoreIT {
         file.close();
 
         store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
-        assertEquals("a", store.getHead().getString("step"));
+        assertEquals("a", store.getReader().readHeadState().getString("step"));
         store.close();
 
         file = new RandomAccessFile(
@@ -140,7 +140,7 @@ public class FileStoreIT {
         file.close();
 
         store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
-        assertFalse(store.getHead().hasProperty("step"));
+        assertFalse(store.getReader().readHeadState().hasProperty("step"));
         store.close();
     }
 
@@ -206,16 +206,16 @@ public class FileStoreIT {
     public void nonBlockingROStore() throws IOException {
         FileStore store = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
         store.flush(); // first 1kB
-        SegmentNodeState base = store.getHead();
+        SegmentNodeState base = store.getReader().readHeadState();
         SegmentNodeBuilder builder = base.builder();
         builder.setProperty("step", "a");
-        store.setHead(base, builder.getNodeState());
+        store.getRevisions().setHead(base.getRecordId(), 
builder.getNodeState().getRecordId());
         store.flush(); // second 1kB
 
         ReadOnlyStore ro = null;
         try {
             ro = FileStore.builder(getFileStoreFolder()).buildReadOnly();
-            assertEquals(store.getHead(), ro.getHead());
+            assertEquals(store.getRevisions().getHead(), 
ro.getRevisions().getHead());
         } finally {
             if (ro != null) {
                 ro.close();

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
 Wed Jun  1 07:48:51 2016
@@ -30,8 +30,7 @@ import java.util.List;
 import com.google.common.base.Splitter;
 import com.google.common.io.Files;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.file.JournalReader;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -49,7 +48,7 @@ public class JournalEntryTest {
         FileStore fileStore = 
FileStore.builder(tempFolder.getRoot()).withMaxFileSize(5)
                 .withNoCache().withMemoryMapping(true).build();
 
-        SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
         long startTime = System.currentTimeMillis();
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/LargeNumberOfPropertiesTestIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/LargeNumberOfPropertiesTestIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/LargeNumberOfPropertiesTestIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/LargeNumberOfPropertiesTestIT.java
 Wed Jun  1 07:48:51 2016
@@ -25,6 +25,7 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -69,7 +70,7 @@ public class LargeNumberOfPropertiesTest
     public void corruption() throws Exception {
         FileStore fileStore = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(5)
                 .withNoCache().withMemoryMapping(true).build();
-        SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
         NodeBuilder root = nodeStore.getRoot().builder();
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/SegmentReferenceLimitTestIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/SegmentReferenceLimitTestIT.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/SegmentReferenceLimitTestIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/SegmentReferenceLimitTestIT.java
 Wed Jun  1 07:48:51 2016
@@ -31,6 +31,7 @@ import java.util.concurrent.FutureTask;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -76,7 +77,7 @@ public class SegmentReferenceLimitTestIT
     public void corruption() throws IOException, CommitFailedException, 
ExecutionException, InterruptedException {
         FileStore fileStore = 
FileStore.builder(getFileStoreFolder()).withMaxFileSize(1)
                 .withNoCache().withMemoryMapping(true).build();
-        SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
 
         NodeBuilder root = nodeStore.getRoot().builder();
         root.setChildNode("test");

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/fixture/SegmentTarFixture.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/fixture/SegmentTarFixture.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/fixture/SegmentTarFixture.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/fixture/SegmentTarFixture.java
 Wed Jun  1 07:48:51 2016
@@ -22,33 +22,18 @@ package org.apache.jackrabbit.oak.segmen
 import java.io.IOException;
 
 import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 
 public class SegmentTarFixture extends NodeStoreFixture {
 
-    private final SegmentStore store;
-
-    public SegmentTarFixture() {
-        this(null);
-    }
-
-    public SegmentTarFixture(SegmentStore store) {
-        this.store = store;
-    }
-
     @Override
     public NodeStore createNodeStore() {
-        if (store == null) {
-            try {
-                return SegmentNodeStore.builder(new MemoryStore()).build();
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            }
-        } else {
-            return SegmentNodeStore.builder(store).build();
+        try {
+            return SegmentNodeStoreBuilders.builder(new MemoryStore()).build();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
         }
     }
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/DepthFirstNodeIteratorTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/DepthFirstNodeIteratorTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/DepthFirstNodeIteratorTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/DepthFirstNodeIteratorTest.java
 Wed Jun  1 07:48:51 2016
@@ -29,7 +29,7 @@ import java.util.Map;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.blob.migration.DepthFirstNodeIterator;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -44,8 +44,8 @@ public class DepthFirstNodeIteratorTest
 
     @Before
     public void setup() throws CommitFailedException, IOException {
-        store = SegmentNodeStore.builder(new MemoryStore()).build();
-        NodeBuilder rootBuilder = store.getRoot().builder();
+        store = SegmentNodeStoreBuilders.builder(new MemoryStore()).build();
+        NodeBuilder rootBuilder = this.store.getRoot().builder();
         NodeBuilder countries = rootBuilder.child("countries");
         
countries.child("uk").child("cities").child("london").child("districts").child("frognal");
         countries.child("germany");

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/ExternalToExternalMigrationTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/ExternalToExternalMigrationTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/ExternalToExternalMigrationTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/ExternalToExternalMigrationTest.java
 Wed Jun  1 07:48:51 2016
@@ -23,8 +23,7 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.jackrabbit.oak.plugins.blob.migration.AbstractMigratorTest;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.blob.FileBlobStore;
@@ -32,18 +31,18 @@ import org.apache.jackrabbit.oak.spi.sta
 
 public class ExternalToExternalMigrationTest extends AbstractMigratorTest {
 
-    private SegmentStore segmentStore;
+    private FileStore store;
 
     @Override
     protected NodeStore createNodeStore(BlobStore blobStore, File repository) 
throws IOException {
         File segmentDir = new File(repository, "segmentstore");
-        segmentStore = 
FileStore.builder(segmentDir).withBlobStore(blobStore).build();
-        return SegmentNodeStore.builder(segmentStore).build();
+        store = FileStore.builder(segmentDir).withBlobStore(blobStore).build();
+        return SegmentNodeStoreBuilders.builder(store).build();
     }
 
     @Override
     protected void closeNodeStore() {
-        segmentStore.close();
+        store.close();
     }
 
     @Override

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/SegmentToExternalMigrationTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/SegmentToExternalMigrationTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/SegmentToExternalMigrationTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/migration/SegmentToExternalMigrationTest.java
 Wed Jun  1 07:48:51 2016
@@ -23,8 +23,7 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.jackrabbit.oak.plugins.blob.migration.AbstractMigratorTest;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.blob.FileBlobStore;
@@ -32,7 +31,7 @@ import org.apache.jackrabbit.oak.spi.sta
 
 public class SegmentToExternalMigrationTest extends AbstractMigratorTest {
 
-    private SegmentStore segmentStore;
+    private FileStore store;
 
     @Override
     protected NodeStore createNodeStore(BlobStore blobStore, File repository) 
throws IOException {
@@ -41,13 +40,13 @@ public class SegmentToExternalMigrationT
         if (blobStore != null) {
             builder.withBlobStore(blobStore);
         }
-        segmentStore = builder.build();
-        return SegmentNodeStore.builder(segmentStore).build();
+        store = builder.build();
+        return SegmentNodeStoreBuilders.builder(store).build();
     }
 
     @Override
     protected void closeNodeStore() {
-        segmentStore.close();
+        store.close();
     }
 
     @Override

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java
 Wed Jun  1 07:48:51 2016
@@ -21,7 +21,7 @@ import java.io.File;
 import java.io.IOException;
 
 import com.google.common.io.Closer;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
@@ -49,7 +49,7 @@ public class SegmentTarFactory implement
         builder.withMaxFileSize(256).withMemoryMapping(mmap);
         FileStore fs = builder.build();
         closer.register(asCloseable(fs));
-        return SegmentNodeStore.builder(fs).build();
+        return SegmentNodeStoreBuilders.builder(fs).build();
     }
 
     public File getRepositoryDir() {

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java
 Wed Jun  1 07:48:51 2016
@@ -40,7 +40,7 @@ import org.apache.jackrabbit.core.Reposi
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.jcr.Jcr;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.apache.jackrabbit.oak.stats.Clock;
@@ -73,7 +73,7 @@ public abstract class AbstractRepository
 
     protected NodeStore createTargetNodeStore() {
         try {
-            return SegmentNodeStore.builder(new MemoryStore()).build();
+            return SegmentNodeStoreBuilders.builder(new MemoryStore()).build();
         } catch (IOException e) {
             throw new RuntimeException(e);
         }

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/BrokenVersionableTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/BrokenVersionableTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/BrokenVersionableTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/BrokenVersionableTest.java
 Wed Jun  1 07:48:51 2016
@@ -16,16 +16,32 @@
  */
 package org.apache.jackrabbit.oak.upgrade;
 
+import static org.apache.jackrabbit.JcrConstants.MIX_VERSIONABLE;
+import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.jcr.Credentials;
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+import javax.jcr.version.VersionHistory;
+import javax.jcr.version.VersionIterator;
+import javax.jcr.version.VersionManager;
+
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -36,21 +52,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.jcr.Credentials;
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.SimpleCredentials;
-import javax.jcr.version.VersionHistory;
-import javax.jcr.version.VersionIterator;
-import javax.jcr.version.VersionManager;
-
-import static org.apache.jackrabbit.JcrConstants.MIX_VERSIONABLE;
-import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 public class BrokenVersionableTest {
 
     private static final Credentials CREDENTIALS = new 
SimpleCredentials("admin", "admin".toCharArray());
@@ -61,7 +62,7 @@ public class BrokenVersionableTest {
 
     @Before
     public synchronized void upgradeRepository() throws Exception {
-        targetNodeStore = SegmentNodeStore.builder(new MemoryStore()).build();
+        targetNodeStore = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         targetRepository = (RepositoryImpl) new Jcr(new 
Oak(targetNodeStore)).createRepository();
         NodeStore source = createSourceContent();
         RepositorySidegrade sidegrade = new RepositorySidegrade(source, 
targetNodeStore);
@@ -77,7 +78,7 @@ public class BrokenVersionableTest {
     }
 
     private NodeStore createSourceContent() throws Exception {
-        SegmentNodeStore source = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        SegmentNodeStore source = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         RepositoryImpl repository = (RepositoryImpl) new Jcr(new 
Oak(source)).createRepository();
         Session session = repository.login(CREDENTIALS);
         List<String> versionHistoryPaths = new ArrayList<String>();

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java
 Wed Jun  1 07:48:51 2016
@@ -16,13 +16,43 @@
  */
 package org.apache.jackrabbit.oak.upgrade;
 
+import static org.apache.jackrabbit.JcrConstants.JCR_PREDECESSORS;
+import static org.apache.jackrabbit.JcrConstants.JCR_VERSIONHISTORY;
+import static org.apache.jackrabbit.JcrConstants.MIX_VERSIONABLE;
+import static 
org.apache.jackrabbit.oak.plugins.version.VersionConstants.MIX_REP_VERSIONABLE_PATHS;
+import static 
org.apache.jackrabbit.oak.upgrade.util.VersionCopyTestUtils.createLabeledVersions;
+import static 
org.apache.jackrabbit.oak.upgrade.util.VersionCopyTestUtils.getOrAddNodeWithMixins;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.PropertyType;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Value;
+import javax.jcr.version.Version;
+import javax.jcr.version.VersionHistory;
+import javax.jcr.version.VersionManager;
+
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.jackrabbit.core.RepositoryContext;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.apache.jackrabbit.oak.upgrade.util.VersionCopyTestUtils;
@@ -32,37 +62,6 @@ import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Test;
 
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.PropertyType;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.Value;
-import javax.jcr.version.Version;
-import javax.jcr.version.VersionHistory;
-import javax.jcr.version.VersionManager;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.collect.Lists;
-
-import static org.apache.jackrabbit.JcrConstants.JCR_PREDECESSORS;
-import static org.apache.jackrabbit.JcrConstants.JCR_VERSIONHISTORY;
-import static org.apache.jackrabbit.JcrConstants.MIX_VERSIONABLE;
-import static 
org.apache.jackrabbit.oak.plugins.version.VersionConstants.MIX_REP_VERSIONABLE_PATHS;
-import static 
org.apache.jackrabbit.oak.upgrade.util.VersionCopyTestUtils.getOrAddNodeWithMixins;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static 
org.apache.jackrabbit.oak.upgrade.util.VersionCopyTestUtils.createLabeledVersions;
-
 public class CopyVersionHistoryTest extends AbstractRepositoryUpgradeTest {
 
     private static final String VERSIONABLES_PATH_PREFIX = "/versionables/";
@@ -258,7 +257,7 @@ public class CopyVersionHistoryTest exte
     protected Session performCopy(VersionCopySetup setup) throws 
RepositoryException, IOException {
         final RepositoryConfig sourceConfig = RepositoryConfig.create(source);
         final RepositoryContext sourceContext = 
RepositoryContext.create(sourceConfig);
-        final NodeStore targetNodeStore = SegmentNodeStore.builder(new 
MemoryStore()).build();
+        final NodeStore targetNodeStore = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
         try {
             final RepositoryUpgrade upgrade = new 
RepositoryUpgrade(sourceContext, targetNodeStore);
             setup.setup(upgrade.versionCopyConfiguration);

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IncludeExcludeSidegradeTest.java
 Wed Jun  1 07:48:51 2016
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.Before;
@@ -39,7 +40,7 @@ public class IncludeExcludeSidegradeTest
             File source = new File(directory, "source");
             source.mkdirs();
             FileStore fileStore = FileStore.builder(source).build();
-            SegmentNodeStore segmentNodeStore = 
SegmentNodeStore.builder(fileStore).build();
+            SegmentNodeStore segmentNodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
             RepositoryImpl repository = (RepositoryImpl) new Jcr(new 
Oak(segmentNodeStore)).createRepository();
             Session session = repository.login(CREDENTIALS);
             try {
@@ -59,7 +60,7 @@ public class IncludeExcludeSidegradeTest
     @Override
     protected void doUpgradeRepository(File source, NodeStore target) throws 
RepositoryException, IOException {
         FileStore fileStore = FileStore.builder(source).build();
-        SegmentNodeStore segmentNodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore segmentNodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
         try {
             final RepositorySidegrade sidegrade = new 
RepositorySidegrade(segmentNodeStore, target);
             sidegrade.setIncludes(

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/LongNameTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/LongNameTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/LongNameTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/LongNameTest.java
 Wed Jun  1 07:48:51 2016
@@ -34,10 +34,10 @@ import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.core.RepositoryContext;
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
-import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
+import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
@@ -123,17 +123,12 @@ public class LongNameTest {
     @Test
     @Ignore
     public void longNameOnSegmentStoreWorksFine() throws RepositoryException, 
IOException {
-        SegmentStore memoryStore = new MemoryStore();
-        try {
-            SegmentNodeStore nodeStore = 
SegmentNodeStore.builder(memoryStore).build();
-            upgrade(nodeStore, false);
+        SegmentNodeStore nodeStore = SegmentNodeStoreBuilders.builder(new 
MemoryStore()).build();
+        upgrade(nodeStore, false);
 
-            NodeState parent = getParent(nodeStore.getRoot());
-            Assert.assertTrue(parent.hasChildNode(NOT_TOO_LONG_NAME));
-            Assert.assertTrue(parent.hasChildNode(TOO_LONG_NAME));
-        } finally {
-            memoryStore.close();
-        }
+        NodeState parent = getParent(nodeStore.getRoot());
+        Assert.assertTrue(parent.hasChildNode(NOT_TOO_LONG_NAME));
+        Assert.assertTrue(parent.hasChildNode(TOO_LONG_NAME));
     }
 
     private static void upgrade(NodeStore target, boolean skipLongNames) 
throws RepositoryException, IOException {

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java?rev=1746410&r1=1746409&r2=1746410&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/RepeatedRepositorySidegradeTest.java
 Wed Jun  1 07:48:51 2016
@@ -18,22 +18,24 @@
  */
 package org.apache.jackrabbit.oak.upgrade;
 
+import java.io.File;
+import java.io.IOException;
+
+import javax.annotation.Nonnull;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.Before;
 
-import javax.annotation.Nonnull;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import java.io.File;
-import java.io.IOException;
-
 public class RepeatedRepositorySidegradeTest extends 
RepeatedRepositoryUpgradeTest {
 
     @Before
@@ -44,7 +46,7 @@ public class RepeatedRepositorySidegrade
             sourceDir.mkdirs();
 
             FileStore fileStore = FileStore.builder(sourceDir).build();
-            SegmentNodeStore segmentNodeStore = 
SegmentNodeStore.builder(fileStore).build();
+            SegmentNodeStore segmentNodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
             RepositoryImpl repository = (RepositoryImpl) new Jcr(new 
Oak(segmentNodeStore)).createRepository();
             Session session = repository.login(CREDENTIALS);
             try {
@@ -61,7 +63,7 @@ public class RepeatedRepositorySidegrade
             fileStore.flush();
 
             fileStore = FileStore.builder(sourceDir).build();
-            segmentNodeStore = SegmentNodeStore.builder(fileStore).build();
+            segmentNodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
             repository = (RepositoryImpl) new Jcr(new 
Oak(segmentNodeStore)).createRepository();
             session = repository.login(CREDENTIALS);
             try {
@@ -83,7 +85,7 @@ public class RepeatedRepositorySidegrade
     @Override
     protected void doUpgradeRepository(File source, NodeStore target, boolean 
skipInit) throws RepositoryException, IOException {
         FileStore fileStore = FileStore.builder(source).build();
-        SegmentNodeStore segmentNodeStore = 
SegmentNodeStore.builder(fileStore).build();
+        SegmentNodeStore segmentNodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
         try {
             final RepositorySidegrade repositoryUpgrade = new 
RepositorySidegrade(segmentNodeStore, target);
             repositoryUpgrade.setSkipInitialization(skipInit);



Reply via email to