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 re...@apache.org on 2022/12/02 13:52:22 UTC

[jackrabbit-oak] 03/04: OAK-8874: deprecate use of Guava Predicate class in oak-core API

This is an automated email from the ASF dual-hosted git repository.

reschke pushed a commit to branch 1.22
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 924945db6a753197636e4f573cdc1fd1ba59ea07
Author: Julian Reschke <re...@apache.org>
AuthorDate: Thu Jan 30 20:01:06 2020 +0000

    OAK-8874: deprecate use of Guava Predicate class in oak-core API
    
    git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/oak/trunk@1873380 13f79535-47bb-0310-9956-ffa450edef68
---
 .../cug/impl/CugValidatorProvider.java             |  2 +-
 .../impl/PrincipalPolicyValidatorProvider.java     |  2 +-
 .../jackrabbit/oak/core/GuavaDeprecation.java      | 88 ++++++++++++++++++++++
 .../oak/plugins/identifier/IdentifierTracker.java  |  4 +-
 .../index/property/PropertyIndexEditor.java        | 10 +--
 .../migration/version/VersionHistoryUtil.java      |  4 +-
 .../migration/version/VersionableEditor.java       |  4 +-
 .../version/VersionablePropertiesEditor.java       |  6 +-
 .../oak/plugins/nodetype/NodeTypeImpl.java         |  2 +-
 .../oak/plugins/nodetype/TypeEditor.java           |  8 +-
 .../oak/plugins/nodetype/TypePredicate.java        | 41 ++++++++--
 .../nodetype/constraint/BooleanConstraint.java     | 19 ++++-
 .../plugins/nodetype/constraint/Constraints.java   | 15 +++-
 .../nodetype/constraint/NameConstraint.java        | 18 ++++-
 .../nodetype/constraint/NumericConstraint.java     | 17 ++++-
 .../nodetype/constraint/PathConstraint.java        | 18 ++++-
 .../nodetype/constraint/ReferenceConstraint.java   | 18 ++++-
 .../nodetype/constraint/StringConstraint.java      | 17 ++++-
 .../plugins/observation/filter/FilterBuilder.java  |  2 +-
 .../observation/filter/PropertyPredicate.java      | 20 ++++-
 .../observation/filter/UniversalFilter.java        | 16 ++--
 .../plugins/observation/filter/UuidPredicate.java  | 18 ++++-
 .../plugins/version/ReadWriteVersionManager.java   |  2 +-
 .../accesscontrol/AccessControlValidator.java      |  2 +-
 .../authorization/permission/PermissionHook.java   | 10 +--
 .../permission/PermissionStoreEditor.java          |  4 +-
 .../permission/PermissionValidator.java            |  4 +-
 .../oak/security/user/CacheValidatorProvider.java  |  2 +-
 .../observation/filter/NodeTypePredicateTest.java  | 10 +--
 .../observation/filter/PropertyPredicateTest.java  | 15 ++--
 .../plugins/observation/filter/SelectorTest.java   |  6 +-
 .../observation/filter/UuidPredicateTest.java      | 11 ++-
 .../permission/PermissionStoreEditorTest.java      | 10 +--
 .../oak/jcr/observation/OakEventFilterImpl.java    | 16 ++--
 .../oak/jcr/observation/ObservationTest.java       |  6 +-
 .../oak/upgrade/JackrabbitNodeState.java           |  8 +-
 .../oak/upgrade/SameNameSiblingsEditor.java        |  4 +-
 .../oak/upgrade/security/RestrictionEditor.java    |  2 +-
 38 files changed, 341 insertions(+), 120 deletions(-)

