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 md...@apache.org on 2016/06/07 07:31:35 UTC

svn commit: r1747156 - in /jackrabbit/oak/trunk/oak-segment-tar/src: main/java/org/apache/jackrabbit/oak/segment/ main/java/org/apache/jackrabbit/oak/segment/file/ main/java/org/apache/jackrabbit/oak/segment/http/ main/java/org/apache/jackrabbit/oak/se...

Author: mduerig
Date: Tue Jun  7 07:31:35 2016
New Revision: 1747156

URL: http://svn.apache.org/viewvc?rev=1747156&view=rev
Log:
OAK-4373: Refactor SegmentTracker
Change SegmentWriters into SegmentWriterBuilder

Added:
    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/SegmentWriters.java
Modified:
    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/http/HttpStore.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/CompactorTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.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/SegmentSizeTest.java

Added: 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/SegmentWriterBuilder.java?rev=1747156&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java Tue Jun  7 07:31:35 2016
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.jackrabbit.oak.segment;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
+
+import javax.annotation.Nonnull;
+
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+import org.apache.jackrabbit.oak.segment.file.FileStore;
+import org.apache.jackrabbit.oak.segment.http.HttpStore;
+import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
+
+/**
+ * Builder for building {@link SegmentWriter} instances.
+ * The returned instances are thread safe if {@link #withWriterPool()}
+ * was specified and <em>not</em> thread sage if {@link #withoutWriterPool()}
+ * was specified (default).
+ */
+public final class SegmentWriterBuilder {
+
+    @Nonnull
+    private final String name;
+
+    @Nonnull
+    private SegmentVersion version = LATEST_VERSION;
+
+    @Nonnull
+    private Supplier<Integer> generation = Suppliers.ofInstance(0);
+
+    private boolean pooled = false;
+
+    private SegmentWriterBuilder(@Nonnull String name) { this.name = checkNotNull(name); }
+
+    @Nonnull
+    public static SegmentWriterBuilder segmentWriterBuilder(@Nonnull String name) {
+        return new SegmentWriterBuilder(name);
+    }
+
+    @Nonnull
+    public SegmentWriterBuilder with(@Nonnull SegmentVersion version) {
+        this.version = checkNotNull(version);
+        return this;
+    }
+
+    /**
+     * Specify the {@code generation} for the segment written by the returned
+     * segment writer.
+     * <p>
+     * If {@link #withoutWriterPool()} was specified all segments will be written
+     * at the generation that {@code generation.get()} returned at the time
+     * any of the {@code build()} methods is called.
+     * If {@link #withWriterPool()} was specified a segments will be written
+     * at the generation that {@code generation.get()} returns when a new segment
+     * is created by the returned writer.
+     */
+    @Nonnull
+    public SegmentWriterBuilder withGeneration(@Nonnull Supplier<Integer> generation) {
+        this.generation = checkNotNull(generation);
+        return this;
+    }
+
+    @Nonnull
+    public SegmentWriterBuilder withGeneration(int generation) {
+        this.generation = Suppliers.ofInstance(generation);
+        return this;
+    }
+
+    /**
+     * Create a {@code SegmentWriter} backed by a {@link SegmentBufferWriterPool}.
+     * The returned instance is thread safe.
+     */
+    @Nonnull
+    public SegmentWriterBuilder withWriterPool() {
+        this.pooled = true;
+        return this;
+    }
+
+    /**
+     * Create a {@code SegmentWriter} backed by a {@link SegmentBufferWriter}.
+     * The returned instance is <em>not</em> thread safe.
+     */
+    @Nonnull
+    public SegmentWriterBuilder withoutWriterPool() {
+        this.pooled = false;
+        return this;
+    }
+
+
+    @Nonnull
+    public SegmentWriter build(@Nonnull FileStore store) {
+        return new SegmentWriter(checkNotNull(store), store.getReader(),
+                store.getBlobStore(), store.getTracker(), createWriter(store, pooled));
+    }
+
+    @Nonnull
+    public SegmentWriter build(@Nonnull MemoryStore store) {
+        return new SegmentWriter(checkNotNull(store), store.getReader(),
+                store.getBlobStore(), store.getTracker(), createWriter(store, pooled));
+    }
+
+    @Nonnull
+    public SegmentWriter build(@Nonnull HttpStore store) {
+        return new SegmentWriter(checkNotNull(store), store.getReader(),
+                store.getBlobStore(), store.getTracker(), createWriter(store, pooled));
+    }
+
+    @Nonnull
+    private WriteOperationHandler createWriter(@Nonnull FileStore store, boolean pooled) {
+        if (pooled) {
+            return new SegmentBufferWriterPool(store,
+                    store.getTracker(), store.getReader(), version, name, generation);
+        } else {
+            return new SegmentBufferWriter(store,
+                    store.getTracker(), store.getReader(), version, name, generation.get());
+        }
+    }
+
+    @Nonnull
+    private WriteOperationHandler createWriter(@Nonnull MemoryStore store, boolean pooled) {
+        if (pooled) {
+            return new SegmentBufferWriterPool(store,
+                    store.getTracker(), store.getReader(), version, name, generation);
+        } else {
+            return new SegmentBufferWriter(store,
+                    store.getTracker(), store.getReader(), version, name, generation.get());
+        }
+    }
+
+    @Nonnull
+    private WriteOperationHandler createWriter(@Nonnull HttpStore store, boolean pooled) {
+        if (pooled) {
+            return new SegmentBufferWriterPool(store,
+                    store.getTracker(), store.getReader(), version, name, generation);
+        } else {
+            return new SegmentBufferWriter(store,
+                    store.getTracker(), store.getReader(), version, name, generation.get());
+        }
+    }
+
+}

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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -38,9 +38,7 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.apache.jackrabbit.oak.segment.CachingSegmentReader.DEFAULT_STRING_CACHE_MB;
 import static org.apache.jackrabbit.oak.segment.SegmentId.isDataSegmentId;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
