Author: mreutegg
Date: Thu Sep 28 08:07:52 2017
New Revision: 1809959
URL: http://svn.apache.org/viewvc?rev=1809959&view=rev
Log:
OAK-6738: MemoryDocumentStore should optionally maintain _modCount
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java?rev=1809959&r1=1809958&r2=1809959&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
Thu Sep 28 08:07:52 2017
@@ -92,10 +92,17 @@ public class MemoryDocumentStore impleme
private final Map<String, String> metadata;
+ private final boolean maintainModCount;
+
public MemoryDocumentStore() {
+ this(false);
+ }
+
+ public MemoryDocumentStore(boolean maintainModCount) {
metadata = ImmutableMap.<String,String>builder()
.put("type", "memory")
.build();
+ this.maintainModCount = maintainModCount;
}
@Override
@@ -326,6 +333,7 @@ public class MemoryDocumentStore impleme
}
// update the document
UpdateUtils.applyChanges(doc, update);
+ maintainModCount(doc);
doc.seal();
map.put(update.getId(), doc);
return oldDoc;
@@ -466,4 +474,15 @@ public class MemoryDocumentStore impleme
// the MemoryDocumentStore has no delays, thus return 0
return 0;
}
+
+ private void maintainModCount(Document doc) {
+ if (!maintainModCount) {
+ return;
+ }
+ Long modCount = doc.getModCount();
+ if (modCount == null) {
+ modCount = 0L;
+ }
+ doc.put(Document.MOD_COUNT, modCount + 1);
+ }
}
\ No newline at end of file