You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by da...@apache.org on 2025/04/24 10:54:52 UTC
(jackrabbit-oak) 01/01: OAK-11663 : removed usage of Guava's Iterators.filter with oak-commons
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 <di...@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));
}