-import static org.apache.jackrabbit.oak.segment.SegmentWriters.pooledSegmentWriter;
-import static org.apache.jackrabbit.oak.segment.SegmentWriters.segmentWriter;
+import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
 import static org.apache.jackrabbit.oak.segment.file.TarRevisions.timeout;
 
 import java.io.Closeable;
@@ -78,12 +76,12 @@ import com.google.common.base.Supplier;
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.apache.jackrabbit.oak.plugins.blob.ReferenceCollector;
 import org.apache.jackrabbit.oak.segment.CachingSegmentReader;
+import org.apache.jackrabbit.oak.segment.Compactor;
 import org.apache.jackrabbit.oak.segment.RecordId;
 import org.apache.jackrabbit.oak.segment.Segment;
 import org.apache.jackrabbit.oak.segment.SegmentBufferWriter;
 import org.apache.jackrabbit.oak.segment.SegmentCache;
 import org.apache.jackrabbit.oak.segment.SegmentGraph.SegmentGraphVisitor;
-import org.apache.jackrabbit.oak.segment.Compactor;
 import org.apache.jackrabbit.oak.segment.SegmentId;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
@@ -407,7 +405,7 @@ public class FileStore implements Segmen
                 @Override
                 public RecordId get() {
                     try {
-                        SegmentWriter writer = segmentWriter(store, LATEST_VERSION, "init", 0);
+                        SegmentWriter writer = segmentWriterBuilder("init").build(store);
                         NodeBuilder builder = EMPTY_NODE.builder();
                         builder.setChildNode("root", EMPTY_NODE);
                         SegmentNodeState node = writer.writeNode(builder.getNodeState());
@@ -450,12 +448,18 @@ public class FileStore implements Segmen
         } else {
             this.segmentReader = new CachingSegmentReader(getWriter, revisions, blobStore, (long) DEFAULT_STRING_CACHE_MB);
         }
-        this.segmentWriter = pooledSegmentWriter(this, version, "sys", new Supplier<Integer>() {
-                    @Override
-                    public Integer get() {
-                        return getGcGeneration();
-                    }
-                });
+
+        Supplier<Integer> getGeneration = new Supplier<Integer>() {
+            @Override
+            public Integer get() {
+                return getGcGeneration();
+            }
+        };
+        this.segmentWriter = segmentWriterBuilder("sys")
+                .with(version)
+                .withGeneration(getGeneration)
+                .withWriterPool()
+                .build(this);
         this.directory = builder.directory;
         this.maxFileSize = builder.maxFileSize * MB;
         this.memoryMapping = builder.memoryMapping;

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java?rev=1747156&r1=1747155&r2=1747156&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java Tue Jun  7 07:31:35 2016
@@ -19,8 +19,7 @@
 package org.apache.jackrabbit.oak.segment.http;
 
 import static org.apache.jackrabbit.oak.segment.CachingSegmentReader.DEFAULT_STRING_CACHE_MB;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
-import static org.apache.jackrabbit.oak.segment.SegmentWriters.pooledSegmentWriter;
+import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -34,7 +33,6 @@ import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
 import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
 import com.google.common.io.ByteStreams;
 import org.apache.jackrabbit.oak.segment.CachingSegmentReader;
 import org.apache.jackrabbit.oak.segment.Revisions;
@@ -67,8 +65,8 @@ public class HttpStore implements Segmen
             getWriter, revisions, null, DEFAULT_STRING_CACHE_MB);
 
     @Nonnull
