This is an automated email from the ASF dual-hosted git repository. daim pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push: new 92a32b1847 OAK-11666 : removed usage of Iterators.concat with oak-commons util (#2241) 92a32b1847 is described below commit 92a32b18473fb7776e10adf78c2c45d2d380e267 Author: Rishabh Kumar <rishabhdaim1...@gmail.com> AuthorDate: Wed Apr 23 09:38:13 2025 +0530 OAK-11666 : removed usage of Iterators.concat with oak-commons util (#2241) Co-authored-by: Rishabh Kumar <d...@adobe.com> --- .../security/authentication/external/impl/DefaultSyncHandler.java | 3 ++- .../external/impl/principal/AutoMembershipPrincipals.java | 3 ++- .../external/impl/principal/AutoMembershipProvider.java | 3 ++- .../jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java | 3 ++- .../apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java | 3 ++- .../jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java | 3 ++- .../main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java | 2 +- .../authorization/composite/CompositeAccessControlManager.java | 5 +++-- .../security/authorization/permission/CompiledPermissionImpl.java | 6 +++--- .../apache/jackrabbit/oak/security/principal/EveryoneFilter.java | 3 ++- .../apache/jackrabbit/oak/security/user/AuthorizableIterator.java | 3 ++- .../jackrabbit/oak/security/user/DynamicMembershipTracker.java | 5 +++-- .../org/apache/jackrabbit/oak/security/user/MembershipProvider.java | 2 +- .../org/apache/jackrabbit/oak/security/user/MembershipWriter.java | 5 +++-- .../jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java | 3 ++- .../oak/index/indexer/document/flatfile/FlatFileStoreIterator.java | 4 ++-- .../oak/spi/security/principal/CompositePrincipalProvider.java | 2 +- .../apache/jackrabbit/oak/plugins/document/DocumentNodeState.java | 3 ++- .../jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java | 5 +++-- 19 files changed, 40 insertions(+), 26 deletions(-) diff --git a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java index 9d24a042a0..e47aee7a25 100644 --- a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java +++ b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java @@ -17,6 +17,7 @@ package org.apache.jackrabbit.oak.spi.security.authentication.external.impl; import org.apache.jackrabbit.guava.common.collect.Iterators; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Deactivate; @@ -226,7 +227,7 @@ public class DefaultSyncHandler implements SyncHandler, AutoMembershipAware { @Override public Iterator<Authorizable> getAutoMembers(@NotNull UserManager userManager, @NotNull Group group) { - return Iterators.concat(getServices().stream().map(autoMembershipConfig -> autoMembershipConfig.getAutoMembers(userManager, group)).iterator()); + return IteratorUtils.chainedIterator(getServices().stream().map(autoMembershipConfig -> autoMembershipConfig.getAutoMembers(userManager, group)).iterator()); } } } diff --git a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java index 28be75b0bc..fec44266bf 100644 --- a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java +++ b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java @@ -20,6 +20,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.guava.common.collect.Iterators; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.SetUtils; import org.apache.jackrabbit.oak.spi.security.authentication.external.basic.AutoMembershipConfig; import org.apache.jackrabbit.oak.spi.security.principal.GroupPrincipals; @@ -96,7 +97,7 @@ final class AutoMembershipPrincipals { Iterator<Authorizable> getMembersFromAutoMembershipConfig(@NotNull Group group) { List<Iterator<? extends Authorizable>> results = new ArrayList<>(); autoMembershipConfigMap.values().forEach(autoMembershipConfig -> results.add(autoMembershipConfig.getAutoMembers(userManager, group))); - return Iterators.concat(results.iterator()); + return IteratorUtils.chainedIterator(results.iterator()); } /** diff --git a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java index dd7bacbcdb..2305d45ab4 100644 --- a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java +++ b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java @@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.api.QueryEngine; 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.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.security.authentication.external.basic.AutoMembershipConfig; @@ -95,7 +96,7 @@ class AutoMembershipProvider implements DynamicMembershipProvider { searchGlobalMembers(group, results); // add members from conditional automembership mapping results.add(autoMembershipPrincipals.getMembersFromAutoMembershipConfig(group)); - return Iterators.concat(results.iterator()); + return IteratorUtils.chainedIterator(results.iterator()); } @Override diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java index 8e1fc4767c..9abbe60171 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java @@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.time.Stopwatch; import org.apache.jackrabbit.core.data.AbstractDataStore; import org.apache.jackrabbit.core.data.DataIdentifier; @@ -273,7 +274,7 @@ public abstract class AbstractSharedCachingDataStore extends AbstractDataStore */ @Override public Iterator<DataIdentifier> getAllIdentifiers() throws DataStoreException { - return Iterators.concat(Iterators.transform(cache.getStagingCache().getAllIdentifiers(), + return IteratorUtils.chainedIterator(Iterators.transform(cache.getStagingCache().getAllIdentifiers(), id -> new DataIdentifier(id)), backend.getAllIdentifiers()); } 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 dab06589ca..858c51c03b 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java @@ -39,6 +39,7 @@ import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.QueryUtils; import org.apache.jackrabbit.oak.commons.UUIDUtils; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState; @@ -237,7 +238,7 @@ public class IdentifierManager { return new Iterable<String>() { @Override public Iterator<String> iterator() { - return Iterators.concat(transform(result.getRows().iterator(), new RowToPaths()::apply)); + return IteratorUtils.chainedIterator(transform(result.getRows().iterator(), new RowToPaths()::apply)); } class RowToPaths implements Function<ResultRow, Iterator<String>> { 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 186b4f9a69..2900f77851 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 @@ -23,6 +23,7 @@ import java.util.Set; import org.apache.jackrabbit.oak.api.PropertyValue; import org.apache.jackrabbit.oak.api.Result.SizePrecision; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.plugins.index.cursor.AbstractCursor; import org.apache.jackrabbit.oak.spi.query.Cursor; import org.apache.jackrabbit.oak.spi.query.IndexRow; @@ -89,7 +90,7 @@ class AggregationCursor extends AbstractCursor { currentRow = cursor.next(); if (!currentRow.isVirtualRow()) { String path = currentRow.getPath(); - aggregates = Iterators.filter(Iterators.concat( + aggregates = Iterators.filter(IteratorUtils.chainedIterator( Iterators.singletonIterator(path), aggregator.getParents(rootState, path)), x -> !seenPaths.contains(x)); diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java index 2ae273356f..4647cbdd5a 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java @@ -325,7 +325,7 @@ public class UnionQueryImpl implements Query { rightIter = ((MeasuringIterator) rightRows).getDelegate(); } if (orderBy == null) { - it = Iterators.concat(leftIter, rightIter); + it = IteratorUtils.chainedIterator(leftIter, rightIter); } else { // This would suggest either the sub queries are sorted by index or explicitly by QueryImpl (in case of traversing index) // So use mergeSorted here. diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java index 85d6c5b449..9dc11b000d 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java @@ -38,6 +38,7 @@ import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager; import org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy; import org.apache.jackrabbit.commons.iterator.AccessControlPolicyIteratorAdapter; 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.SecurityProvider; import org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager; @@ -109,7 +110,7 @@ class CompositeAccessControlManager extends AbstractAccessControlManager { l.add(acMgr.getApplicablePolicies(absPath)); } } - return new AccessControlPolicyIteratorAdapter(Iterators.concat(l.toArray(new AccessControlPolicyIterator[0]))); + return new AccessControlPolicyIteratorAdapter(IteratorUtils.chainedIterator(l.toArray(new AccessControlPolicyIterator[0]))); } @Override @@ -190,6 +191,6 @@ class CompositeAccessControlManager extends AbstractAccessControlManager { } } } - return Iterators.concat(iterators.build().toArray(new Iterator[0])); + return IteratorUtils.chainedIterator(iterators.build().toArray(new Iterator[0])); } } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java index a9e7483995..eab7f64338 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java @@ -32,6 +32,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.commons.PathUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.plugins.tree.TreeType; import org.apache.jackrabbit.oak.plugins.tree.TreeTypeProvider; @@ -54,7 +55,6 @@ import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.apache.jackrabbit.guava.common.collect.Iterators.concat; import static org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission.ALL; import static org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission.EMPTY; @@ -441,7 +441,7 @@ final class CompiledPermissionImpl implements CompiledPermissions, PermissionCon if (groupStore != null) { groupEntries = groupStore.getEntryIterator(predicate); } - return concat(userEntries, groupEntries); + return IteratorUtils.chainedIterator(userEntries, groupEntries); } @Nullable @@ -605,7 +605,7 @@ final class CompiledPermissionImpl implements CompiledPermissions, PermissionCon if (groupStore != null) { groupIt = new LazyIterator(this, false, predicate); } - return concat(userIt, groupIt); + return IteratorUtils.chainedIterator(userIt, groupIt); } @NotNull 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 580c21e44a..e2e5c0bdfe 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 @@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.security.principal; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.api.security.principal.PrincipalManager; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -47,7 +48,7 @@ public final class EveryoneFilter { public static Iterator<Principal> filter(@NotNull Iterator<Principal> resultPrincipals, @Nullable String nameHint, int searchType, long offset, long limit) { boolean noRange = offset == 0 && limit == Long.MAX_VALUE; if (noRange && matchesEveryone(nameHint, searchType)) { - Iterator<Principal> principals = Iterators.concat(resultPrincipals, Iterators.singletonIterator(EveryonePrincipal.getInstance())); + Iterator<Principal> principals = IteratorUtils.chainedIterator(resultPrincipals, Iterators.singletonIterator(EveryonePrincipal.getInstance())); return Iterators.filter(principals, new EveryonePredicate()::test); } else { return resultPrincipals; 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 9179bcfd7d..66b742f32a 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 @@ -20,6 +20,7 @@ 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.LongUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @@ -74,7 +75,7 @@ final class AuthorizableIterator implements Iterator<Authorizable> { size = LongUtils.safeAdd(size, l); } } - return new AuthorizableIterator(Iterators.concat(it1, it2), size, filterDuplicates); + return new AuthorizableIterator(IteratorUtils.chainedIterator(it1, it2), size, filterDuplicates); } private AuthorizableIterator(Iterator<? extends Authorizable> authorizables, long size, boolean filterDuplicates) { diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java index fb3473f37e..ca34a96df2 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.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.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.user.DynamicMembershipProvider; import org.apache.jackrabbit.oak.spi.security.user.DynamicMembershipService; @@ -101,7 +102,7 @@ public class DynamicMembershipTracker extends AbstractServiceTracker<DynamicMemb for (int i = 0; i < size; i++) { members[i] = providers.get(i).getMembers(group, includeInherited); } - return Iterators.concat(members); + return IteratorUtils.chainedIterator(members); } @Override @@ -121,7 +122,7 @@ public class DynamicMembershipTracker extends AbstractServiceTracker<DynamicMemb for (int i = 0; i < size; i++) { groups[i] = providers.get(i).getMembership(authorizable, includeInherited); } - return Iterators.concat(groups); + return IteratorUtils.chainedIterator(groups); } } } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java index 3159df00d0..aa9c856162 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java @@ -354,7 +354,7 @@ class MembershipProvider extends AuthorizableBaseProvider { private Iterator<String> propertyValues; private MemberReferenceIterator(@NotNull Tree groupTree) { - this.trees = Iterators.concat( + this.trees = IteratorUtils.chainedIterator( Iterators.singletonIterator(groupTree), groupTree.getChild(REP_MEMBERS_LIST).getChildren().iterator() ); diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java index 107f824454..5d33e2bc3f 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java @@ -26,6 +26,7 @@ import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.spi.security.user.UserConstants; import org.apache.jackrabbit.oak.plugins.memory.PropertyBuilder; import org.jetbrains.annotations.NotNull; @@ -74,7 +75,7 @@ public class MembershipWriter { Set<String> addMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds) { // check all possible rep:members properties for the new member and also find the one with the least values Tree membersList = groupTree.getChild(UserConstants.REP_MEMBERS_LIST); - Iterator<Tree> trees = Iterators.concat( + Iterator<Tree> trees = IteratorUtils.chainedIterator( Iterators.singletonIterator(groupTree), membersList.getChildren().iterator() ); @@ -203,7 +204,7 @@ public class MembershipWriter { @NotNull Set<String> removeMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds) { Tree membersList = groupTree.getChild(UserConstants.REP_MEMBERS_LIST); - Iterator<Tree> trees = Iterators.concat( + Iterator<Tree> trees = IteratorUtils.chainedIterator( Iterators.singletonIterator(groupTree), membersList.getChildren().iterator() ); diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java index a27890a6b1..be0bcb19fe 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java @@ -45,6 +45,7 @@ import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.PerfLogger; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.StreamUtils; import org.apache.jackrabbit.oak.commons.conditions.Validate; import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier; @@ -1618,7 +1619,7 @@ public class LucenePropertyIndex extends FulltextIndex { .transform(path -> new FulltextResultRow(path, 0, null, null, null)); //Property index itr should come first - return Iterators.concat(propIndex.iterator(), itr); + return IteratorUtils.chainedIterator(propIndex.iterator(), itr); } class DelayedLuceneFacetProvider implements FacetProvider { diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java index f73afb0a66..96eb9c4f62 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java @@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.index.indexer.document.flatfile; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; import org.apache.jackrabbit.oak.commons.IOUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry; import org.apache.jackrabbit.oak.index.indexer.document.flatfile.linkedList.FlatFileBufferLinkedList; import org.apache.jackrabbit.oak.index.indexer.document.flatfile.linkedList.NodeStateEntryList; @@ -36,7 +37,6 @@ import java.io.Closeable; import java.util.Iterator; import java.util.Set; -import static org.apache.jackrabbit.guava.common.collect.Iterators.concat; import static org.apache.jackrabbit.guava.common.collect.Iterators.singletonIterator; class FlatFileStoreIterator extends AbstractIterator<NodeStateEntry> implements Iterator<NodeStateEntry>, Closeable { @@ -149,7 +149,7 @@ class FlatFileStoreIterator extends AbstractIterator<NodeStateEntry> implements } private Iterable<NodeStateEntry> getEntries() { - return () -> concat(singletonIterator(current), queueIterator()); + return () -> IteratorUtils.chainedIterator(singletonIterator(current), queueIterator()); } private Iterator<NodeStateEntry> queueIterator() { diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java index 11c50a562c..8bed2926ec 100644 --- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java +++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java @@ -119,7 +119,7 @@ public class CompositePrincipalProvider implements PrincipalProvider { iterators[i++] = provider.findPrincipals(nameHint, searchType); } } - return Iterators.concat(iterators); + return IteratorUtils.chainedIterator(iterators); } @NotNull diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java index ea24d3abcd..2bbefdef6a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java @@ -28,6 +28,7 @@ import org.apache.jackrabbit.guava.common.collect.TreeTraverser; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.conditions.Validate; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.commons.json.JsopReader; @@ -364,7 +365,7 @@ public class DocumentNodeState extends AbstractDocumentNodeState implements Cach if (bundlingContext.hasOnlyBundledChildren()){ return getBundledChildren(); } - return Iterators.concat(getBundledChildren(), new ChildNodeEntryIterator()); + return IteratorUtils.chainedIterator(getBundledChildren(), new ChildNodeEntryIterator()); } return new ChildNodeEntryIterator(); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index 2bb2c6b0e0..4314fa9932 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -61,6 +61,7 @@ import org.apache.jackrabbit.guava.common.util.concurrent.UncheckedExecutionExce import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; +import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; import org.apache.jackrabbit.oak.commons.collections.MapUtils; import org.apache.jackrabbit.oak.commons.collections.SetUtils; @@ -1266,7 +1267,7 @@ public class MongoDocumentStore implements DocumentStore { } // if there are some changes left, we'll apply them one after another i.e. failed ones - final Iterator<UpdateOp> it = Iterators.concat(operationsToCover.values().iterator(), duplicates.iterator()); + final Iterator<UpdateOp> it = IteratorUtils.chainedIterator(operationsToCover.values().iterator(), duplicates.iterator()); while (it.hasNext()) { UpdateOp op = it.next(); it.remove(); @@ -1364,7 +1365,7 @@ public class MongoDocumentStore implements DocumentStore { } // if there are some changes left, we'll apply them one after another - Iterator<UpdateOp> it = Iterators.concat(operationsToCover.values().iterator(), duplicates.iterator()); + Iterator<UpdateOp> it = IteratorUtils.chainedIterator(operationsToCover.values().iterator(), duplicates.iterator()); while (it.hasNext()) { UpdateOp op = it.next(); it.remove();