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

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

commit d66adcb1aca2aa3cb6d0ea1ce2b7c18baa5ba6e0
Author: Rishabh Kumar <d...@adobe.com>
AuthorDate: Thu Apr 24 16:24:40 2025 +0530

    OAK-11663 : removed usage of Guava's Iterators.filter with oak-commons
---
 .../external/impl/jmx/Delegatee.java               |  2 +-
 .../impl/principal/CachedGroupPrincipal.java       |  2 +-
 .../principal/ExternalGroupPrincipalProvider.java  |  6 +++---
 .../external/AbstractExternalAuthTest.java         |  3 ++-
 .../plugins/blob/datastore/DataStoreBlobStore.java |  4 ++--
 .../oak/plugins/identifier/IdentifierManager.java  |  3 +--
 .../plugins/index/aggregate/AggregationCursor.java |  2 +-
 .../oak/plugins/index/cursor/AncestorCursor.java   |  3 ++-
 .../oak/plugins/index/cursor/PathCursor.java       |  3 ++-
 .../oak/security/principal/EveryoneFilter.java     |  2 +-
 .../security/principal/PrincipalProviderImpl.java  |  3 ++-
 .../oak/security/user/AbstractGroupPrincipal.java  |  2 +-
 .../oak/security/user/AuthorizableIterator.java    |  4 ++--
 .../security/user/DeclaredMembershipPredicate.java |  3 ++-
 .../security/user/EveryoneMembershipProvider.java  |  5 +++--
 .../oak/security/user/UserPrincipalProvider.java   |  3 ++-
 .../oak/security/user/query/UserQueryManager.java  |  7 ++++---
 .../security/user/UserPrincipalProviderTest.java   |  2 +-
 .../oak/jcr/delegate/AuthorizableDelegator.java    |  5 +++--
 .../jackrabbit/oak/jcr/delegate/NodeDelegate.java  |  4 ++--
 .../jackrabbit/oak/jcr/session/NodeImpl.java       |  6 +++---
 .../oak/jcr/security/user/UserQueryTest.java       | 23 +++++++++++-----------
 .../document/flatfile/CountingIterable.java        |  3 ++-
 .../plugins/document/VersionGarbageCollector.java  |  3 ++-
 24 files changed, 57 insertions(+), 46 deletions(-)

diff --git 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java
 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java