-    private final SegmentWriter segmentWriter = pooledSegmentWriter(this,
-            LATEST_VERSION, "sys", Suppliers.ofInstance(0));
+    private final SegmentWriter segmentWriter = segmentWriterBuilder("sys")
+            .withWriterPool().build(this);
 
     private final URL base;
 

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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -18,8 +18,7 @@
  */
 package org.apache.jackrabbit.oak.segment.memory;
 
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
-import static org.apache.jackrabbit.oak.segment.SegmentWriters.pooledSegmentWriter;
+import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -29,7 +28,6 @@ import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
 import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
 import com.google.common.collect.Maps;
 import org.apache.jackrabbit.oak.segment.CachingSegmentReader;
 import org.apache.jackrabbit.oak.segment.Revisions;
@@ -71,8 +69,7 @@ public class MemoryStore implements Segm
             }
         };
         this.segmentReader = new CachingSegmentReader(getWriter, revisions, null, 16);
-        this.segmentWriter = pooledSegmentWriter(this,
-                LATEST_VERSION, "sys", Suppliers.ofInstance(0));
+        this.segmentWriter = segmentWriterBuilder("sys").withWriterPool().build(this);
         revisions.bind(this);
         segmentWriter.flush();
     }

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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -18,14 +18,13 @@
  */
 package org.apache.jackrabbit.oak.segment;
 
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
+import static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 
 import java.io.IOException;
 
 import com.google.common.base.Suppliers;
