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)); }