index d4f33cd9e1..ff240b4199 100644
--- 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java
+++ 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java
@@ -357,7 +357,7 @@ final class Delegatee {
     private Iterator<String> internalListOrphanedIdentities() {
         try {
             Iterator<SyncedIdentity> it = handler.listIdentities(userMgr);
-            return Iterators.filter(Iterators.transform(it, syncedIdentity -> {
+            return IteratorUtils.filter(Iterators.transform(it, syncedIdentity 
-> {
                 if (syncedIdentity != null && isMyIDP(syncedIdentity)) {
                     try {
                         // nonNull-ExternalIdRef has already been asserted by 
'isMyIDP'
diff --git 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/CachedGroupPrincipal.java
 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/CachedGroupPrincipal.java
index 2e510ad0d0..88937c0f8b 100644
--- 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/CachedGroupPrincipal.java
+++ 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/CachedGroupPrincipal.java
@@ -94,7 +94,7 @@ final class CachedGroupPrincipal extends PrincipalImpl 
implements GroupPrincipal
                 throw new IllegalStateException(msg, e);
             }
         });
-        return IteratorUtils.asEnumeration(Iterators.filter(principals, 
Objects::nonNull));
+        return IteratorUtils.asEnumeration(IteratorUtils.filter(principals, 
Objects::nonNull));
     }
 
     private Group getGroup() throws RepositoryException {
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 f9d694b650..348cd8ce2a 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
@@ -237,7 +237,7 @@ class ExternalGroupPrincipalProvider implements 
PrincipalProvider, ExternalIdent
         // search for external group principals that have not been 
synchronzied into the repository
         Result result = findPrincipals(Objects.toString(nameHint, ""), false);
         if (result != null) {
-            return Iterators.filter(new GroupPrincipalIterator(nameHint, 
result), Objects::nonNull);
+            return IteratorUtils.filter(new GroupPrincipalIterator(nameHint, 
result), Objects::nonNull);
         } else {
             return Collections.emptyIterator();
         }
@@ -329,7 +329,7 @@ class ExternalGroupPrincipalProvider implements 
PrincipalProvider, ExternalIdent
             }
 
             Set<Value> valueSet = 
Collections.unmodifiableSet(SetUtils.toLinkedSet(vs));
-            Iterator<Group> declared = 
Iterators.filter(Iterators.transform(valueSet.iterator(), value -> {
+            Iterator<Group> declared = 
IteratorUtils.filter(Iterators.transform(valueSet.iterator(), value -> {
                 try {
                     String groupPrincipalName = value.getString();
                     Authorizable gr = userManager.getAuthorizable(new 
PrincipalImpl(groupPrincipalName));
@@ -669,7 +669,7 @@ class ExternalGroupPrincipalProvider implements 
PrincipalProvider, ExternalIdent
             if (!propValues.hasNext()) {
                 if (rows.hasNext()) {
                     ResultRow row = rows.next();
-                    propValues = 
Iterators.filter(row.getValue(REP_EXTERNAL_PRINCIPAL_NAMES).getValue(Type.STRINGS).iterator(),
 Objects::nonNull);
+                    propValues = 
IteratorUtils.filter(row.getValue(REP_EXTERNAL_PRINCIPAL_NAMES).getValue(Type.STRINGS).iterator(),
 Objects::nonNull);
                     idpName = getIdpName(row);
                 } else {
                     propValues = Collections.emptyIterator();
diff --git 
a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java
 
b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java
index bd64532715..b4e1b00308 100644
--- 
a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java
+++ 
b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.oak.api.PropertyState;
 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.IteratorUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.commons.jdkcompat.Java23Subject;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
@@ -135,7 +136,7 @@ public abstract class AbstractExternalAuthTest extends 
AbstractSecurityTest {
     @NotNull
     private static Iterator<String> getAllAuthorizableIds(@NotNull UserManager 
userManager) throws Exception {
         Iterator<Authorizable> iter = 
userManager.findAuthorizables("jcr:primaryType", null);
-        return Iterators.filter(Iterators.transform(iter, input -> {
+        return IteratorUtils.filter(Iterators.transform(iter, input -> {
             try {
                 if (input != null) {
                     return input.getID();
diff --git 
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java
 
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java
index 8a7f820f29..855917e700 100644
--- 
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java
+++ 
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java
@@ -19,7 +19,6 @@
 package org.apache.jackrabbit.oak.plugins.blob.datastore;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterators.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.transform;
 import static org.apache.commons.io.IOUtils.closeQuietly;
 
@@ -59,6 +58,7 @@ import org.apache.jackrabbit.oak.api.blob.BlobUploadOptions;
 import org.apache.jackrabbit.oak.cache.CacheLIRS;
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.apache.jackrabbit.oak.commons.StringUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob;
 import org.apache.jackrabbit.oak.plugins.blob.BlobTrackingStore;
 import org.apache.jackrabbit.oak.plugins.blob.ExtendedBlobStatsCollector;
@@ -495,7 +495,7 @@ public class DataStoreBlobStore
 
     @Override
     public Iterator<String> getAllChunkIds(final long maxLastModifiedTime) 
throws Exception {
-        return transform(filter(getAllRecords(), input -> {
+        return transform(IteratorUtils.filter(getAllRecords(), input -> {
                 if (input != null && (maxLastModifiedTime <= 0
                         || input.getLastModified() < maxLastModifiedTime)) {
                     return true;
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 4383594219..040dfceb92 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
@@ -52,7 +52,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
-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.oak.api.QueryEngine.NO_MAPPINGS;
 
@@ -270,7 +269,7 @@ public class IdentifierManager {
                     // skip references from the version storage (OAK-1196)
                     if 
(!rowPath.startsWith(VersionConstants.VERSION_STORE_PATH)) {
                             if (propertyName == null) {
-                                return filter(
+                                return IteratorUtils.filter(
                                         
transform(root.getTree(rowPath).getProperties().iterator(), new 
PropertyToPath()::apply),
                                         x -> x != null);
                             } else {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
index 2f50f995f2..53cfac6953 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
@@ -91,7 +91,7 @@ class AggregationCursor extends AbstractCursor {
             currentRow = cursor.next();
             if (!currentRow.isVirtualRow()) {
                 String path = currentRow.getPath();
-                aggregates = Iterators.filter(IteratorUtils.chainedIterator(
+                aggregates = 
IteratorUtils.filter(IteratorUtils.chainedIterator(
                         Collections.singleton(path).iterator(),
                         aggregator.getParents(rootState, path)),
                         x -> !seenPaths.contains(x));
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java
index 250958ca1c..8d61bfea02 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java
@@ -20,6 +20,7 @@ import java.util.Iterator;
 import java.util.function.Predicate;
 
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.spi.query.Cursor;
 import org.apache.jackrabbit.oak.spi.query.QueryLimits;
 import org.jetbrains.annotations.Nullable;
@@ -38,7 +39,7 @@ class AncestorCursor extends PathCursor {
     private static Iterator<String> transform(Cursor cursor, final int level) {
         Iterator<String> unfiltered = Iterators.transform(cursor,
                 input -> input != null ? input.getPath() : null);
-        Iterator<String> filtered = Iterators.filter(unfiltered,
+        Iterator<String> filtered = IteratorUtils.filter(unfiltered,
                 new Predicate<String>() {
             @Override
             public boolean test(@Nullable String input) {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/PathCursor.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/PathCursor.java
index 9abfbb21c7..94c6c7ef0f 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/PathCursor.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/PathCursor.java
@@ -22,6 +22,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.function.Predicate;
 
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.query.FilterIterators;
 import org.apache.jackrabbit.oak.query.index.IndexRowImpl;
 import org.apache.jackrabbit.oak.spi.query.Cursor;
@@ -42,7 +43,7 @@ public class PathCursor extends AbstractCursor {
     public PathCursor(Iterator<String> paths, boolean distinct, final 
QueryLimits settings) {
         Iterator<String> it = paths;
         if (distinct) {
-            it = Iterators.filter(it, new Predicate<String>() {
+            it = IteratorUtils.filter(it, new Predicate<String>() {
 
                 private final HashSet<String> known = new HashSet<String>();
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
index b59b5c9531..877bac5100 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
@@ -50,7 +50,7 @@ public final class EveryoneFilter {
         boolean noRange = offset == 0 && limit == Long.MAX_VALUE;
         if (noRange && matchesEveryone(nameHint, searchType)) {
             Iterator<Principal> principals = 
IteratorUtils.chainedIterator(resultPrincipals, 
Collections.singleton(EveryonePrincipal.getInstance()).iterator());
-            return Iterators.filter(principals, new EveryonePredicate()::test);
+            return IteratorUtils.filter(principals, new 
EveryonePredicate()::test);
         } else {
             return resultPrincipals;
         }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
index 0fd19da1cd..2f52559609 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
@@ -24,6 +24,7 @@ import org.apache.jackrabbit.api.security.user.QueryBuilder;
 import org.apache.jackrabbit.api.security.user.QueryBuilder.Direction;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.security.principal.GroupPrincipals;
@@ -144,7 +145,7 @@ class PrincipalProviderImpl implements PrincipalProvider {
         }
         try {
             Iterator<Authorizable> authorizables = findAuthorizables(nameHint, 
searchType, offset, limit);
-            Iterator<Principal> principals = 
Iterators.filter(Iterators.transform(authorizables, new 
AuthorizableToPrincipal()::apply), Objects::nonNull);
+            Iterator<Principal> principals = 
IteratorUtils.filter(Iterators.transform(authorizables, new 
AuthorizableToPrincipal()::apply), Objects::nonNull);
             return EveryoneFilter.filter(principals, nameHint, searchType, 
offset, limit);
         } catch (RepositoryException e) {
             log.debug(e.getMessage());
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
index 23463a0aa5..2931437197 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
@@ -105,6 +105,6 @@ abstract class AbstractGroupPrincipal extends 
TreeBasedPrincipal implements Grou
                 throw new IllegalStateException(msg, e);
             }
         });
-        return IteratorUtils.asEnumeration(Iterators.filter(principals, x -> x 
!= null));
+        return IteratorUtils.asEnumeration(IteratorUtils.filter(principals, x 
-> x != null));
     }
 }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
index 66b742f32a..2153304ae1 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
@@ -81,7 +81,7 @@ final class AuthorizableIterator implements 
Iterator<Authorizable> {
     private AuthorizableIterator(Iterator<? extends Authorizable> 
authorizables, long size, boolean filterDuplicates) {
         if (filterDuplicates)  {
             this.servedIds = new HashSet<>();
-            this.authorizables = Iterators.filter(authorizables, authorizable 
-> {
+            this.authorizables = IteratorUtils.filter(authorizables, 
authorizable -> {
                 if (authorizable == null) {
                     return false;
                 }
@@ -90,7 +90,7 @@ final class AuthorizableIterator implements 
Iterator<Authorizable> {
             });
         } else {
             this.servedIds = null;
-            this.authorizables = Iterators.filter(authorizables, 
Objects::nonNull);
+            this.authorizables = IteratorUtils.filter(authorizables, 
Objects::nonNull);
         }
         this.size = size;
     }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DeclaredMembershipPredicate.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DeclaredMembershipPredicate.java
index 7ea33c0b31..77addb79c7 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DeclaredMembershipPredicate.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DeclaredMembershipPredicate.java
@@ -27,6 +27,7 @@ import javax.jcr.RepositoryException;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
@@ -49,7 +50,7 @@ public class DeclaredMembershipPredicate implements 
Predicate<Authorizable> {
         if (groupTree == null) {
             contentIdIterator = Collections.emptyIterator();
         } else {
-            contentIdIterator = 
Iterators.filter(membershipProvider.getDeclaredMemberContentIDs(groupTree), x 
-> x != null);
+            contentIdIterator = 
IteratorUtils.filter(membershipProvider.getDeclaredMemberContentIDs(groupTree), 
x -> x != null);
         }
     }
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/EveryoneMembershipProvider.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/EveryoneMembershipProvider.java
index 99f4acab52..b1ce4f5b30 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/EveryoneMembershipProvider.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/EveryoneMembershipProvider.java
@@ -21,6 +21,7 @@ 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.commons.iterator.RangeIteratorAdapter;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.security.user.DynamicMembershipProvider;
@@ -50,8 +51,8 @@ class EveryoneMembershipProvider implements 
DynamicMembershipProvider {
     @Override
     public @NotNull Iterator<Authorizable> getMembers(@NotNull Group group, 
boolean includeInherited) throws RepositoryException {
         if (Utils.isEveryone(group)) {
-            Iterator<Authorizable> result = 
Iterators.filter(userManager.findAuthorizables(repPrincipalName, null, 
UserManager.SEARCH_TYPE_AUTHORIZABLE), x -> x != null);
-            return Iterators.filter(result, authorizable -> 
!Utils.isEveryone(authorizable));
+            Iterator<Authorizable> result = 
IteratorUtils.filter(userManager.findAuthorizables(repPrincipalName, null, 
UserManager.SEARCH_TYPE_AUTHORIZABLE), x -> x != null);
+            return IteratorUtils.filter(result, authorizable -> 
!Utils.isEveryone(authorizable));
         } else {
             return RangeIteratorAdapter.EMPTY;
         }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
index a6665983cc..3ed5cf057f 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.api.Result;
 import org.apache.jackrabbit.oak.api.ResultRow;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.security.principal.EveryoneFilter;
 import 
org.apache.jackrabbit.oak.spi.security.user.cache.CachedMembershipReader;
@@ -185,7 +186,7 @@ class UserPrincipalProvider implements PrincipalProvider {
                     statement.toString(), javax.jcr.query.Query.XPATH,
                     limit, offset, NO_BINDINGS, 
namePathMapper.getSessionLocalMappings());
 
-            Iterator<Principal> principals = Iterators.filter(
+            Iterator<Principal> principals = IteratorUtils.filter(
                     Iterators.transform(result.getRows().iterator(), new 
ResultRowToPrincipal()::apply),
                     Objects::nonNull);
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java
index 5c544eb0fb..c7dc7f3837 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java
@@ -36,6 +36,7 @@ import org.apache.jackrabbit.oak.api.ResultRow;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.commons.StringUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.security.user.DeclaredMembershipPredicate;
 import org.apache.jackrabbit.oak.security.user.UserManagerImpl;
@@ -99,7 +100,7 @@ public class UserQueryManager {
             if (groupId == null) {
                 return result;
             } else {
-                return Iterators.filter(result, authorizable -> 
!groupId.equals(getID(authorizable)));
+                return IteratorUtils.filter(result, authorizable -> 
!groupId.equals(getID(authorizable)));
             }
         } else {
             // filtering by group name included in query -> enforce offset and 
limit on the result set.
@@ -111,7 +112,7 @@ public class UserQueryManager {
                 filter = new GroupPredicate(userManager, groupId, false);
 
             }
-            return ResultIterator.create(builder.getOffset(), 
builder.getMaxCount(), Iterators.filter(result, filter::test));
+            return ResultIterator.create(builder.getOffset(), 
builder.getMaxCount(), IteratorUtils.filter(result, filter::test));
         }
     }
 
@@ -276,7 +277,7 @@ public class UserQueryManager {
             Iterable<? extends ResultRow> resultRows = query.getRows();
             Iterator<Authorizable> authorizables = 
Iterators.transform(resultRows.iterator(),
                     new ResultRowToAuthorizable(userManager, root, type, 
query.getSelectorNames())::apply);
-            return Iterators.filter(authorizables, new 
UniqueResultPredicate()::test);
+            return IteratorUtils.filter(authorizables, new 
UniqueResultPredicate()::test);
         } catch (ParseException e) {
             throw new RepositoryException("Invalid user query "+statement, e);
         }
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
index cecd59c352..7dd0daa7da 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
@@ -280,7 +280,7 @@ public class UserPrincipalProviderTest extends 
AbstractPrincipalProviderTest {
             root.commit();
 
             Iterator<? extends Principal> principals = 
principalProvider.findPrincipals(null, SEARCH_TYPE_GROUP);
-            Iterator filtered = Iterators.filter(principals, principal -> 
EveryonePrincipal.NAME.equals(principal.getName()));
+            Iterator filtered = IteratorUtils.filter(principals, principal -> 
EveryonePrincipal.NAME.equals(principal.getName()));
             assertEquals(1, IteratorUtils.size(filtered));
         } finally {
             if (everyoneGroup != null) {
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/AuthorizableDelegator.java
 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/AuthorizableDelegator.java
index 4eece2dc3c..cfa6cb1b4b 100644
--- 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/AuthorizableDelegator.java
+++ 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/AuthorizableDelegator.java
@@ -23,6 +23,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -116,7 +117,7 @@ abstract class AuthorizableDelegator implements 
Authorizable {
             @Override
             public Iterator<Group> perform() throws RepositoryException {
                 Iterator<Group> groups = delegate.declaredMemberOf();
-                return Iterators.transform(Iterators.filter(groups, 
Objects::nonNull), group -> GroupDelegator.wrap(sessionDelegate, group));
+                return Iterators.transform(IteratorUtils.filter(groups, 
Objects::nonNull), group -> GroupDelegator.wrap(sessionDelegate, group));
             }
         });
     }
@@ -129,7 +130,7 @@ abstract class AuthorizableDelegator implements 
Authorizable {
             @Override
             public Iterator<Group> perform() throws RepositoryException {
                 Iterator<Group> groups = delegate.memberOf();
-                return Iterators.transform(Iterators.filter(groups, 
Objects::nonNull), group -> GroupDelegator.wrap(sessionDelegate, group));
+                return Iterators.transform(IteratorUtils.filter(groups, 
Objects::nonNull), group -> GroupDelegator.wrap(sessionDelegate, group));
             }
         });
     }
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 35a51ad212..0fd9572649 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.Iterators.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.transform;
 import static org.apache.jackrabbit.JcrConstants.JCR_ISMIXIN;
 import static org.apache.jackrabbit.JcrConstants.JCR_LOCKISDEEP;
@@ -78,6 +77,7 @@ import org.apache.jackrabbit.oak.api.Tree.Status;
 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.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.jcr.lock.LockDeprecation;
 import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager;
@@ -341,7 +341,7 @@ public class NodeDelegate extends ItemDelegate {
     public Iterator<NodeDelegate> getChildren() throws 
InvalidItemStateException {
         Iterator<Tree> iterator = getTree().getChildren().iterator();
         return transform(
-                filter(iterator, tree -> tree.exists()),
+                IteratorUtils.filter(iterator, tree -> tree.exists()),
                 tree -> new NodeDelegate(sessionDelegate, tree));
     }
 
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java
index bb88878b30..adf679766a 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java
@@ -615,7 +615,7 @@ public class NodeImpl<T extends NodeDelegate> extends 
ItemImpl<T> implements Jac
             @NotNull
             @Override
             public NodeIterator perform() throws RepositoryException {
-                Iterator<NodeDelegate> children = Iterators.filter(
+                Iterator<NodeDelegate> children = IteratorUtils.filter(
                         node.getChildren(),
                         // TODO: use Oak names
                         state -> 
ItemNameMatcher.matches(toJcrPath(state.getName()), namePattern));
@@ -635,7 +635,7 @@ public class NodeImpl<T extends NodeDelegate> extends 
ItemImpl<T> implements Jac
             @NotNull
             @Override
             public NodeIterator perform() throws RepositoryException {
-                Iterator<NodeDelegate> children = Iterators.filter(
+                Iterator<NodeDelegate> children = IteratorUtils.filter(
                         node.getChildren(),
                         // TODO: use Oak names
                         state -> 
ItemNameMatcher.matches(toJcrPath(state.getName()), nameGlobs));
@@ -1724,7 +1724,7 @@ public class NodeImpl<T extends NodeDelegate> extends 
ItemImpl<T> implements Jac
         }
 
         public Iterator<PropertyDelegate> iterator() throws 
InvalidItemStateException {
-            return Iterators.filter(node.getProperties(), predicate::test);
+            return IteratorUtils.filter(node.getProperties(), predicate::test);
         }
 
         public long getSize() {
diff --git 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
index da82c39dcf..052e0dd381 100644
--- 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
+++ 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
@@ -35,6 +35,7 @@ import org.apache.jackrabbit.api.security.user.QueryBuilder;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.commons.jackrabbit.user.AuthorizableQueryManager;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
 import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
@@ -275,7 +276,7 @@ public class UserQueryTest extends AbstractUserTest {
             });
 
             Iterator<Authorizable> members = g.getMembers();
-            Iterator<Authorizable> users = Iterators.filter(members, 
+            Iterator<Authorizable> users = IteratorUtils.filter(members,
                     authorizable -> !authorizable.isGroup());
             assertSameElements(result, users);
         }
@@ -297,7 +298,7 @@ public class UserQueryTest extends AbstractUserTest {
             });
 
             Iterator<Authorizable> members = g.getDeclaredMembers();
-            Iterator<Authorizable> users = Iterators.filter(members,
+            Iterator<Authorizable> users = IteratorUtils.filter(members,
                 authorizable -> authorizable.isGroup());
             assertSameElements(result, users);
         }
@@ -338,7 +339,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<Authorizable> expected = 
Iterators.filter(authorizables.iterator(), authorizable -> {
+        Iterator<Authorizable> expected = 
IteratorUtils.filter(authorizables.iterator(), authorizable -> {
                 try {
                     String name = authorizable.getID();
                     Principal principal = authorizable.getPrincipal();
@@ -413,7 +414,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] canFly = user.getProperty("canFly");
                     return canFly != null && canFly.length == 1 && 
canFly[0].getBoolean();
@@ -436,7 +437,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] weight = user.getProperty("profile/weight");
                     return weight != null && weight.length == 1 && 
weight[0].getDouble() > 2000.0;
@@ -459,7 +460,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] numberOfLegs = user.getProperty("numberOfLegs");
                     return numberOfLegs != null && numberOfLegs.length == 1 && 
numberOfLegs[0].getLong() == 8;
@@ -482,7 +483,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] poisonous = user.getProperty("poisonous");
                     return poisonous != null && poisonous.length == 1;
@@ -505,7 +506,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] food = user.getProperty("profile/food");
                     if (food == null || food.length != 1) {
@@ -591,7 +592,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] cute = user.getProperty("profile/cute");
                     Value[] black = user.getProperty("color");
@@ -618,7 +619,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<User> expected = Iterators.filter(users.iterator(), user -> {
+        Iterator<User> expected = IteratorUtils.filter(users.iterator(), user 
-> {
                 try {
                     Value[] food = user.getProperty("profile/food");
                     return food != null && food.length == 1 &&
@@ -852,7 +853,7 @@ public class UserQueryTest extends AbstractUserTest {
                 }
             });
 
-            Iterator<User> expected = Iterators.filter(sortedUsers.iterator(), 
user -> {
+            Iterator<User> expected = 
IteratorUtils.filter(sortedUsers.iterator(), user -> {
                     try {
                         Value[] cute = user.getProperty("profile/cute");
                         Value[] weight = user.getProperty("profile/weight");
diff --git 
a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/CountingIterable.java
 
b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/CountingIterable.java
index 93b9f63ca5..b8d5170855 100644
--- 
a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/CountingIterable.java
+++ 
b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/CountingIterable.java
@@ -22,6 +22,7 @@ package 
org.apache.jackrabbit.oak.index.indexer.document.flatfile;
 import java.util.Iterator;
 
 import org.apache.jackrabbit.guava.common.collect.Iterators;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 
 class CountingIterable<T> implements Iterable<T> {
     private final Iterable<T> delegate;
@@ -33,7 +34,7 @@ class CountingIterable<T> implements Iterable<T> {
 
     @Override
     public Iterator<T> iterator() {
-        return Iterators.filter(delegate.iterator(), (e) -> {
+        return IteratorUtils.filter(delegate.iterator(), (e) -> {
             count++;
             return true;
         });
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
index 5ba70f150a..bf096e53eb 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
@@ -44,6 +44,7 @@ import java.util.stream.StreamSupport;
 
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.commons.sort.StringSort;
 import org.apache.jackrabbit.oak.commons.time.Stopwatch;
 import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key;
@@ -2397,7 +2398,7 @@ public class VersionGarbageCollector {
 
         private Iterator<String> getPrevDocIdsToDelete() throws IOException {
             ensureSorted();
-            return Iterators.filter(prevDocIdsToDelete.getIds(),
+            return IteratorUtils.filter(prevDocIdsToDelete.getIds(),
                     input -> !exclude.contains(input));
         }
 


Reply via email to