You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by fr...@apache.org on 2017/06/26 14:50:31 UTC

svn commit: r1799926 - in /jackrabbit/oak/trunk/oak-segment-tar/src: main/java/org/apache/jackrabbit/oak/backup/impl/ main/java/org/apache/jackrabbit/oak/segment/ main/java/org/apache/jackrabbit/oak/segment/file/ main/java/org/apache/jackrabbit/oak/seg...

Author: frm
Date: Mon Jun 26 14:50:30 2017
New Revision: 1799926

URL: http://svn.apache.org/viewvc?rev=1799926&view=rev
Log:
OAK-6396 - Reduce usages of DefaultSegmentWriter in favour of SegmentWriter

Added:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java
      - copied, changed from r1799925, jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java
Removed:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java
Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeBuilder.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriteOperationHandler.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BigInlinedBinaryIT.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/NodeRecordTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentReferencesTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferenceReaderTest.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java Mon Jun 26 14:50:30 2017
@@ -35,10 +35,12 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.SegmentBufferWriter;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
 import org.apache.jackrabbit.oak.segment.SegmentReader;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.segment.WriterCacheManager;
 import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
+import org.apache.jackrabbit.oak.segment.file.GCNodeWriteMonitor;
 import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
 import org.apache.jackrabbit.oak.segment.file.tooling.BasicReadOnlyBlobStore;
 import org.slf4j.Logger;
@@ -73,13 +75,14 @@ public class FileStoreBackupImpl impleme
                     "b",
                     gen
             );
