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 2017/03/01 17:26:03 UTC
svn commit: r1784997 - in
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment:
Segment.java SegmentBufferWriter.java
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();