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 da...@apache.org on 2025/01/31 18:58:05 UTC

(jackrabbit-oak) branch OAK-11442 created (now 4c8e7e142f)

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

daim pushed a change to branch OAK-11442
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


      at 4c8e7e142f OAK-11442 : removed usage of Guava Iterables.contains

This branch includes the following new commits:

     new 4c8e7e142f OAK-11442 : removed usage of Guava Iterables.contains

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(jackrabbit-oak) 01/01: OAK-11442 : removed usage of Guava Iterables.contains

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4c8e7e142ffe8ebd9dc9168871ccb51a32a95479
Author: Rishabh Kumar <di...@adobe.com>
AuthorDate: Sat Feb 1 00:27:45 2025 +0530

    OAK-11442 : removed usage of Guava Iterables.contains
---
 .../impl/principal/ExternalGroupPrincipalProvider.java |  4 +++-
 .../external/basic/DefaultSyncContextTest.java         |  3 ++-
 .../external/impl/DynamicSyncContextTest.java          |  4 ++--
 .../security/authorization/cug/impl/NestedCugHook.java |  2 +-
 .../authorization/cug/impl/CugPolicyImplTest.java      |  4 ++--
 .../principalbased/impl/PolicyValidatorTest.java       |  3 ++-
 .../oak/plugins/index/IndexPathServiceImpl.java        |  3 ++-
 .../jackrabbit/oak/plugins/index/IndexUpdate.java      |  5 +++--
 .../plugins/index/property/PropertyIndexLookup.java    |  4 ++--
 .../oak/plugins/index/upgrade/IndexDisabler.java       |  3 ++-
 .../jackrabbit/oak/plugins/name/NamespaceEditor.java   |  3 ++-
 .../jackrabbit/oak/plugins/nodetype/EffectiveType.java |  7 ++++---
 .../oak/plugins/nodetype/ReadOnlyNodeTypeManager.java  |  4 ++--
 .../oak/plugins/nodetype/TypeRegistration.java         |  3 +--
 .../accesscontrol/AccessControlManagerImpl.java        |  3 ++-
 .../accesscontrol/AccessControlValidator.java          |  2 +-
 .../oak/plugins/migration/FilteringNodeStateTest.java  |  5 +++--
 .../jackrabbit/oak/plugins/tree/impl/TreeUtilTest.java |  4 ++--
 .../internal/InternalSecurityProviderTest.java         |  3 ++-
 .../jackrabbit/oak/jcr/delegate/NodeDelegate.java      |  6 +++---
 .../org/apache/jackrabbit/oak/run/FrozenNodeRef.java   |  3 ++-
 .../oak/plugins/index/search/IndexDefinition.java      |  2 +-
 .../apache/jackrabbit/oak/plugins/tree/TreeUtil.java   |  8 ++++----
 .../authorization/permission/PermissionsTest.java      |  3 ++-
 .../oak/segment/file/proc/DataSegmentNodeTest.java     |  5 +++--
 .../oak/plugins/document/LastRevRecoveryTest.java      |  5 +++--
 .../jackrabbit/oak/plugins/memory/PropertyValues.java  | 18 +++++++++---------
 27 files changed, 67 insertions(+), 52 deletions(-)