-            DefaultSegmentWriter writer = new DefaultSegmentWriter(
+            SegmentWriter writer = new DefaultSegmentWriter(
                     backup,
                     backup.getReader(),
                     backup.getSegmentIdProvider(),
                     backup.getBlobStore(),
                     new WriterCacheManager.Default(),
-                    bufferWriter
+                    bufferWriter,
+                    GCNodeWriteMonitor.EMPTY
             );
             Compactor compactor = new Compactor(
                     backup.getReader(),

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java Mon Jun 26 14:50:30 2017
@@ -32,9 +32,11 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
 import org.apache.jackrabbit.oak.segment.SegmentBufferWriter;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.segment.WriterCacheManager;
 import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
+import org.apache.jackrabbit.oak.segment.file.GCNodeWriteMonitor;
 import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
 import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore;
 import org.slf4j.Logger;
@@ -67,13 +69,14 @@ public class FileStoreRestoreImpl implem
                     "r",
                     gen
             );
-            DefaultSegmentWriter writer = new DefaultSegmentWriter(
+            SegmentWriter writer = new DefaultSegmentWriter(
                     store,
                     store.getReader(),
                     store.getSegmentIdProvider(),
                     store.getBlobStore(),
                     new WriterCacheManager.Default(),
-                    bufferWriter
+                    bufferWriter,
+                    GCNodeWriteMonitor.EMPTY
             );
             SegmentGCOptions gcOptions = defaultGCOptions().setOffline();
             Compactor compactor = new Compactor(

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java Mon Jun 26 14:50:30 2017
@@ -40,7 +40,7 @@ public class CachingSegmentReader implem
     public static final int DEFAULT_TEMPLATE_CACHE_MB = 64;
 
     @Nonnull
-    private final Supplier<DefaultSegmentWriter> writer;
+    private final Supplier<SegmentWriter> writer;
 
     @CheckForNull
     private final BlobStore blobStore;
@@ -68,7 +68,7 @@ public class CachingSegmentReader implem
      * @param templateCacheMB the size of the template cache in MBs or {@code 0} for no cache.
      */
     public CachingSegmentReader(
-            @Nonnull Supplier<DefaultSegmentWriter> writer,
+            @Nonnull Supplier<SegmentWriter> writer,
             @Nullable BlobStore blobStore,
             long stringCacheMB,
             long templateCacheMB) {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java Mon Jun 26 14:50:30 2017
@@ -69,7 +69,7 @@ public class Compactor {
 
     private final BlobStore blobStore;
 
-    private final DefaultSegmentWriter writer;
+    private final SegmentWriter writer;
 
     private final ProgressTracker progress = new ProgressTracker();
 
@@ -132,7 +132,7 @@ public class Compactor {
     private final PriorityCache<RecordId, RecordId> nodeCache =
             new PriorityCache<>((int) nextPowerOfTwo(cacheSize/10*9));
 
-    public Compactor(SegmentReader reader, DefaultSegmentWriter writer,
+    public Compactor(SegmentReader reader, SegmentWriter writer,
             BlobStore blobStore, Supplier<Boolean> cancel, SegmentGCOptions gc) {
         this.reader = reader;
         this.writer = writer;
@@ -417,7 +417,7 @@ public class Compactor {
     private static String getBlobKey(Blob blob) throws IOException {
         InputStream stream = blob.getNewStream();
         try {
-            byte[] buffer = new byte[DefaultSegmentWriter.BLOCK_SIZE];
+            byte[] buffer = new byte[SegmentStream.BLOCK_SIZE];
             int n = IOUtils.readFully(stream, buffer, 0, buffer.length);
             return blob.length() + ":" + Hashing.sha1().hashBytes(buffer, 0, n);
         } finally {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java Mon Jun 26 14:50:30 2017
@@ -80,16 +80,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * A {@code SegmentWriter} converts nodes, properties, values, etc. to records
- * and persists them with the help of a {@link WriteOperationHandler}. All
- * public methods of this class are thread safe if and only if the {@link
- * WriteOperationHandler} passed to the constructor is thread safe.
+ * Converts nodes, properties, values, etc. to records and persists them with
+ * the help of a {@link WriteOperationHandler}. All public methods of this class
+ * are thread safe if and only if the {@link WriteOperationHandler} passed to
+ * the constructor is thread safe.
  */
 public class DefaultSegmentWriter implements SegmentWriter {
 
-    private static final Logger LOG = LoggerFactory.getLogger(org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.class);
-
-    static final int BLOCK_SIZE = 1 << 12; // 4kB
+    private static final Logger LOG = LoggerFactory.getLogger(DefaultSegmentWriter.class);
 
     @Nonnull
     private final WriterCacheManager cacheManager;
@@ -110,7 +108,7 @@ public class DefaultSegmentWriter implem
     private final WriteOperationHandler writeOperationHandler;
 
     @Nonnull
-    private GCNodeWriteMonitor compactionMonitor = GCNodeWriteMonitor.EMPTY;
+    private final GCNodeWriteMonitor compactionMonitor;
 
     /**
      * Create a new instance of a {@code SegmentWriter}. Note the thread safety
@@ -131,7 +129,8 @@ public class DefaultSegmentWriter implem
             @Nonnull SegmentIdProvider idProvider,
             @Nullable BlobStore blobStore,
             @Nonnull WriterCacheManager cacheManager,
-            @Nonnull WriteOperationHandler writeOperationHandler
+            @Nonnull WriteOperationHandler writeOperationHandler,
+            GCNodeWriteMonitor compactionMonitor
     ) {
         this.store = checkNotNull(store);
         this.reader = checkNotNull(reader);
@@ -139,6 +138,7 @@ public class DefaultSegmentWriter implem
         this.blobStore = blobStore;
         this.cacheManager = checkNotNull(cacheManager);
         this.writeOperationHandler = checkNotNull(writeOperationHandler);
+        this.compactionMonitor = checkNotNull(compactionMonitor);
     }
 
     @Override
@@ -574,13 +574,13 @@ public class DefaultSegmentWriter implem
 
             int pos = 0;
             List<RecordId> blockIds = newArrayListWithExpectedSize(
-                    data.length / BLOCK_SIZE + 1);
+                    data.length / SegmentStream.BLOCK_SIZE + 1);
 
             // write as many full bulk segments as possible
             while (pos + Segment.MAX_SEGMENT_SIZE <= data.length) {
                 SegmentId bulkId = idProvider.newBulkSegmentId();
                 store.writeSegment(bulkId, data, pos, Segment.MAX_SEGMENT_SIZE);
-                for (int i = 0; i < Segment.MAX_SEGMENT_SIZE; i += BLOCK_SIZE) {
+                for (int i = 0; i < Segment.MAX_SEGMENT_SIZE; i += SegmentStream.BLOCK_SIZE) {
                     blockIds.add(new RecordId(bulkId, i));
                 }
                 pos += Segment.MAX_SEGMENT_SIZE;
@@ -588,7 +588,7 @@ public class DefaultSegmentWriter implem
 
             // inline the remaining data as block records
             while (pos < data.length) {
-                int len = min(BLOCK_SIZE, data.length - pos);
+                int len = min(SegmentStream.BLOCK_SIZE, data.length - pos);
                 blockIds.add(writeBlock(data, pos, len));
                 pos += len;
             }
@@ -710,7 +710,7 @@ public class DefaultSegmentWriter implem
             n += read(stream, data, n, Segment.MAX_SEGMENT_SIZE - n);
             long length = n;
             List<RecordId> blockIds =
-                    newArrayListWithExpectedSize(2 * n / BLOCK_SIZE);
+                    newArrayListWithExpectedSize(2 * n / SegmentStream.BLOCK_SIZE);
 
             // Write the data to bulk segments and collect the list of block ids
             while (n != 0) {
@@ -718,7 +718,7 @@ public class DefaultSegmentWriter implem
                 LOG.debug("Writing bulk segment {} ({} bytes)", bulkId, n);
                 store.writeSegment(bulkId, data, 0, n);
 
-                for (int i = 0; i < n; i += BLOCK_SIZE) {
+                for (int i = 0; i < n; i += SegmentStream.BLOCK_SIZE) {
                     blockIds.add(new RecordId(bulkId, data.length - n + i));
                 }
 
@@ -1099,8 +1099,4 @@ public class DefaultSegmentWriter implem
         }
     }
 
-    public void setCompactionMonitor(@Nonnull GCNodeWriteMonitor compactionMonitor) {
-        this.compactionMonitor = compactionMonitor;
-    }
-
 }

Copied: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java (from r1799925, jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java?p2=jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java&p1=jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java&r1=1799925&r2=1799926&rev=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java Mon Jun 26 14:50:30 2017
@@ -27,6 +27,7 @@ import com.google.common.base.Supplier;
 import com.google.common.base.Suppliers;
 import org.apache.jackrabbit.oak.segment.WriterCacheManager.Empty;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
+import org.apache.jackrabbit.oak.segment.file.GCNodeWriteMonitor;
 import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 
@@ -48,7 +49,7 @@ import org.apache.jackrabbit.oak.segment
         .build(store);
  * </pre>
  */
-public final class SegmentWriterBuilder {
+public final class DefaultSegmentWriterBuilder {
 
     @Nonnull
     private final String name;
@@ -61,15 +62,19 @@ public final class SegmentWriterBuilder
     @Nonnull
     private WriterCacheManager cacheManager = new WriterCacheManager.Default();
 
-    private SegmentWriterBuilder(@Nonnull String name) { this.name = checkNotNull(name); }
+    private GCNodeWriteMonitor compactionMonitor = GCNodeWriteMonitor.EMPTY;
+
+    private DefaultSegmentWriterBuilder(@Nonnull String name) {
+        this.name = checkNotNull(name);
+    }
 
     /**
      * Set the {@code name} of this builder. This name will appear in the segment's
      * meta data.
      */
     @Nonnull
-    public static SegmentWriterBuilder segmentWriterBuilder(@Nonnull String name) {
-        return new SegmentWriterBuilder(name);
+    public static DefaultSegmentWriterBuilder defaultSegmentWriterBuilder(@Nonnull String name) {
+        return new DefaultSegmentWriterBuilder(name);
     }
 
     /**
@@ -84,7 +89,7 @@ public final class SegmentWriterBuilder
      * is created by the returned writer.
      */
     @Nonnull
-    public SegmentWriterBuilder withGeneration(@Nonnull Supplier<Integer> generation) {
+    public DefaultSegmentWriterBuilder withGeneration(@Nonnull Supplier<Integer> generation) {
         this.generation = checkNotNull(generation);
         return this;
     }
@@ -94,7 +99,7 @@ public final class SegmentWriterBuilder
      * segment writer.
      */
     @Nonnull
-    public SegmentWriterBuilder withGeneration(int generation) {
+    public DefaultSegmentWriterBuilder withGeneration(int generation) {
         this.generation = Suppliers.ofInstance(generation);
         return this;
     }
@@ -104,7 +109,7 @@ public final class SegmentWriterBuilder
      * The returned instance is thread safe.
      */
     @Nonnull
-    public SegmentWriterBuilder withWriterPool() {
+    public DefaultSegmentWriterBuilder withWriterPool() {
         this.pooled = true;
         return this;
     }
@@ -114,7 +119,7 @@ public final class SegmentWriterBuilder
      * The returned instance is <em>not</em> thread safe.
      */
     @Nonnull
-    public SegmentWriterBuilder withoutWriterPool() {
+    public DefaultSegmentWriterBuilder withoutWriterPool() {
         this.pooled = false;
         return this;
     }
@@ -123,7 +128,7 @@ public final class SegmentWriterBuilder
      * Specify the {@code cacheManager} used by the returned writer.
      */
     @Nonnull
-    public SegmentWriterBuilder with(WriterCacheManager cacheManager) {
+    public DefaultSegmentWriterBuilder with(WriterCacheManager cacheManager) {
         this.cacheManager = checkNotNull(cacheManager);
         return this;
     }
@@ -133,11 +138,16 @@ public final class SegmentWriterBuilder
      * @see #with(WriterCacheManager)
      */
     @Nonnull
-    public SegmentWriterBuilder withoutCache() {
+    public DefaultSegmentWriterBuilder withoutCache() {
         this.cacheManager = Empty.INSTANCE;
         return this;
     }
 
+    public DefaultSegmentWriterBuilder withCompactionMonitor(GCNodeWriteMonitor compactionMonitor) {
+        this.compactionMonitor = compactionMonitor;
+        return this;
+    }
+
     /**
      * Build a {@code SegmentWriter} for a {@code FileStore}.
      */
@@ -149,7 +159,8 @@ public final class SegmentWriterBuilder
                 store.getSegmentIdProvider(),
                 store.getBlobStore(),
                 cacheManager,
-                createWriter(store, pooled)
+                createWriter(store, pooled),
+                compactionMonitor
         );
     }
 
@@ -177,7 +188,9 @@ public final class SegmentWriterBuilder
                     public void flush(@Nonnull SegmentStore store) {
                         throw new UnsupportedOperationException("Cannot write to read-only store");
                     }
-                });
+                },
+                compactionMonitor
+        );
     }
 
     /**
@@ -191,7 +204,8 @@ public final class SegmentWriterBuilder
                 store.getSegmentIdProvider(),
                 store.getBlobStore(),
                 cacheManager,
-                createWriter(store, pooled)
+                createWriter(store, pooled),
+                compactionMonitor
         );
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java Mon Jun 26 14:50:30 2017
@@ -25,7 +25,7 @@ import static com.google.common.base.Pre
 import static java.util.Arrays.fill;
 import static org.apache.jackrabbit.oak.commons.IOUtils.closeQuietly;
 import static org.apache.jackrabbit.oak.segment.CacheWeights.OBJECT_HEADER_SIZE;
-import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.BLOCK_SIZE;
+import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE;
 import static org.apache.jackrabbit.oak.segment.RecordNumbers.EMPTY_RECORD_NUMBERS;
 import static org.apache.jackrabbit.oak.segment.SegmentId.isDataSegmentId;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java Mon Jun 26 14:50:30 2017
@@ -21,7 +21,7 @@ package org.apache.jackrabbit.oak.segmen
 import static com.google.common.base.Charsets.UTF_8;
 import static com.google.common.collect.Sets.newHashSet;
 import static java.util.Collections.emptySet;
-import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.BLOCK_SIZE;
+import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE;
 import static org.apache.jackrabbit.oak.segment.Segment.MEDIUM_LIMIT;
 import static org.apache.jackrabbit.oak.segment.Segment.SMALL_LIMIT;
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java Mon Jun 26 14:50:30 2017
@@ -62,8 +62,7 @@ import org.slf4j.LoggerFactory;
  * The behaviour of this class is undefined should the pre-allocated buffer be
  * overrun be calling any of the write methods.
  * <p>
- * Instances of this class are <em>not thread safe</em>. See also the class comment of
- * {@link DefaultSegmentWriter}.
+ * Instances of this class are <em>not thread safe</em>
  */
 public class SegmentBufferWriter implements WriteOperationHandler {
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java Mon Jun 26 14:50:30 2017
@@ -41,8 +41,7 @@ import com.google.common.util.concurrent
  * This {@link WriteOperationHandler} uses a pool of {@link SegmentBufferWriter}s,
  * which it passes to its {@link #execute(WriteOperation) execute} method.
  * <p>
- * Instances of this class are thread safe. See also the class comment of
- * {@link DefaultSegmentWriter}.
+ * Instances of this class are thread safe.
  */
 public class SegmentBufferWriterPool implements WriteOperationHandler {
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeBuilder.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeBuilder.java Mon Jun 26 14:50:30 2017
@@ -53,7 +53,7 @@ public class SegmentNodeBuilder extends
     private final SegmentReader reader;
 
     @Nonnull
-    private final DefaultSegmentWriter writer;
+    private final SegmentWriter writer;
 
     /**
      * Local update counter for the root builder.
@@ -69,7 +69,7 @@ public class SegmentNodeBuilder extends
      */
     private long updateCount;
 
-    SegmentNodeBuilder(@Nonnull SegmentNodeState base, BlobStore blobStore, SegmentReader reader, @Nonnull DefaultSegmentWriter writer) {
+    SegmentNodeBuilder(@Nonnull SegmentNodeState base, BlobStore blobStore, SegmentReader reader, @Nonnull SegmentWriter writer) {
         super(base);
         this.blobStore = blobStore;
         this.reader = reader;
@@ -77,7 +77,7 @@ public class SegmentNodeBuilder extends
         this.updateCount = 0;
     }
 
-    private SegmentNodeBuilder(SegmentNodeBuilder parent, String name, BlobStore blobStore, SegmentReader reader, @Nonnull DefaultSegmentWriter writer) {
+    private SegmentNodeBuilder(SegmentNodeBuilder parent, String name, BlobStore blobStore, SegmentReader reader, @Nonnull SegmentWriter writer) {
         super(parent, name);
         this.blobStore = blobStore;
         this.reader = reader;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java Mon Jun 26 14:50:30 2017
@@ -67,7 +67,7 @@ public class SegmentNodeState extends Re
     private final BlobStore blobStore;
 
     @Nonnull
-    private final Supplier<DefaultSegmentWriter> writer;
+    private final Supplier<SegmentWriter> writer;
 
     private volatile RecordId templateId = null;
 
@@ -75,7 +75,7 @@ public class SegmentNodeState extends Re
 
     SegmentNodeState(
             @Nonnull SegmentReader reader,
-            @Nonnull Supplier<DefaultSegmentWriter> writer,
+            @Nonnull Supplier<SegmentWriter> writer,
             BlobStore blobStore,
             @Nonnull RecordId id) {
         super(id);
@@ -86,7 +86,7 @@ public class SegmentNodeState extends Re
 
     public SegmentNodeState(
             @Nonnull SegmentReader reader,
-            @Nonnull DefaultSegmentWriter writer,
+            @Nonnull SegmentWriter writer,
             BlobStore blobStore,
             @Nonnull RecordId id) {
         this(reader, Suppliers.ofInstance(writer), blobStore, id);

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java Mon Jun 26 14:50:30 2017
@@ -72,7 +72,7 @@ public class SegmentNodeStore implements
         private final SegmentReader reader;
 
         @Nonnull
-        private final DefaultSegmentWriter writer;
+        private final SegmentWriter writer;
 
         @CheckForNull
         private final BlobStore blobStore;
@@ -87,7 +87,7 @@ public class SegmentNodeStore implements
         private SegmentNodeStoreBuilder(
                 @Nonnull Revisions revisions,
                 @Nonnull SegmentReader reader,
-                @Nonnull DefaultSegmentWriter writer,
+                @Nonnull SegmentWriter writer,
                 @Nullable BlobStore blobStore) {
             this.revisions = revisions;
             this.reader = reader;
@@ -138,7 +138,7 @@ public class SegmentNodeStore implements
     public static SegmentNodeStoreBuilder builder(
             @Nonnull Revisions revisions,
             @Nonnull SegmentReader reader,
-            @Nonnull DefaultSegmentWriter writer,
+            @Nonnull SegmentWriter writer,
             @Nullable BlobStore blobStore) {
         return new SegmentNodeStoreBuilder(checkNotNull(revisions),
                 checkNotNull(reader), checkNotNull(writer), blobStore);
@@ -149,7 +149,7 @@ public class SegmentNodeStore implements
     public static final String CHECKPOINTS = "checkpoints";
 
     @Nonnull
-    private final DefaultSegmentWriter writer;
+    private final SegmentWriter writer;
 
     @Nonnull
     private final Scheduler scheduler;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java Mon Jun 26 14:50:30 2017
@@ -25,7 +25,7 @@ import static com.google.common.collect.
 import static com.google.common.collect.Lists.newArrayListWithCapacity;
 import static java.util.Collections.singletonList;
 import static org.apache.jackrabbit.oak.api.Type.BINARY;
-import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.BLOCK_SIZE;
+import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE;
 import static org.apache.jackrabbit.oak.segment.ListRecord.LEVEL_SIZE;
 import static org.apache.jackrabbit.oak.segment.Segment.MEDIUM_LIMIT;
 import static org.apache.jackrabbit.oak.segment.Segment.RECORD_ID_BYTES;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java Mon Jun 26 14:50:30 2017
@@ -22,7 +22,6 @@ import static com.google.common.base.Pre
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkPositionIndexes;
 import static com.google.common.base.Preconditions.checkState;
-import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.BLOCK_SIZE;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -40,6 +39,8 @@ import com.google.common.io.ByteStreams;
  */
 public class SegmentStream extends InputStream {
 
+    static final int BLOCK_SIZE = 1 << 12; // 4kB
+
     @CheckForNull
     public static RecordId getRecordIdIfAvailable(
             InputStream stream, SegmentStore store) {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java Mon Jun 26 14:50:30 2017
@@ -31,6 +31,9 @@ import org.apache.jackrabbit.oak.api.Blo
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 
+/**
+ * Converts nodes, properties, values, etc. to records and persists them.
+ */
 public interface SegmentWriter {
 
     void flush() throws IOException;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriteOperationHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriteOperationHandler.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriteOperationHandler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriteOperationHandler.java Mon Jun 26 14:50:30 2017
@@ -24,15 +24,16 @@ import java.io.IOException;
 import javax.annotation.Nonnull;
 
 /**
- * A {@code WriteOperationHandler} executes {@link WriteOperation WriteOperation}s and as
- * such serves as a bridge between {@link DefaultSegmentWriter} and {@link SegmentBufferWriter}.
+ * A {@code WriteOperationHandler} executes {@link WriteOperation
+ * WriteOperation}s and as such serves as a bridge between a {@link
+ * SegmentWriter} and {@link SegmentBufferWriter}.
  */
 interface WriteOperationHandler {
 
     /**
-     * A {@code WriteOperation} encapsulates an operation on a {@link DefaultSegmentWriter}.
-     * Executing it performs the actual act of persisting changes to a
-     * {@link SegmentBufferWriter}.
+     * A {@code WriteOperation} encapsulates an operation on a {@link
+     * SegmentWriter}. Executing it performs the actual act of persisting
+     * changes to a {@link SegmentBufferWriter}.
      */
     interface WriteOperation {
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java Mon Jun 26 14:50:30 2017
@@ -44,11 +44,10 @@ import org.apache.jackrabbit.oak.stats.S
 import org.apache.jackrabbit.oak.stats.StatsOptions;
 
 /**
- * Instances of this class manage the deduplication caches used
- * by the {@link DefaultSegmentWriter} to avoid writing multiple copies
- * of the same record. The caches are striped into generations
- * with one generation per gc cycle. This avoids records old
- * generations being reused.
+ * Instances of this class manage the deduplication caches used by the {@link
+ * SegmentWriter} to avoid writing multiple copies of the same record. The
+ * caches are striped into generations with one generation per gc cycle. This
+ * avoids records old generations being reused.
  */
 public abstract class WriterCacheManager {
     /**

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java Mon Jun 26 14:50:30 2017
@@ -33,7 +33,6 @@ import java.util.concurrent.ExecutionExc
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
-import com.google.common.base.Supplier;
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean;
 import org.apache.jackrabbit.oak.segment.CachingSegmentReader;
@@ -51,7 +50,7 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.SegmentReader;
 import org.apache.jackrabbit.oak.segment.SegmentStore;
 import org.apache.jackrabbit.oak.segment.SegmentTracker;
-import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -122,12 +121,7 @@ public abstract class AbstractFileStore
         });
         this.blobStore = builder.getBlobStore();
         this.segmentCache = new SegmentCache(builder.getSegmentCacheSize());
-        this.segmentReader = new CachingSegmentReader(new Supplier<DefaultSegmentWriter>() {
-            @Override
-            public DefaultSegmentWriter get() {
-                return getWriter();
-            }
-        }, blobStore, builder.getStringCacheSize(), builder.getTemplateCacheSize());
+        this.segmentReader = new CachingSegmentReader(this::getWriter, blobStore, builder.getStringCacheSize(), builder.getTemplateCacheSize());
         this.memoryMapping = builder.getMemoryMapping();
         this.ioMonitor = builder.getIOMonitor();
     }
@@ -195,7 +189,7 @@ public abstract class AbstractFileStore
     }
 
     @Nonnull
-    public abstract DefaultSegmentWriter getWriter();
+    public abstract SegmentWriter getWriter();
 
     @Nonnull
     public SegmentReader getReader() {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java Mon Jun 26 14:50:30 2017
@@ -28,7 +28,7 @@ import static java.util.concurrent.TimeU
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.compaction.SegmentGCStatus.CLEANUP;
 import static org.apache.jackrabbit.oak.segment.compaction.SegmentGCStatus.COMPACTION;
 import static org.apache.jackrabbit.oak.segment.compaction.SegmentGCStatus.COMPACTION_FORCE_COMPACT;
@@ -66,13 +66,13 @@ import com.google.common.base.Suppliers;
 import com.google.common.io.Closer;
 import org.apache.jackrabbit.oak.plugins.blob.ReferenceCollector;
 import org.apache.jackrabbit.oak.segment.Compactor;
-import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
 import org.apache.jackrabbit.oak.segment.RecordId;
 import org.apache.jackrabbit.oak.segment.Segment;
 import org.apache.jackrabbit.oak.segment.SegmentId;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
 import org.apache.jackrabbit.oak.segment.SegmentNotFoundException;
 import org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.segment.WriterCacheManager;
 import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
 import org.apache.jackrabbit.oak.segment.file.GCJournal.GCJournalEntry;
@@ -106,7 +106,7 @@ public class FileStore extends AbstractF
     private static final AtomicLong GC_COUNT = new AtomicLong(0);
 
     @Nonnull
-    private final DefaultSegmentWriter segmentWriter;
+    private final SegmentWriter segmentWriter;
 
     @Nonnull
     private final GarbageCollector garbageCollector;
@@ -179,7 +179,7 @@ public class FileStore extends AbstractF
                     + " is in use by another store.", ex);
         }
 
-        this.segmentWriter = segmentWriterBuilder("sys")
+        this.segmentWriter = defaultSegmentWriterBuilder("sys")
                 .withGeneration(new Supplier<Integer>() {
                     @Override
                     public Integer get() {
@@ -268,7 +268,7 @@ public class FileStore extends AbstractF
             @Override
             public RecordId get() {
                 try {
-                    DefaultSegmentWriter writer = segmentWriterBuilder("init").build(FileStore.this);
+                    SegmentWriter writer = defaultSegmentWriterBuilder("init").build(FileStore.this);
                     NodeBuilder builder = EMPTY_NODE.builder();
                     builder.setChildNode("root", EMPTY_NODE);
                     SegmentNodeState node = new SegmentNodeState(segmentReader, writer, getBlobStore(), writer.writeNode(builder.getNodeState()));
@@ -398,7 +398,7 @@ public class FileStore extends AbstractF
 
     @Override
     @Nonnull
-    public DefaultSegmentWriter getWriter() {
+    public SegmentWriter getWriter() {
         return segmentWriter;
     }
 
@@ -667,12 +667,12 @@ public class FileStore extends AbstractF
 
                 SegmentNodeState before = getHead();
                 CancelCompactionSupplier cancel = new CancelCompactionSupplier(FileStore.this);
-                DefaultSegmentWriter writer = segmentWriterBuilder("c")
+                SegmentWriter writer = defaultSegmentWriterBuilder("c")
                         .with(cacheManager)
                         .withGeneration(newGeneration)
                         .withoutWriterPool()
+                        .withCompactionMonitor(compactionMonitor)
                         .build(FileStore.this);
-                writer.setCompactionMonitor(compactionMonitor);
 
                 SegmentNodeState after = compact(before, writer, cancel);
                 if (after == null) {
@@ -763,7 +763,7 @@ public class FileStore extends AbstractF
             }
         }
 
-        private SegmentNodeState compact(NodeState head, DefaultSegmentWriter writer, Supplier<Boolean> cancel)
+        private SegmentNodeState compact(NodeState head, SegmentWriter writer, Supplier<Boolean> cancel)
         throws IOException {
             if (gcOptions.isOffline()) {
                 return new Compactor(segmentReader, writer, getBlobStore(), cancel, gcOptions)
@@ -778,7 +778,7 @@ public class FileStore extends AbstractF
         }
 
         @CheckForNull
-        private SegmentNodeState forceCompact(@Nonnull final DefaultSegmentWriter writer,
+        private SegmentNodeState forceCompact(@Nonnull final SegmentWriter writer,
                                               @Nonnull final Supplier<Boolean> cancel)
         throws InterruptedException {
             RecordId compactedId = revisions.setHead(new Function<RecordId, RecordId>() {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java Mon Jun 26 14:50:30 2017
@@ -18,7 +18,7 @@
  */
 package org.apache.jackrabbit.oak.segment.file;
 
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -36,7 +36,7 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.Segment;
 import org.apache.jackrabbit.oak.segment.SegmentGraph.SegmentGraphVisitor;
 import org.apache.jackrabbit.oak.segment.SegmentId;
-import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,7 +54,7 @@ public class ReadOnlyFileStore extends A
     private final TarFiles tarFiles;
 
     @Nonnull
-    private final DefaultSegmentWriter writer;
+    private final SegmentWriter writer;
 
     private ReadOnlyRevisions revisions;
 
@@ -75,7 +75,7 @@ public class ReadOnlyFileStore extends A
                 .withReadOnly()
                 .build();
 
-        writer = segmentWriterBuilder("read-only").withoutCache().build(this);
+        writer = defaultSegmentWriterBuilder("read-only").withoutCache().build(this);
         log.info("TarMK ReadOnly opened: {} (mmap={})", directory,
                 memoryMapping);
     }
@@ -149,7 +149,7 @@ public class ReadOnlyFileStore extends A
 
     @Nonnull
     @Override
-    public DefaultSegmentWriter getWriter() {
+    public SegmentWriter getWriter() {
         return writer;
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java Mon Jun 26 14:50:30 2017
@@ -18,7 +18,7 @@
  */
 package org.apache.jackrabbit.oak.segment.memory;
 
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -28,7 +28,6 @@ import java.util.concurrent.ConcurrentMa
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
-import com.google.common.base.Supplier;
 import com.google.common.collect.Maps;
 import org.apache.jackrabbit.oak.segment.CachingSegmentReader;
 import org.apache.jackrabbit.oak.segment.Revisions;
@@ -40,7 +39,7 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.SegmentReader;
 import org.apache.jackrabbit.oak.segment.SegmentStore;
 import org.apache.jackrabbit.oak.segment.SegmentTracker;
-import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 
 /**
@@ -58,7 +57,7 @@ public class MemoryStore implements Segm
     private final SegmentReader segmentReader;
 
     @Nonnull
-    private final DefaultSegmentWriter segmentWriter;
+    private final SegmentWriter segmentWriter;
 
     private final ConcurrentMap<SegmentId, Segment> segments =
             Maps.newConcurrentMap();
@@ -71,20 +70,14 @@ public class MemoryStore implements Segm
             }
         });
         this.revisions = new MemoryStoreRevisions();
-        Supplier<DefaultSegmentWriter> getWriter = new Supplier<DefaultSegmentWriter>() {
-            @Override
-            public DefaultSegmentWriter get() {
-                return getWriter();
-            }
-        };
-        this.segmentReader = new CachingSegmentReader(getWriter, null, 16, 2);
-        this.segmentWriter = segmentWriterBuilder("sys").withWriterPool().build(this);
+        this.segmentReader = new CachingSegmentReader(this::getWriter, null, 16, 2);
+        this.segmentWriter = defaultSegmentWriterBuilder("sys").withWriterPool().build(this);
         revisions.bind(this);
         segmentWriter.flush();
     }
 
     @Nonnull
-    public DefaultSegmentWriter getWriter() {
+    public SegmentWriter getWriter() {
         return segmentWriter;
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BigInlinedBinaryIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BigInlinedBinaryIT.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BigInlinedBinaryIT.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BigInlinedBinaryIT.java Mon Jun 26 14:50:30 2017
@@ -22,7 +22,7 @@ import static java.lang.Long.signum;
 import static java.lang.System.getProperty;
 import static org.apache.jackrabbit.oak.api.Type.BINARY;
 import static org.apache.jackrabbit.oak.segment.ListRecord.LEVEL_SIZE;
-import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.BLOCK_SIZE;
+import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE;
 import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 
 import java.io.File;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java Mon Jun 26 14:50:30 2017
@@ -17,7 +17,7 @@
 
 package org.apache.jackrabbit.oak.segment;
 
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 import static org.junit.Assert.assertEquals;
 
@@ -126,7 +126,7 @@ public class BlobIdRecordTest {
     @Test
     public void shortReferencesShouldHaveBlobIdType() throws Exception {
         try (FileStore ss = newFileStore(new ShortIdMappingBlobStore())) {
-            DefaultSegmentWriter sw = segmentWriterBuilder("test").build(ss);
+            SegmentWriter sw = defaultSegmentWriterBuilder("test").build(ss);
             byte[] content = new byte[Segment.MEDIUM_LIMIT + 1];
             SegmentBlob sb = new SegmentBlob(ss.getBlobStore(), sw.writeBlob(new ArrayBasedBlob(content)));
             assertRecordTypeEquals(sb, RecordType.BLOB_ID);
@@ -136,7 +136,7 @@ public class BlobIdRecordTest {
     @Test
     public void longReferencesShouldHaveBlobIdType() throws Exception {
         try (FileStore ss = newFileStore(new LongIdMappingBlobStore())) {
-            DefaultSegmentWriter sw = segmentWriterBuilder("test").build(ss);
+            SegmentWriter sw = defaultSegmentWriterBuilder("test").build(ss);
             byte[] content = new byte[Segment.MEDIUM_LIMIT + 1];
             SegmentBlob sb = new SegmentBlob(ss.getBlobStore(), sw.writeBlob(new ArrayBasedBlob(content)));
             assertRecordTypeEquals(sb, RecordType.BLOB_ID);

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=1799926&r1=1799925&r2=1799926&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 Mon Jun 26 14:50:30 2017
@@ -757,7 +757,7 @@ public class CompactionAndCleanupIT {
     public void cleanupCyclicGraph() throws Exception {
         FileStore fileStore = fileStoreBuilder(getFileStoreFolder()).build();
         final SegmentReader reader = fileStore.getReader();
-        final DefaultSegmentWriter writer = fileStore.getWriter();
+        final SegmentWriter writer = fileStore.getWriter();
         final BlobStore blobStore = fileStore.getBlobStore();
         final SegmentNodeState oldHead = fileStore.getHead();
 

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=1799926&r1=1799925&r2=1799926&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 Mon Jun 26 14:50:30 2017
@@ -18,7 +18,7 @@
  */
 package org.apache.jackrabbit.oak.segment;
 
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.defaultGCOptions;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -52,7 +52,7 @@ public class CompactorTest {
         NodeStore store = SegmentNodeStoreBuilders.builder(memoryStore).build();
         init(store);
 
-        DefaultSegmentWriter writer = segmentWriterBuilder("c").withGeneration(1).build(memoryStore);
+        SegmentWriter writer = defaultSegmentWriterBuilder("c").withGeneration(1).build(memoryStore);
         Compactor compactor = new Compactor(memoryStore.getReader(), writer,
                 memoryStore.getBlobStore(), Suppliers.ofInstance(false), defaultGCOptions());
         addTestContent(store, 0);
@@ -75,7 +75,7 @@ public class CompactorTest {
         // doesn't have the child named "b".
 
         NodeStore store = SegmentNodeStoreBuilders.builder(memoryStore).build();
-        DefaultSegmentWriter writer = segmentWriterBuilder("c").withGeneration(1).build(memoryStore);
+        SegmentWriter writer = defaultSegmentWriterBuilder("c").withGeneration(1).build(memoryStore);
         Compactor compactor = new Compactor(memoryStore.getReader(), writer,
                 memoryStore.getBlobStore(), Suppliers.ofInstance(true), defaultGCOptions());
         SegmentNodeState sns = compactor.compact(store.getRoot(),

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/NodeRecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/NodeRecordTest.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/NodeRecordTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/NodeRecordTest.java Mon Jun 26 14:50:30 2017
@@ -61,17 +61,17 @@ public class NodeRecordTest {
     @Test
     public void stableIdShouldPersistAcrossGenerations() throws Exception {
         try (FileStore store = newFileStore()) {
-            DefaultSegmentWriter writer;
+            SegmentWriter writer;
 
-            writer = SegmentWriterBuilder.segmentWriterBuilder("1").withGeneration(1).build(store);
+            writer = DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder("1").withGeneration(1).build(store);
             SegmentNodeState one = new SegmentNodeState(store.getReader(), writer, store.getBlobStore(), writer.writeNode(EmptyNodeState.EMPTY_NODE));
             writer.flush();
 
-            writer = SegmentWriterBuilder.segmentWriterBuilder("2").withGeneration(2).build(store);
+            writer = DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder("2").withGeneration(2).build(store);
             SegmentNodeState two = new SegmentNodeState(store.getReader(), writer, store.getBlobStore(), writer.writeNode(one));
             writer.flush();
 
-            writer = SegmentWriterBuilder.segmentWriterBuilder("3").withGeneration(3).build(store);
+            writer = DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder("3").withGeneration(3).build(store);
             SegmentNodeState three = new SegmentNodeState(store.getReader(), writer, store.getBlobStore(), writer.writeNode(two));
             writer.flush();
 
@@ -95,7 +95,7 @@ public class NodeRecordTest {
             // otherwise the write of some records (in this case, template
             // records) will be cached and prevent this test to fail.
 
-            DefaultSegmentWriter writer = SegmentWriterBuilder.segmentWriterBuilder("test")
+            SegmentWriter writer = DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder("test")
                     .withGeneration(generation)
                     .withWriterPool()
                     .with(nodesOnlyCache())

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=1799926&r1=1799925&r2=1799926&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 Mon Jun 26 14:50:30 2017
@@ -76,7 +76,7 @@ public class RecordTest {
 
     private FileStore store;
 
-    private DefaultSegmentWriter writer;
+    private SegmentWriter writer;
 
     private final Random random = new Random(0xcafefaceL);
 
@@ -176,8 +176,8 @@ public class RecordTest {
         checkRandomStreamRecord(0x80);
         checkRandomStreamRecord(0x4079);
         checkRandomStreamRecord(0x4080);
-        checkRandomStreamRecord(DefaultSegmentWriter.BLOCK_SIZE);
-        checkRandomStreamRecord(DefaultSegmentWriter.BLOCK_SIZE + 1);
+        checkRandomStreamRecord(SegmentStream.BLOCK_SIZE);
+        checkRandomStreamRecord(SegmentStream.BLOCK_SIZE + 1);
         checkRandomStreamRecord(Segment.MAX_SEGMENT_SIZE);
         checkRandomStreamRecord(Segment.MAX_SEGMENT_SIZE + 1);
         checkRandomStreamRecord(Segment.MAX_SEGMENT_SIZE * 2);

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterTest.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterTest.java Mon Jun 26 14:50:30 2017
@@ -18,7 +18,7 @@
 package org.apache.jackrabbit.oak.segment;
 
 import static com.google.common.collect.Lists.newArrayList;
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
@@ -57,7 +57,7 @@ public class SegmentBufferWriterTest {
         }
 
         try (FileStore store = openFileStore()) {
-            segmentWriterBuilder("t").build(store).flush();
+            defaultSegmentWriterBuilder("t").build(store).flush();
         }
 
         List<SegmentId> after;
@@ -81,7 +81,7 @@ public class SegmentBufferWriterTest {
         }
 
         try (FileStore store = openFileStore()) {
-            DefaultSegmentWriter writer = segmentWriterBuilder("t").build(store);
+            SegmentWriter writer = defaultSegmentWriterBuilder("t").build(store);
             writer.writeString("test");
             writer.flush();
         }

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=1799926&r1=1799925&r2=1799926&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 Mon Jun 26 14:50:30 2017
@@ -24,9 +24,9 @@ import static com.google.common.collect.
 import static java.util.Collections.singleton;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 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.SegmentWriterBuilder.segmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 import static org.junit.Assert.assertEquals;
 
@@ -71,9 +71,9 @@ public class SegmentGraphTest {
             SegmentNodeState root = store.getHead();
             segments.add(getSegmentId(root));
 
-            DefaultSegmentWriter w1 = segmentWriterBuilder("writer1").build(store);
-            DefaultSegmentWriter w2 = segmentWriterBuilder("writer2").build(store);
-            DefaultSegmentWriter w3 = segmentWriterBuilder("writer3").build(store);
+            SegmentWriter w1 = defaultSegmentWriterBuilder("writer1").build(store);
+            SegmentWriter w2 = defaultSegmentWriterBuilder("writer2").build(store);
+            SegmentWriter w3 = defaultSegmentWriterBuilder("writer3").build(store);
 
             SegmentPropertyState p1 = new SegmentPropertyState(store.getReader(), w1.writeProperty(createProperty("p1", "v1")), "p1", Type.STRING);
             segments.add(getSegmentId(p1));

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=1799926&r1=1799925&r2=1799926&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 Mon Jun 26 14:50:30 2017
@@ -28,12 +28,12 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.api.Type.NAME;
 import static org.apache.jackrabbit.oak.api.Type.NAMES;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 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.SegmentParser.BlobType.LONG;
 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.SegmentWriterBuilder.segmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.TestUtils.newRecordId;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -58,8 +58,10 @@ import org.junit.Before;
 import org.junit.Test;
 
 public class SegmentParserTest {
+
     private MemoryStore store;
-    private DefaultSegmentWriter writer;
+
+    private SegmentWriter writer;
 
     private static class TestParser extends SegmentParser {
         private final String name;
@@ -137,7 +139,7 @@ public class SegmentParserTest {
     @Before
     public void setup() throws IOException {
         store = new MemoryStore();
-        writer = segmentWriterBuilder("").build(store);
+        writer = defaultSegmentWriterBuilder("").build(store);
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentReferencesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentReferencesTest.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentReferencesTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentReferencesTest.java Mon Jun 26 14:50:30 2017
@@ -17,6 +17,7 @@
 
 package org.apache.jackrabbit.oak.segment;
 
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
@@ -44,7 +45,7 @@ public class SegmentReferencesTest {
 
             // Write two records, one referencing the other.
 
-            DefaultSegmentWriter writer = SegmentWriterBuilder.segmentWriterBuilder("test").build(store);
+            SegmentWriter writer = defaultSegmentWriterBuilder("test").build(store);
             RecordId stringId = writer.writeString("test");
             RecordId listId = writer.writeList(Arrays.asList(stringId, stringId));
             writer.flush();
@@ -66,7 +67,7 @@ public class SegmentReferencesTest {
 
             // Write two records, one referencing the other.
 
-            DefaultSegmentWriter writer = SegmentWriterBuilder.segmentWriterBuilder("test").build(store);
+            SegmentWriter writer = defaultSegmentWriterBuilder("test").build(store);
 
             RecordId stringId = writer.writeString("test");
             writer.flush();

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=1799926&r1=1799925&r2=1799926&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 Mon Jun 26 14:50:30 2017
@@ -34,8 +34,8 @@ import org.apache.jackrabbit.oak.api.Blo
 import org.apache.jackrabbit.oak.segment.RecordId;
 import org.apache.jackrabbit.oak.segment.SegmentNodeBuilder;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
-import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
 import org.apache.jackrabbit.oak.segment.SegmentTestConstants;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -133,7 +133,7 @@ public class FileStoreIT {
     public void segmentOverflow() throws Exception {
         for (int n = 1; n < 255; n++) {  // 255 = ListRecord.LEVEL_SIZE
             FileStore store = fileStoreBuilder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
-            DefaultSegmentWriter writer = store.getWriter();
+            SegmentWriter writer = store.getWriter();
             // writer.length == 32  (from the root node)
 
             // adding 15 strings with 16516 bytes each

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferenceReaderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferenceReaderTest.java?rev=1799926&r1=1799925&r2=1799926&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferenceReaderTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferenceReaderTest.java Mon Jun 26 14:50:30 2017
@@ -19,7 +19,7 @@ package org.apache.jackrabbit.oak.segmen
 
 import static java.util.Arrays.asList;
 import static java.util.UUID.randomUUID;
-import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
+import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
@@ -29,7 +29,7 @@ import java.io.File;
 import java.util.Iterator;
 
 import org.apache.jackrabbit.oak.segment.RecordId;
-import org.apache.jackrabbit.oak.segment.DefaultSegmentWriter;
+import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
 import org.junit.Rule;
@@ -57,7 +57,7 @@ public class DefaultStandbyReferenceRead
     @Test
     public void shouldReturnEmptyReferences() throws Exception {
         try (FileStore store = newFileStore()) {
-            DefaultSegmentWriter writer = segmentWriterBuilder("test").build(store);
+            SegmentWriter writer = defaultSegmentWriterBuilder("test").build(store);
 
             RecordId id = writer.writeString("test");
             writer.flush();
@@ -71,7 +71,7 @@ public class DefaultStandbyReferenceRead
     @Test
     public void shouldReturnReferences() throws Exception {
         try (FileStore store = newFileStore()) {
-            DefaultSegmentWriter writer = segmentWriterBuilder("test").build(store);
+            SegmentWriter writer = defaultSegmentWriterBuilder("test").build(store);
 
             RecordId a = writer.writeString("test");
             writer.flush();