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();


Reply via email to