diff --git a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
index 77e875f9e2..73642cf86a 100644
--- a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
+++ b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
@@ -38,6 +38,8 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.query.Query;
+
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
@@ -608,7 +610,7 @@ class ExternalGroupPrincipalProvider implements PrincipalProvider, ExternalIdent
                 Tree tree = root.getTree(((ItemBasedPrincipal) member).getPath());
                 if (UserUtil.isType(tree, AuthorizableType.USER)) {
                     PropertyState ps = tree.getProperty(REP_EXTERNAL_PRINCIPAL_NAMES);
-                    return (ps != null && Iterables.contains(ps.getValue(Type.STRINGS), name));
+                    return (ps != null && IterableUtils.contains(ps.getValue(Type.STRINGS), name));
                 }
             } else {
                 Authorizable a = userManager.getAuthorizable(member);
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
index 444d26698e..10790caf10 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.basic;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -904,7 +905,7 @@ public class DefaultSyncContextTest extends AbstractExternalAuthTest {
             for (ExternalIdentityRef inheritedGrRef : extGr.getDeclaredGroups()) {
                 Group g = userManager.getAuthorizable(inheritedGrRef.getId(), Group.class);
                 assertNotNull(g);
-                if (Iterables.contains(externalUser.getDeclaredGroups(), inheritedGrRef)) {
+                if (IterableUtils.contains(externalUser.getDeclaredGroups(), inheritedGrRef)) {
                     assertTrue(g.isDeclaredMember(a));
                 } else {
                     assertFalse(g.isDeclaredMember(a));
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java
index 801fa4fa9d..abac4b75b8 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java
@@ -164,7 +164,7 @@ public class DynamicSyncContextTest extends AbstractDynamicTest {
             List<String> ids = getIds(a.memberOf());
             assertTrue("Expected "+ids+ " to contain "+gr.getID(), ids.contains(gr.getID()));
             
-            if (Iterables.contains(declaredGroupRefs, ref)) {
+            if (IterableUtils.contains(declaredGroupRefs, ref)) {
                 assertTrue(gr.isDeclaredMember(a));
                 assertTrue(Iterators.contains(a.declaredMemberOf(), gr));
             }
@@ -203,7 +203,7 @@ public class DynamicSyncContextTest extends AbstractDynamicTest {
 
     private static boolean containsMemberRef(@NotNull Tree tree, @NotNull String ref) {
         Iterable<String> memberRefs = TreeUtil.getStrings(tree, REP_MEMBERS);
-        return memberRefs != null && Iterables.contains(memberRefs, ref);
+        return memberRefs != null && IterableUtils.contains(memberRefs, ref);
     }
 
     @Test(expected = IllegalArgumentException.class)
diff --git a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHook.java b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHook.java
index fb5dd05539..9a087d8bfa 100644
--- a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHook.java
+++ b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHook.java
@@ -325,7 +325,7 @@ class NestedCugHook implements PostValidationHook, CugConstants {
                 // parent CUG got removed -> no removal/reconnect required if current path is listed.
                 NodeState cugNode = diff.beforeState.getChildNode(REP_CUG_POLICY);
                 PropertyState ps = cugNode.getProperty(HIDDEN_NESTED_CUGS);
-                if (ps != null && Iterables.contains(ps.getValue(Type.STRINGS), path)) {
+                if (ps != null && IterableUtils.contains(ps.getValue(Type.STRINGS), path)) {
                     log.debug("Nested cug property containing {} has also been removed; no reconnect required.", path);
                     return true;
                 }
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPolicyImplTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPolicyImplTest.java
index 5e423ce805..3a3a2ac11d 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPolicyImplTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPolicyImplTest.java
@@ -266,14 +266,14 @@ public class CugPolicyImplTest extends AbstractSecurityTest {
 
         Principal excluded = getExcludedPrincipal();
         assertTrue(cug.addPrincipals(EveryonePrincipal.getInstance(), excluded));
-        assertFalse(Iterables.contains(cug.getPrincipalNames(), excluded.getName()));
+        assertFalse(IterableUtils.contains(cug.getPrincipalNames(), excluded.getName()));
     }
 
     @Test
     public void testExcludedPrincipalAddedBefore() {
         Principal excluded = getExcludedPrincipal();
         CugPolicyImpl cug = createCugPolicy(ImportBehavior.ABORT, Collections.singleton(excluded));
-        assertTrue(Iterables.contains(cug.getPrincipalNames(), excluded.getName()));
+        assertTrue(IterableUtils.contains(cug.getPrincipalNames(), excluded.getName()));
     }
 
     @Test
diff --git a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java
index 66b46e64e0..eb6f4c531d 100644
--- a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java
+++ b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -265,7 +266,7 @@ public class PolicyValidatorTest extends AbstractPrincipalBasedTest {
     @Test
     public void tetPolicyChildAddedMissingMixinOnParent() {
         NodeState rootState = getTreeProvider().asNodeState(root.getTree(PathUtils.ROOT_PATH));
-        assertFalse(Iterables.contains(rootState.getNames(JcrConstants.JCR_MIXINTYPES), MIX_REP_PRINCIPAL_BASED_MIXIN));
+        assertFalse(IterableUtils.contains(rootState.getNames(JcrConstants.JCR_MIXINTYPES), MIX_REP_PRINCIPAL_BASED_MIXIN));
 
         NodeState child = mockNodeState(NT_REP_PRINCIPAL_POLICY);
         try {
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
index 4a6cd049b4..a9a76fb45c 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
@@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.plugins.index;
 
 import java.util.Iterator;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.commons.conditions.Validate;
@@ -85,7 +86,7 @@ public class IndexPathServiceImpl implements IndexPathService {
                 "/oak:index/nodetype is found to be disabled. Cannot determine the paths of all indexes");
 
         //Check if oak:QueryIndexDefinition is indexed as part of nodetype index
-        boolean indxDefnTypeIndexed = Iterables.contains(nodeType.getNames(DECLARING_NODE_TYPES), INDEX_DEFINITIONS_NODE_TYPE);
+        boolean indxDefnTypeIndexed = IterableUtils.contains(nodeType.getNames(DECLARING_NODE_TYPES), INDEX_DEFINITIONS_NODE_TYPE);
 
         if (!indxDefnTypeIndexed) {
             log.warn("{} is not found to be indexed as part of nodetype index. Non root indexes would " +
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
index 0fbbe57c84..cc80928131 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
@@ -39,6 +39,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.JcrConstants;
@@ -406,9 +407,9 @@ public class IndexUpdate implements Editor, PathSource {
             Iterable<String> opt = p.getValue(Type.STRINGS);
             if (asyncRef == null) {
                 // sync index job, accept synonyms
-                return Iterables.contains(opt, INDEXING_MODE_NRT) || Iterables.contains(opt, INDEXING_MODE_SYNC);
+                return IterableUtils.contains(opt, INDEXING_MODE_NRT) || IterableUtils.contains(opt, INDEXING_MODE_SYNC);
             } else {
-                return Iterables.contains(opt, asyncRef);
+                return IterableUtils.contains(opt, asyncRef);
             }
         } else {
             return asyncRef == null;
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
index 2c652df556..389bf5e263 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.property;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.DECLARING_NODE_TYPES;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.PROPERTY_NAMES;
@@ -30,6 +29,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.PropertyValue;
 import org.apache.jackrabbit.oak.api.Type;
@@ -174,7 +174,7 @@ public class PropertyIndexLookup {
             if (type == null || type.isArray() || !getType().equals(type.getValue(Type.STRING))) {
                 continue;
             }
-            if (contains(getNames(index, PROPERTY_NAMES), propertyName)) {
+            if (IterableUtils.contains(getNames(index, PROPERTY_NAMES), propertyName)) {
                 NodeState indexContent = index.getChildNode(INDEX_CONTENT_NODE_NAME);
                 if (!indexContent.exists()) {
                     continue;
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/upgrade/IndexDisabler.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/upgrade/IndexDisabler.java
index d0b8937af2..830d018b5f 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/upgrade/IndexDisabler.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/upgrade/IndexDisabler.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
@@ -79,7 +80,7 @@ public class IndexDisabler {
                 NodeState idxSate = NodeStateUtils.getNode(rootBuilder.getBaseState(), nodeTypeIndexPath);
                 PropertyState declaredNodeTypes = idxSate.getProperty(DECLARING_NODE_TYPES);
                 if (idxSate.exists() && declaredNodeTypes != null){
-                    if (Iterables.contains(declaredNodeTypes.getValue(Type.NAMES), nodeTypeName)) {
+                    if (IterableUtils.contains(declaredNodeTypes.getValue(Type.NAMES), nodeTypeName)) {
                         return true;
                     }
                 }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java
index a45538910a..26a540e088 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java
@@ -30,6 +30,7 @@ import static org.apache.jackrabbit.oak.plugins.name.Namespaces.isValidPrefix;
 import java.util.Locale;
 import java.util.Set;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -96,7 +97,7 @@ class NamespaceEditor extends DefaultEditor {
     }
 
     private static boolean containsValue(NodeState namespaces, String value) {
-        return Iterables.contains(namespaces.getChildNode(REP_NSDATA).getStrings(REP_URIS), value);
+        return IterableUtils.contains(namespaces.getChildNode(REP_NSDATA).getStrings(REP_URIS), value);
     }
 
     @Override
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java
index 37e593b8c6..44f42457e3 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java
@@ -20,6 +20,8 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
@@ -30,7 +32,6 @@ import org.jetbrains.annotations.Nullable;
 
 import static java.util.Objects.requireNonNull;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.concat;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 import static org.apache.jackrabbit.JcrConstants.JCR_DEFAULTPRIMARYTYPE;
 import static org.apache.jackrabbit.JcrConstants.JCR_MANDATORY;
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
@@ -67,7 +68,7 @@ class EffectiveType {
     boolean isNodeType(@NotNull String name) {
         for (NodeState type : types) {
             if (name.equals(type.getName(JCR_NODETYPENAME))
-                    || contains(type.getNames(REP_SUPERTYPES), name)) {
+                    || IterableUtils.contains(type.getNames(REP_SUPERTYPES), name)) {
                 return true;
             }
         }
@@ -296,7 +297,7 @@ class EffectiveType {
 
     private boolean nameSetContains(@NotNull String set, @NotNull String name) {
         for (NodeState type : types) {
-            if (contains(type.getNames(set), name)) {
+            if (IterableUtils.contains(type.getNames(set), name)) {
                 return true;
             }
         }
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
index d250f910fd..3ae4d67fa6 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak.plugins.nodetype;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.oak.api.Type.STRING;
@@ -44,6 +43,7 @@ import javax.jcr.nodetype.NodeTypeTemplate;
 import javax.jcr.nodetype.PropertyDefinition;
 import javax.jcr.nodetype.PropertyDefinitionTemplate;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.commons.iterator.NodeTypeIteratorAdapter;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -314,7 +314,7 @@ public abstract class ReadOnlyNodeTypeManager implements NodeTypeManager, Effect
 
         PropertyState supertypes = type.getProperty(REP_SUPERTYPES);
         return supertypes != null
-                && contains(supertypes.getValue(Type.NAMES), superName);
+                && IterableUtils.contains(supertypes.getValue(Type.NAMES), superName);
     }
 
     @Override
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeRegistration.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeRegistration.java
index 43fc62a2bd..75e43dc762 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeRegistration.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeRegistration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 import static java.util.Collections.emptyList;
 import static org.apache.jackrabbit.JcrConstants.JCR_CHILDNODEDEFINITION;
 import static org.apache.jackrabbit.JcrConstants.JCR_ISMIXIN;
@@ -221,7 +220,7 @@ class TypeRegistration extends DefaultNodeStateDiff {
             }
 
             if (!isMixin(type)
-                    && !contains(getNames(type, REP_SUPERTYPES), NT_BASE)
+                    && !IterableUtils.contains(getNames(type, REP_SUPERTYPES), NT_BASE)
                     && !NT_BASE.equals(type.getProperty(JCR_NODETYPENAME).getValue(NAME))) {
                 if (types.hasChildNode(NT_BASE)) {
                     NodeBuilder supertype = types.child(NT_BASE);
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
index 1403437a7f..57ea718836 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
@@ -41,6 +41,7 @@ import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.AccessControlPolicyIterator;
 import javax.jcr.security.Privilege;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
@@ -854,7 +855,7 @@ public class AccessControlManagerImpl extends AbstractAccessControlManager imple
         }
         
         private boolean matchingPrincipal(@NotNull Tree aceTree) {
-            return Iterables.contains(principalNames, TreeUtil.getString(aceTree, REP_PRINCIPAL_NAME));
+            return IterableUtils.contains(principalNames, TreeUtil.getString(aceTree, REP_PRINCIPAL_NAME));
         }
         
         private boolean matchingRestrictions(@NotNull Tree aceTree) {
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 15e661660e..60dca99275 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
@@ -298,7 +298,7 @@ class AccessControlValidator extends DefaultValidator implements AccessControlCo
 
     private static void checkMixinTypes(Tree parentTree) throws CommitFailedException {
         Iterable<String> mixinNames = TreeUtil.getNames(parentTree, JcrConstants.JCR_MIXINTYPES);
-        if (Iterables.contains(mixinNames, MIX_REP_REPO_ACCESS_CONTROLLABLE)) {
+        if (IterableUtils.contains(mixinNames, MIX_REP_REPO_ACCESS_CONTROLLABLE)) {
             checkValidRepoAccessControlled(parentTree);
         }
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/migration/FilteringNodeStateTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/migration/FilteringNodeStateTest.java
index 79385d3091..65638faf1c 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/migration/FilteringNodeStateTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/migration/FilteringNodeStateTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.migration;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.JcrConstants;
@@ -330,11 +331,11 @@ public class FilteringNodeStateTest {
 
     private void assertExistingChildNodeName(NodeState decorated, String name) {
         final Iterable<String> childNodeNames = decorated.getChildNodeNames();
-        assertTrue("should list child \"" + name + "\"", Iterables.contains(childNodeNames, name));
+        assertTrue("should list child \"" + name + "\"", IterableUtils.contains(childNodeNames, name));
     }
 
     private void assertMissingChildNodeName(NodeState decorated, String name) {
         final Iterable<String> childNodeNames = decorated.getChildNodeNames();
-        assertFalse("should not list child \"" + name + "\"", Iterables.contains(childNodeNames, name));
+        assertFalse("should not list child \"" + name + "\"", IterableUtils.contains(childNodeNames, name));
     }
 }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/TreeUtilTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/TreeUtilTest.java
index 445e508273..c13467919d 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/TreeUtilTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/TreeUtilTest.java
@@ -156,7 +156,7 @@ public class TreeUtilTest extends AbstractSecurityTest {
 
         String path = testTree.getPath();
         Iterable<String> expected = TreeUtil.getMixinTypeNames(root.getTree(path));
-        assertTrue(Iterables.contains(expected, "mix:title"));
+        assertTrue(IterableUtils.contains(expected, "mix:title"));
 
         assertTrue(Iterables.elementsEqual(expected, TreeUtil.getMixinTypeNames(testTree, new LazyValue<Tree>() {
             @Override
@@ -174,7 +174,7 @@ public class TreeUtilTest extends AbstractSecurityTest {
 
         String path = testTree.getPath();
         Iterable<String> expected = TreeUtil.getMixinTypeNames(root.getTree(path));
-        assertTrue(Iterables.contains(expected, "mix:title"));
+        assertTrue(IterableUtils.contains(expected, "mix:title"));
 
         try (ContentSession cs = login(new GuestCredentials())) {
             Root guestRoot = cs.getLatestRoot();
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/InternalSecurityProviderTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/InternalSecurityProviderTest.java
index 49cbb82352..27b57104c5 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/InternalSecurityProviderTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/InternalSecurityProviderTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.security.internal;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
@@ -75,7 +76,7 @@ public class InternalSecurityProviderTest {
                 assertSame(pc, sc);
             }
         }
-        assertTrue(Iterables.contains(securityProvider.getConfigurations(), pc));
+        assertTrue(IterableUtils.contains(securityProvider.getConfigurations(), pc));
 
         assertEquals(PARAMS, securityProvider.getParameters(PrincipalConfiguration.NAME));
     }
diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java
index 71d1b4fb21..0bc1287fe2 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.jcr.delegate;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.transform;
 import static org.apache.jackrabbit.JcrConstants.JCR_ISMIXIN;
@@ -70,6 +69,7 @@ import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.security.AccessControlException;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -156,7 +156,7 @@ public class NodeDelegate extends ItemDelegate {
 
         boolean protectedResidual = false;
         for (Tree type : types) {
-            if (contains(TreeUtil.getNames(type, REP_PROTECTED_CHILD_NODES), name)) {
+            if (IterableUtils.contains(TreeUtil.getNames(type, REP_PROTECTED_CHILD_NODES), name)) {
                 return true;
             } else if (!protectedResidual) {
                 protectedResidual = TreeUtil.getBoolean(
@@ -197,7 +197,7 @@ public class NodeDelegate extends ItemDelegate {
 
         boolean protectedResidual = false;
         for (Tree type : types) {
-            if (contains(TreeUtil.getNames(type, REP_PROTECTED_PROPERTIES), propertyName)) {
+            if (IterableUtils.contains(TreeUtil.getNames(type, REP_PROTECTED_PROPERTIES), propertyName)) {
                 return true;
             } else if (!protectedResidual) {
                 protectedResidual = TreeUtil.getBoolean(
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRef.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRef.java
index 626e205bc7..09a003e856 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRef.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRef.java
@@ -18,6 +18,7 @@
  */
 package org.apache.jackrabbit.oak.run;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
@@ -48,7 +49,7 @@ public class FrozenNodeRef {
             // could at some point change and this '7' no longer be correct - but so far it is and it's faster this way
             return false;
         }
-        boolean containsJcrFrozenNodeName = Iterables.contains(PathUtils.elements(uuidRefPath), "jcr:frozenNode");
+        boolean containsJcrFrozenNodeName = IterableUtils.contains(PathUtils.elements(uuidRefPath), "jcr:frozenNode");
         if (!containsJcrFrozenNodeName) {
             // TODO: we could consider NOT continuing here, as we might opt to store frozenNodes
             // under another parent than 'jcr:frozenNode' - but so far that's how it is and it's faster
diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java
index b6ebdd81b1..4adff17978 100644
--- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java
+++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java
@@ -1931,7 +1931,7 @@ public class IndexDefinition implements Aggregate.AggregateMapper {
         if (async == null) {
             return false;
         }
-        return Iterables.contains(async.getValue(Type.STRINGS), mode);
+        return IterableUtils.contains(async.getValue(Type.STRINGS), mode);
     }
 
     protected static NodeState getIndexDefinitionState(NodeState defn) {
diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtil.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtil.java
index a4f1d7b378..c858f24831 100644
--- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtil.java
+++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtil.java
@@ -28,6 +28,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.JcrConstants;
@@ -44,7 +45,6 @@ import org.apache.jackrabbit.util.ISO8601;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 import static java.util.Collections.emptyList;
 import static org.apache.jackrabbit.JcrConstants.JCR_AUTOCREATED;
 import static org.apache.jackrabbit.JcrConstants.JCR_CREATED;
@@ -362,7 +362,7 @@ public final class TreeUtil {
 
         List<String> mixins = new ArrayList<>();
         String primary = getName(tree, JCR_PRIMARYTYPE);
-        if (primary != null && Iterables.contains(getNames(type, NodeTypeConstants.REP_PRIMARY_SUBTYPES), primary)) {
+        if (primary != null && IterableUtils.contains(getNames(type, NodeTypeConstants.REP_PRIMARY_SUBTYPES), primary)) {
             return;
         }
 
@@ -541,7 +541,7 @@ public final class TreeUtil {
             return true;
         } else if (primaryName != null) {
             Tree type = typeRoot.getChild(primaryName);
-            if (contains(getNames(type, REP_SUPERTYPES), typeName)) {
+            if (IterableUtils.contains(getNames(type, REP_SUPERTYPES), typeName)) {
                 return true;
             }
         }
@@ -551,7 +551,7 @@ public final class TreeUtil {
                 return true;
             } else {
                 Tree type = typeRoot.getChild(mixinName);
-                if (contains(getNames(type, REP_SUPERTYPES), typeName)) {
+                if (IterableUtils.contains(getNames(type, REP_SUPERTYPES), typeName)) {
                     return true;
                 }
             }
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
index 7ffa86045d..7e712a1d40 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
@@ -23,6 +23,7 @@ import java.util.Map;
 import java.util.Set;
 import javax.jcr.Session;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
@@ -241,7 +242,7 @@ public class PermissionsTest {
     public void testAggregatesAllPermission() {
         Iterable<Long> aggregates = Permissions.aggregates(Permissions.ALL);
 
-        assertFalse(Iterables.contains(aggregates, Permissions.ALL));
+        assertFalse(IterableUtils.contains(aggregates, Permissions.ALL));
 
         Set<Long> expected = new HashSet<>(Permissions.PERMISSION_NAMES.keySet());
         expected.removeAll(List.of(Permissions.ALL, Permissions.WRITE, Permissions.READ, Permissions.SET_PROPERTY, Permissions.REMOVE));
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/proc/DataSegmentNodeTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/proc/DataSegmentNodeTest.java
index e8a1d717f5..421f07f024 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/proc/DataSegmentNodeTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/proc/DataSegmentNodeTest.java
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.when;
 import java.io.InputStream;
 import java.util.Optional;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.commons.io.input.NullInputStream;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -159,13 +160,13 @@ public class DataSegmentNodeTest {
     @Test
     public void shouldExposeReferences() {
         NodeState n = new DataSegmentNode(mockBackend(), "s", mockSegment());
-        assertTrue(Iterables.contains(n.getChildNodeNames(), "references"));
+        assertTrue(IterableUtils.contains(n.getChildNodeNames(), "references"));
     }
 
     @Test
     public void shouldExposeRecordsNode() {
         NodeState n = new DataSegmentNode(mockBackend(), "s", mockSegment());
-        assertTrue(Iterables.contains(n.getChildNodeNames(), "records"));
+        assertTrue(IterableUtils.contains(n.getChildNodeNames(), "records"));
     }
 
 }
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java
index 85f359a252..40dd3c5ab3 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -169,7 +170,7 @@ public class LastRevRecoveryTest {
         // run recovery on ds2
         LastRevRecoveryAgent agent = new LastRevRecoveryAgent(sharedStore, ds2);
         Iterable<Integer> clusterIds = agent.getRecoveryCandidateNodes();
-        assertTrue(Iterables.contains(clusterIds, c1Id));
+        assertTrue(IterableUtils.contains(clusterIds, c1Id));
         assertEquals("must not recover any documents",
                 0, agent.recover(c1Id));
     }
@@ -328,7 +329,7 @@ public class LastRevRecoveryTest {
         // run recovery on ds2 for ds1
         LastRevRecoveryAgent agent = new LastRevRecoveryAgent(sharedStore, ds2);
         Iterable<Integer> clusterIds = agent.getRecoveryCandidateNodes();
-        assertTrue(Iterables.contains(clusterIds, c1Id));
+        assertTrue(IterableUtils.contains(clusterIds, c1Id));
         // nothing to recover
         assertEquals("must not recover any documents",
                 0, agent.recover(c1Id));
diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java
index e8ebb995c6..b4a2869cdc 100644
--- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java
+++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java
@@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.plugins.memory;
 import java.math.BigDecimal;
 import javax.jcr.PropertyType;
 
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.PropertyValue;
@@ -28,7 +29,6 @@ import org.apache.jackrabbit.oak.api.Type;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.contains;
 
 /**
  * Utility class for creating {@link PropertyValue} instances.
@@ -155,21 +155,21 @@ public final class PropertyValues {
         switch (p1.getType().tag()) {
         case PropertyType.BINARY:
             if (p1.isArray() && !p2.isArray()) {
-                return contains(p1.getValue(Type.BINARIES),
+                return IterableUtils.contains(p1.getValue(Type.BINARIES),
                         p2.getValue(Type.BINARY));
             }
             if (!p1.isArray() && p2.isArray()) {
-                return contains(p2.getValue(Type.BINARIES),
+                return IterableUtils.contains(p2.getValue(Type.BINARIES),
                         p1.getValue(Type.BINARY));
             }
             break;
         default:
             if (p1.isArray() && !p2.isArray()) {
-                return contains(p1.getValue(Type.STRINGS),
+                return IterableUtils.contains(p1.getValue(Type.STRINGS),
                         p2.getValue(Type.STRING));
             }
             if (!p1.isArray() && p2.isArray()) {
-                return contains(p2.getValue(Type.STRINGS),
+                return IterableUtils.contains(p2.getValue(Type.STRINGS),
                         p1.getValue(Type.STRING));
             }
         }
@@ -190,7 +190,7 @@ public final class PropertyValues {
                     // a value can not possibly match multiple distinct values
                     return true;
                 }
-                return !contains(p1.getValue(Type.BINARIES),
+                return !IterableUtils.contains(p1.getValue(Type.BINARIES),
                         p2.getValue(Type.BINARY));
             }
             if (!p1.isArray() && p2.isArray()) {
@@ -198,7 +198,7 @@ public final class PropertyValues {
                     // a value can not possibly match multiple distinct values
                     return true;
                 }
-                return !contains(p2.getValue(Type.BINARIES),
+                return !IterableUtils.contains(p2.getValue(Type.BINARIES),
                         p1.getValue(Type.BINARY));
             }
             break;
@@ -208,7 +208,7 @@ public final class PropertyValues {
                     // a value can not possibly match multiple distinct values
                     return true;
                 }
-                return !contains(p1.getValue(Type.STRINGS),
+                return !IterableUtils.contains(p1.getValue(Type.STRINGS),
                         p2.getValue(Type.STRING));
             }
             if (!p1.isArray() && p2.isArray()) {
@@ -216,7 +216,7 @@ public final class PropertyValues {
                     // a value can not possibly match multiple distinct values
                     return true;
                 }
-                return !contains(p2.getValue(Type.STRINGS),
+                return !IterableUtils.contains(p2.getValue(Type.STRINGS),
                         p1.getValue(Type.STRING));
             }
         }