Author: mduerig
Date: Wed Mar  1 17:26:03 2017
New Revision: 1784997

URL: http://svn.apache.org/viewvc?rev=1784997&view=rev
Log:
OAK-3690: Decouple SegmentBufferWriter from SegmentStore
Remove the SegmentIdProvider reference from Segment

Modified:
    
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/SegmentBufferWriter.java

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=1784997&r1=1784996&r2=1784997&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
 Wed Mar  1 17:26:03 2017
@@ -140,9 +140,6 @@ public class Segment {
     public static final int RECORD_NUMBER_COUNT_OFFSET = 18;
 
     @Nonnull
-    private final SegmentIdProvider idProvider;
-
-    @Nonnull
     private final SegmentReader reader;
 
     @Nonnull
@@ -183,7 +180,6 @@ public class Segment {
                    @Nonnull SegmentReader reader,
                    @Nonnull final SegmentId id,
                    @Nonnull final ByteBuffer data) {
-        this.idProvider = checkNotNull(idProvider);
         this.reader = checkNotNull(reader);
         this.id = checkNotNull(id);
         this.data = checkNotNull(data);
@@ -202,7 +198,7 @@ public class Segment {
             });
             this.version = SegmentVersion.fromByte(segmentVersion);
             this.recordNumbers = readRecordNumberOffsets();
-            this.segmentReferences = readReferencedSegments();
+            this.segmentReferences = readReferencedSegments(idProvider);
         } else {
             this.version = LATEST_VERSION;
             this.recordNumbers = new IdentityRecordNumbers();
@@ -253,7 +249,8 @@ public class Segment {
         return new ImmutableRecordNumbers(offsets, types);
     }
 
-    private SegmentReferences readReferencedSegments() {
+    private SegmentReferences readReferencedSegments(
+            final SegmentIdProvider idProvider) {
         checkState(getReferencedSegmentIdCount() + 1 < 0xffff,
                 "Segment cannot have more than 0xffff references");
 
@@ -298,16 +295,15 @@ public class Segment {
         };
     }
 
-    Segment(@Nonnull SegmentIdProvider idProvider,
+    Segment(@Nonnull SegmentId id,
             @Nonnull SegmentReader reader,
             @Nonnull byte[] buffer,
             @Nonnull RecordNumbers recordNumbers,
             @Nonnull SegmentReferences segmentReferences,
             @Nonnull String info
     ) {
-        this.idProvider = checkNotNull(idProvider);
+        this.id = checkNotNull(id);
         this.reader = checkNotNull(reader);
-        this.id = idProvider.newDataSegmentId();
         this.info = checkNotNull(info);
         this.data = ByteBuffer.wrap(checkNotNull(buffer));
         this.version = SegmentVersion.fromByte(buffer[3]);

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=1784997&r1=1784996&r2=1784997&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
 Wed Mar  1 17:26:03 2017
@@ -210,7 +210,7 @@ public class SegmentBufferWriter impleme
             ",\"sno\":" + idProvider.getSegmentIdCount() +
             ",\"t\":" + currentTimeMillis() + "}";
         try {
-            segment = new Segment(idProvider, reader, buffer, recordNumbers, 
segmentReferences, metaInfo);
+            segment = new Segment(idProvider.newDataSegmentId(), reader, 
buffer, recordNumbers, segmentReferences, metaInfo);
 
             statistics = new Statistics();
             statistics.id = segment.getSegmentId();


Reply via email to