diff --git a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorProvider.java b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorProvider.java
index 0b78a3cd6a..ba6ebb2690 100644
--- a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorProvider.java
+++ b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorProvider.java
@@ -51,7 +51,7 @@ class CugValidatorProvider extends ValidatorProvider implements CugConstants {
         if (!NT_REP_CUG_POLICY.equals(NodeStateUtils.getPrimaryTypeName(nodeState))) {
             throw accessViolation(21, "Reserved name 'rep:cugPolicy' must only be used for nodes of type 'rep:CugPolicy'.");
         }
-        if (!isMixCug.apply(parent)) {
+        if (!isMixCug.test(parent)) {
             throw accessViolation(22, "Parent node not of mixin type 'rep:CugMixin'.");
         }
     }
diff --git a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyValidatorProvider.java b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyValidatorProvider.java
index ddde66f2aa..cd17bb15a5 100644
--- a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyValidatorProvider.java
+++ b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyValidatorProvider.java
@@ -185,7 +185,7 @@ class PrincipalPolicyValidatorProvider extends ValidatorProvider implements Cons
             if (!NT_REP_PRINCIPAL_POLICY.equals(NodeStateUtils.getPrimaryTypeName(nodeState))) {
                 throw accessControlViolation(32, "Reserved node name 'rep:principalPolicy' must only be used for nodes of type 'rep:PrincipalPolicy'.");
             }
-            if (!isMixPrincipalBased.apply(parent)) {
+            if (!isMixPrincipalBased.test(parent)) {
                 throw accessControlViolation(33, "Parent node not of mixin type 'rep:PrincipalBasedMixin'.");
             }
         }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/GuavaDeprecation.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/GuavaDeprecation.java
new file mode 100644
index 0000000000..6bdec816d8
--- /dev/null
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/GuavaDeprecation.java
@@ -0,0 +1,88 @@
+/*
+ * 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.core;
+
+import java.util.Locale;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GuavaDeprecation {
+
+    private static final Logger LOG = LoggerFactory.getLogger(GuavaDeprecation.class);
+
+    private static final String DEFAULT = "debug";
+
+    private static final String TLOGLEVEL = System.getProperty(GuavaDeprecation.class + ".LOGLEVEL", DEFAULT);
+
+    private static String LOGLEVEL;
+
+    static {
+        String t;
+
+        switch (TLOGLEVEL.toLowerCase(Locale.ENGLISH)) {
+            case "error":
+            case "warn":
+            case "info":
+            case "debug":
+                t = TLOGLEVEL.toLowerCase(Locale.ENGLISH);
+                break;
+            default:
+                t = DEFAULT;
+                break;
+        }
+
+        LOGLEVEL = t;
+    }
+
+    private GuavaDeprecation() {
+    }
+
+    public static void handleCall(String ticket) throws UnsupportedOperationException {
+        String message = "use of deprecated Guava-related API - this method is going to be removed in future Oak releases - see %s for details";
+
+        switch (LOGLEVEL) {
+            case "error":
+                if (LOG.isErrorEnabled()) {
+                    LOG.error(String.format(message, ticket), new Exception("call stack"));
+                }
+                break;
+            case "warn":
+                if (LOG.isWarnEnabled()) {
+                    LOG.warn(String.format(message, ticket), new Exception("call stack"));
+                }
+                break;
+            case "info":
+                if (LOG.isInfoEnabled()) {
+                    LOG.info(String.format(message, ticket), new Exception("call stack"));
+                }
+                break;
+            case "debug":
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug(String.format(message, ticket), new Exception("call stack"));
+                }
+                break;
+        }
+    }
+
+    // for testing
+    public static String setLogLevel(String level) {
+        String before = LOGLEVEL;
+        LOGLEVEL = level;
+        return before;
+    }
+}
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierTracker.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierTracker.java
index 00d41a4d5d..1388dc7cab 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierTracker.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierTracker.java
@@ -43,7 +43,7 @@ public class IdentifierTracker {
         this.name = null;
 
         String uuid = root.getString(JCR_UUID);
-        if (uuid != null && referenceable.apply(root)) {
+        if (uuid != null && referenceable.test(root)) {
             this.identifier = uuid;
         } else {
             this.identifier = "/";
@@ -60,7 +60,7 @@ public class IdentifierTracker {
 
     public IdentifierTracker getChildTracker(String name, NodeState state) {
         String uuid = state.getString(JCR_UUID);
-        if (uuid != null && !referenceable.apply(state)) {
+        if (uuid != null && !referenceable.test(state)) {
             uuid = null; // discard jcr:uuid value of a non-referenceable node
         }
         return new IdentifierTracker(this, name, uuid);
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java
index fc8fecc7c5..d0551a3fed 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditor.java
@@ -34,6 +34,7 @@ import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Set;
+import java.util.function.Predicate;
 
 import javax.jcr.PropertyType;
 
@@ -44,7 +45,6 @@ import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.IndexEditor;
 import org.apache.jackrabbit.oak.plugins.index.IndexUpdateCallback;
 import org.apache.jackrabbit.oak.plugins.index.property.strategy.IndexStoreStrategy;
-import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
 import org.apache.jackrabbit.oak.plugins.nodetype.TypePredicate;
 import org.apache.jackrabbit.oak.spi.commit.Editor;
@@ -54,8 +54,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 
-import com.google.common.base.Predicate;
-
 /**
  * Index editor for keeping a property index up to date.
  * 
@@ -260,11 +258,11 @@ class PropertyIndexEditor implements IndexEditor {
                 beforeKeys = getMatchingKeys(before, getPropertyNames(), valuePattern);
                 afterKeys = getMatchingKeys(after, getPropertyNames(), valuePattern);
             }
-            if (beforeKeys != null && !typePredicate.apply(before)) {
+            if (beforeKeys != null && !typePredicate.test(before)) {
                 // the before state doesn't match the type, so clear its values
                 beforeKeys = null;
             }
-            if (afterKeys != null && !typePredicate.apply(after)) {
+            if (afterKeys != null && !typePredicate.test(after)) {
                 // the after state doesn't match the type, so clear its values
                 afterKeys = null;
             }
@@ -276,7 +274,7 @@ class PropertyIndexEditor implements IndexEditor {
         if (beforeKeys != null || afterKeys != null) {
             // first make sure that both the before and after sets are non-null
             if (beforeKeys == null
-                    || (typePredicate != null && !typePredicate.apply(before))) {
+                    || (typePredicate != null && !typePredicate.test(before))) {
                 beforeKeys = newHashSet();
             } else if (afterKeys == null) {
                 afterKeys = newHashSet();
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionHistoryUtil.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionHistoryUtil.java
index 19c0ad5514..791a598b71 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionHistoryUtil.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionHistoryUtil.java
@@ -119,7 +119,7 @@ public class VersionHistoryUtil {
 
 
     private static void getVersionableNodes(NodeState node, NodeState versionStorage, TypePredicate isVersionable, Calendar olderThan, String path, List<String> paths) {
-        if (isVersionable.apply(node)) {
+        if (isVersionable.test(node)) {
             if (olderThan == null) {
                 paths.add(path);
             } else {
@@ -157,7 +157,7 @@ public class VersionHistoryUtil {
 
         // we don't know if the UUID is otherwise referenced,
         // so make sure the node remains referencable
-        if (!isReferenceable.apply(versionableBuilder.getNodeState())) {
+        if (!isReferenceable.test(versionableBuilder.getNodeState())) {
             addMixin(versionableBuilder, MIX_REFERENCEABLE);
         }
 
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
index 32e9baf8fa..d20464efc2 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
@@ -122,7 +122,7 @@ public class VersionableEditor extends DefaultEditor {
         this.path = path;
 
         final VersionCopyConfiguration c = provider.config;
-        if (isVersionable.apply(after)) {
+        if (isVersionable.test(after)) {
             final String versionableUuid = getProperty(after, JCR_UUID, Type.STRING);
             if (c.isCopyVersions() && c.skipOrphanedVersionsCopy()) {
                 copyVersionHistory(after);
@@ -139,7 +139,7 @@ public class VersionableEditor extends DefaultEditor {
             } else {
                 NodeBuilder versionableBuilder = getNodeBuilder(rootBuilder, this.path);
                 removeVersionProperties(versionableBuilder, isReferenceable);
-                if (isVersionable.apply(versionableBuilder.getNodeState())) {
+                if (isVersionable.test(versionableBuilder.getNodeState())) {
                     logger.warn("Node {} is still versionable. Creating empty version history.", path);
                     createEmptyHistory(versionableBuilder);
                 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
index 98396a6ef5..9451d2729f 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
@@ -107,9 +107,9 @@ public final class VersionablePropertiesEditor extends DefaultEditor {
     @Override
     public Editor childNodeAdded(String name, NodeState after) throws CommitFailedException {
         NodeBuilder nodeBuilder = builder.getChildNode(name);
-        if (isVersionable.apply(after)) {
+        if (isVersionable.test(after)) {
             fixProperties(nodeBuilder);
-        } else if (isFrozenNode.apply(after)) {
+        } else if (isFrozenNode.test(after)) {
             updateFrozenMixins(nodeBuilder);
         }
         return new VersionablePropertiesEditor(this, nodeBuilder);
@@ -172,7 +172,7 @@ public final class VersionablePropertiesEditor extends DefaultEditor {
         NodeState lastVersion = versionHistory.getChildNode(JCR_ROOTVERSION);
         for (ChildNodeEntry child : versionHistory.getChildNodeEntries()) {
             NodeState v = child.getNodeState();
-            if (!isNtVersion.apply(v)) {
+            if (!isNtVersion.test(v)) {
                 continue;
             }
             if (v.getProperty(JCR_SUCCESSORS).count() == 0) { // no successors
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java
index c019c5f344..95a343caaf 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java
@@ -665,7 +665,7 @@ class NodeTypeImpl extends AbstractTypeDefinition implements NodeType {
 
         // Any of the constraints must be met
         for (String constraint : constraints) {
-            if (Constraints.valueConstraint(value.getType(), constraint).apply(value)) {
+            if (Constraints.asPredicate(value.getType(), constraint).test(value)) {
                 return true;
             }
         }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java
index 18bd2cbd66..8f73af0ad5 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java
@@ -34,17 +34,17 @@ import static org.apache.jackrabbit.oak.commons.UUIDUtils.isValidUUID;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE;
 import static org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants.JCR_IS_ABSTRACT;
-import static org.apache.jackrabbit.oak.plugins.nodetype.constraint.Constraints.valueConstraint;
+import static org.apache.jackrabbit.oak.plugins.nodetype.constraint.Constraints.asPredicate;
 
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
+import java.util.function.Predicate;
 
 import javax.jcr.PropertyType;
 import javax.jcr.Value;
 
 import com.google.common.base.Objects;
-import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -425,9 +425,9 @@ public class TypeEditor extends DefaultEditor {
         }
 
         for (String constraint : constraints.getValue(STRINGS)) {
-            Predicate<Value> predicate = valueConstraint(requiredType, constraint);
+            Predicate<Value> predicate = asPredicate(requiredType, constraint);
             for (Value v : valueFactory.createValues(property)) {
-                if (predicate.apply(v)) {
+                if (predicate.test(v)) {
                     return;
                 }
             }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypePredicate.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypePredicate.java
index e40826c060..df7956ee6e 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypePredicate.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypePredicate.java
@@ -18,11 +18,12 @@ package org.apache.jackrabbit.oak.plugins.nodetype;
 
 import java.util.Arrays;
 import java.util.Set;
+import java.util.function.Predicate;
 
-import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
@@ -48,7 +49,7 @@ import static org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants.REP_PRIMA
  *
  * @since Oak 0.11
  */
-public class TypePredicate implements Predicate<NodeState> {
+public class TypePredicate implements Predicate<NodeState>, com.google.common.base.Predicate<NodeState> {
 
     @NotNull
     public static TypePredicate isOrderable(@NotNull NodeState root) {
@@ -156,7 +157,7 @@ public class TypePredicate implements Predicate<NodeState> {
         }
     }
 
-    public boolean apply(String primary, Set<String> mixins) {
+    public boolean test(String primary, Set<String> mixins) {
         init();
         if (primaryTypes != null && primaryTypes.contains(primary)) {
             return true;
@@ -167,7 +168,7 @@ public class TypePredicate implements Predicate<NodeState> {
         return false;
     }
 
-    public boolean apply(@Nullable Tree input) {
+    public boolean test(@Nullable Tree input) {
         if (input != null) {
             init();
             if (primaryTypes != null
@@ -185,7 +186,7 @@ public class TypePredicate implements Predicate<NodeState> {
     //---------------------------------------------------------< Predicate >--
 
     @Override
-    public boolean apply(@Nullable NodeState input) {
+    public boolean test(@Nullable NodeState input) {
         if (input != null) {
             init();
             if (primaryTypes != null
@@ -200,11 +201,39 @@ public class TypePredicate implements Predicate<NodeState> {
         return false;
     }
 
+    // backwards compatibility, see OAK-8874
+
+    /**
+     * @deprecated use {@link #test(NodeState) instead (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    public boolean apply(@Nullable NodeState input) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(input);
+    }
+
+    /**
+     * @deprecated use {@link #test(Tree) instead (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    public boolean apply(@Nullable Tree input) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(input);
+    }
+
+    /**
+     * @deprecated use {@link #test(String, Set)) instead (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    public boolean apply(String primary, Set<String> mixins) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(primary, mixins);
+    }
+
     //------------------------------------------------------------< Object >--
 
     @Override
     public String toString() {
         return Iterables.toString(names);
     }
-
 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/BooleanConstraint.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/BooleanConstraint.java
index 8e69314f26..06539169b5 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/BooleanConstraint.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/BooleanConstraint.java
@@ -16,14 +16,16 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
+
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class BooleanConstraint implements Predicate<Value> {
+public class BooleanConstraint implements Predicate<Value>, com.google.common.base.Predicate<Value> {
     private static final Logger log = LoggerFactory.getLogger(BooleanConstraint.class);
 
     private final Boolean requiredValue;
@@ -42,7 +44,7 @@ public class BooleanConstraint implements Predicate<Value> {
     }
 
     @Override
-    public boolean apply(Value value) {
+    public boolean test(Value value) {
         try {
             return value != null && requiredValue != null && value.getBoolean() == requiredValue;
         }
@@ -52,8 +54,19 @@ public class BooleanConstraint implements Predicate<Value> {
         }
     }
 
+    /**
+     * @deprecated use {@link #test(Value)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Override
+    @Deprecated
+    public boolean apply(Value value) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(value);
+    }
+
     @Override
     public String toString() {
         return "'" + requiredValue + '\'';
     }
+
 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/Constraints.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/Constraints.java
index 57b83d6057..b2d73d1cb5 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/Constraints.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/Constraints.java
@@ -16,10 +16,12 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
+
 import javax.jcr.PropertyType;
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -29,7 +31,7 @@ public final class Constraints {
     private Constraints() {
     }
 
-    public static Predicate<Value> valueConstraint(int type, String constraint) {
+    public static Predicate<Value> asPredicate(int type, String constraint) {
         switch (type) {
             case PropertyType.STRING:
                 return new StringConstraint(constraint);
@@ -62,4 +64,13 @@ public final class Constraints {
         }
     }
 
+    /**
+     * @deprecated use {@link #asPredicate(int, String)} instead (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @SuppressWarnings("unchecked")
+    @Deprecated
+    public static com.google.common.base.Predicate<Value> valueConstraint(int type, String constraint) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return (com.google.common.base.Predicate<Value>) asPredicate(type, constraint);
+    }
 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NameConstraint.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NameConstraint.java
index 1379fbc808..ea96327fb9 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NameConstraint.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NameConstraint.java
@@ -16,15 +16,17 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
+
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NameConstraint implements Predicate<Value> {
+public class NameConstraint implements Predicate<Value>, com.google.common.base.Predicate<Value> {
     private static final Logger log = LoggerFactory.getLogger(NameConstraint.class);
 
     private final String requiredValue;
@@ -34,7 +36,7 @@ public class NameConstraint implements Predicate<Value> {
     }
 
     @Override
-    public boolean apply(@Nullable Value value) {
+    public boolean test(@Nullable Value value) {
         try {
             return value != null && requiredValue != null && requiredValue.equals(value.getString());
         }
@@ -44,6 +46,16 @@ public class NameConstraint implements Predicate<Value> {
         }
     }
 
+    /**
+     * @deprecated use {@link #test(Value)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(@Nullable Value value) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(value);
+    }
+
     @Override
     public String toString() {
         return '\'' + requiredValue + '\'';
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NumericConstraint.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NumericConstraint.java
index 0eb43fd3cc..893c091cb5 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NumericConstraint.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/NumericConstraint.java
@@ -16,18 +16,19 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class NumericConstraint<T> implements Predicate<Value> {
+public abstract class NumericConstraint<T> implements Predicate<Value>, com.google.common.base.Predicate<Value> {
     private static final Logger log = LoggerFactory.getLogger(NumericConstraint.class);
 
     private boolean invalid;
@@ -69,7 +70,7 @@ public abstract class NumericConstraint<T> implements Predicate<Value> {
     protected abstract T getBound(String bound);
 
     @Override
-    public boolean apply(@Nullable Value value) {
+    public boolean test(@Nullable Value value) {
         if (value == null || invalid) {
             return false;
         }
@@ -106,6 +107,16 @@ public abstract class NumericConstraint<T> implements Predicate<Value> {
         }
     }
 
+    /**
+     * @deprecated use {@link #test(Value)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(@Nullable Value value) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(value);
+    }
+
     protected abstract T getValue(Value value) throws RepositoryException;
     protected abstract boolean less(T val, T bound);
 
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/PathConstraint.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/PathConstraint.java
index 43cc044ab1..53f0d15186 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/PathConstraint.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/PathConstraint.java
@@ -16,16 +16,18 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
+
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class PathConstraint implements Predicate<Value> {
+public class PathConstraint implements Predicate<Value>, com.google.common.base.Predicate<Value> {
     private static final Logger log = LoggerFactory.getLogger(PathConstraint.class);
 
     private final String requiredValue;
@@ -35,7 +37,7 @@ public class PathConstraint implements Predicate<Value> {
     }
 
     @Override
-    public boolean apply(@Nullable Value value) {
+    public boolean test(@Nullable Value value) {
         try {
             if (value == null || requiredValue == null) {
                 return false;
@@ -62,6 +64,16 @@ public class PathConstraint implements Predicate<Value> {
         }
     }
 
+    /**
+     * @deprecated use {@link #test(Value)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(@Nullable Value value) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(value);
+    }
+
     @Override
     public String toString() {
         return '\'' + requiredValue + '\'';
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/ReferenceConstraint.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/ReferenceConstraint.java
index b666c5ca71..a829c4792c 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/ReferenceConstraint.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/ReferenceConstraint.java
@@ -16,11 +16,13 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
+
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 
-public class ReferenceConstraint implements Predicate<Value> {
+public class ReferenceConstraint implements Predicate<Value>, com.google.common.base.Predicate<Value> {
 
     private final String requiredTargetType;
 
@@ -29,11 +31,21 @@ public class ReferenceConstraint implements Predicate<Value> {
     }
 
     @Override
-    public boolean apply(Value value) {
+    public boolean test(Value value) {
         // TODO implement ReferenceConstraint
         return true;
     }
 
+    /**
+     * @deprecated use {@link #test(Value)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(Value value) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(value);
+    }
+
     @Override
     public String toString() {
         return '\'' + requiredTargetType + '\'';
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/StringConstraint.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/StringConstraint.java
index dcf71bf764..a8ad41881a 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/StringConstraint.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/constraint/StringConstraint.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.constraint;
 
+import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
@@ -23,11 +24,11 @@ import java.util.regex.PatternSyntaxException;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import com.google.common.base.Predicate;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class StringConstraint implements Predicate<Value> {
+public class StringConstraint implements Predicate<Value>, com.google.common.base.Predicate<Value> {
     private static final Logger log = LoggerFactory.getLogger(StringConstraint.class);
 
     private final Pattern pattern;
@@ -46,7 +47,7 @@ public class StringConstraint implements Predicate<Value> {
     }
 
     @Override
-    public boolean apply(Value value) {
+    public boolean test(Value value) {
         if (value == null) {
             return false;
         }
@@ -61,6 +62,16 @@ public class StringConstraint implements Predicate<Value> {
         }
     }
 
+    /**
+     * @deprecated use {@link #test(Value)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(Value value) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(value);
+    }
+
     @Override
     public String toString() {
         return "'" + pattern + '\'';
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/FilterBuilder.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/FilterBuilder.java
index 40f7ec82b7..05de2b3fd4 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/FilterBuilder.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/FilterBuilder.java
@@ -34,10 +34,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.function.Predicate;
 import java.util.regex.Pattern;
 
 import com.google.common.base.Objects;
-import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.PropertyState;
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicate.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicate.java
index f4a441d9d7..2d961a1cad 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicate.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicate.java
@@ -21,8 +21,10 @@ package org.apache.jackrabbit.oak.plugins.observation.filter;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
-import com.google.common.base.Predicate;
+import java.util.function.Predicate;
+
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 
@@ -31,7 +33,7 @@ import org.jetbrains.annotations.NotNull;
  * the node has a property of the given {@code name} and the given
  * {@code propertyPredicate} holds on that property.
  */
-public class PropertyPredicate implements Predicate<NodeState> {
+public class PropertyPredicate implements Predicate<NodeState>, com.google.common.base.Predicate<NodeState> {
     private final String name;
     private final Predicate<PropertyState> propertyPredicate;
 
@@ -46,8 +48,18 @@ public class PropertyPredicate implements Predicate<NodeState> {
     }
 
     @Override
-    public boolean apply(NodeState node) {
+    public boolean test(NodeState node) {
         PropertyState property = node.getProperty(name);
-        return property != null && propertyPredicate.apply(property);
+        return property != null && propertyPredicate.test(property);
+    }
+
+    /**
+     * @deprecated use {@link #test(NodeState)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(NodeState node) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(node);
     }
 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UniversalFilter.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UniversalFilter.java
index 786098343b..0e6d5fc659 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UniversalFilter.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UniversalFilter.java
@@ -22,7 +22,7 @@ package org.apache.jackrabbit.oak.plugins.observation.filter;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE;
 
-import com.google.common.base.Predicate;
+import java.util.function.Predicate;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -111,37 +111,37 @@ public class UniversalFilter implements EventFilter {
 
     @Override
     public boolean includeAdd(PropertyState after) {
-        return predicate.apply(selector.select(this, null, after));
+        return predicate.test(selector.select(this, null, after));
     }
 
     @Override
     public boolean includeChange(PropertyState before, PropertyState after) {
-        return predicate.apply(selector.select(this, before, after));
+        return predicate.test(selector.select(this, before, after));
     }
 
     @Override
     public boolean includeDelete(PropertyState before) {
-        return predicate.apply(selector.select(this, before, null));
+        return predicate.test(selector.select(this, before, null));
     }
 
     @Override
     public boolean includeAdd(String name, NodeState after) {
-        return predicate.apply(selector.select(this, name, MISSING_NODE, after));
+        return predicate.test(selector.select(this, name, MISSING_NODE, after));
     }
 
     @Override
     public boolean includeDelete(String name, NodeState before) {
-        return predicate.apply(selector.select(this, name, before, MISSING_NODE));
+        return predicate.test(selector.select(this, name, before, MISSING_NODE));
     }
 
     @Override
     public boolean includeMove(String sourcePath, String name, NodeState moved) {
-        return predicate.apply(selector.select(this, name, MISSING_NODE, moved));
+        return predicate.test(selector.select(this, name, MISSING_NODE, moved));
     }
 
     @Override
     public boolean includeReorder(String destName, String name, NodeState reordered) {
-        return predicate.apply(selector.select(this, name, MISSING_NODE, reordered));
+        return predicate.test(selector.select(this, name, MISSING_NODE, reordered));
     }
 
     @Override
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicate.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicate.java
index 767de06377..8cd95e8b28 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicate.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicate.java
@@ -22,9 +22,11 @@ package org.apache.jackrabbit.oak.plugins.observation.filter;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
 
-import com.google.common.base.Predicate;
+import java.util.function.Predicate;
+
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.core.GuavaDeprecation;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 
@@ -34,7 +36,7 @@ import org.jetbrains.annotations.NotNull;
  * property and the value of that property matches any of the UUIDs that
  * has been passed to the predicate's constructor.
  */
-public class UuidPredicate implements Predicate<NodeState> {
+public class UuidPredicate implements Predicate<NodeState>, com.google.common.base.Predicate<NodeState> {
     private final String[] uuids;
 
     /**
@@ -45,7 +47,7 @@ public class UuidPredicate implements Predicate<NodeState> {
     }
 
     @Override
-    public boolean apply(NodeState node) {
+    public boolean test(NodeState node) {
         if (uuids.length == 0) {
             return false;
         }
@@ -63,4 +65,14 @@ public class UuidPredicate implements Predicate<NodeState> {
         }
         return false;
     }
+
+    /**
+     * @deprecated use {@link #test(NodeState)} instead  (see <a href="https://issues.apache.org/jira/browse/OAK-8874">OAK-8874</a>)
+     */
+    @Deprecated
+    @Override
+    public boolean apply(NodeState node) {
+        GuavaDeprecation.handleCall("OAK-8874");
+        return test(node);
+    }
 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
index ca27c4bd30..d20b9d374a 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
@@ -624,7 +624,7 @@ public class ReadWriteVersionManager extends ReadOnlyVersionManager {
         for (ChildNodeEntry entry : versionHistory.getChildNodeEntries()) {
             String name = entry.getName();
             NodeState node = entry.getNodeState();
-            if (!JCR_ROOTVERSION.equals(name) && isVersion.apply(node)) {
+            if (!JCR_ROOTVERSION.equals(name) && isVersion.test(node)) {
                 return false; // a checked-in version
             }
         }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidator.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidator.java
index 26202777c0..c46cb5a13c 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidator.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidator.java
@@ -220,7 +220,7 @@ class AccessControlValidator extends DefaultValidator implements AccessControlCo
             throw accessViolation(5, "Access control policy within access control content (" + accessControlledTree.getPath() + ')');
         }
 
-        if (!requiredMixin.apply(treeProvider.asNodeState(accessControlledTree))) {
+        if (!requiredMixin.test(treeProvider.asNodeState(accessControlledTree))) {
             String msg = "Isolated policy node (" + accessControlledTree.getPath() + "). Parent is not of type " + requiredMixin;
             throw accessViolation(6, msg);
         }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java
index 8126d1afa0..9ec9cdf9fd 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java
@@ -155,7 +155,7 @@ public class PermissionHook implements PostValidationHook, AccessControlConstant
                 return true;
             }
             String path = parentPath + '/' + name;
-            if (isACL.apply(after)) {
+            if (isACL.test(after)) {
                 PermissionStoreEditor psEditor = createPermissionStoreEditor(name, after);
                 modified.put(psEditor.getPath(), psEditor);
             } else {
@@ -171,8 +171,8 @@ public class PermissionHook implements PostValidationHook, AccessControlConstant
                 return true;
             }
             String path = parentPath + '/' + name;
-            if (isACL.apply(before)) {
-                if (isACL.apply(after)) {
+            if (isACL.test(before)) {
+                if (isACL.test(after)) {
                     PermissionStoreEditor psEditor = createPermissionStoreEditor(name, after);
                     modified.put(psEditor.getPath(), psEditor);
 
@@ -187,7 +187,7 @@ public class PermissionHook implements PostValidationHook, AccessControlConstant
                     PermissionStoreEditor psEditor = createPermissionStoreEditor(name, before);
                     deleted.put(psEditor.getPath(), psEditor);
                 }
-            } else if (isACL.apply(after)) {
+            } else if (isACL.test(after)) {
                 PermissionStoreEditor psEditor = createPermissionStoreEditor(name, after);
                 modified.put(psEditor.getPath(), psEditor);
             } else {
@@ -203,7 +203,7 @@ public class PermissionHook implements PostValidationHook, AccessControlConstant
                 return true;
             }
             String path = parentPath + '/' + name;
-            if (isACL.apply(before)) {
+            if (isACL.test(before)) {
                 PermissionStoreEditor psEditor = createPermissionStoreEditor(name, before);
                 deleted.put(psEditor.getPath(), psEditor);
             } else {
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditor.java
index 9c10bbcc55..61f8ee6b5a 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditor.java
@@ -80,8 +80,8 @@ final class PermissionStoreEditor implements AccessControlConstants, PermissionC
         int index = 0;
         for (String childName : orderedChildNames) {
             NodeState ace = node.getChildNode(childName);
-            if (isACE.apply(ace)) {
-                boolean isAllow = isGrantACE.apply(ace);
+            if (isACE.test(ace)) {
+                boolean isAllow = isGrantACE.test(ace);
                 PrivilegeBits privilegeBits = bitsProvider.getBits(ace.getNames(REP_PRIVILEGES));
                 Set<Restriction> restrictions = restrictionProvider.readRestrictions(Strings.emptyToNull(accessControlledPath), treeProvider.createReadOnlyTree(ace));
 
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java
index afb963c719..fae0a08b06 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java
@@ -317,11 +317,11 @@ class PermissionValidator extends DefaultValidator {
         // doesn't reveal if a given property is expected to be never modified
         // after creation.
         NodeState parentNs = provider.getTreeProvider().asNodeState(parent);
-        if (JcrConstants.JCR_UUID.equals(name) && isReferenceable.apply(parentNs)) {
+        if (JcrConstants.JCR_UUID.equals(name) && isReferenceable.test(parentNs)) {
             return true;
         } else {
             return (JCR_CREATED.equals(name) || JCR_CREATEDBY.equals(name))
-                    && isCreated.apply(parentNs);
+                    && isCreated.test(parentNs);
         }
     }
 
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProvider.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProvider.java
index ec4ab89797..37688d1a90 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProvider.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProvider.java
@@ -137,7 +137,7 @@ class CacheValidatorProvider extends ValidatorProvider implements CacheConstants
         }
 
         private boolean isCache(@NotNull Tree tree) {
-            return (REP_CACHE.equals(tree.getName()) || cachePredicate.apply(tree));
+            return (REP_CACHE.equals(tree.getName()) || cachePredicate.test(tree));
         }
 
         private void checkValidCommit() throws CommitFailedException {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/NodeTypePredicateTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/NodeTypePredicateTest.java
index 20fdd3128a..ac35848727 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/NodeTypePredicateTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/NodeTypePredicateTest.java
@@ -40,21 +40,21 @@ public class NodeTypePredicateTest {
     public void emptyNodeTypeList() {
         NodeState node = createNodeOfType(NT_BASE);
         TypePredicate p = new TypePredicate(node, new String[] {});
-        assertFalse(p.apply(node));
+        assertFalse(p.test(node));
     }
 
     @Test
     public void singleNodeTypeMatch() {
         NodeState node = createNodeOfType(NT_BASE);
         TypePredicate p = new TypePredicate(node, new String[] {NT_BASE});
-        assertTrue(p.apply(node));
+        assertTrue(p.test(node));
     }
 
     @Test
     public void singleNodeTypeMiss() {
         NodeState node = createNodeOfType(NT_BASE);
         TypePredicate p = new TypePredicate(node, new String[] {NT_FILE});
-        assertFalse(p.apply(node));
+        assertFalse(p.test(node));
     }
 
     @Test
@@ -62,7 +62,7 @@ public class NodeTypePredicateTest {
         NodeState node = createNodeOfType(NT_FILE);
         TypePredicate p = new TypePredicate(node,
                 new String[] { NT_FOLDER, NT_RESOURCE, NT_FILE });
-        assertTrue(p.apply(node));
+        assertTrue(p.test(node));
     }
 
     @Test
@@ -70,7 +70,7 @@ public class NodeTypePredicateTest {
         NodeState node = createNodeOfType(NT_FILE);
         TypePredicate p = new TypePredicate(node,
                 new String[] { NT_FOLDER, NT_RESOURCE, JCR_CONTENT });
-        assertFalse(p.apply(node));
+        assertFalse(p.test(node));
     }
 
     private static NodeState createNodeOfType(String ntName) {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicateTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicateTest.java
index 04d0bfbde1..605bbfff1a 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicateTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/PropertyPredicateTest.java
@@ -24,7 +24,8 @@ import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import com.google.common.base.Predicate;
+import java.util.function.Predicate;
+
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
@@ -37,12 +38,12 @@ public class PropertyPredicateTest {
         final String value = "bar";
         PropertyPredicate p = new PropertyPredicate(name, new Predicate<PropertyState>() {
             @Override
-            public boolean apply(PropertyState property) {
+            public boolean test(PropertyState property) {
                 return value.equals(property.getValue(STRING));
             }
         });
 
-        assertTrue(p.apply(createWithProperty(name, value)));
+        assertTrue(p.test(createWithProperty(name, value)));
     }
 
     @Test
@@ -51,12 +52,12 @@ public class PropertyPredicateTest {
         final String value = "bar";
         PropertyPredicate p = new PropertyPredicate(name, new Predicate<PropertyState>() {
             @Override
-            public boolean apply(PropertyState property) {
+            public boolean test(PropertyState property) {
                 return "baz".equals(property.getValue(STRING));
             }
         });
 
-        assertFalse(p.apply(createWithProperty(name, value)));
+        assertFalse(p.test(createWithProperty(name, value)));
     }
 
     @Test
@@ -65,12 +66,12 @@ public class PropertyPredicateTest {
         final String value = "bar";
         PropertyPredicate p = new PropertyPredicate("any", new Predicate<PropertyState>() {
             @Override
-            public boolean apply(PropertyState property) {
+            public boolean test(PropertyState property) {
                 return value.equals(property.getValue(STRING));
             }
         });
 
-        assertFalse(p.apply(createWithProperty(name, value)));
+        assertFalse(p.test(createWithProperty(name, value)));
     }
 
     private static NodeState createWithProperty(String name, String value) {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/SelectorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/SelectorTest.java
index fb82f728f0..120c9c1b31 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/SelectorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/SelectorTest.java
@@ -19,18 +19,18 @@
 
 package org.apache.jackrabbit.oak.plugins.observation.filter;
 
-import static com.google.common.base.Predicates.alwaysTrue;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.junit.Assert.assertEquals;
 
-import com.google.common.base.Predicate;
+import java.util.function.Predicate;
+
 import org.apache.jackrabbit.oak.plugins.observation.filter.UniversalFilter.Selector;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
 
 public class SelectorTest {
-    public static final Predicate<NodeState> ALL = alwaysTrue();
+    public static final Predicate<NodeState> ALL = x -> true;
 
     private final NodeState root = createRoot();
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicateTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicateTest.java
index de56ce4661..825b78d026 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicateTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/filter/UuidPredicateTest.java
@@ -20,7 +20,6 @@
 package org.apache.jackrabbit.oak.plugins.observation.filter;
 
 import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
-import static org.apache.jackrabbit.oak.commons.UUIDUtils.generateUUID;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -35,7 +34,7 @@ public class UuidPredicateTest {
     public void emptyUuidList() {
         UuidPredicate p = new UuidPredicate(new String[] {});
         NodeState tree = createNodeWithUuid(UUIDUtils.generateUUID());
-        assertFalse(p.apply(tree));
+        assertFalse(p.test(tree));
     }
 
     @Test
@@ -43,14 +42,14 @@ public class UuidPredicateTest {
         String uuid = UUIDUtils.generateUUID();
         UuidPredicate p = new UuidPredicate(new String[] {uuid});
         NodeState tree = createNodeWithUuid(uuid);
-        assertTrue(p.apply(tree));
+        assertTrue(p.test(tree));
     }
 
     @Test
     public void singleUuidMiss() {
         UuidPredicate p = new UuidPredicate(new String[] {UUIDUtils.generateUUID()});
         NodeState tree = createNodeWithUuid(UUIDUtils.generateUUID());
-        assertFalse(p.apply(tree));
+        assertFalse(p.test(tree));
     }
 
     @Test
@@ -59,7 +58,7 @@ public class UuidPredicateTest {
         UuidPredicate p = new UuidPredicate(
                 new String[] {UUIDUtils.generateUUID(), UUIDUtils.generateUUID(), uuid});
         NodeState tree = createNodeWithUuid(uuid);
-        assertTrue(p.apply(tree));
+        assertTrue(p.test(tree));
     }
 
     @Test
@@ -67,7 +66,7 @@ public class UuidPredicateTest {
         UuidPredicate p = new UuidPredicate(
                 new String[] {UUIDUtils.generateUUID(), UUIDUtils.generateUUID(), UUIDUtils.generateUUID()});
         NodeState tree = createNodeWithUuid(UUIDUtils.generateUUID());
-        assertFalse(p.apply(tree));
+        assertFalse(p.test(tree));
     }
 
     private static NodeState createNodeWithUuid(String uuid) {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditorTest.java
index f1db53a0a5..1bd20d28e6 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreEditorTest.java
@@ -114,8 +114,8 @@ public class PermissionStoreEditorTest extends AbstractSecurityTest {
         new PermissionStoreEditor("/test", AccessControlConstants.REP_POLICY, nodeState, mock(NodeBuilder.class), isACE, isGrantACE, bitsProvider, restrictionProvider, getTreeProvider());
 
         verify(nodeState, times(3)).getChildNode(anyString());
-        verify(isACE, times(3)).apply(nodeState);
-        verify(isGrantACE, never()).apply(nodeState);
+        verify(isACE, times(3)).test(nodeState);
+        verify(isGrantACE, never()).test(nodeState);
     }
 
     @Test
@@ -131,8 +131,8 @@ public class PermissionStoreEditorTest extends AbstractSecurityTest {
         createPermissionStoreEditor(nodeState, mock(NodeBuilder.class));
 
         verify(nodeState, times(3)).getChildNode(anyString());
-        verify(isACE, times(3)).apply(ace);
-        verify(isGrantACE, times(3)).apply(ace);
+        verify(isACE, times(3)).test(ace);
+        verify(isGrantACE, times(3)).test(ace);
     }
 
     @Test
@@ -311,4 +311,4 @@ public class PermissionStoreEditorTest extends AbstractSecurityTest {
         // only the existing 'entry' child gets removed. the collision is not touched
         verify(child, times(1)).remove();
     }
-}
\ No newline at end of file
+}
diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/OakEventFilterImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/OakEventFilterImpl.java
index a2e2bc768e..d5d706338a 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/OakEventFilterImpl.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/OakEventFilterImpl.java
@@ -103,31 +103,31 @@ public class OakEventFilterImpl extends OakEventFilter {
 
         @Override
         public boolean includeAdd(String name, NodeState after) {
-            return includeThis && predicate.apply(after);
+            return includeThis && predicate.test(after);
         }
 
         @Override
         public boolean includeDelete(String name, NodeState before) {
-            return includeThis && predicate.apply(before);
+            return includeThis && predicate.test(before);
         }
 
         @Override
         public boolean includeMove(String sourcePath, String name, NodeState moved) {
-            return includeThis && predicate.apply(moved);
+            return includeThis && predicate.test(moved);
         }
 
         @Override
         public boolean includeReorder(String destName, String name, NodeState reordered) {
-            return includeThis && predicate.apply(reordered);
+            return includeThis && predicate.test(reordered);
         }
 
         @Override
         public EventFilter create(String name, NodeState before, NodeState after) {
             boolean predicateMatches = false;
             if (after.exists()) {
-                predicateMatches = predicate.apply(after);
+                predicateMatches = predicate.test(after);
             } else {
-                predicateMatches = predicate.apply(before);
+                predicateMatches = predicate.test(before);
             }
             if (predicateMatches) {
                 // greedy match - we switch to the globbing path filters
@@ -174,7 +174,7 @@ public class OakEventFilterImpl extends OakEventFilter {
             for (int i = 0; i < depth; i++) {
                 ChildNodeEntry child = parents.get(i);
                 NodeState nodeState = child.getNodeState();
-                if (!nodeTypePredicate.apply(nodeState)) {
+                if (!nodeTypePredicate.test(nodeState)) {
                     continue;
                 }
                 if (i + 1 <= depth) {
@@ -196,7 +196,7 @@ public class OakEventFilterImpl extends OakEventFilter {
             for (int i = 0; i < depth; i++) {
                 ChildNodeEntry child = parents.get(i);
                 NodeState nodeState = child.getNodeState();
-                if (!nodeTypePredicate.apply(nodeState)) {
+                if (!nodeTypePredicate.test(nodeState)) {
                     continue;
                 }
                 if (i + 1 <= depth) {
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java
index 33ae5f9aef..58c76e3715 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java
@@ -57,6 +57,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Predicate;
 
 import javax.jcr.AccessDeniedException;
 import javax.jcr.InvalidItemStateException;
@@ -82,7 +83,6 @@ import javax.jcr.observation.EventListener;
 import javax.jcr.observation.ObservationManager;
 import javax.jcr.version.VersionException;
 
-import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
@@ -1005,7 +1005,7 @@ public class ObservationTest extends AbstractRepositoryTest {
         builder.condition(builder.property(Selectors.PARENT, "foo",
                 new Predicate<PropertyState>() {
                     @Override
-                    public boolean apply(PropertyState property) {
+                    public boolean test(PropertyState property) {
                         return "bar".equals(property.getValue(STRING));
                     }
                 }));
@@ -1042,7 +1042,7 @@ public class ObservationTest extends AbstractRepositoryTest {
         builder.condition(builder.property(Selectors.fromThis("b/c"), "foo",
                 new Predicate<PropertyState>() {
                     @Override
-                    public boolean apply(PropertyState property) {
+                    public boolean test(PropertyState property) {
                         return "bar".equals(property.getValue(STRING));
                     }
                 }));
diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java
index fb98237c26..44eafe8ffa 100644
--- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java
+++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java
@@ -357,7 +357,7 @@ class JackrabbitNodeState extends AbstractNodeState {
     }
 
     private void setChildOrder() {
-        if (isOrderable.apply(this)) {
+        if (isOrderable.test(this)) {
             properties.put(OAK_CHILD_ORDER, PropertyStates.createProperty(
                     OAK_CHILD_ORDER, nodes.keySet(), Type.NAMES));
         }
@@ -425,7 +425,7 @@ class JackrabbitNodeState extends AbstractNodeState {
         }
 
         if (bundle.isReferenceable()
-                || isReferenceable.apply(primary, mixins)) {
+                || isReferenceable.test(primary, mixins)) {
             properties.put(JCR_UUID, PropertyStates.createProperty(
                     JCR_UUID, bundle.getId().toString()));
         }
@@ -439,7 +439,7 @@ class JackrabbitNodeState extends AbstractNodeState {
         PropertyState frozenUuid = properties.get(JCR_FROZENUUID);
         if (frozenUuid != null
                 && frozenUuid.getType() == STRING
-                && isFrozenNode.apply(this)) {
+                && isFrozenNode.test(this)) {
             String frozenPrimary = NT_BASE;
             Set<String> frozenMixins = newHashSet();
 
@@ -452,7 +452,7 @@ class JackrabbitNodeState extends AbstractNodeState {
                 addAll(frozenMixins, property.getValue(NAMES));
             }
 
-            if (!isReferenceable.apply(frozenPrimary, frozenMixins)) {
+            if (!isReferenceable.test(frozenPrimary, frozenMixins)) {
                 String parentFrozenUuid = parent.getString(JCR_FROZENUUID);
                 if (parentFrozenUuid != null) {
                     frozenUuid = PropertyStates.createProperty(
diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
index 930b172309..6ab91e2155 100644
--- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
+++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
@@ -277,9 +277,9 @@ public class SameNameSiblingsEditor extends DefaultEditor {
 
         public boolean applies(NodeState parent, String childName) {
             boolean result = true;
-            result &= parentType.apply(parent);
+            result &= parentType.test(parent);
             result &= childNameConstraint == null || childName.startsWith(this.childNameConstraint + '[');
-            result &= childType.apply(parent.getChildNode(childName));
+            result &= childType.test(parent.getChildNode(childName));
             return result;
         }
 
diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/RestrictionEditor.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/RestrictionEditor.java
index a81dfe60d5..0428d1d514 100644
--- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/RestrictionEditor.java
+++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/RestrictionEditor.java
@@ -50,7 +50,7 @@ public class RestrictionEditor extends DefaultEditor {
     @Override
     public void leave(NodeState before, NodeState after) {
         if (glob != null
-                && isACE.apply(after)
+                && isACE.test(after)
                 && !builder.hasChildNode(REP_RESTRICTIONS)) {
             NodeBuilder restrictions = builder.setChildNode(REP_RESTRICTIONS);
             restrictions.setProperty(JCR_PRIMARYTYPE, NT_REP_RESTRICTIONS, NAME);