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

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


The following commit(s) were added to refs/heads/trunk by this push:
     new 5a900a2d81 OAK-11522 : removed usage of Guava's Iterables.filter 
(#2115)
5a900a2d81 is described below

commit 5a900a2d81864b23756df0108a5406bbd541d2ba
Author: Rishabh Kumar <rishabhdaim1...@gmail.com>
AuthorDate: Wed Feb 26 14:54:31 2025 +0530

    OAK-11522 : removed usage of Guava's Iterables.filter (#2115)
    
    Co-authored-by: Rishabh Kumar <d...@adobe.com>
---
 .../authentication/external/impl/DynamicSyncContext.java      |  3 ++-
 .../external/impl/principal/SyncHandlerMappingTracker.java    |  3 ++-
 .../principalbased/impl/EffectivePolicyTest.java              |  3 ++-
 .../org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java    |  4 ++--
 .../org/apache/jackrabbit/oak/core/SecureNodeBuilder.java     |  7 +++----
 .../java/org/apache/jackrabbit/oak/core/SecureNodeState.java  |  8 ++++----
 .../jackrabbit/oak/plugins/identifier/IdentifierManager.java  |  3 ++-
 .../jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java    |  3 ++-
 .../jackrabbit/oak/plugins/index/IndexPathServiceImpl.java    |  3 +--
 .../oak/plugins/index/reference/ReferenceIndex.java           |  3 +--
 .../oak/plugins/migration/AbstractDecoratedNodeState.java     |  6 +++---
 .../oak/plugins/nodetype/EffectiveNodeTypeImpl.java           |  8 ++++----
 .../apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java  |  5 +++--
 .../oak/plugins/nodetype/write/NodeTypeTemplateImpl.java      |  4 ++--
 .../apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java |  6 +++---
 .../oak/security/authorization/accesscontrol/ACL.java         |  5 +++--
 .../apache/jackrabbit/oak/security/user/UserManagerImpl.java  |  5 +++--
 .../security/internal/SecurityProviderRegistrationTest.java   |  2 +-
 .../oak/security/user/CachedGroupPrincipalTest.java           | 11 ++++++-----
 .../jackrabbit/oak/composite/CompositeNodeStoreTest.java      |  5 ++---
 .../java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java  |  5 +++--
 .../oak/plugins/index/lucene/property/BucketSwitcher.java     |  3 ++-
 .../oak/spi/security/privilege/PrivilegeBitsProvider.java     |  2 +-
 .../security/principal/CompositePrincipalProviderTest.java    |  4 ++--
 .../oak/spi/security/principal/TestPrincipalProvider.java     |  3 ++-
 .../apache/jackrabbit/oak/composite/CompositeNodeStore.java   |  5 ++---
 .../org/apache/jackrabbit/oak/plugins/document/Branch.java    |  3 +--
 .../org/apache/jackrabbit/oak/plugins/document/Commit.java    |  6 +++---
 .../jackrabbit/oak/plugins/document/DocumentNodeState.java    |  2 +-
 .../jackrabbit/oak/plugins/document/DocumentNodeStore.java    |  2 +-
 .../oak/plugins/document/DocumentNodeStoreMBeanImpl.java      |  7 +++----
 .../jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java |  4 ++--
 .../jackrabbit/oak/plugins/document/MissingBcSweeper2.java    |  5 ++---
 .../jackrabbit/oak/plugins/document/MissingLastRevSeeker.java |  3 ++-
 .../apache/jackrabbit/oak/plugins/document/NodeDocument.java  |  7 +++----
 .../jackrabbit/oak/plugins/document/NodeDocumentSweeper.java  |  5 ++---
 .../jackrabbit/oak/plugins/document/PropertyHistory.java      |  4 ++--
 .../jackrabbit/oak/plugins/document/UnsavedModifications.java |  4 ++--
 .../jackrabbit/oak/plugins/document/VersionGCSupport.java     |  4 ++--
 .../oak/plugins/document/mongo/MongoDocumentStore.java        |  4 ++--
 .../oak/plugins/document/mongo/MongoVersionGCSupport.java     |  3 +--
 .../oak/plugins/document/persistentCache/NodeCache.java       |  4 ++--
 .../oak/plugins/document/rdb/RDBVersionGCSupport.java         |  6 ++----
 .../document/secondary/DelegatingDocumentNodeState.java       |  2 +-
 .../document/MongoVersionGCSupportDefaultNoBranchTest.java    |  4 ++--
 .../oak/plugins/document/VersionGarbageCollectorIT.java       |  5 ++---
 .../jackrabbit/oak/plugins/memory/ModifiedNodeState.java      | 11 +++++------
 .../apache/jackrabbit/oak/spi/commit/BackgroundObserver.java  |  5 ++---
 .../apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java |  4 ++--
 49 files changed, 110 insertions(+), 113 deletions(-)

diff --git 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContext.java
 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContext.java
index 36068ceab6..d1207cc78b 100644
--- 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContext.java
+++ 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContext.java
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityException;
@@ -234,7 +235,7 @@ public class DynamicSyncContext extends DefaultSyncContext {
      */
     private void collectSyncEntries(@NotNull Iterable<ExternalIdentityRef> 
declaredGroupRefs, long depth, @NotNull Map<ExternalIdentityRef, SyncEntry> 
map) throws ExternalIdentityException, RepositoryException {
         boolean shortcut = shortcut(depth);
-        for (ExternalIdentityRef ref : Iterables.filter(declaredGroupRefs, 
this::isSameIDP)) {
+        for (ExternalIdentityRef ref : IterableUtils.filter(declaredGroupRefs, 
this::isSameIDP)) {
             String principalName = null;
             Authorizable a = null;
             ExternalGroup externalGroup = null;
diff --git 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
index 664a6dff6d..75f19d7812 100644
--- 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
+++ 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
@@ -18,6 +18,7 @@ package 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.prin
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.SyncHandler;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncHandlerMapping;
 import org.jetbrains.annotations.NotNull;
@@ -77,7 +78,7 @@ final class SyncHandlerMappingTracker extends ServiceTracker {
     }
 
     Iterable<String> getIdpNames(@NotNull final String syncHandlerName) {
-        return Iterables.filter(Iterables.transform(referenceMap.values(), 
mapping -> {
+        return IterableUtils.filter(Iterables.transform(referenceMap.values(), 
mapping -> {
             if (syncHandlerName.equals(mapping.syncHandlerName)) {
                 return mapping.idpName;
             } else {
diff --git 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/EffectivePolicyTest.java
 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/EffectivePolicyTest.java
index 277bf9c26f..62aa0e6827 100644
--- 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/EffectivePolicyTest.java
+++ 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/EffectivePolicyTest.java
@@ -22,6 +22,7 @@ import 
org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
 import 
org.apache.jackrabbit.api.security.authorization.PrincipalAccessControlList;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -138,7 +139,7 @@ public class EffectivePolicyTest extends 
AbstractPrincipalBasedTest {
 
             // filter expected entries: only entries that take effect at the 
target path should be taken into consideration
             ImmutablePrincipalPolicy byPrincipal = (ImmutablePrincipalPolicy) 
acMgr.getEffectivePolicies(Set.of(effectivePolicy.getPrincipal()))[0];
-            Set<JackrabbitAccessControlEntry> expected = 
SetUtils.toSet(Iterables.filter(byPrincipal.getEntries(), entry -> {
+            Set<JackrabbitAccessControlEntry> expected = 
SetUtils.toSet(IterableUtils.filter(byPrincipal.getEntries(), entry -> {
                 String effectivePath = ((PrincipalAccessControlList.Entry) 
entry).getEffectivePath();
                 return effectivePath != null && 
Text.isDescendantOrEqual(effectivePath, path);
             }));
diff --git 
a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
 
b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
index d29f305363..b678b2a110 100644
--- 
a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
+++ 
b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
@@ -51,6 +51,7 @@ import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStoreException;
 import org.apache.jackrabbit.core.data.util.NamedThreadFactory;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.collections.MapUtils;
 import 
org.apache.jackrabbit.oak.plugins.blob.datastore.directaccess.DataRecordDownloadOptions;
@@ -100,7 +101,6 @@ import 
org.apache.jackrabbit.guava.common.cache.CacheBuilder;
 import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static java.lang.Thread.currentThread;
 
 /**
@@ -1126,7 +1126,7 @@ public class S3Backend extends AbstractSharedBackend {
                 }
 
                 List<S3ObjectSummary> listing = ListUtils.toList(
-                    filter(prevObjectListing.getObjectSummaries(),
+                        
IterableUtils.filter(prevObjectListing.getObjectSummaries(),
                             input -> 
!input.getKey().startsWith(META_KEY_PREFIX)));
 
                 // After filtering no elements
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeBuilder.java 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeBuilder.java
index 80378dc893..530064a7f9 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeBuilder.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeBuilder.java
@@ -37,7 +37,6 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static java.util.Collections.emptyList;
 import static org.apache.jackrabbit.oak.api.Type.BOOLEAN;
 import static org.apache.jackrabbit.oak.api.Type.NAME;
@@ -194,7 +193,7 @@ class SecureNodeBuilder implements NodeBuilder {
         if (getTreePermission().canReadProperties() || isNew()) {
             return builder.getPropertyCount();
         } else {
-            return IterableUtils.size(filter(
+            return IterableUtils.size(IterableUtils.filter(
                     builder.getProperties(),
                     new ReadablePropertyPredicate()::test));
         }
@@ -206,7 +205,7 @@ class SecureNodeBuilder implements NodeBuilder {
         if (getTreePermission().canReadProperties() || isNew()) {
             return builder.getProperties();
         } else {
-            return filter(
+            return IterableUtils.filter(
                     builder.getProperties(),
                     new ReadablePropertyPredicate()::test);
         }
@@ -285,7 +284,7 @@ class SecureNodeBuilder implements NodeBuilder {
     @NotNull
     @Override
     public Iterable<String> getChildNodeNames() {
-        return filter(
+        return IterableUtils.filter(
                 builder.getChildNodeNames(),
                 input -> input != null && getChildNode(input).exists());
     }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java
index 7e6f7ff502..de259cddc3 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.core;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission;
@@ -28,7 +29,6 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 import java.util.function.Function;
@@ -78,7 +78,7 @@ class SecureNodeState extends AbstractNodeState {
             if (treePermission.canReadProperties()) {
                 propertyCount = state.getPropertyCount();
             } else {
-                propertyCount = count(filter(
+                propertyCount = count(IterableUtils.filter(
                         state.getProperties(),
                         new ReadablePropertyPredicate()::test));
             }
@@ -91,7 +91,7 @@ class SecureNodeState extends AbstractNodeState {
         if (treePermission.canReadProperties()) {
             return state.getProperties();
         } else {
-            return filter(
+            return IterableUtils.filter(
                     state.getProperties(),
                     new ReadablePropertyPredicate()::test);
         }
@@ -147,7 +147,7 @@ class SecureNodeState extends AbstractNodeState {
             Iterable<ChildNodeEntry> readable = transform(
                     state.getChildNodeEntries(),
                     new WrapChildEntryFunction()::apply);
-            return filter(readable, new IterableNodePredicate()::test);
+            return IterableUtils.filter(readable, new 
IterableNodePredicate()::test);
         } else {
             return emptyList();
        }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
index 8a0ec05efc..4983323e08 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
@@ -39,6 +39,7 @@ import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.commons.QueryUtils;
 import org.apache.jackrabbit.oak.commons.UUIDUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
 import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState;
@@ -319,7 +320,7 @@ public class IdentifierManager {
                     Query.JCR_SQL2, bindings, NO_MAPPINGS);
 
             Iterable<Tree> resultTrees = Iterables.transform(result.getRows(), 
row -> row.getTree(null));
-            return Iterables.filter(resultTrees, tree1 -> 
!tree1.getPath().startsWith(VersionConstants.VERSION_STORE_PATH)
+            return IterableUtils.filter(resultTrees, tree1 -> 
!tree1.getPath().startsWith(VersionConstants.VERSION_STORE_PATH)
             );
         } catch (ParseException e) {
             log.error("query failed", e);
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
index 9e53c91059..3b5349ab08 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
@@ -24,6 +24,7 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
@@ -68,7 +69,7 @@ public class IndexInfoServiceImpl implements IndexInfoService{
         } else {
             activeIndexes.addAll(allIndexes);
         }
-        return 
Iterables.filter(Iterables.transform(indexPathService.getIndexPaths(), 
indexPath -> {
+        return 
IterableUtils.filter(Iterables.transform(indexPathService.getIndexPaths(), 
indexPath -> {
             try {
                 IndexInfo info = getInfo(indexPath);
                 if (info != null) {
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 5cf3fcae87..991da39f3e 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
@@ -44,7 +44,6 @@ import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.transform;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
@@ -92,7 +91,7 @@ public class IndexPathServiceImpl implements IndexPathService 
{
             log.warn("{} is not found to be indexed as part of nodetype index. 
Non root indexes would " +
                     "not be listed", INDEX_DEFINITIONS_NODE_TYPE);
             NodeState oakIndex = nodeStore.getRoot().getChildNode("oak:index");
-            return transform(filter(oakIndex.getChildNodeEntries(),
+            return 
transform(IterableUtils.filter(oakIndex.getChildNodeEntries(),
                     cne -> 
INDEX_DEFINITIONS_NODE_TYPE.equals(cne.getNodeState().getName(JCR_PRIMARYTYPE))),
                     cne -> PathUtils.concat("/oak:index", cne.getName()));
         }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
index b9122a2210..c3aba25e70 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.reference;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.lang.Double.POSITIVE_INFINITY;
 import static javax.jcr.PropertyType.REFERENCE;
@@ -137,7 +136,7 @@ class ReferenceIndex implements QueryIndex {
         Iterable<String> paths = IterableUtils.chainedIterable(iterables);
 
         if (!"*".equals(name)) {
-            paths = filter(paths, path -> name.equals(getName(path)));
+            paths = IterableUtils.filter(paths, path -> 
name.equals(getName(path)));
         }
         paths = transform(paths, path -> getParentPath(path));
         return newPathCursor(paths, filter.getQueryLimits());
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
index d4c94ad4e5..4b27056cea 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
@@ -99,7 +99,7 @@ public abstract class AbstractDecoratedNodeState extends 
AbstractNodeState {
         if (propertyState != null && 
OAK_CHILD_ORDER.equals(propertyState.getName())) {
             final Collection<String> childNodeNames = new ArrayList<String>();
             nodeState.getChildNodeNames().forEach(childNodeNames::add);
-            final Iterable<String> values = Iterables.filter(
+            final Iterable<String> values = IterableUtils.filter(
                     propertyState.getValue(Type.NAMES), x -> 
childNodeNames.contains(x));
             return PropertyStates.createProperty(OAK_CHILD_ORDER, values, 
Type.NAMES);
         }
@@ -149,7 +149,7 @@ public abstract class AbstractDecoratedNodeState extends 
AbstractNodeState {
             }
             return null;
         });
-        return Iterables.filter(transformed, x -> x != null);
+        return IterableUtils.filter(transformed, x -> x != null);
     }
 
     @Override
@@ -173,7 +173,7 @@ public abstract class AbstractDecoratedNodeState extends 
AbstractNodeState {
         final Iterable<PropertyState> propertyStates = Iterables.transform(
                 delegate.getProperties(),
                 propertyState -> decorate(propertyState));
-        return Iterables.filter(IterableUtils.chainedIterable(propertyStates, 
getNewPropertyStates()), Objects::nonNull);
+        return 
IterableUtils.filter(IterableUtils.chainedIterable(propertyStates, 
getNewPropertyStates()), Objects::nonNull);
     }
 
     /**
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
index c1074cd47e..21b3320b83 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
@@ -175,25 +175,25 @@ class EffectiveNodeTypeImpl implements EffectiveNodeType {
     @NotNull
     @Override
     public Iterable<NodeDefinition> getAutoCreateNodeDefinitions() {
-        return Iterables.filter(getNodeDefinitions(), nodeDefinition -> 
nodeDefinition.isAutoCreated());
+        return IterableUtils.filter(getNodeDefinitions(), nodeDefinition -> 
nodeDefinition.isAutoCreated());
     }
 
     @NotNull
     @Override
     public Iterable<PropertyDefinition> getAutoCreatePropertyDefinitions() {
-        return Iterables.filter(getPropertyDefinitions(), propertyDefinition 
-> propertyDefinition.isAutoCreated());
+        return IterableUtils.filter(getPropertyDefinitions(), 
propertyDefinition -> propertyDefinition.isAutoCreated());
     }
 
     @NotNull
     @Override
     public Iterable<NodeDefinition> getMandatoryNodeDefinitions() {
-        return Iterables.filter(getNodeDefinitions(), nodeDefinition -> 
nodeDefinition.isMandatory());
+        return IterableUtils.filter(getNodeDefinitions(), nodeDefinition -> 
nodeDefinition.isMandatory());
     }
 
     @NotNull
     @Override
     public Iterable<PropertyDefinition> getMandatoryPropertyDefinitions() {
-        return Iterables.filter(getPropertyDefinitions(), propertyDefinition 
-> propertyDefinition.isMandatory());
+        return IterableUtils.filter(getPropertyDefinitions(), 
propertyDefinition -> propertyDefinition.isMandatory());
     }
 
     /**
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 ae92cb98b3..757dd77b23 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
@@ -73,6 +73,7 @@ import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.UUIDUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.conditions.Validate;
 import org.apache.jackrabbit.oak.namepath.JcrNameParser;
 import org.apache.jackrabbit.oak.namepath.JcrPathParser;
@@ -186,7 +187,7 @@ class NodeTypeImpl extends AbstractTypeDefinition 
implements NodeType {
     @Override @NotNull
     public PropertyDefinition[] getDeclaredPropertyDefinitions() {
         Map<Integer, PropertyDefinition> definitions = new TreeMap<>();
-        for (Tree child : Iterables.filter(definition.getChildren(), 
PrimaryTypePredicate.PROPERTY_DEF_PREDICATE::test)) {
+        for (Tree child : IterableUtils.filter(definition.getChildren(), 
PrimaryTypePredicate.PROPERTY_DEF_PREDICATE::test)) {
             definitions.put(getIndex(child), new PropertyDefinitionImpl(child, 
this, mapper));
         }
         return definitions.values().toArray(NO_PROPERTY_DEFINITIONS);
@@ -200,7 +201,7 @@ class NodeTypeImpl extends AbstractTypeDefinition 
implements NodeType {
     @Override @NotNull
     public NodeDefinition[] getDeclaredChildNodeDefinitions() {
         Map<Integer, NodeDefinition> definitions = new TreeMap<>();
-        for (Tree child : Iterables.filter(definition.getChildren(), 
PrimaryTypePredicate.CHILDNODE_DEF_PREDICATE::test)) {
+        for (Tree child : IterableUtils.filter(definition.getChildren(), 
PrimaryTypePredicate.CHILDNODE_DEF_PREDICATE::test)) {
             definitions.put(getIndex(child), new NodeDefinitionImpl(child, 
this, mapper));
         }
         return definitions.values().toArray(NO_NODE_DEFINITIONS);
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java
index a885937433..ac61f95a04 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.write;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.JcrConstants.JCR_CHILDNODEDEFINITION;
 import static org.apache.jackrabbit.JcrConstants.JCR_HASORDERABLECHILDNODES;
 import static org.apache.jackrabbit.JcrConstants.JCR_ISMIXIN;
@@ -49,6 +48,7 @@ import javax.jcr.nodetype.PropertyDefinitionTemplate;
 
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.namepath.NameMapper;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -178,7 +178,7 @@ class NodeTypeTemplateImpl extends NamedTemplate implements 
NodeTypeTemplate {
     private static void writeItemDefinitions(@NotNull Tree nodeTypeTree, 
@Nullable List<? extends ItemDefinitionTemplate> itemDefTemplates,
                                              @NotNull String nodeName, 
@NotNull String primaryTypeName) throws RepositoryException {
         // first remove existing
-        for (Tree t : filter(nodeTypeTree.getChildren(), new 
SameNamePredicate(nodeName)::test)) {
+        for (Tree t : IterableUtils.filter(nodeTypeTree.getChildren(), new 
SameNamePredicate(nodeName)::test)) {
             t.remove();
         }
         // now write definitions
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
index 4f0d5bbee2..a8fe9e07eb 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.tree.impl;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.api.Tree.Status.MODIFIED;
 import static org.apache.jackrabbit.oak.api.Tree.Status.NEW;
@@ -29,6 +28,7 @@ import static 
org.apache.jackrabbit.oak.plugins.tree.TreeConstants.OAK_CHILD_ORD
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -275,7 +275,7 @@ public abstract class AbstractTree implements Tree {
     @Override
     @NotNull
     public Iterable<? extends PropertyState> getProperties() {
-        return filter(getNodeBuilder().getProperties(), propertyState -> 
!isHidden(propertyState.getName()));
+        return IterableUtils.filter(getNodeBuilder().getProperties(), 
propertyState -> !isHidden(propertyState.getName()));
     }
 
     @Override
@@ -314,6 +314,6 @@ public abstract class AbstractTree implements Tree {
                     AbstractTree child = createChild(name);
                     return child.exists() ? child : null;
                 });
-        return filter(children, x -> x != null);
+        return IterableUtils.filter(children, Objects::nonNull);
     }
 }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACL.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACL.java
index c7b9946421..0fab26a1e6 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACL.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACL.java
@@ -31,6 +31,7 @@ import javax.jcr.security.Privilege;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.ACE;
@@ -164,7 +165,7 @@ abstract class ACL extends AbstractAccessControlList {
     private boolean internalAddEntry(@NotNull ACE entry) throws 
RepositoryException {
         final String principalName = entry.getPrincipal().getName();
         final Set<Restriction> restrictions = entry.getRestrictions();
-        List<ACE> subList = ListUtils.toList(Iterables.filter(entries, ace ->
+        List<ACE> subList = ListUtils.toList(IterableUtils.filter(entries, ace 
->
                 
principalName.equals(requireNonNull(ace).getPrincipal().getName()) && 
restrictions.equals(ace.getRestrictions())));
 
         boolean addEntry = true;
@@ -211,7 +212,7 @@ abstract class ACL extends AbstractAccessControlList {
 
     @NotNull
     private Set<Restriction> validateRestrictions(@NotNull Map<String, Value> 
restrictions, @NotNull Map<String, Value[]> mvRestrictions) throws 
RepositoryException {
-        Iterable<RestrictionDefinition> mandatoryDefs = 
Iterables.filter(getRestrictionProvider().getSupportedRestrictions(getOakPath()),
 RestrictionDefinition::isMandatory);
+        Iterable<RestrictionDefinition> mandatoryDefs = 
IterableUtils.filter(getRestrictionProvider().getSupportedRestrictions(getOakPath()),
 RestrictionDefinition::isMandatory);
         for (RestrictionDefinition def : mandatoryDefs) {
             String jcrName = getNamePathMapper().getJcrName(def.getName());
             boolean mandatoryPresent;
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
index a5e2b736db..afec708fa4 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
@@ -28,6 +28,7 @@ import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
@@ -560,11 +561,11 @@ public class UserManagerImpl implements UserManager {
      */
     @NotNull
     private Iterable<GroupAction> filterGroupActions() {
-        return 
Iterables.filter(actionProvider.getAuthorizableActions(securityProvider), 
GroupAction.class);
+        return 
IterableUtils.filter(actionProvider.getAuthorizableActions(securityProvider), 
GroupAction.class);
     }
 
     @NotNull
     private Iterable<UserAction> filterUserActions() {
-        return 
Iterables.filter(actionProvider.getAuthorizableActions(securityProvider), 
UserAction.class);
+        return 
IterableUtils.filter(actionProvider.getAuthorizableActions(securityProvider), 
UserAction.class);
     }
 }
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
index 62d0909bef..c652c1a91a 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
@@ -211,7 +211,7 @@ public class SecurityProviderRegistrationTest extends 
AbstractSecurityTest {
 
         SecurityProvider service = context.getService(SecurityProvider.class);
         assertNotNull(service);
-        assertEquals(6, 
IterableUtils.size(Iterables.filter(service.getConfigurations(), x -> x != 
null)));
+        assertEquals(6, 
IterableUtils.size(IterableUtils.filter(service.getConfigurations(), x -> x != 
null)));
     }
 
 
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CachedGroupPrincipalTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CachedGroupPrincipalTest.java
index 1d7d5bf397..88cd4362d8 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CachedGroupPrincipalTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CachedGroupPrincipalTest.java
@@ -24,6 +24,7 @@ import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.jdkcompat.Java23Subject;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
@@ -78,7 +79,7 @@ public class CachedGroupPrincipalTest extends 
AbstractSecurityTest {
 
         // a) force the cache to be created
         pp = new UserPrincipalProvider(systemRoot, getUserConfiguration(), 
namePathMapper);
-        Iterable<? extends Principal> principals = 
Iterables.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
+        Iterable<? extends Principal> principals = 
IterableUtils.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
         for (Principal p : principals) {
             String className = p.getClass().getName();
             
assertEquals("org.apache.jackrabbit.oak.security.user.UserPrincipalProvider$GroupPrincipalImpl",
 className);
@@ -123,7 +124,7 @@ public class CachedGroupPrincipalTest extends 
AbstractSecurityTest {
 
         // b) retrieve principals again (this time from the cache)
         // -> verify that they are a different implementation
-        Iterable<? extends Principal> principalsAgain = 
Iterables.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
+        Iterable<? extends Principal> principalsAgain = 
IterableUtils.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
         for (Principal p : principalsAgain) {
             String className = p.getClass().getName();
             
assertEquals("org.apache.jackrabbit.oak.security.user.UserPrincipalProvider$CachedGroupPrincipal",
 className);
@@ -152,7 +153,7 @@ public class CachedGroupPrincipalTest extends 
AbstractSecurityTest {
         // b) retrieve principals again (this time from the cache)
         //    principal for 'testGroup' is no longer backed by an user mgt 
group
         //    verify that this doesn't lead to runtime exceptions
-        Iterable<? extends Principal> principalsAgain = 
Iterables.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
+        Iterable<? extends Principal> principalsAgain = 
IterableUtils.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
         for (Principal p : principalsAgain) {
             String className = p.getClass().getName();
             
assertEquals("org.apache.jackrabbit.oak.security.user.UserPrincipalProvider$CachedGroupPrincipal",
 className);
@@ -186,7 +187,7 @@ public class CachedGroupPrincipalTest extends 
AbstractSecurityTest {
         // b) retrieve principals again (this time from the cache)
         //    principal for 'testGroup' is no longer backed by an user mgt 
group
         //    verify that this doesn't lead to runtime exceptions
-        Iterable<? extends Principal> principalsAgain = 
Iterables.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
+        Iterable<? extends Principal> principalsAgain = 
IterableUtils.filter(pp.getPrincipals(userId), new GroupPredicate()::test);
         for (Principal p : principalsAgain) {
             String className = p.getClass().getName();
             
assertEquals("org.apache.jackrabbit.oak.security.user.UserPrincipalProvider$CachedGroupPrincipal",
 className);
@@ -215,7 +216,7 @@ public class CachedGroupPrincipalTest extends 
AbstractSecurityTest {
         // b) retrieve principals again (this time from the cache)
         //    principal for 'testGroup' is no longer backed by an user mgt 
group
         //    verify that this doesn't lead to runtime exceptions
-        Iterable<? extends Principal> principalsAgain = 
Iterables.filter(provider.getPrincipals(userId), new GroupPredicate()::test);
+        Iterable<? extends Principal> principalsAgain = 
IterableUtils.filter(provider.getPrincipals(userId), new 
GroupPredicate()::test);
         for (Principal p : principalsAgain) {
             String className = p.getClass().getName();
             
assertEquals("org.apache.jackrabbit.oak.security.user.UserPrincipalProvider$CachedGroupPrincipal",
 className);
diff --git 
a/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java
 
b/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java
index 827d5f03cd..7f4d045281 100644
--- 
a/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java
+++ 
b/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.composite;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static 
org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
 import static 
org.apache.jackrabbit.oak.plugins.index.IndexUtils.createIndexDefinition;
 import static org.hamcrest.CoreMatchers.equalTo;
@@ -651,13 +650,13 @@ public class CompositeNodeStoreTest {
         deepMountBuilder.child("new").setProperty("store", "deepMounted", 
Type.STRING);
         deepMountedStore.merge(deepMountBuilder, EmptyHook.INSTANCE, 
CommitInfo.EMPTY);
 
-        List<ChildNodeEntry> children = 
ListUtils.toList(filter(store.getRoot().getChildNodeEntries(),
+        List<ChildNodeEntry> children = 
ListUtils.toList(IterableUtils.filter(store.getRoot().getChildNodeEntries(),
                 x -> Objects.equals(x == null ? null : x.getName(), "new")));
         assertEquals(1, children.size());
         assertEquals("global", 
children.get(0).getNodeState().getString("store"));
 
         NodeBuilder rootBuilder = store.getRoot().builder();
-        List<String> childNames = 
ListUtils.toList(filter(rootBuilder.getChildNodeNames(),
+        List<String> childNames = 
ListUtils.toList(IterableUtils.filter(rootBuilder.getChildNodeNames(),
                 x -> Objects.equals(x, "new")));
         assertEquals(1, childNames.size());
         assertEquals("global", 
rootBuilder.getChildNode("new").getString("store"));
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
index 4ef445b44b..a29d10a2ae 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
@@ -44,6 +44,7 @@ import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate;
 import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
 import org.apache.jackrabbit.oak.jcr.security.AccessManager;
@@ -296,7 +297,7 @@ public class ImporterImpl implements Importer {
     }
 
     private Iterable<ProtectedPropertyImporter> getPropertyImporters() {
-        return Iterables.filter(Iterables.transform(pItemImporters, importer 
-> {
+        return IterableUtils.filter(Iterables.transform(pItemImporters, 
importer -> {
                 if (importer instanceof ProtectedPropertyImporter) {
                     return (ProtectedPropertyImporter) importer;
                 } else {
@@ -306,7 +307,7 @@ public class ImporterImpl implements Importer {
     }
 
     private Iterable<ProtectedNodeImporter> getNodeImporters() {
-        return Iterables.filter(Iterables.transform(pItemImporters, importer 
-> {
+        return IterableUtils.filter(Iterables.transform(pItemImporters, 
importer -> {
                 if (importer instanceof ProtectedNodeImporter) {
                     return (ProtectedNodeImporter) importer;
                 } else {
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java
index ea11e914a3..ae85bff50a 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java
@@ -24,6 +24,7 @@ import java.util.Objects;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 
 import static 
org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_ASYNC_INDEXED_TO_TIME_AT_SWITCH;
@@ -97,7 +98,7 @@ class BucketSwitcher {
     public Iterable<String> getOldBuckets() {
         String head = builder.getString(PROP_HEAD_BUCKET);
         String previous = builder.getString(PROP_PREVIOUS_BUCKET);
-        return Iterables.filter(builder.getChildNodeNames(),
+        return IterableUtils.filter(builder.getChildNodeNames(),
                 name -> !Objects.equals(name, head) && !Objects.equals(name, 
previous)
         );
     }
diff --git 
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
 
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
index 6e6f5ab0c0..291e519109 100644
--- 
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
+++ 
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
@@ -164,7 +164,7 @@ public final class PrivilegeBitsProvider implements 
PrivilegeConstants {
      */
     @NotNull
     public PrivilegeBits getBits(@NotNull Privilege[] privileges, @NotNull 
final NameMapper nameMapper) {
-        return 
getBits(Iterables.filter(Iterables.transform(Arrays.asList(privileges),
+        return 
getBits(IterableUtils.filter(Iterables.transform(Arrays.asList(privileges),
                 privilege -> 
nameMapper.getOakNameOrNull(privilege.getName())), x -> x != null));
     }
 
diff --git 
a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
 
b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
index 3062176188..4d36727060 100644
--- 
a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
+++ 
b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
@@ -137,7 +137,7 @@ public class CompositePrincipalProviderTest {
 
     @Test
     public void findPrincipalsByTypeGroup() {
-        Iterable<? extends Principal> expected = 
IterableUtils.chainedIterable(Set.of(EveryonePrincipal.getInstance()), 
Iterables.filter(testPrincipals(),
+        Iterable<? extends Principal> expected = 
IterableUtils.chainedIterable(Set.of(EveryonePrincipal.getInstance()), 
IterableUtils.filter(testPrincipals(),
             input -> input instanceof GroupPrincipal));
 
         Iterator<? extends Principal> result = 
cpp.findPrincipals(PrincipalManager.SEARCH_TYPE_GROUP);
@@ -146,7 +146,7 @@ public class CompositePrincipalProviderTest {
 
     @Test
     public void findPrincipalsByTypeNotGroup() {
-        Iterable<? extends Principal> expected = 
Iterables.filter(testPrincipals(), input -> !(input instanceof GroupPrincipal));
+        Iterable<? extends Principal> expected = 
IterableUtils.filter(testPrincipals(), input -> !(input instanceof 
GroupPrincipal));
 
         Iterator<? extends Principal> result = 
cpp.findPrincipals(PrincipalManager.SEARCH_TYPE_NOT_GROUP);
         assertIterator(expected, result);
diff --git 
a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java
 
b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java
index 9cdc01776a..d1e2e5d8db 100644
--- 
a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java
+++ 
b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java
@@ -32,6 +32,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -135,7 +136,7 @@ public final class TestPrincipalProvider implements 
PrincipalProvider {
     @NotNull
     @Override
     public Iterator<? extends Principal> findPrincipals(@Nullable String 
nameHint, int searchType) {
-        return Iterables.filter(all(), new SearchTypePredicate(nameHint, 
searchType)::test).iterator();
+        return IterableUtils.filter(all(), new SearchTypePredicate(nameHint, 
searchType)::test).iterator();
     }
 
     @NotNull
diff --git 
a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
 
b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
index 4c0cbbed9b..557d3a51a3 100644
--- 
a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
+++ 
b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
@@ -21,6 +21,7 @@ import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.StreamUtils;
 import org.apache.jackrabbit.oak.composite.checks.NodeStoreChecks;
 import org.apache.jackrabbit.oak.spi.commit.ChangeDispatcher;
@@ -57,8 +58,6 @@ import java.util.stream.Collectors;
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
-
 import static java.lang.System.currentTimeMillis;
 import static 
org.apache.jackrabbit.oak.composite.ModifiedPathDiff.getModifiedPaths;
 
@@ -206,7 +205,7 @@ public class CompositeNodeStore implements NodeStore, 
PrefetchNodeStore, Observa
 
     public Iterable<String> checkpoints() {
         final NodeStore globalNodeStore = ctx.getGlobalStore().getNodeStore();
-        return filter(globalNodeStore.checkpoints(),
+        return IterableUtils.filter(globalNodeStore.checkpoints(),
                 checkpoint -> isCompositeCheckpoint(checkpoint));
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
index 1198a2ddf7..dbd226a000 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.plugins.document;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 import java.lang.ref.ReferenceQueue;
@@ -272,7 +271,7 @@ class Branch {
         if (!commits.containsKey(r)) {
             return Collections.emptyList();
         }
-        Iterable<Iterable<Path>> paths = transform(filter(commits.entrySet(),
+        Iterable<Iterable<Path>> paths = 
transform(IterableUtils.filter(commits.entrySet(),
                 new Predicate<Map.Entry<Revision, BranchCommit>>() {
             @Override
             public boolean test(Map.Entry<Revision, BranchCommit> input) {
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
index af50297d88..398a8528d1 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
@@ -30,6 +30,7 @@ import java.util.Set;
 import java.util.TreeSet;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.json.JsopStream;
 import org.apache.jackrabbit.oak.commons.json.JsopWriter;
@@ -42,7 +43,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.Collections.singletonList;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL;
@@ -889,7 +889,7 @@ public class Commit {
     }
 
     private static boolean hasContentChanges(UpdateOp op) {
-        return filter(transform(op.getChanges().keySet(),
-                input -> input.getName()), 
Utils.PROPERTY_OR_DELETED::test).iterator().hasNext();
+        return IterableUtils.filter(transform(op.getChanges().keySet(),
+                Key::getName), 
Utils.PROPERTY_OR_DELETED::test).iterator().hasNext();
     }
 }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
index d5efb8b011..ee0417f2b5 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
@@ -253,7 +253,7 @@ public class DocumentNodeState extends 
AbstractDocumentNodeState implements Cach
         //Filter out the meta properties related to bundling from
         //generic listing of props
         if (bundlingContext.isBundled()){
-            return Iterables.filter(properties.values(), 
BundlorUtils.NOT_BUNDLOR_PROPS::test);
+            return IterableUtils.filter(properties.values(), 
BundlorUtils.NOT_BUNDLOR_PROPS::test);
         }
         return properties.values();
     }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
index c925f9bb03..8dd74d01ae 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
@@ -2231,7 +2231,7 @@ public final class DocumentNodeStore
     public Iterable<String> checkpoints() {
         checkOpen();
         final long now = clock.getTime();
-        return 
Iterables.transform(Iterables.filter(checkpoints.getCheckpoints().entrySet(),
+        return 
Iterables.transform(IterableUtils.filter(checkpoints.getCheckpoints().entrySet(),
                 cp -> cp.getValue().getExpiryTime() > now),
                 cp -> cp.getKey().toString());
     }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
index 85df9cce9f..821897bb69 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
@@ -36,7 +36,6 @@ import org.slf4j.LoggerFactory;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 /**
@@ -87,21 +86,21 @@ final class DocumentNodeStoreMBeanImpl extends 
AnnotatedStandardMBean implements
 
     @Override
     public String[] getInactiveClusterNodes() {
-        return IterableUtils.toArray(transform(filter(clusterNodes,
+        return 
IterableUtils.toArray(transform(IterableUtils.filter(clusterNodes,
                 input -> !input.isActive()),
                 input -> input.getClusterId() + "=" + input.getCreated()), 
String.class);
     }
 
     @Override
     public String[] getActiveClusterNodes() {
-        return IterableUtils.toArray(transform(filter(clusterNodes,
+        return 
IterableUtils.toArray(transform(IterableUtils.filter(clusterNodes,
                 input -> input.isActive()),
                 input -> input.getClusterId() + "=" + 
input.getLeaseEndTime()), String.class);
     }
 
     @Override
     public String[] getLastKnownRevisions() {
-        return 
IterableUtils.toArray(transform(filter(nodeStore.getHeadRevision(),
+        return 
IterableUtils.toArray(transform(IterableUtils.filter(nodeStore.getHeadRevision(),
                 input -> input.getClusterId() != getClusterId()),
                 input -> input.getClusterId() + "=" + input.toString()), 
String.class);
     }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
index d1cc48a579..863a80d47f 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.Collections.singletonList;
 import static org.apache.jackrabbit.oak.plugins.document.util.Utils.asISO8601;
@@ -45,6 +44,7 @@ import java.util.stream.Collectors;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.commons.TimeDurationFormatter;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.MapUtils;
 import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
 import org.apache.jackrabbit.oak.plugins.document.bundlor.DocumentBundlor;
@@ -776,7 +776,7 @@ public class LastRevRecoveryAgent {
      * @return the recovery candidate nodes.
      */
     public Iterable<Integer> getRecoveryCandidateNodes() {
-        return Iterables.transform(filter(missingLastRevUtil.getAllClusters(),
+        return 
Iterables.transform(IterableUtils.filter(missingLastRevUtil.getAllClusters(),
                 input ->revisionContext.getClusterId() != input.getClusterId()
                         && 
input.isRecoveryNeeded(revisionContext.getClock().getTime())),
                 ClusterNodeInfoDocument::getClusterId);
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
index 94d160445b..1922c7d733 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.util.Utils.COMMITROOT_OR_REVISIONS;
 
@@ -135,7 +134,7 @@ final class MissingBcSweeper2 {
 
     private Iterable<Map.Entry<Path, UpdateOp>> sweepOperations(
             final Iterable<NodeDocument> docs) {
-        return filter(transform(docs,
+        return IterableUtils.filter(transform(docs,
                 new Function<NodeDocument, Map.Entry<Path, UpdateOp>>() {
 
             int yieldCnt = 0;
@@ -170,7 +169,7 @@ final class MissingBcSweeper2 {
         // as that's what was left out by the original sweep1:
         // - COMMITROOT : for new child (parent)
         // - REVISIONS : for commit roots (root for branch commits)
-        for (String property : filter(doc.keySet(), 
COMMITROOT_OR_REVISIONS::test)) {
+        for (String property : IterableUtils.filter(doc.keySet(), 
COMMITROOT_OR_REVISIONS::test)) {
             Map<Revision, String> valueMap = doc.getLocalMap(property);
             for (Map.Entry<Revision, String> entry : valueMap.entrySet()) {
                 Revision rev = entry.getKey();
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingLastRevSeeker.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingLastRevSeeker.java
index fc9b38326e..0e113fe896 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingLastRevSeeker.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingLastRevSeeker.java
@@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.plugins.document;
 
 import java.util.stream.StreamSupport;
 
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.apache.jackrabbit.oak.stats.Clock;
 import org.jetbrains.annotations.NotNull;
@@ -82,7 +83,7 @@ public class MissingLastRevSeeker {
         // Fetch all documents where lastmod >= startTime
         Iterable<NodeDocument> nodes = getSelectedDocuments(store,
                 MODIFIED_IN_SECS, getModifiedInSecs(startTime));
-        return Iterables.filter(nodes, input -> {
+        return IterableUtils.filter(nodes, input -> {
                 Long modified = (Long) input.get(MODIFIED_IN_SECS);
                 Long sdType = (Long) input.get(SD_TYPE);
                 return (modified != null && (modified >= 
getModifiedInSecs(startTime)) && sdType == null);
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
index 447b82e44b..01d87b61ed 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.document;
 import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.mergeSorted;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
@@ -1402,7 +1401,7 @@ public final class NodeDocument extends Document {
             }
 
             // didn't find entry -> scan through remaining head ranges
-            return 
filter(transform(getPreviousRanges().headMap(revision).entrySet(), input -> {
+            return 
IterableUtils.filter(transform(getPreviousRanges().headMap(revision).entrySet(),
 input -> {
                     if (input.getValue().includes(revision)) {
                        return getPreviousDoc(input.getKey(), input.getValue());
                     }
@@ -1646,7 +1645,7 @@ public final class NodeDocument extends Document {
             if (propRevFound != null) {
                 propRevFound.set(true);
             }
-            changes.add(filter(localChanges.entrySet(), p::test));
+            changes.add(IterableUtils.filter(localChanges.entrySet(), 
p::test));
         }
 
         for (Revision r : readRevision) {
@@ -1819,7 +1818,7 @@ public final class NodeDocument extends Document {
         } else {
             changes = 
IterableUtils.chainedIterable(transform(List.copyOf(ranges), 
rangeToChanges::apply));
         }
-        return filter(changes, input -> 
!readRev.isRevisionNewer(input.getKey()));
+        return IterableUtils.filter(changes, input -> 
!readRev.isRevisionNewer(input.getKey()));
     }
 
     /**
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
index cf76ae8f78..2ff54f551c 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
@@ -32,7 +32,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.isDeletedEntry;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.removeCommitRoot;
@@ -163,7 +162,7 @@ final class NodeDocumentSweeper {
 
     private Iterable<Map.Entry<Path, UpdateOp>> sweepOperations(
             final Iterable<NodeDocument> docs) {
-        return filter(transform(docs, doc -> new 
SimpleImmutableEntry<>(doc.getPath(), sweepOne(doc))),
+        return IterableUtils.filter(transform(docs, doc -> new 
SimpleImmutableEntry<>(doc.getPath(), sweepOne(doc))),
                 input -> input.getValue() != null);
     }
 
@@ -174,7 +173,7 @@ final class NodeDocumentSweeper {
         // - DELETED : for new node (this)
         // - COMMITROOT : for new child (parent)
         // - REVISIONS : for commit roots (root for branch commits)
-        for (String property : filter(doc.keySet(), 
SWEEP_ONE_PREDICATE::test)) {
+        for (String property : IterableUtils.filter(doc.keySet(), 
SWEEP_ONE_PREDICATE::test)) {
             Map<Revision, String> valueMap = doc.getLocalMap(property);
             for (Map.Entry<Revision, String> entry : valueMap.entrySet()) {
                 Revision rev = entry.getKey();
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
index 967a1b3d6d..025fcef457 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.AbstractMap.SimpleImmutableEntry;
 
@@ -28,6 +27,7 @@ import java.util.TreeMap;
 import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.guava.common.collect.PeekingIterator;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
@@ -55,7 +55,7 @@ class PropertyHistory implements Iterable<NodeDocument> {
 
     @Override
     public Iterator<NodeDocument> iterator() {
-        return 
ensureOrder(filter(transform(doc.getPreviousRanges().entrySet(), input -> {
+        return 
ensureOrder(IterableUtils.filter(transform(doc.getPreviousRanges().entrySet(), 
input -> {
                 Revision r = input.getKey();
                 int h = input.getValue().height;
                 String prevId = Utils.getPreviousIdFor(mainPath, r, h);
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
index b8a6f184aa..231383f28b 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
@@ -115,9 +115,9 @@ class UnsavedModifications {
         if (map.isEmpty()) {
             return Collections.emptyList();
         } else {
-            return Iterables.transform(Iterables.filter(map.entrySet(),
+            return Iterables.transform(IterableUtils.filter(map.entrySet(),
                     input ->start.compareRevisionTime(input.getValue()) < 1),
-                    input -> input.getKey());
+                    Map.Entry::getKey);
         }
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCSupport.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCSupport.java
index e6cbe73a7a..a66c26261d 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCSupport.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCSupport.java
@@ -24,7 +24,6 @@ import static java.util.Optional.empty;
 import static java.util.Optional.of;
 import static java.util.Optional.ofNullable;
 import static java.util.stream.Stream.concat;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static java.util.stream.Collectors.toList;
 import static org.apache.jackrabbit.oak.plugins.document.Document.ID;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.MIN_ID_VALUE;
@@ -43,6 +42,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.NodeDocument.SplitDocType;
 import 
org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
@@ -184,7 +184,7 @@ public class VersionGCSupport {
     protected Iterable<NodeDocument> identifyGarbage(final Set<SplitDocType> 
gcTypes,
                                                      final RevisionVector 
sweepRevs,
                                                      final long 
oldestRevTimeStamp) {
-        return filter(getAllDocuments(store),
+        return IterableUtils.filter(getAllDocuments(store),
                 doc -> gcTypes.contains(doc.getSplitDocType())
                         && doc.hasAllRevisionLessThan(oldestRevTimeStamp)
                         && !isDefaultNoBranchSplitNewerThan(doc, sweepRevs));
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
index 2e3bf96102..971deace28 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
@@ -61,6 +61,7 @@ import com.mongodb.client.model.CreateCollectionOptions;
 import 
org.apache.jackrabbit.guava.common.util.concurrent.UncheckedExecutionException;
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.apache.jackrabbit.oak.cache.CacheValue;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.collections.MapUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
@@ -120,7 +121,6 @@ import com.mongodb.client.result.UpdateResult;
 import static java.util.Objects.isNull;
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
 import static java.util.stream.Collectors.toList;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static com.mongodb.client.model.Projections.include;
 import static java.lang.Integer.MAX_VALUE;
 import static java.util.Collections.emptyList;
@@ -526,7 +526,7 @@ public class MongoDocumentStore implements DocumentStore {
             result.queryCount++;
 
             int invalidated = nodesCache.invalidateOutdated(modStamps);
-            for (String id : filter(ids, x -> 
!modStamps.keySet().contains(x))) {
+            for (String id : IterableUtils.filter(ids, x -> 
!modStamps.keySet().contains(x))) {
                 nodesCache.invalidate(id);
                 invalidated++;
             }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
index 6568238ba1..74c807e233 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
@@ -26,7 +26,6 @@ import static com.mongodb.client.model.Projections.include;
 import static com.mongodb.client.model.Sorts.ascending;
 import static java.util.Optional.empty;
 import static java.util.Optional.ofNullable;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static com.mongodb.client.model.Filters.and;
 import static com.mongodb.client.model.Filters.lt;
@@ -348,7 +347,7 @@ public class MongoVersionGCSupport extends VersionGCSupport 
{
             // of the query as part of OAK-8351 does), it nevertheless 
             // makes any future similar problem more visible than long running
             // queries alone (15min is still long).
-            Iterable<NodeDocument> iterable = 
filter(transform(getNodeCollection().find(query)
+            Iterable<NodeDocument> iterable = 
IterableUtils.filter(transform(getNodeCollection().find(query)
                     .maxTime(15, TimeUnit.MINUTES).hint(hint),
                     input -> store.convertFromDBObject(NODES, input)),
                     input -> !isDefaultNoBranchSplitNewerThan(input, 
sweepRevs));
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java
index 07d37ad102..d9a61b1c52 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.persistentCache;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static java.util.Collections.singleton;
 import static org.apache.jackrabbit.guava.common.cache.RemovalCause.COLLECTED;
 import static org.apache.jackrabbit.guava.common.cache.RemovalCause.EXPIRED;
@@ -36,6 +35,7 @@ import org.apache.jackrabbit.guava.common.cache.CacheStats;
 import org.apache.jackrabbit.guava.common.cache.RemovalCause;
 import org.apache.jackrabbit.guava.common.collect.ImmutableMap;
 import org.apache.jackrabbit.oak.cache.CacheValue;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
 import org.apache.jackrabbit.oak.plugins.document.DocumentStore;
 import 
org.apache.jackrabbit.oak.plugins.document.persistentCache.PersistentCache.GenerationCache;
@@ -250,7 +250,7 @@ class NodeCache<K extends CacheValue, V extends  CacheValue>
         Iterable<K> typedKeys = (Iterable<K>) keys;
         memCacheMetadata.incrementAll(keys);
         ImmutableMap<K, V> result = memCache.getAllPresent(keys);
-        memCacheMetadata.removeAll(filter(typedKeys, x -> 
!result.keySet().contains(x)));
+        memCacheMetadata.removeAll(IterableUtils.filter(typedKeys, x -> 
!result.keySet().contains(x)));
         return result;
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
index b0ab1efba8..d177c29cbb 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.rdb;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
-
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -105,7 +103,7 @@ public class RDBVersionGCSupport extends VersionGCSupport {
 
     private Iterable<NodeDocument> identifyGarbageMode1(final 
Set<SplitDocType> gcTypes, final RevisionVector sweepRevs,
             final long oldestRevTimeStamp) {
-        return filter(getSplitDocuments(), getGarbageCheckPredicate(gcTypes, 
sweepRevs, oldestRevTimeStamp)::test);
+        return IterableUtils.filter(getSplitDocuments(), 
getGarbageCheckPredicate(gcTypes, sweepRevs, oldestRevTimeStamp)::test);
     }
 
     private Predicate<NodeDocument> getGarbageCheckPredicate(final 
Set<SplitDocType> gcTypes, final RevisionVector sweepRevs,
@@ -161,7 +159,7 @@ public class RDBVersionGCSupport extends VersionGCSupport {
         final CountingPredicate<NodeDocument> cp1 = new 
CountingPredicate<NodeDocument>(name1, pred);
         final CountingPredicate<NodeDocument> cp2 = new 
CountingPredicate<NodeDocument>(name2, pred);
 
-        return 
CloseableIterable.wrap(IterableUtils.chainedIterable(Iterables.filter(fit1, 
cp1::test), Iterables.filter(fit2, cp2::test)),
+        return 
CloseableIterable.wrap(IterableUtils.chainedIterable(IterableUtils.filter(fit1, 
cp1::test), IterableUtils.filter(fit2, cp2::test)),
                 new Closeable() {
                     @Override
             public void close() throws IOException {
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
index 3e72bcce08..443ecab4c1 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
@@ -155,7 +155,7 @@ public class DelegatingDocumentNodeState extends 
AbstractDocumentNodeState {
     @NotNull
     @Override
     public Iterable<? extends PropertyState> getProperties() {
-        return Iterables.filter(delegate.getProperties(), 
NOT_META_PROPS::test);
+        return IterableUtils.filter(delegate.getProperties(), 
NOT_META_PROPS::test);
     }
 
     @Override
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java
index d37b0ba339..6d350b0f5d 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java
@@ -283,8 +283,8 @@ public class MongoVersionGCSupportDefaultNoBranchTest {
         Iterable<NodeDocument> garbage = gcSupport1.identifyGarbage(GC_TYPES, 
sweepRevs, oldestRevTimeStamp);
         assertNotNull(garbage);
         assertEquals(totalSplits, IterableUtils.size(garbage));
-        assertEquals(numSplit1, IterableUtils.size(Iterables.filter(garbage, 
splitDocsWithClusterId(1)::test)));
-        assertEquals(numSplit2, IterableUtils.size(Iterables.filter(garbage, 
splitDocsWithClusterId(2)::test)));
+        assertEquals(numSplit1, 
IterableUtils.size(IterableUtils.filter(garbage, 
splitDocsWithClusterId(1)::test)));
+        assertEquals(numSplit2, 
IterableUtils.size(IterableUtils.filter(garbage, 
splitDocsWithClusterId(2)::test)));
 
         Stats stats = deleteSplitDocuments(gcSupport1, sweepRevs, 
oldestRevTimeStamp);
         assertNotNull(stats);
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
index f51cdaa51f..1165848ce0 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
@@ -53,7 +53,6 @@ import static 
org.apache.commons.lang3.reflect.FieldUtils.readField;
 import static org.apache.commons.lang3.reflect.FieldUtils.writeField;
 import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static java.util.concurrent.TimeUnit.HOURS;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.jackrabbit.oak.api.Type.NAME;
@@ -3540,7 +3539,7 @@ public class VersionGarbageCollectorIT {
         VersionGCSupport gcSupport = new 
VersionGCSupport(store1.getDocumentStore()) {
             @Override
             public Iterable<NodeDocument> getPossiblyDeletedDocs(long 
fromModified, long toModified) {
-                return filter(super.getPossiblyDeletedDocs(fromModified, 
toModified),
+                return 
IterableUtils.filter(super.getPossiblyDeletedDocs(fromModified, toModified),
                         input -> {
                                 try {
                                     docs.put(input);
@@ -3773,7 +3772,7 @@ public class VersionGarbageCollectorIT {
         VersionGCSupport nonReportingGcSupport = new 
VersionGCSupport(store1.getDocumentStore()) {
             @Override
             public Iterable<NodeDocument> getPossiblyDeletedDocs(final long 
fromModified, long toModified) {
-                return 
filter(fixtureGCSupport.getPossiblyDeletedDocs(fromModified, toModified),
+                return 
IterableUtils.filter(fixtureGCSupport.getPossiblyDeletedDocs(fromModified, 
toModified),
                         input -> {
                                 docCounter.incrementAndGet();
                                 // don't report any doc to be GC'able
diff --git 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java
 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java
index 17787df118..1a92362d71 100644
--- 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java
+++ 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java
@@ -18,8 +18,6 @@ package org.apache.jackrabbit.oak.plugins.memory;
 
 import static java.util.Objects.requireNonNull;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
-
 import static java.util.Collections.emptyList;
 import static java.util.Collections.emptyMap;
 import static 
org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry.iterable;
@@ -27,6 +25,7 @@ import static 
org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry.iter
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Set;
 import java.util.function.Predicate;
 
@@ -164,8 +163,8 @@ public class ModifiedNodeState extends AbstractNodeState {
             Predicate<PropertyState> predicate =
                     x -> !keys.contains(x == null ? null : x.getName());
             return IterableUtils.chainedIterable(
-                    filter(base.getProperties(), predicate::test),
-                    filter(properties.values(), x -> x != null));
+                    IterableUtils.filter(base.getProperties(), 
predicate::test),
+                    IterableUtils.filter(properties.values(), 
Objects::nonNull));
         }
     }
 
@@ -214,7 +213,7 @@ public class ModifiedNodeState extends AbstractNodeState {
             }
             final Set<String> keys = nodes.keySet(); 
             return IterableUtils.chainedIterable(
-                    filter(base.getChildNodeNames(), x -> !keys.contains(x)),
+                    IterableUtils.filter(base.getChildNodeNames(), x -> 
!keys.contains(x)),
                     MapUtils.filterValues(nodes, NodeState.EXISTS).keySet());
         }
     }
@@ -347,7 +346,7 @@ public class ModifiedNodeState extends AbstractNodeState {
             Predicate<ChildNodeEntry> predicate =
                     x -> !keys.contains(x == null ? null : x.getName());
             return IterableUtils.chainedIterable(
-                    filter(base.getChildNodeEntries(), predicate::test),
+                    IterableUtils.filter(base.getChildNodeEntries(), 
predicate::test),
                     iterable(MapUtils.filterValues(nodes, 
NodeState.EXISTS).entrySet()));
         }
     }
diff --git 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
index b3feadc3de..7c4c6dce27 100644
--- 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
+++ 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
@@ -19,7 +19,6 @@
 package org.apache.jackrabbit.oak.spi.commit;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 
 import java.io.Closeable;
 import java.lang.Thread.UncaughtExceptionHandler;
@@ -235,13 +234,13 @@ public class BackgroundObserver implements Observer, 
Closeable {
 
             @Override
             public int getLocalEventCount() {
-                return IterableUtils.size(filter(queue,
+                return IterableUtils.size(IterableUtils.filter(queue,
                         input -> !input.info.isExternal()));
             }
 
             @Override
             public int getExternalEventCount() {
-                return IterableUtils.size(filter(queue,
+                return IterableUtils.size(IterableUtils.filter(queue,
                         input -> input.info.isExternal()));
             }
         };
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 381903e670..da97f02ec4 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
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.upgrade;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.JcrConstants.JCR_SAMENAMESIBLINGS;
 import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
@@ -34,6 +33,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.nodetype.TypePredicate;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.DefaultEditor;
@@ -160,7 +160,7 @@ public class SameNameSiblingsEditor extends DefaultEditor {
      * @return a list of names of children accepting the predicate
      */
     private static Iterable<String> filterChildren(NodeState parent, final 
Predicate<NodeState> predicate) {
-        return transform(filter(parent.getChildNodeEntries(),
+        return transform(IterableUtils.filter(parent.getChildNodeEntries(),
                 input -> predicate.test(input.getNodeState())),
                 input -> input.getName());
     }


Reply via email to