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/04/20 14:13:42 UTC

svn commit: r1740130 - in /jackrabbit/oak/trunk/oak-segment-next/src: main/java/org/apache/jackrabbit/oak/segment/ main/java/org/apache/jackrabbit/oak/segment/memory/ test/java/org/apache/jackrabbit/oak/segment/

Author: mduerig
Date: Wed Apr 20 12:13:42 2016
New Revision: 1740130

URL: http://svn.apache.org/viewvc?rev=1740130&view=rev
Log:
OAK-4232: Bump segment version to 12
Segment version is now 12. Dropped support for older versions.

Modified:
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordWriters.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentVersion.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Template.java
    jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
    jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java
    jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
    jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentVersionTest.java

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordWriters.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordWriters.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordWriters.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordWriters.java Wed Apr 20 12:13:42 2016
@@ -33,7 +33,6 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.segment.RecordType.VALUE;
 import static org.apache.jackrabbit.oak.segment.Segment.RECORD_ID_BYTES;
 import static org.apache.jackrabbit.oak.segment.Segment.SMALL_LIMIT;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_11;
 
 import java.io.IOException;
 import java.util.Collection;
@@ -478,16 +477,10 @@ final class RecordWriters {
             if (childNameId != null) {
                 writer.writeRecordId(childNameId);
             }
-            if (version.onOrAfter(V_11)) {
-                if (propNamesId != null) {
-                    writer.writeRecordId(propNamesId);
-                }
+            if (propNamesId != null) {
+                writer.writeRecordId(propNamesId);
             }
             for (int i = 0; i < propertyNames.length; i++) {
-                if (!version.onOrAfter(V_11)) {
-                    // V10 only
-                    writer.writeRecordId(propertyNames[i]);
-                }
                 writer.writeByte(propertyTypes[i]);
             }
             return id;

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java Wed Apr 20 12:13:42 2016
@@ -26,6 +26,7 @@ import static com.google.common.collect.
 import static com.google.common.collect.Maps.newConcurrentMap;
 import static java.lang.Boolean.getBoolean;
 import static org.apache.jackrabbit.oak.commons.IOUtils.closeQuietly;
+import static org.apache.jackrabbit.oak.segment.SegmentVersion.isValid;
 import static org.apache.jackrabbit.oak.segment.SegmentWriter.BLOCK_SIZE;
 
 import java.io.IOException;
@@ -44,6 +45,7 @@ import javax.annotation.Nullable;
 
 import com.google.common.base.Charsets;
 import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
 import org.apache.commons.io.HexDump;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -204,10 +206,11 @@ public class Segment {
     }
 
     public Segment(SegmentTracker tracker, SegmentId id, ByteBuffer data) {
-        this(tracker, id, data, SegmentVersion.V_11);
+        this(tracker, id, data, SegmentVersion.LATEST_VERSION);
     }
 
     public Segment(SegmentTracker tracker, final SegmentId id, final ByteBuffer data, SegmentVersion version) {
+        Preconditions.checkArgument(isValid(version));
         this.tracker = checkNotNull(tracker);
         this.id = checkNotNull(id);
         if (tracker.getStringCache() == null) {
@@ -228,7 +231,7 @@ public class Segment {
             checkState(data.get(0) == '0'
                     && data.get(1) == 'a'
                     && data.get(2) == 'K'
-                    && SegmentVersion.isValid(segmentVersion),
+                    && isValid(segmentVersion),
                 new Object() {  // Defer evaluation of error message
                     @Override
                     public String toString() {
@@ -607,11 +610,7 @@ public class Segment {
         }
 
         PropertyTemplate[] properties;
-        if (version.onOrAfter(SegmentVersion.V_11)) {
-            properties = readPropsV11(propertyCount, offset);
-        } else {
-            properties = readPropsV10(propertyCount, offset);
-        }
+        properties = readPropsV11(propertyCount, offset);
         return new Template(primaryType, mixinTypes, properties, childName);
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java Wed Apr 20 12:13:42 2016
@@ -153,29 +153,15 @@ public class SegmentNodeState extends Re
                 template.getPropertyTemplate(name);
         if (propertyTemplate != null) {
             Segment segment = getSegment();
-            RecordId id;
-            if (getSegment().getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-                id = getRecordIdV11(segment, template, propertyTemplate);
-            } else {
-                id = getRecordIdV10(segment, template, propertyTemplate);
-            }
+            RecordId id = getRecordId(segment, template, propertyTemplate);
             return new SegmentPropertyState(id, propertyTemplate);
         } else {
             return null;
         }
     }
 
-    private RecordId getRecordIdV10(Segment segment, Template template,
-            PropertyTemplate propertyTemplate) {
-        int ids = 2 + propertyTemplate.getIndex();
-        if (template.getChildName() != Template.ZERO_CHILD_NODES) {
-            ids++;
-        }
-        return segment.readRecordId(getOffset(0, ids));
-    }
-
-    private RecordId getRecordIdV11(Segment segment, Template template,
-            PropertyTemplate propertyTemplate) {
+    private RecordId getRecordId(Segment segment, Template template,
+                                 PropertyTemplate propertyTemplate) {
         int ids = 2;
         if (template.getChildName() != Template.ZERO_CHILD_NODES) {
             ids++;
@@ -209,20 +195,12 @@ public class SegmentNodeState extends Re
             ids++;
         }
 
-        if (segment.getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-            if (propertyTemplates.length > 0) {
-                ListRecord pIds = new ListRecord(
-                        segment.readRecordId(getOffset(0, ids)),
-                        propertyTemplates.length);
-                for (int i = 0; i < propertyTemplates.length; i++) {
-                    RecordId propertyId = pIds.getEntry(i);
-                    list.add(new SegmentPropertyState(propertyId,
-                            propertyTemplates[i]));
-                }
-            }
-        } else {
+        if (propertyTemplates.length > 0) {
+            ListRecord pIds = new ListRecord(
+                    segment.readRecordId(getOffset(0, ids)),
+                    propertyTemplates.length);
             for (int i = 0; i < propertyTemplates.length; i++) {
-                RecordId propertyId = segment.readRecordId(getOffset(0, ids++));
+                RecordId propertyId = pIds.getEntry(i);
                 list.add(new SegmentPropertyState(propertyId,
                         propertyTemplates[i]));
             }
@@ -302,12 +280,7 @@ public class SegmentNodeState extends Re
         }
 
         Segment segment = getSegment();
-        RecordId id;
-        if (segment.getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-            id = getRecordIdV11(segment, template, propertyTemplate);
-        } else {
-            id = getRecordIdV10(segment, template, propertyTemplate);
-        }
+        RecordId id = getRecordId(segment, template, propertyTemplate);
         return readString(id);
     }
 
@@ -345,12 +318,7 @@ public class SegmentNodeState extends Re
         }
 
         Segment segment = getSegment();
-        RecordId id;
-        if (getSegment().getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-            id = getRecordIdV11(segment, template, propertyTemplate);
-        } else {
-            id = getRecordIdV10(segment, template, propertyTemplate);
-        }
+        RecordId id = getRecordId(segment, template, propertyTemplate);
         segment = id.getSegment();
         int size = segment.readInt(id.getOffset());
         if (size == 0) {

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java Wed Apr 20 12:13:42 2016
@@ -441,26 +441,17 @@ public class SegmentParser {
 
         // Recurse into properties
         PropertyTemplate[] propertyTemplates = template.getPropertyTemplates();
-        if (segment.getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-            if (propertyTemplates.length > 0) {
-                size += RECORD_ID_BYTES;
-                RecordId id = segment.readRecordId(offset + ids * RECORD_ID_BYTES);
-                ListRecord pIds = new ListRecord(id,
-                        propertyTemplates.length);
-                for (int i = 0; i < propertyTemplates.length; i++) {
-                    RecordId propertyId = pIds.getEntry(i);
-                    onProperty(nodeId, propertyId, propertyTemplates[i]);
-                    propertyCount++;
-                }
-                onList(nodeId, id, propertyTemplates.length);
-            }
-        } else {
-            for (PropertyTemplate propertyTemplate : propertyTemplates) {
-                size += RECORD_ID_BYTES;
-                RecordId propertyId = segment.readRecordId(offset + ids++ * RECORD_ID_BYTES);
-                onProperty(nodeId, propertyId, propertyTemplate);
+        if (propertyTemplates.length > 0) {
+            size += RECORD_ID_BYTES;
+            RecordId id = segment.readRecordId(offset + ids * RECORD_ID_BYTES);
+            ListRecord pIds = new ListRecord(id,
+                    propertyTemplates.length);
+            for (int i = 0; i < propertyTemplates.length; i++) {
+                RecordId propertyId = pIds.getEntry(i);
+                onProperty(nodeId, propertyId, propertyTemplates[i]);
                 propertyCount++;
             }
+            onList(nodeId, id, propertyTemplates.length);
         }
         return new NodeInfo(nodeId, nodeCount, propertyCount, size);
     }
@@ -504,25 +495,16 @@ public class SegmentParser {
             size += RECORD_ID_BYTES;
         }
 
-        if (segment.getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-            if (propertyCount > 0) {
-                RecordId listId = segment.readRecordId(offset + size);
-                size += RECORD_ID_BYTES;
-                ListRecord propertyNames = new ListRecord(listId, propertyCount);
-                for (int i = 0; i < propertyCount; i++) {
-                    RecordId propertyNameId = propertyNames.getEntry(i);
-                    size++; // type
-                    onString(templateId, propertyNameId);
-                }
-                onList(templateId, listId, propertyCount);
-            }
-        } else {
+        if (propertyCount > 0) {
+            RecordId listId = segment.readRecordId(offset + size);
+            size += RECORD_ID_BYTES;
+            ListRecord propertyNames = new ListRecord(listId, propertyCount);
             for (int i = 0; i < propertyCount; i++) {
-                RecordId propertyNameId = segment.readRecordId(offset + size);
-                size += RECORD_ID_BYTES;
-                size++;  // type
+                RecordId propertyNameId = propertyNames.getEntry(i);
+                size++; // type
                 onString(templateId, propertyNameId);
             }
+            onList(templateId, listId, propertyCount);
         }
 
         return new TemplateInfo(templateId, hasPrimaryType, hasMixinTypes,

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java Wed Apr 20 12:13:42 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.jackrabbit.oak.segment;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.collect.Queues.newArrayDeque;
 import static com.google.common.collect.Sets.newHashSet;
 import static java.lang.Boolean.getBoolean;
@@ -113,8 +114,8 @@ public class SegmentTracker {
 
     private final SegmentVersion segmentVersion;
 
-    public SegmentTracker(SegmentStore store, int cacheSizeMB,
-            SegmentVersion version) {
+    public SegmentTracker(SegmentStore store, int cacheSizeMB, SegmentVersion version) {
+        checkArgument(SegmentVersion.isValid(version));
         this.segmentVersion = version;
 
         for (int i = 0; i < tables.length; i++) {
@@ -152,7 +153,7 @@ public class SegmentTracker {
     }
 
     public SegmentTracker(SegmentStore store) {
-        this(store, DEFAULT_MEMORY_CACHE_SIZE, SegmentVersion.V_11);
+        this(store, DEFAULT_MEMORY_CACHE_SIZE, SegmentVersion.LATEST_VERSION);
     }
 
     /**

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentVersion.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentVersion.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentVersion.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentVersion.java Wed Apr 20 12:13:42 2016
@@ -31,6 +31,7 @@ import com.google.common.primitives.Unsi
  * <ul>
  * <li>10 = all Oak versions previous to 11</li>
  * <li>11 = all Oak versions starting from 1.0.12, 1.1.7 and 1.2</li>
+ * <li>12 = all oak-segment-next versions</li>
  * </ul>
  */
 public enum SegmentVersion {
@@ -41,9 +42,13 @@ public enum SegmentVersion {
     @Deprecated
     V_10((byte) 10),
 
-    V_11((byte) 11);
+    /**
+     * @deprecated Use latest version V11
+     */
+    @Deprecated
+    V_11((byte) 11),
 
-    // FIXME OAK-3348 upgrade to version 12
+    V_12((byte) 12);
 
     /**
      * Latest segment version
@@ -71,7 +76,9 @@ public enum SegmentVersion {
     }
 
     public static SegmentVersion fromByte(byte v) {
-        if (v == V_11.version) {
+        if (v == V_12.version) {
+            return V_12;
+        } else if (v == V_11.version) {
             return V_11;
         } else if (v == V_10.version) {
             return V_10;
@@ -81,7 +88,10 @@ public enum SegmentVersion {
     }
 
     public static boolean isValid(byte v) {
-        return v == V_10.version || v == V_11.version;
+        return v == V_12.version;
     }
 
+    public static boolean isValid(SegmentVersion version) {
+        return isValid(version.version);
+    }
 }

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java Wed Apr 20 12:13:42 2016
@@ -41,11 +41,6 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.api.Type.NAMES;
 import static org.apache.jackrabbit.oak.api.Type.STRING;
 import static org.apache.jackrabbit.oak.segment.MapRecord.BUCKETS_PER_LEVEL;
-import static org.apache.jackrabbit.oak.segment.RecordWriters.newBlobIdWriter;
-import static org.apache.jackrabbit.oak.segment.RecordWriters.newListWriter;
-import static org.apache.jackrabbit.oak.segment.RecordWriters.newMapBranchWriter;
-import static org.apache.jackrabbit.oak.segment.RecordWriters.newMapLeafWriter;
-import static org.apache.jackrabbit.oak.segment.RecordWriters.newValueWriter;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -747,13 +742,9 @@ public class SegmentWriter {
             }
 
             RecordId propNamesId = null;
-            if (version.onOrAfter(SegmentVersion.V_11)) {
-                if (propertyNames.length > 0) {
-                    propNamesId = writeList(asList(propertyNames));
-                    ids.add(propNamesId);
-                }
-            } else {
-                ids.addAll(asList(propertyNames));
+            if (propertyNames.length > 0) {
+                propNamesId = writeList(asList(propertyNames));
+                ids.add(propNamesId);
             }
 
             checkState(propertyNames.length < (1 << 18));
@@ -880,11 +871,7 @@ public class SegmentWriter {
             }
 
             if (!pIds.isEmpty()) {
-                if (version.onOrAfter(SegmentVersion.V_11)) {
-                    ids.add(writeList(pIds));
-                } else {
-                    ids.addAll(pIds);
-                }
+                ids.add(writeList(pIds));
             }
 
             RecordId nodeId = null;

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Template.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Template.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Template.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/Template.java Wed Apr 20 12:13:42 2016
@@ -183,15 +183,9 @@ public class Template {
         if (childName != ZERO_CHILD_NODES) {
             offset += RECORD_ID_BYTES;
         }
-        RecordId rid = null;
-        if (segment.getSegmentVersion().onOrAfter(SegmentVersion.V_11)) {
-            RecordId lid = segment.readRecordId(offset);
-            ListRecord props = new ListRecord(lid, properties.length);
-            rid = props.getEntry(index);
-        } else {
-            offset += index * RECORD_ID_BYTES;
-            rid = segment.readRecordId(offset);
-        }
+        RecordId lid = segment.readRecordId(offset);
+        ListRecord props = new ListRecord(lid, properties.length);
+        RecordId rid = props.getEntry(index);
         return new SegmentPropertyState(rid, properties[index]);
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java Wed Apr 20 12:13:42 2016
@@ -46,7 +46,7 @@ import com.google.common.collect.Maps;
  */
 public class MemoryStore implements SegmentStore {
 
-    private final SegmentTracker tracker = new SegmentTracker(this, 16, SegmentVersion.V_11);
+    private final SegmentTracker tracker = new SegmentTracker(this, 16, SegmentVersion.LATEST_VERSION);
 
     private SegmentNodeState head;
 

Modified: jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/RecordUsageAnalyserTest.java Wed Apr 20 12:13:42 2016
@@ -29,57 +29,33 @@ 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.V_10;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_11;
+import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
-import java.util.List;
 import java.util.Random;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
-import org.apache.jackrabbit.oak.segment.MapRecord;
-import org.apache.jackrabbit.oak.segment.RecordUsageAnalyser;
-import org.apache.jackrabbit.oak.segment.SegmentBufferWriter;
-import org.apache.jackrabbit.oak.segment.SegmentNodeState;
-import org.apache.jackrabbit.oak.segment.SegmentStore;
-import org.apache.jackrabbit.oak.segment.SegmentTracker;
-import org.apache.jackrabbit.oak.segment.SegmentVersion;
-import org.apache.jackrabbit.oak.segment.SegmentWriter;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
 
-@RunWith(Parameterized.class)
 public class RecordUsageAnalyserTest {
-    private final SegmentVersion segmentVersion;
-
     private SegmentStore store;
     private SegmentWriter writer;
     private RecordUsageAnalyser analyser = new RecordUsageAnalyser();
 
-    @Parameterized.Parameters
-    public static List<SegmentVersion[]> fixtures() {
-        return ImmutableList.of(new SegmentVersion[] {V_10}, new SegmentVersion[] {V_11});
-    }
-
-    public RecordUsageAnalyserTest(SegmentVersion segmentVersion) {
-        this.segmentVersion = segmentVersion;
-    }
-
     @Before
     public void setup() {
         store = mock(SegmentStore.class);
         SegmentTracker tracker = new SegmentTracker(store);
         when(store.getTracker()).thenReturn(tracker);
-        writer = new SegmentWriter(store, segmentVersion,
-            new SegmentBufferWriter(store, segmentVersion, ""));
+        writer = new SegmentWriter(store, LATEST_VERSION,
+            new SegmentBufferWriter(store, LATEST_VERSION, ""));
         analyser = new RecordUsageAnalyser();
     }
 
@@ -119,11 +95,7 @@ public class RecordUsageAnalyserTest {
 
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
         analyser.analyseNode(node.getRecordId());
-        if (segmentVersion == V_11) {
-            assertSizes(analyser, 0, 18, 23, 10, 6);
-        } else {
-            assertSizes(analyser, 0, 0, 23, 16, 12);
-        }
+        assertSizes(analyser, 0, 18, 23, 10, 6);
     }
 
     @Test
@@ -313,11 +285,7 @@ public class RecordUsageAnalyserTest {
 
         SegmentNodeState node = writer.writeNode(builder.getNodeState());
         analyser.analyseNode(node.getRecordId());
-        if (segmentVersion == V_11) {
-            assertCounts(analyser, 1, 5, 6, 1, 1, 1, 0, 10, 1, 1, 2, 3);
-        } else {
-            assertCounts(analyser, 1, 3, 6, 1, 1, 1, 0, 10, 1, 1, 2, 3);
-        }
+        assertCounts(analyser, 1, 5, 6, 1, 1, 1, 0, 10, 1, 1, 2, 3);
     }
 
     private static Blob createRandomBlob(int size) {

Modified: jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java Wed Apr 20 12:13:42 2016
@@ -34,8 +34,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.V_10;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_11;
+import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
 import static org.apache.jackrabbit.oak.segment.TestUtils.newRecordId;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -61,26 +60,12 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
 
-@RunWith(Parameterized.class)
 public class SegmentParserTest {
-    private final SegmentVersion segmentVersion;
-
     private File directory;
     private SegmentStore store;
     private SegmentWriter writer;
 
-    @Parameterized.Parameters
-    public static List<SegmentVersion[]> fixtures() {
-        return ImmutableList.of(new SegmentVersion[] {V_10}, new SegmentVersion[] {V_11});
-    }
-
-    public SegmentParserTest(SegmentVersion segmentVersion) {
-        this.segmentVersion = segmentVersion;
-    }
-
     private static class TestParser extends SegmentParser {
         private final String name;
 
@@ -160,8 +145,8 @@ public class SegmentParserTest {
         directory.mkdir();
 
         store = FileStore.builder(directory).build();
-        writer = new SegmentWriter(store, segmentVersion,
-            new SegmentBufferWriter(store, segmentVersion, ""));
+        writer = new SegmentWriter(store, LATEST_VERSION,
+            new SegmentBufferWriter(store, LATEST_VERSION, ""));
     }
 
     @After
@@ -209,12 +194,7 @@ public class SegmentParserTest {
             @Override protected void onTemplate(RecordId parentId, RecordId templateId) { }
             @Override protected void onMap(RecordId parentId, RecordId mapId, MapRecord map) { }
             @Override protected void onProperty(RecordId parentId, RecordId propertyId, PropertyTemplate template) { }
-            @Override
-            protected void onList(RecordId parentId, RecordId listId, int count) {
-                if (segmentVersion == V_10) {
-                    super.onList(parentId, listId, count);
-                }
-            }
+            @Override protected void onList(RecordId parentId, RecordId listId, int count) { }
         }.parseNode(node.getRecordId());
         assertEquals(node.getRecordId(), info.nodeId);
         assertEquals(2, info.nodeCount);
@@ -246,12 +226,7 @@ public class SegmentParserTest {
             @Override protected void onString(RecordId parentId, RecordId stringId) { }
             @Override protected void onNode(RecordId parentId, RecordId nodeId) { }
             @Override protected void onProperty(RecordId parentId, RecordId propertyId, PropertyTemplate template) { }
-            @Override
-            protected void onList(RecordId parentId, RecordId listId, int count) {
-                if (segmentVersion == V_10) {
-                    super.onList(parentId, listId, count);
-                }
-            }
+            @Override protected void onList(RecordId parentId, RecordId listId, int count) { }
         }.parseNode(node.getRecordId());
     }
 
@@ -327,12 +302,7 @@ public class SegmentParserTest {
             }
             @Override protected void onTemplate(RecordId parentId, RecordId templateId) { }
             @Override protected void onValue(RecordId parentId, RecordId valueId, Type<?> type) { }
-            @Override
-            protected void onList(RecordId parentId, RecordId listId, int count) {
-                if (segmentVersion == V_10) {
-                    super.onList(parentId, listId, count);
-                }
-            }
+            @Override protected void onList(RecordId parentId, RecordId listId, int count) { }
         }.parseNode(node.getRecordId());
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentVersionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentVersionTest.java?rev=1740130&r1=1740129&r2=1740130&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentVersionTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-next/src/test/java/org/apache/jackrabbit/oak/segment/SegmentVersionTest.java Wed Apr 20 12:13:42 2016
@@ -19,37 +19,12 @@
 
 package org.apache.jackrabbit.oak.segment;
 
-import static org.apache.jackrabbit.oak.api.Type.LONG;
-import static org.apache.jackrabbit.oak.api.Type.LONGS;
-import static org.apache.jackrabbit.oak.api.Type.STRING;
-import static org.apache.jackrabbit.oak.api.Type.STRINGS;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.LATEST_VERSION;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_10;
-import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_11;
-import static org.apache.jackrabbit.oak.segment.compaction.CompactionStrategy.CleanupType.CLEAN_NONE;
+import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_12;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.io.File;
-import java.io.IOException;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.segment.SegmentNodeState;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
-import org.apache.jackrabbit.oak.segment.SegmentVersion;
-import org.apache.jackrabbit.oak.segment.compaction.CompactionStrategy;
-import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
-import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
-import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
-import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -67,165 +42,7 @@ public class SegmentVersionTest {
 
     @Test
     public void latestVersion() {
-        assertEquals(V_11, LATEST_VERSION);
+        assertEquals(V_12, LATEST_VERSION);
     }
 
-    @Test
-    public void compareOldRevision() throws Exception {
-        FileStore fileStoreV10 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withSegmentVersion(V_10).build();
-        try {
-            NodeState content = addTestContent(fileStoreV10, "content").getChildNode("content");
-            assertVersion(content, SegmentVersion.V_10);
-            NodeBuilder builder = content.builder();
-            builder.setChildNode("foo");
-            content.compareAgainstBaseState(builder.getNodeState(), new NodeStateDiff() {
-                @Override
-                public boolean propertyAdded(PropertyState after) {
-                    fail();
-                    return false;
-                }
-
-                @Override
-                public boolean propertyChanged(PropertyState before, PropertyState after) {
-                    fail();
-                    return false;
-                }
-
-                @Override
-                public boolean propertyDeleted(PropertyState before) {
-                    fail();
-                    return false;
-                }
-
-                @Override
-                public boolean childNodeAdded(String name, NodeState after) {
-                    fail();
-                    return false;
-                }
-
-                @Override
-                public boolean childNodeChanged(String name, NodeState before, NodeState after) {
-                    fail();
-                    return false;
-                }
-
-                @Override
-                public boolean childNodeDeleted(String name, NodeState before) {
-                    assertEquals("foo", name);
-                    return false;
-                }
-            });
-        } finally {
-            fileStoreV10.close();
-        }
-    }
-
-    @Test
-    public void readOldVersions() throws Exception {
-        FileStore fileStoreV10 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withSegmentVersion(V_10).build();
-        try {
-            NodeState content = addTestContent(fileStoreV10, "content");
-            assertVersion(content, SegmentVersion.V_10);
-        } finally {
-            fileStoreV10.close();
-        }
-
-        FileStore fileStoreV11 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).build();
-        try {
-            verifyContent(fileStoreV11, "content");
-        } finally {
-            fileStoreV11.close();
-        }
-    }
-
-    @Test
-    public void mixedVersions() throws IOException, CommitFailedException {
-        FileStore fileStoreV10 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withSegmentVersion(V_10).build();
-        try {
-            NodeState content10 = addTestContent(fileStoreV10, "content10");
-            assertVersion(content10, SegmentVersion.V_10);
-        } finally {
-            fileStoreV10.close();
-        }
-
-        FileStore fileStoreV11 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).build();
-        try {
-            NodeState content11 = addTestContent(fileStoreV11, "content11");
-            assertVersion(content11, V_11);
-            verifyContent(fileStoreV11, "content10");
-            verifyContent(fileStoreV11, "content11");
-        } finally {
-            fileStoreV11.close();
-        }
-    }
-
-    @Test
-    public void migrate() throws IOException, CommitFailedException {
-        FileStore fileStoreV10 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).withSegmentVersion(V_10).build();
-        try {
-            addTestContent(fileStoreV10, "content10");
-        } finally {
-            fileStoreV10.close();
-        }
-
-        FileStore fileStoreV11 = FileStore.builder(getFileStoreFolder()).withMaxFileSize(1).build();
-        try {
-            fileStoreV11.setCompactionStrategy(new CompactionStrategy(false, false,
-                    CLEAN_NONE, 0, (byte) 0));
-            checkAllVersions(fileStoreV11.getHead(), SegmentVersion.V_10);
-            fileStoreV11.compact();
-            checkAllVersions(fileStoreV11.getHead(), V_11);
-        } finally {
-            fileStoreV11.close();
-        }
-    }
-
-    private static void checkAllVersions(SegmentNodeState head, SegmentVersion version) {
-        assertVersion(head, version);
-        for (ChildNodeEntry childNodeEntry : head.getChildNodeEntries()) {
-            checkAllVersions((SegmentNodeState) childNodeEntry.getNodeState(), version);
-        }
-    }
-
-    private static void assertVersion(NodeState node, SegmentVersion version) {
-        assertTrue(node instanceof SegmentNodeState);
-        assertEquals(version, ((SegmentNodeState) node).getSegment().getSegmentVersion());
-    }
-
-    @SuppressWarnings("deprecation")
-    private static NodeState addTestContent(FileStore fs, String nodeName)
-            throws CommitFailedException {
-        NodeStore store = SegmentNodeStore.builder(fs).build();
-        NodeBuilder builder = store.getRoot().builder();
-
-        NodeBuilder content = builder.child(nodeName);
-        content.setProperty("a", 1);
-        content.setProperty("aM", ImmutableList.of(1L, 2L, 3L, 4L), LONGS);
-
-        content.setProperty("b", "azerty");
-        content.setProperty("bM",
-                ImmutableList.of("a", "z", "e", "r", "t", "y"), STRINGS);
-
-        // add blobs?
-
-        return store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
-    }
-
-    private static void verifyContent(FileStore fs, String nodeName) {
-        NodeStore store = SegmentNodeStore.builder(fs).build();
-        SegmentNodeState content = (SegmentNodeState) store.getRoot()
-                .getChildNode(nodeName);
-
-        assertEquals(new Long(1), content.getProperty("a").getValue(LONG));
-        assertEquals(ImmutableList.of(1L, 2L, 3L, 4L),
-                Lists.newArrayList(content.getProperty("aM").getValue(LONGS)));
-
-        assertEquals("azerty", content.getProperty("b").getValue(STRING));
-        assertEquals("azerty", content.getString("b"));
-
-        assertEquals(ImmutableList.of("a", "z", "e", "r", "t", "y"),
-                Lists.newArrayList(content.getProperty("bM").getValue(STRINGS)));
-        assertEquals(ImmutableList.of("a", "z", "e", "r", "t", "y"),
-                Lists.newArrayList(content.getStrings("bM")));
-    }
 }