-
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
@@ -53,7 +52,7 @@ public class CompactorTest {
         NodeStore store = SegmentNodeStoreBuilders.builder(memoryStore).build();
         init(store);
 
-        SegmentWriter writer = SegmentWriters.segmentWriter(memoryStore, LATEST_VERSION, "c", 1);
+        SegmentWriter writer = segmentWriterBuilder("c").withGeneration(1).build(memoryStore);
         Compactor compactor = new Compactor(memoryStore.getReader(), writer,
                 memoryStore.getBlobStore(), Suppliers.ofInstance(false), SegmentGCOptions.DEFAULT);
         addTestContent(store, 0);
@@ -76,7 +75,7 @@ public class CompactorTest {
         // doesn't have the child named "b".
 
         NodeStore store = SegmentNodeStoreBuilders.builder(memoryStore).build();
-        SegmentWriter writer = SegmentWriters.segmentWriter(memoryStore, LATEST_VERSION, "c", 1);
+        SegmentWriter writer = segmentWriterBuilder("c").withGeneration(1).build(memoryStore);
         Compactor compactor = new Compactor(memoryStore.getReader(), writer,
                 memoryStore.getBlobStore(), Suppliers.ofInstance(true),
                 SegmentGCOptions.DEFAULT);

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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -29,8 +29,7 @@ import static org.apache.jackrabbit.oak.
 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.SMALL_LIMIT;
-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.SegmentWriterBuilder.segmentWriterBuilder;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
@@ -51,7 +50,7 @@ public class RecordUsageAnalyserTest {
     @Before
     public void setup() throws IOException {
         MemoryStore store = new MemoryStore();
-        writer = segmentWriter(store, LATEST_VERSION, "", 0);
+        writer = segmentWriterBuilder("").build(store);
         analyser = new RecordUsageAnalyser(store.getReader());
     }
 

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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -26,8 +26,7 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty;
 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.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
@@ -71,9 +70,9 @@ public class SegmentGraphTest {
             SegmentNodeState root = store.getReader().readHeadState();
             segments.add(getSegmentId(root));
 
-            SegmentWriter w1 = segmentWriter(store, LATEST_VERSION, "writer1", 0);
-            SegmentWriter w2 = segmentWriter(store, LATEST_VERSION, "writer2", 0);
-            SegmentWriter w3 = segmentWriter(store, LATEST_VERSION, "writer3", 0);
+            SegmentWriter w1 = segmentWriterBuilder("writer1").build(store);
+            SegmentWriter w2 = segmentWriterBuilder("writer2").build(store);
+            SegmentWriter w3 = segmentWriterBuilder("writer3").build(store);
 
             SegmentPropertyState p1 = w1.writeProperty(createProperty("p1", "v1"));
             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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -33,8 +33,7 @@ import static org.apache.jackrabbit.oak.
 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.SegmentVersion.LATEST_VERSION;
-import static org.apache.jackrabbit.oak.segment.SegmentWriters.segmentWriter;
+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;
@@ -139,7 +138,7 @@ public class SegmentParserTest {
     @Before
     public void setup() throws IOException {
         store = new MemoryStore();
-        writer = segmentWriter(store, LATEST_VERSION, "", 0);
+        writer = segmentWriterBuilder("").build(store);
     }
 
     @Test

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=1747156&r1=1747155&r2=1747156&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 Tue Jun  7 07:31:35 2016
@@ -20,8 +20,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 static org.apache.jackrabbit.oak.segment.SegmentWriterBuilder.segmentWriterBuilder;
 
 import java.io.IOException;
 import java.util.Calendar;
@@ -205,7 +204,7 @@ public class SegmentSizeTest {
     }
 
     private void expectSize(int expectedSize, NodeBuilder builder) throws IOException {
-        SegmentWriter writer = segmentWriter(store, LATEST_VERSION, "test", 0);
+        SegmentWriter writer = segmentWriterBuilder("test").build(store);
         RecordId id = writer.writeNode(builder.getNodeState()).getRecordId();
         writer.flush();
         Segment segment = id.getSegment();
@@ -214,7 +213,7 @@ public class SegmentSizeTest {
     }
 
     private void expectAmortizedSize(int expectedSize, NodeBuilder builder) throws IOException {
-        SegmentWriter writer = segmentWriter(store, LATEST_VERSION, "test", 0);
+        SegmentWriter writer = segmentWriterBuilder("test").build(store);
         NodeState state = builder.getNodeState();
         RecordId id1 = writer.writeNode(state).getRecordId();
         RecordId id2 = writer.writeNode(state).getRecordId();