Author: mreutegg
Date: Tue Jun 19 08:04:53 2018
New Revision: 1833787
URL: http://svn.apache.org/viewvc?rev=1833787&view=rev
Log:
OAK-7553: Extract interface from CommitValueResolver
Added:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CachingCommitValueResolver.java
- copied, changed from r1833786,
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolverTest.java
Copied:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CachingCommitValueResolver.java
(from r1833786,
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java)
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CachingCommitValueResolver.java?p2=jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CachingCommitValueResolver.java&p1=jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java&r1=1833786&r2=1833787&rev=1833787&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CachingCommitValueResolver.java
Tue Jun 19 08:04:53 2018
@@ -32,7 +32,7 @@ import static com.google.common.collect.
/**
* Resolves the commit value for a given change revision on a document.
*/
-final class CommitValueResolver {
+final class CachingCommitValueResolver implements CommitValueResolver {
private static final List<String> COMMIT_ROOT_OR_REVISIONS
= of(NodeDocument.COMMIT_ROOT, NodeDocument.REVISIONS);
@@ -41,13 +41,14 @@ final class CommitValueResolver {
private final Supplier<RevisionVector> sweepRevisions;
- CommitValueResolver(int cacheSize, Supplier<RevisionVector>
sweepRevisions) {
+ CachingCommitValueResolver(int cacheSize, Supplier<RevisionVector>
sweepRevisions) {
this.commitValueCache = newBuilder().maximumSize(cacheSize).build();
this.sweepRevisions = sweepRevisions;
}
- String resolve(@Nonnull Revision changeRevision,
- @Nonnull NodeDocument doc) {
+ @Override
+ public String resolve(@Nonnull Revision changeRevision,
+ @Nonnull NodeDocument doc) {
// check cache first
String value = commitValueCache.getIfPresent(changeRevision);
if (value != null) {
Added:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java?rev=1833787&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
(added)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
Tue Jun 19 08:04:53 2018
@@ -0,0 +1,35 @@
+/*
+ * 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.plugins.document;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Resolves the commit value for a given change revision on a document.
+ */
+public interface CommitValueResolver {
+
+ /**
+ * Resolve a change revision on the given document and return the commit
+ * value for the change revision.
+ *
+ * @param changeRevision the revision for a change.
+ * @param doc the document with the change.
+ * @return the commit value of the revision.
+ */
+ String resolve(@Nonnull Revision changeRevision, @Nonnull NodeDocument
doc);
+}
Propchange:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolver.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1833787&r1=1833786&r2=1833787&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
Tue Jun 19 08:04:53 2018
@@ -516,13 +516,8 @@ public final class DocumentNodeStore
public DocumentNodeStore(DocumentNodeStoreBuilder<?> builder) {
this.nodeCachePredicate = builder.getNodeCachePredicate();
this.updateLimit = builder.getUpdateLimit();
- this.commitValueResolver = new
CommitValueResolver(builder.getCommitValueCacheSize(),
- new Supplier<RevisionVector>() {
- @Override
- public RevisionVector get() {
- return getSweepRevisions();
- }
- });
+ this.commitValueResolver = new CachingCommitValueResolver(
+ builder.getCommitValueCacheSize(), this::getSweepRevisions);
this.blobStore = builder.getBlobStore();
this.nodeStoreStatsCollector = builder.getNodeStoreStatsCollector();
if (builder.isUseSimpleRevision()) {
Modified:
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolverTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolverTest.java?rev=1833787&r1=1833786&r2=1833787&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolverTest.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitValueResolverTest.java
Tue Jun 19 08:04:53 2018
@@ -45,7 +45,7 @@ public class CommitValueResolverTest {
@Before
public void setup() {
ns =
builderProvider.newBuilder().setUpdateLimit(20).setAsyncDelay(0).getNodeStore();
- resolver = new CommitValueResolver(0, new Supplier<RevisionVector>() {
+ resolver = new CachingCommitValueResolver(0, new
Supplier<RevisionVector>() {
@Override
public RevisionVector get() {
return ns.getSweepRevisions();