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 <[email protected]> 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);
