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 74adf10bd7 OAK-11527 : replaced Guava's Iterables.transform with 
oak-commons util (#2119)
74adf10bd7 is described below

commit 74adf10bd775b577fbaf97b6bf57d42e616658ff
Author: Rishabh Kumar <[email protected]>
AuthorDate: Wed Feb 26 19:14:26 2025 +0530

    OAK-11527 : replaced Guava's Iterables.transform with oak-commons util 
(#2119)
    
    Co-authored-by: Rishabh Kumar <[email protected]>
---
 .../impl/principal/SyncHandlerMappingTracker.java  |  2 +-
 .../ldap/impl/LdapIdentityProviderTest.java        |  4 ++--
 .../cug/impl/CugAccessControlManager.java          |  3 ++-
 .../authorization/cug/impl/CugImportBaseTest.java  |  3 ++-
 .../impl/PrincipalBasedAccessControlManager.java   |  2 +-
 .../PrincipalBasedAuthorizationConfiguration.java  |  3 ++-
 .../impl/PrincipalPolicyImporter.java              |  2 +-
 .../impl/AbstractPrincipalBasedTest.java           |  3 ++-
 .../impl/PrincipalPolicyImplTest.java              |  3 ++-
 .../impl/ReadablePathsAccessControlTest.java       |  5 +++--
 .../impl/ReadablePathsPermissionTest.java          |  3 ++-
 .../oak/plugins/blob/datastore/BlobIdTracker.java  |  4 ++--
 .../oak/plugins/blob/SharedDataStoreUtilsTest.java |  5 +++--
 .../blob/datastore/DataStoreBlobStoreTest.java     |  3 ++-
 .../oak/commons/sort/ExternalSortTest.java         |  4 ++--
 .../apache/jackrabbit/oak/spi/mount/MountInfo.java |  4 ++--
 .../main/java/org/apache/jackrabbit/oak/Oak.java   |  3 ++-
 .../jackrabbit/oak/core/SecureNodeState.java       |  3 +--
 .../oak/plugins/identifier/IdentifierManager.java  |  2 +-
 .../oak/plugins/index/IndexInfoServiceImpl.java    |  2 +-
 .../oak/plugins/index/IndexPathServiceImpl.java    |  3 +--
 .../plugins/index/reference/ReferenceIndex.java    |  3 +--
 .../migration/AbstractDecoratedNodeState.java      |  4 ++--
 .../plugins/nodetype/EffectiveNodeTypeImpl.java    |  2 +-
 .../oak/plugins/tree/impl/AbstractTree.java        |  3 +--
 .../jackrabbit/oak/query/ast/LowerCaseImpl.java    |  4 ++--
 .../accesscontrol/AccessControlManagerImpl.java    |  2 +-
 .../internal/SecurityProviderRegistration.java     |  2 +-
 .../user/CachedPrincipalMembershipReader.java      |  3 ++-
 .../oak/plugins/tree/impl/ImmutableTreeTest.java   |  3 ++-
 .../AuthorizationConfigurationImplOSGiTest.java    |  5 +++--
 .../AccessControlManagerImplTest.java              |  2 +-
 .../evaluation/AbstractQueryTest.java              |  7 +++---
 .../evaluation/ChildOrderPropertyTest.java         |  3 ++-
 .../permission/PermissionHookTest.java             |  2 +-
 .../oak/security/privilege/JcrAllTest.java         |  2 +-
 .../oak/security/privilege/PrivilegeImplTest.java  |  3 ++-
 .../external/CustomExternalIdentityProvider.java   |  3 ++-
 .../ThreeRolesPermissionProvider.java              |  3 ++-
 .../L5_CustomPermissionEvaluationTest.java         |  3 ++-
 .../security/privilege/L4_CustomPrivilegeTest.java |  3 ++-
 .../jackrabbit/oak/jcr/session/NodeImpl.java       |  3 ++-
 .../jackrabbit/oak/jcr/xml/ImporterImpl.java       |  4 ++--
 .../ActiveDeletedBlobCollectorMBeanImpl.java       |  4 ++--
 .../oak/plugins/index/lucene/IndexCopier.java      |  5 ++---
 .../index/lucene/hybrid/LuceneDocumentHolder.java  |  2 +-
 .../lucene/property/HybridPropertyIndexInfo.java   |  3 ++-
 .../lucene/property/HybridPropertyIndexLookup.java |  5 ++---
 .../index/lucene/property/RecursiveDeleteTest.java |  3 ++-
 .../indexer/document/NodeStateEntryTraverser.java  |  3 +--
 .../plugins/document/DocumentNodeStoreHelper.java  |  3 ++-
 .../index/indexer/document/flatfile/TestUtils.java |  3 ++-
 .../mongo/MongoDocumentStoreCheckHelper.java       |  4 ++--
 .../apache/jackrabbit/oak/run/PrintingDiff.java    |  4 ++--
 .../oak/plugins/index/search/AggregateTest.java    |  2 +-
 .../oak/spi/security/CompositeConfiguration.java   |  4 ++--
 .../security/privilege/PrivilegeBitsProvider.java  |  2 +-
 .../jackrabbit/oak/segment/tool/PrintingDiff.java  |  4 ++--
 .../jackrabbit/oak/segment/upgrade/UpgradeIT.java  |  4 ++--
 .../oak/composite/CompositeChildrenCountTest.java  |  6 +++---
 .../jackrabbit/oak/plugins/document/Branch.java    |  5 ++---
 .../jackrabbit/oak/plugins/document/Commit.java    |  3 +--
 .../oak/plugins/document/DocumentNodeState.java    |  4 ++--
 .../oak/plugins/document/DocumentNodeStore.java    |  5 ++---
 .../plugins/document/DocumentNodeStoreBranch.java  |  3 ++-
 .../document/DocumentNodeStoreMBeanImpl.java       |  7 +++---
 .../oak/plugins/document/LastRevRecoveryAgent.java |  5 ++---
 .../oak/plugins/document/MissingBcSweeper2.java    |  3 +--
 .../oak/plugins/document/NodeDocument.java         |  7 +++---
 .../oak/plugins/document/NodeDocumentSweeper.java  |  3 +--
 .../oak/plugins/document/PropertyHistory.java      |  3 +--
 .../oak/plugins/document/UnsavedModifications.java |  2 +-
 .../plugins/document/mongo/MongoDocumentStore.java |  4 ++--
 .../document/mongo/MongoMissingLastRevSeeker.java  |  4 ++--
 .../document/mongo/MongoVersionGCSupport.java      |  7 +++---
 .../plugins/document/rdb/RDBDocumentStoreJDBC.java |  3 +--
 .../secondary/DelegatingDocumentNodeState.java     |  2 +-
 .../oak/plugins/document/util/Utils.java           |  6 +++---
 .../oak/plugins/memory/MemoryChildNodeEntry.java   |  3 ++-
 .../oak/plugins/memory/MultiPropertyState.java     | 25 +++++++++++-----------
 .../oak/spi/state/AbstractNodeState.java           |  3 ++-
 .../oak/upgrade/SameNameSiblingsEditor.java        |  3 +--
 .../upgrade/checkpoint/CheckpointRetriever.java    |  3 ++-
 83 files changed, 160 insertions(+), 149 deletions(-)

diff --git 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
index 75f19d7812..3ebc6fcd48 100644
--- 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
+++ 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/SyncHandlerMappingTracker.java
@@ -78,7 +78,7 @@ final class SyncHandlerMappingTracker extends ServiceTracker {
     }
 
     Iterable<String> getIdpNames(@NotNull final String syncHandlerName) {
-        return IterableUtils.filter(Iterables.transform(referenceMap.values(), 
mapping -> {
+        return 
IterableUtils.filter(IterableUtils.transform(referenceMap.values(), mapping -> {
             if (syncHandlerName.equals(mapping.syncHandlerName)) {
                 return mapping.idpName;
             } else {
diff --git 
a/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderTest.java
 
b/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderTest.java
index 9887a75044..5f5198ca76 100644
--- 
a/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderTest.java
+++ 
b/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderTest.java
@@ -200,7 +200,7 @@ public class LdapIdentityProviderTest extends 
AbstractLdapIdentityProviderTest {
     public void testGetDeclaredMembers() throws Exception {
         ExternalGroup gr = idp.getGroup(TEST_GROUP1_NAME);
         Iterable<ExternalIdentityRef> memberrefs = gr.getDeclaredMembers();
-        Iterable<String> memberIds = Iterables.transform(memberrefs, 
externalIdentityRef -> externalIdentityRef.getId());
+        Iterable<String> memberIds = IterableUtils.transform(memberrefs, 
externalIdentityRef -> externalIdentityRef.getId());
 
         Set<String> expected = Set.of(TEST_GROUP1_MEMBERS);
         assertEquals(expected, SetUtils.toSet(memberIds));
@@ -237,7 +237,7 @@ public class LdapIdentityProviderTest extends 
AbstractLdapIdentityProviderTest {
 
         ExternalUser user = idp.getUser(TEST_USER1_UID);
         Iterable<ExternalIdentityRef> groupRefs = user.getDeclaredGroups();
-        Iterable<String> groupIds = Iterables.transform(groupRefs, 
externalIdentityRef -> externalIdentityRef.getId());
+        Iterable<String> groupIds = IterableUtils.transform(groupRefs, 
externalIdentityRef -> externalIdentityRef.getId());
         assertEquals(Set.of(TEST_USER1_GROUPS), SetUtils.toSet(groupIds));
     }
 
diff --git 
a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManager.java
 
b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManager.java
index c4c87fa6bf..96bcf54137 100644
--- 
a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManager.java
+++ 
b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManager.java
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.tree.RootProvider;
@@ -229,7 +230,7 @@ class CugAccessControlManager extends 
AbstractAccessControlManager implements Cu
             return new AccessControlPolicy[0];
         }
         Root r = getLatestRoot();
-        Set<String> candidates = collectEffectiveCandidates(r, 
Iterables.transform(principals, Principal::getName));
+        Set<String> candidates = collectEffectiveCandidates(r, 
IterableUtils.transform(principals, Principal::getName));
         if (candidates.isEmpty()) {
             return new AccessControlPolicy[0];
         } else {
diff --git 
a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugImportBaseTest.java
 
b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugImportBaseTest.java
index de74522c7a..70e86f735b 100644
--- 
a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugImportBaseTest.java
+++ 
b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugImportBaseTest.java
@@ -36,6 +36,7 @@ import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
@@ -191,7 +192,7 @@ public abstract class CugImportBaseTest {
 
     static void assertPrincipalNames(@NotNull Set<String> 
expectedPrincipalNames, @NotNull Value[] principalNames) {
         assertEquals(expectedPrincipalNames.size(), principalNames.length);
-        Set<String> result = 
SetUtils.toSet(Iterables.transform(Set.of(principalNames), principalName -> {
+        Set<String> result = 
SetUtils.toSet(IterableUtils.transform(Set.of(principalNames), principalName -> 
{
             try {
                 return principalName.getString();
             } catch (RepositoryException e) {
diff --git 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManager.java
 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManager.java
index a1b1df7db0..c419f6e1a0 100644
--- 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManager.java
+++ 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManager.java
@@ -231,7 +231,7 @@ class PrincipalBasedAccessControlManager extends 
AbstractAccessControlManager im
                     entries.add(entry);
                 }
             }
-            Iterable<PrincipalAccessControlList> acls = 
Iterables.transform(m.entrySet(), entry -> new 
ImmutablePrincipalPolicy(entry.getKey(), filter.getOakPath(entry.getKey()), 
entry.getValue(), mgrProvider.getRestrictionProvider(), getNamePathMapper()));
+            Iterable<PrincipalAccessControlList> acls = 
IterableUtils.transform(m.entrySet(), entry -> new 
ImmutablePrincipalPolicy(entry.getKey(), filter.getOakPath(entry.getKey()), 
entry.getValue(), mgrProvider.getRestrictionProvider(), getNamePathMapper()));
 
             if (ReadPolicy.hasEffectiveReadPolicy(readPaths, oakPath)) {
                 Iterable<AccessControlPolicy> iterable = 
IterableUtils.chainedIterable(acls, Collections.singleton(ReadPolicy.INSTANCE));
diff --git 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAuthorizationConfiguration.java
 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAuthorizationConfiguration.java
index ba05f846e9..e7461b7e27 100644
--- 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAuthorizationConfiguration.java
+++ 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAuthorizationConfiguration.java
@@ -19,6 +19,7 @@ package 
org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
 import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
@@ -128,7 +129,7 @@ public class PrincipalBasedAuthorizationConfiguration 
extends ConfigurationBase
         if (!f.canHandle(principals)) {
             return EmptyPermissionProvider.getInstance();
         } else {
-            Iterable<String> principalPaths = Iterables.transform(principals, 
f::getOakPath);
+            Iterable<String> principalPaths = 
IterableUtils.transform(principals, f::getOakPath);
             return new PrincipalBasedPermissionProvider(root, workspaceName, 
principalPaths, this);
         }
     }
diff --git 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporter.java
 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporter.java
index 95919b409f..df7496e2ff 100644
--- 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporter.java
+++ 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporter.java
@@ -250,7 +250,7 @@ class PrincipalPolicyImporter implements 
ProtectedNodeImporter, ProtectedPropert
                 if (REP_EFFECTIVE_PATH.equals(oakName) && PropertyType.PATH == 
prop.getType()) {
                     effectivePath = extractEffectivePath(prop);
                 } else if (REP_PRIVILEGES.equals(oakName) && PropertyType.NAME 
== prop.getType()) {
-                    privs = 
getPrivileges(Iterables.transform(prop.getTextValues(), TextValue::getString));
+                    privs = 
getPrivileges(IterableUtils.transform(prop.getTextValues(), 
TextValue::getString));
                 } else {
                     throw new ConstraintViolationException("Unsupported 
property '"+oakName+"' with type "+prop.getType()+" within policy entry of type 
rep:PrincipalEntry");
                 }
diff --git 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
index 04830425cd..049a57c028 100644
--- 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
+++ 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.oak.AbstractSecurityTest;
 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.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.namepath.impl.LocalNameMapper;
 import org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl;
@@ -112,7 +113,7 @@ public abstract class AbstractPrincipalBasedTest extends 
AbstractSecurityTest {
     @Override
     @NotNull
     protected Privilege[] privilegesFromNames(@NotNull String... 
privilegeNames) throws RepositoryException {
-        Iterable<String> pn = 
Iterables.transform(SetUtils.toLinkedSet(privilegeNames), privName -> 
getNamePathMapper().getJcrName(privName));
+        Iterable<String> pn = 
IterableUtils.transform(SetUtils.toLinkedSet(privilegeNames), privName -> 
getNamePathMapper().getJcrName(privName));
         return super.privilegesFromNames(pn);
     }
 
diff --git 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImplTest.java
 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImplTest.java
index c8f5bd7bd9..7500bfda0a 100644
--- 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImplTest.java
+++ 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImplTest.java
@@ -24,6 +24,7 @@ import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
@@ -121,7 +122,7 @@ public class PrincipalPolicyImplTest extends 
AbstractPrincipalBasedTest {
         PropertyState privs = PropertyStates.createProperty(REP_PRIVILEGES, 
privilegeBitsProvider.getPrivilegeNames(entry.getPrivilegeBits()), Type.NAMES);
         when(t.getProperty(REP_PRIVILEGES)).thenReturn(privs);
 
-        Iterable props = Iterables.transform(entry.getRestrictions(), 
Restriction::getProperty);
+        Iterable props = IterableUtils.transform(entry.getRestrictions(), 
Restriction::getProperty);
         Tree rTree = mock(Tree.class);
         if (props.iterator().hasNext()) {
             when(rTree.exists()).thenReturn(true);
diff --git 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsAccessControlTest.java
 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsAccessControlTest.java
index 47aa1bfca0..07a1fc103c 100644
--- 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsAccessControlTest.java
+++ 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsAccessControlTest.java
@@ -21,6 +21,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
 import org.apache.jackrabbit.oak.api.ContentSession;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.commons.jdkcompat.Java23Subject;
 import org.apache.jackrabbit.oak.commons.PathUtils;
@@ -70,10 +71,10 @@ public class ReadablePathsAccessControlTest extends 
AbstractPrincipalBasedTest {
         Set<String> paths = 
getConfig(AuthorizationConfiguration.class).getParameters().getConfigValue(PermissionConstants.PARAM_READ_PATHS,
 PermissionConstants.DEFAULT_READ_PATHS);
         assertFalse(paths.isEmpty());
 
-        readablePaths = Iterators.cycle(Iterables.transform(paths, f -> 
getNamePathMapper().getJcrPath(f)));
+        readablePaths = Iterators.cycle(IterableUtils.transform(paths, f -> 
getNamePathMapper().getJcrPath(f)));
         Set<String> childPaths = new HashSet<>();
         for (String path : paths) {
-            Iterables.transform(root.getTree(path).getChildren(), tree -> 
getNamePathMapper().getJcrPath(tree.getPath())).forEach(childPaths::add);
+            IterableUtils.transform(root.getTree(path).getChildren(), tree -> 
getNamePathMapper().getJcrPath(tree.getPath())).forEach(childPaths::add);
         }
         readableChildPaths = Iterators.cycle(childPaths);
     }
diff --git 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsPermissionTest.java
 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsPermissionTest.java
index 16e7b5ec28..0f961ecafc 100644
--- 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsPermissionTest.java
+++ 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/ReadablePathsPermissionTest.java
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeLocation;
 import org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
@@ -64,7 +65,7 @@ public class ReadablePathsPermissionTest extends 
AbstractPrincipalBasedTest {
         readablePaths = Iterators.cycle(paths);
         Set<String> childPaths = new HashSet<>();
         for (String path : paths) {
-            Iterables.transform(root.getTree(path).getChildren(), 
Tree::getPath).forEach(childPaths::add);
+            IterableUtils.transform(root.getTree(path).getChildren(), 
Tree::getPath).forEach(childPaths::add);
         }
         readableChildPaths = Iterators.cycle(childPaths);
 
diff --git 
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java
 
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java
index 06df3ba1d7..2f406d0dae 100644
--- 
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java
+++ 
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java
@@ -38,6 +38,7 @@ import java.util.function.Predicate;
 
 import org.apache.jackrabbit.guava.common.base.Stopwatch;
 import org.apache.jackrabbit.core.data.DataRecord;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.commons.io.BurnOnCloseFileIterator;
@@ -49,7 +50,6 @@ import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.io.File.createTempFile;
 import static java.lang.System.currentTimeMillis;
 import static java.util.Collections.emptyIterator;
@@ -268,7 +268,7 @@ public class BlobIdTracker implements Closeable, 
BlobTracker {
             Iterable<DataRecord> refRecords = 
datastore.getAllMetadataRecords(fileNamePrefix);
 
             // Download all the corresponding files for the records
-            List<File> refFiles = ListUtils.toList(transform(refRecords, input 
-> {
+            List<File> refFiles = 
ListUtils.toList(IterableUtils.transform(refRecords, input -> {
                     InputStream inputStream = null;
                     try {
                         inputStream = input.getStream();
diff --git 
a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java
 
b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java
index d3e0d64659..9d5ad2406b 100644
--- 
a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java
+++ 
b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java
@@ -41,6 +41,7 @@ import org.apache.jackrabbit.core.data.DataIdentifier;
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStoreException;
 import org.apache.jackrabbit.oak.commons.FileIOUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore;
 import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreUtils;
@@ -473,7 +474,7 @@ public class SharedDataStoreUtilsTest {
             added.add(rec);
         }
 
-        Set<String> retrieved = 
SetUtils.toSet(Iterables.transform(SetUtils.toSet(dataStore.getAllRecords()),
+        Set<String> retrieved = 
SetUtils.toSet(IterableUtils.transform(SetUtils.toSet(dataStore.getAllRecords()),
                 input -> input.getIdentifier().toString()));
 
         assertEquals(added, retrieved);
@@ -504,7 +505,7 @@ public class SharedDataStoreUtilsTest {
             added.add(rec);
         }
 
-        Set<String> retrieved = 
SetUtils.toSet(Iterables.transform(SetUtils.toSet(dataStore.getAllRecords()),
+        Set<String> retrieved = 
SetUtils.toSet(IterableUtils.transform(SetUtils.toSet(dataStore.getAllRecords()),
                 input -> input.getIdentifier().toString()));
 
         assertEquals(added, retrieved);
diff --git 
a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java
 
b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java
index 3ba9521f4b..fe076fa418 100644
--- 
a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java
+++ 
b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java
@@ -36,6 +36,7 @@ import org.apache.jackrabbit.core.data.DataIdentifier;
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStore;
 import org.apache.jackrabbit.core.data.DataStoreException;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob;
@@ -171,7 +172,7 @@ public class DataStoreBlobStoreTest extends 
AbstractBlobStoreTest {
         DataIdentifier d30 = new DataIdentifier("d-30");
         List<DataIdentifier> dis = List.of(d10, d20, d30);
         List<DataRecord> recs = ListUtils.toList(
-            Iterables.transform(dis, input -> new TimeDataRecord(input)));
+            IterableUtils.transform(dis, input -> new TimeDataRecord(input)));
         OakFileDataStore mockedDS = mock(OakFileDataStore.class);
         when(mockedDS.getAllRecords()).thenReturn(recs.iterator());
         when(mockedDS.getRecord(new DataIdentifier("d-10"))).thenReturn(new 
TimeDataRecord(d10));
diff --git 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/ExternalSortTest.java
 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/ExternalSortTest.java
index 2303078a5d..3f01acf793 100644
--- 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/ExternalSortTest.java
+++ 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/ExternalSortTest.java
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.commons.sort;
 import net.jpountz.lz4.LZ4FrameInputStream;
 import net.jpountz.lz4.LZ4FrameOutputStream;
 import org.apache.jackrabbit.oak.commons.Compression;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -49,7 +50,6 @@ import java.util.List;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -487,7 +487,7 @@ public class ExternalSortTest {
         Function<String, TestLine> stringToType = line -> line != null ? new 
TestLine(line) : null;
         Function<TestLine, String> typeToString = tl -> tl != null ? tl.line : 
null;
 
-        String testData = String.join("\n", transform(testLines, tl -> 
tl.line));
+        String testData = String.join("\n", IterableUtils.transform(testLines, 
tl -> tl.line));
         File testFile = folder.newFile();
         try (BufferedWriter bufferedWriter = new BufferedWriter(new 
FileWriter(testFile, charset))) {
             bufferedWriter.write(testData);
diff --git 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java
index 3b67430193..3fb339b477 100644
--- 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java
+++ 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java
@@ -28,11 +28,11 @@ import java.util.Set;
 import java.util.TreeSet;
 import java.util.function.Function;
 
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.guava.common.collect.ImmutableSet;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath;
 import static org.apache.jackrabbit.oak.commons.PathUtils.isAncestor;
 import static 
org.apache.jackrabbit.oak.spi.mount.FragmentMatcher.Result.FULL_MATCH;
@@ -140,7 +140,7 @@ public final class MountInfo implements Mount {
 
     private static TreeSet<String> cleanCopy(Collection<String> includedPaths) 
{
         // ensure that paths don't have trailing slashes - this triggers an 
assertion in PathUtils isAncestor
-        return SetUtils.toTreeSet(transform(includedPaths, 
SANITIZE_PATH::apply));
+        return SetUtils.toTreeSet(IterableUtils.transform(includedPaths, 
SANITIZE_PATH));
     }
 
     public Set<String> getPathsSupportingFragments() {
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
index 2b03bfcc71..73d37c86ac 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
@@ -59,6 +59,7 @@ import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.jmx.QueryEngineSettingsMBean;
 import org.apache.jackrabbit.oak.api.jmx.RepositoryManagementMBean;
 import org.apache.jackrabbit.oak.commons.IOUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.commons.conditions.Validate;
 import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean;
@@ -704,7 +705,7 @@ public class Oak {
 
         // FIXME: OAK-810 move to proper workspace initialization
         // initialize default workspace
-        Iterable<WorkspaceInitializer> workspaceInitializers = 
Iterables.transform(securityProvider.getConfigurations(),
+        Iterable<WorkspaceInitializer> workspaceInitializers = 
IterableUtils.transform(securityProvider.getConfigurations(),
                 sc -> {
                         WorkspaceInitializer wi = sc.getWorkspaceInitializer();
                         if (wi instanceof QueryIndexProviderAware) {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java
index de259cddc3..cf37c1bf74 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java
@@ -29,7 +29,6 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 import java.util.function.Function;
 import java.util.function.Predicate;
@@ -144,7 +143,7 @@ class SecureNodeState extends AbstractNodeState {
             // everything is readable including ac-content -> no secure 
wrapper needed
             return state.getChildNodeEntries();
         } else if (treePermission.canRead()) {
-            Iterable<ChildNodeEntry> readable = transform(
+            Iterable<ChildNodeEntry> readable = IterableUtils.transform(
                     state.getChildNodeEntries(),
                     new WrapChildEntryFunction()::apply);
             return IterableUtils.filter(readable, new 
IterableNodePredicate()::test);
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 4983323e08..4ddb18f76f 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
@@ -319,7 +319,7 @@ public class IdentifierManager {
                             QueryEngine.INTERNAL_SQL2_QUERY,
                     Query.JCR_SQL2, bindings, NO_MAPPINGS);
 
-            Iterable<Tree> resultTrees = Iterables.transform(result.getRows(), 
row -> row.getTree(null));
+            Iterable<Tree> resultTrees = 
IterableUtils.transform(result.getRows(), row -> row.getTree(null));
             return IterableUtils.filter(resultTrees, tree1 -> 
!tree1.getPath().startsWith(VersionConstants.VERSION_STORE_PATH)
             );
         } catch (ParseException e) {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
index 3b5349ab08..f5c7e9884e 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
@@ -69,7 +69,7 @@ public class IndexInfoServiceImpl implements IndexInfoService{
         } else {
             activeIndexes.addAll(allIndexes);
         }
-        return 
IterableUtils.filter(Iterables.transform(indexPathService.getIndexPaths(), 
indexPath -> {
+        return 
IterableUtils.filter(IterableUtils.transform(indexPathService.getIndexPaths(), 
indexPath -> {
             try {
                 IndexInfo info = getInfo(indexPath);
                 if (info != null) {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
index 991da39f3e..64345037fc 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
@@ -44,7 +44,6 @@ import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.transform;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static 
org.apache.jackrabbit.oak.plugins.index.IndexConstants.DECLARING_NODE_TYPES;
@@ -91,7 +90,7 @@ public class IndexPathServiceImpl implements IndexPathService 
{
             log.warn("{} is not found to be indexed as part of nodetype index. 
Non root indexes would " +
                     "not be listed", INDEX_DEFINITIONS_NODE_TYPE);
             NodeState oakIndex = nodeStore.getRoot().getChildNode("oak:index");
-            return 
transform(IterableUtils.filter(oakIndex.getChildNodeEntries(),
+            return 
IterableUtils.transform(IterableUtils.filter(oakIndex.getChildNodeEntries(),
                     cne -> 
INDEX_DEFINITIONS_NODE_TYPE.equals(cne.getNodeState().getName(JCR_PRIMARYTYPE))),
                     cne -> PathUtils.concat("/oak:index", cne.getName()));
         }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
index c3aba25e70..088863cc16 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.reference;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.lang.Double.POSITIVE_INFINITY;
 import static javax.jcr.PropertyType.REFERENCE;
 import static javax.jcr.PropertyType.WEAKREFERENCE;
@@ -138,7 +137,7 @@ class ReferenceIndex implements QueryIndex {
         if (!"*".equals(name)) {
             paths = IterableUtils.filter(paths, path -> 
name.equals(getName(path)));
         }
-        paths = transform(paths, path -> getParentPath(path));
+        paths = IterableUtils.transform(paths, path -> getParentPath(path));
         return newPathCursor(paths, filter.getQueryLimits());
     }
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
index 4b27056cea..a2f8175f3b 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java
@@ -139,7 +139,7 @@ public abstract class AbstractDecoratedNodeState extends 
AbstractNodeState {
     @Override
     @NotNull
     public Iterable<? extends ChildNodeEntry> getChildNodeEntries() {
-        final Iterable<ChildNodeEntry> transformed = 
Iterables.transform(delegate.getChildNodeEntries(), childNodeEntry -> {
+        final Iterable<ChildNodeEntry> transformed = 
IterableUtils.transform(delegate.getChildNodeEntries(), childNodeEntry -> {
             if (childNodeEntry != null) {
                 final String name = childNodeEntry.getName();
                 final NodeState nodeState = decorate(name, 
childNodeEntry.getNodeState());
@@ -170,7 +170,7 @@ public abstract class AbstractDecoratedNodeState extends 
AbstractNodeState {
     @Override
     @NotNull
     public Iterable<? extends PropertyState> getProperties() {
-        final Iterable<PropertyState> propertyStates = Iterables.transform(
+        final Iterable<PropertyState> propertyStates = IterableUtils.transform(
                 delegate.getProperties(),
                 propertyState -> decorate(propertyState));
         return 
IterableUtils.filter(IterableUtils.chainedIterable(propertyStates, 
getNewPropertyStates()), Objects::nonNull);
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
index 21b3320b83..92eb14f171 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java
@@ -205,7 +205,7 @@ class EffectiveNodeTypeImpl implements EffectiveNodeType {
     @NotNull
     @Override
     public Iterable<NodeDefinition> getNamedNodeDefinitions(@NotNull final 
String oakName) {
-        return 
IterableUtils.chainedIterable(Iterables.transform(nodeTypes.values(),
+        return 
IterableUtils.chainedIterable(IterableUtils.transform(nodeTypes.values(),
                 input -> input.getDeclaredNamedNodeDefinitions(oakName)));
     }
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
index a8fe9e07eb..852e84047a 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.tree.impl;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.api.Tree.Status.MODIFIED;
 import static org.apache.jackrabbit.oak.api.Tree.Status.NEW;
 import static org.apache.jackrabbit.oak.api.Tree.Status.UNCHANGED;
@@ -309,7 +308,7 @@ public abstract class AbstractTree implements Tree {
     @Override
     @NotNull
     public Iterable<Tree> getChildren() {
-        Iterable<Tree> children = transform(getChildNames(),
+        Iterable<Tree> children = IterableUtils.transform(getChildNames(),
                 name ->  {
                     AbstractTree child = createChild(name);
                     return child.exists() ? child : null;
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java
index 08036577ce..a9e9a38535 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java
@@ -25,12 +25,12 @@ import javax.jcr.PropertyType;
 
 import org.apache.jackrabbit.oak.api.PropertyValue;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.query.index.FilterImpl;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
 import org.apache.jackrabbit.oak.spi.query.QueryConstants;
 import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.api.Type.STRING;
 import static org.apache.jackrabbit.oak.api.Type.STRINGS;
 
@@ -77,7 +77,7 @@ public class LowerCaseImpl extends DynamicOperandImpl {
         }
         // TODO toLowerCase(): document the Turkish locale problem
         if (p.getType().isArray()) {
-            Iterable<String> lowerCase = transform(p.getValue(STRINGS),
+            Iterable<String> lowerCase = 
IterableUtils.transform(p.getValue(STRINGS),
                     input -> input.toLowerCase());
             return PropertyValues.newString(lowerCase);
         } else {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
index 388574a718..9acaaab815 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImpl.java
@@ -845,7 +845,7 @@ public class AccessControlManagerImpl extends 
AbstractAccessControlManager imple
 
         private PrincipalPredicate(@Nullable String accessControlledPath, 
@NotNull Set<Principal> principals, @NotNull Collection<String> oakPaths) {
             this.accessControlledPath = accessControlledPath;
-            principalNames = Iterables.transform(principals, 
Principal::getName);
+            principalNames = IterableUtils.transform(principals, 
Principal::getName);
             this.oakPaths = oakPaths;
         }
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistration.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistration.java
index 643a90e7bd..f8efcf4ead 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistration.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistration.java
@@ -528,7 +528,7 @@ public class SecurityProviderRegistration {
         }
 
         closer = Closer.create();
-        Iterable<Iterable<Monitor<?>>> monitors = 
Iterables.transform(securityProvider.getConfigurations(), sc -> 
sc.getMonitors(statisticsProvider));
+        Iterable<Iterable<Monitor<?>>> monitors = 
IterableUtils.transform(securityProvider.getConfigurations(), sc -> 
sc.getMonitors(statisticsProvider));
         for (Monitor monitor : IterableUtils.chainedIterable(monitors)) {
             Registration reg = whiteboard.register(monitor.getMonitorClass(), 
monitor, monitor.getMonitorProperties());
             closer.register(reg::unregister);
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CachedPrincipalMembershipReader.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CachedPrincipalMembershipReader.java
index 750a9804ea..926390c1e3 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CachedPrincipalMembershipReader.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/CachedPrincipalMembershipReader.java
@@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.LongUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
 import org.apache.jackrabbit.oak.spi.security.user.cache.CacheLoader;
 import org.apache.jackrabbit.oak.spi.security.user.cache.CachePrincipalFactory;
@@ -228,7 +229,7 @@ class CachedPrincipalMembershipReader implements 
CachedMembershipReader {
                 }
             }
             cache.setProperty(this.expirationPropertyName, 
LongUtils.calculateExpirationTime(expiration));
-            String value = (groupPrincipals.isEmpty()) ? "" : String.join(",", 
Iterables.transform(groupPrincipals, input -> Text.escape(input.getName())));
+            String value = (groupPrincipals.isEmpty()) ? "" : String.join(",", 
IterableUtils.transform(groupPrincipals, input -> 
Text.escape(input.getName())));
             cache.setProperty(this.propertyName, value);
 
             root.commit(CommitMarker.asCommitAttributes());
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java
index af5c699e8e..34836b86d0 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeConstants;
 import org.apache.jackrabbit.oak.plugins.tree.TreeType;
@@ -265,7 +266,7 @@ public class ImmutableTreeTest extends AbstractSecurityTest 
{
     }
 
     private static void assertSequence(Iterable<Tree> trees, String... names) {
-        List<String> actual = ListUtils.toList(Iterables.transform(trees, 
input -> input.getName()));
+        List<String> actual = ListUtils.toList(IterableUtils.transform(trees, 
input -> input.getName()));
         assertEquals(List.of(names), actual);
     }
 
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImplOSGiTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImplOSGiTest.java
index c7308ec560..2e6d43cae7 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImplOSGiTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImplOSGiTest.java
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.security.authorization;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import 
org.apache.jackrabbit.oak.security.authorization.accesscontrol.AccessControlImporter;
 import 
org.apache.jackrabbit.oak.security.authorization.accesscontrol.AccessControlValidatorProvider;
 import 
org.apache.jackrabbit.oak.security.authorization.permission.MountPermissionProvider;
@@ -101,13 +102,13 @@ public class AuthorizationConfigurationImplOSGiTest 
extends AbstractSecurityTest
     @Test
     public void testGetCommitHooks() {
         List<Class> expected = List.of(VersionablePathHook.class, 
PermissionHook.class);
-        assertTrue(Iterables.elementsEqual(expected, 
Iterables.transform(authorizationConfiguration.getCommitHooks(adminSession.getWorkspaceName()),
 commitHook -> commitHook.getClass())));
+        assertTrue(Iterables.elementsEqual(expected, 
IterableUtils.transform(authorizationConfiguration.getCommitHooks(adminSession.getWorkspaceName()),
 commitHook -> commitHook.getClass())));
     }
 
     @Test
     public void testGetValidators() {
         List<Class> expected = List.of(PermissionStoreValidatorProvider.class, 
PermissionValidatorProvider.class, AccessControlValidatorProvider.class);
-        assertTrue(Iterables.elementsEqual(expected, 
Iterables.transform(authorizationConfiguration.getValidators(adminSession.getWorkspaceName(),
 Set.of(), new MoveTracker()), commitHook -> commitHook.getClass())));
+        assertTrue(Iterables.elementsEqual(expected, 
IterableUtils.transform(authorizationConfiguration.getValidators(adminSession.getWorkspaceName(),
 Set.of(), new MoveTracker()), commitHook -> commitHook.getClass())));
     }
 
     @Test
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImplTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImplTest.java
index fb9cff661e..9e83819baf 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImplTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerImplTest.java
@@ -1357,7 +1357,7 @@ public class AccessControlManagerImplTest extends 
AbstractAccessControlTest impl
         assertEquals(4, acl.getAccessControlEntries().length);
 
         Iterable<Tree> aceTrees = 
root.getTree(testPath).getChild(REP_POLICY).getChildren();
-        String[] aceNodeNames = 
IterableUtils.toArray(Iterables.transform(aceTrees, Tree::getName), 
String.class);
+        String[] aceNodeNames = 
IterableUtils.toArray(IterableUtils.transform(aceTrees, Tree::getName), 
String.class);
         assertArrayEquals(new String[]{"allow", "allow1", "deny2", "deny3"}, 
aceNodeNames);
     }
 
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/AbstractQueryTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/AbstractQueryTest.java
index 0cade51ff1..99d518dca8 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/AbstractQueryTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/AbstractQueryTest.java
@@ -23,6 +23,7 @@ import 
org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils
 import org.apache.jackrabbit.oak.api.Result;
 import org.apache.jackrabbit.oak.api.ResultRow;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration;
@@ -97,7 +98,7 @@ public abstract class AbstractQueryTest extends 
AbstractOakCoreTest {
         Result result = 
getTestRoot().getQueryEngine().executeQuery(getStatement(), Query.JCR_SQL2, 
Collections.emptyMap(), Collections.emptyMap());
 
         Iterable<String> expected = Set.of(node.getPath());
-        assertTrue(Iterables.elementsEqual(expected, 
Iterables.transform(result.getRows(), ResultRow::getPath)));
+        assertTrue(Iterables.elementsEqual(expected, 
IterableUtils.transform(result.getRows(), ResultRow::getPath)));
     }
 
     @Test
@@ -124,7 +125,7 @@ public abstract class AbstractQueryTest extends 
AbstractOakCoreTest {
         Result result = 
getTestRoot().getQueryEngine().executeQuery(getStatement(), Query.JCR_SQL2, 
Collections.emptyMap(), Collections.emptyMap());
 
         Iterable<String> expected = Set.of(node.getPath());
-        assertTrue(Iterables.elementsEqual(expected, 
Iterables.transform(result.getRows(), row -> row.getPath())));
+        assertTrue(Iterables.elementsEqual(expected, 
IterableUtils.transform(result.getRows(), row -> row.getPath())));
     }
 
     @Test
@@ -141,7 +142,7 @@ public abstract class AbstractQueryTest extends 
AbstractOakCoreTest {
         Result result = 
getTestRoot().getQueryEngine().executeQuery(getStatement(), Query.JCR_SQL2, 
Collections.emptyMap(), Collections.emptyMap());
 
         Iterable<String> expected = Set.of(node.getPath());
-        assertTrue(Iterables.elementsEqual(expected, 
Iterables.transform(result.getRows(), row -> row.getPath())));
+        assertTrue(Iterables.elementsEqual(expected, 
IterableUtils.transform(result.getRows(), row -> row.getPath())));
     }
 
     private void assertAccess(@NotNull String nodePath, @NotNull String 
subnodePath, boolean canReadPrimaryType) throws Exception {
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java
index 4eec3db229..0b6ad4f48c 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java
@@ -29,6 +29,7 @@ import org.apache.jackrabbit.JcrConstants;
 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.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeConstants;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -98,7 +99,7 @@ public class ChildOrderPropertyTest extends 
AbstractOakCoreTest {
         assertFalse(aTree.hasProperty(JcrConstants.JCR_PRIMARYTYPE));
 
         List<String> expected = List.of("/a/bb", "/a/b");
-        Iterable<String> childPaths = Iterables.transform(aTree.getChildren(), 
input -> input.getPath());
+        Iterable<String> childPaths = 
IterableUtils.transform(aTree.getChildren(), input -> input.getPath());
         assertTrue(childPaths.toString(), Iterables.elementsEqual(expected, 
childPaths));
     }
 }
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHookTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHookTest.java
index 0f577ba3f3..ad012e6d00 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHookTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHookTest.java
@@ -796,7 +796,7 @@ public class PermissionHookTest extends 
AbstractSecurityTest implements AccessCo
 
         principalPermissionStore = 
root.getTree(PermissionConstants.PERMISSIONS_STORE_PATH).getChild(adminSession.getWorkspaceName()).getChild(testPrincipal.getName());
         assertEquals(2, principalPermissionStore.getChildrenCount(10));
-        Iterable<String> paths = 
Iterables.transform(principalPermissionStore.getChildren(), tree -> 
tree.getProperty(REP_ACCESS_CONTROLLED_PATH).getValue(Type.STRING));
+        Iterable<String> paths = 
IterableUtils.transform(principalPermissionStore.getChildren(), tree -> 
tree.getProperty(REP_ACCESS_CONTROLLED_PATH).getValue(Type.STRING));
 
         assertEquals(Set.of(testPath, t.getPath()), SetUtils.toSet(paths));
     }
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java
index 519c61e56c..39494a7049 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java
@@ -68,7 +68,7 @@ public class JcrAllTest extends AbstractSecurityTest 
implements PrivilegeConstan
 
         PrivilegeManager pMgr = 
getSecurityProvider().getConfiguration(PrivilegeConfiguration.class).getPrivilegeManager(root,
 NamePathMapper.DEFAULT);
         Iterable<Privilege> declaredAggr = 
Arrays.asList(pMgr.getPrivilege(JCR_ALL).getDeclaredAggregatePrivileges());
-        String[] allAggregates = IterableUtils.toArray(Iterables.transform(
+        String[] allAggregates = IterableUtils.toArray(IterableUtils.transform(
                 declaredAggr,
                 privilege -> requireNonNull(privilege).getName()), 
String.class);
         PrivilegeBits all2 = bitsProvider.getBits(allAggregates);
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java
index c14b1edcb1..94648ae409 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java
@@ -25,6 +25,7 @@ import 
org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -66,7 +67,7 @@ public class PrivilegeImplTest extends AbstractSecurityTest 
implements Privilege
         assertEquals(expectedNames.length, aggr.length);
 
         Set<String> expected = SetUtils.toSet(expectedNames);
-        Set<String> result = SetUtils.toSet(Iterables.transform(Set.of(aggr), 
Privilege::getName));
+        Set<String> result = 
SetUtils.toSet(IterableUtils.transform(Set.of(aggr), Privilege::getName));
 
         assertEquals(expected, result);
     }
diff --git 
a/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java
 
b/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java
index 6d8576d4e1..c8c662e30f 100644
--- 
a/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java
+++ 
b/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.exercise.security.authentication.external;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
@@ -151,7 +152,7 @@ public class CustomExternalIdentityProvider implements 
ExternalIdentityProvider
                     if (groupIds == null || groupIds.isEmpty()) {
                         return Set.of();
                     } else {
-                        return Iterables.transform(groupIds,
+                        return IterableUtils.transform(groupIds,
                                 input -> new ExternalIdentityRef(input, 
getName()));
                     }
                 }
diff --git 
a/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authorization/models/simplifiedroles/ThreeRolesPermissionProvider.java
 
b/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authorization/models/simplifiedroles/ThreeRolesPermissionProvider.java
index b62101bb2f..4af28ad3bc 100644
--- 
a/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authorization/models/simplifiedroles/ThreeRolesPermissionProvider.java
+++ 
b/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authorization/models/simplifiedroles/ThreeRolesPermissionProvider.java
@@ -21,6 +21,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterables;
 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.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.tree.ReadOnly;
 import org.apache.jackrabbit.oak.plugins.tree.RootProvider;
 import org.apache.jackrabbit.oak.plugins.tree.TreeLocation;
@@ -61,7 +62,7 @@ class ThreeRolesPermissionProvider implements 
AggregatedPermissionProvider, Thre
                                  @NotNull String supportedPath, @NotNull 
Context ctx,
                                  @NotNull RootProvider rootProvider) {
         this.root = root;
-        this.principalNames = 
ImmutableSet.copyOf(Iterables.transform(principals, Principal::getName));
+        this.principalNames = 
ImmutableSet.copyOf(IterableUtils.transform(principals, Principal::getName));
         this.supportedPath = supportedPath;
         this.ctx = ctx;
         this.rootProvider = rootProvider;
diff --git 
a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/advanced/L5_CustomPermissionEvaluationTest.java
 
b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/advanced/L5_CustomPermissionEvaluationTest.java
index 06424a920b..e24b939f96 100644
--- 
a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/advanced/L5_CustomPermissionEvaluationTest.java
+++ 
b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/advanced/L5_CustomPermissionEvaluationTest.java
@@ -34,6 +34,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.IterableUtils;
 import 
org.apache.jackrabbit.oak.exercise.security.authorization.models.predefined.Editor;
 import 
org.apache.jackrabbit.oak.exercise.security.authorization.models.predefined.PredefinedAuthorizationConfiguration;
 import 
org.apache.jackrabbit.oak.exercise.security.authorization.models.predefined.Reader;
@@ -211,7 +212,7 @@ public class L5_CustomPermissionEvaluationTest extends 
AbstractSecurityTest {
     }
 
     private Iterable<String> getTreePaths() {
-        return Iterables.transform(trees, Tree::getPath);
+        return IterableUtils.transform(trees, Tree::getPath);
     }
 
     private Set<Principal> getGuestPrincipals() throws Exception {
diff --git 
a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java
 
b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java
index a0403eda09..79bf1bd540 100644
--- 
a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java
+++ 
b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java
@@ -24,6 +24,7 @@ import javax.jcr.security.Privilege;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -115,7 +116,7 @@ public class L4_CustomPrivilegeTest extends 
AbstractSecurityTest {
             fail();
         }
 
-        Iterable<String> resultNames = 
Iterables.transform(SetUtils.toSet(result),
+        Iterable<String> resultNames = 
IterableUtils.transform(SetUtils.toSet(result),
                 Object::toString);
 
         Iterables.removeAll(resultNames, expectedNames);
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 12ba769baf..bbc94ef7a4 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
@@ -80,6 +80,7 @@ import org.apache.jackrabbit.oak.api.Tree.Status;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.LazyValue;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate;
 import org.apache.jackrabbit.oak.jcr.delegate.PropertyDelegate;
@@ -804,7 +805,7 @@ public class NodeImpl<T extends NodeDelegate> extends 
ItemImpl<T> implements Jac
                 IdentifierManager idManager = sessionDelegate.getIdManager();
 
                 Iterable<String> propertyOakPaths = 
idManager.getReferences(weak, node.getTree(), name); // TODO: oak name?
-                Iterable<Property> properties = Iterables.transform(
+                Iterable<Property> properties = IterableUtils.transform(
                         propertyOakPaths,
                         oakPath -> {
                                 PropertyDelegate pd = 
sessionDelegate.getProperty(oakPath);
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
index a29d10a2ae..af69b31feb 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
@@ -297,7 +297,7 @@ public class ImporterImpl implements Importer {
     }
 
     private Iterable<ProtectedPropertyImporter> getPropertyImporters() {
-        return IterableUtils.filter(Iterables.transform(pItemImporters, 
importer -> {
+        return IterableUtils.filter(IterableUtils.transform(pItemImporters, 
importer -> {
                 if (importer instanceof ProtectedPropertyImporter) {
                     return (ProtectedPropertyImporter) importer;
                 } else {
@@ -307,7 +307,7 @@ public class ImporterImpl implements Importer {
     }
 
     private Iterable<ProtectedNodeImporter> getNodeImporters() {
-        return IterableUtils.filter(Iterables.transform(pItemImporters, 
importer -> {
+        return IterableUtils.filter(IterableUtils.transform(pItemImporters, 
importer -> {
                 if (importer instanceof ProtectedNodeImporter) {
                     return (ProtectedNodeImporter) importer;
                 } else {
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ActiveDeletedBlobCollectorMBeanImpl.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ActiveDeletedBlobCollectorMBeanImpl.java
index 6a6f00f1a7..5cf7425c9b 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ActiveDeletedBlobCollectorMBeanImpl.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ActiveDeletedBlobCollectorMBeanImpl.java
@@ -23,6 +23,7 @@ import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean;
 import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.jmx.ManagementOperation;
 import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService;
 import org.apache.jackrabbit.oak.plugins.index.IndexPathService;
@@ -51,7 +52,6 @@ import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.api.Type.STRING;
 import static org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean.STATUS_RUNNING;
 import static 
org.apache.jackrabbit.oak.commons.jmx.ManagementOperation.Status.failed;
@@ -234,7 +234,7 @@ public class ActiveDeletedBlobCollectorMBeanImpl implements 
ActiveDeletedBlobCol
 
         if (!origIndexLaneToExecutinoCountMap.isEmpty()) {
             LOG.info("Found running index lanes ({}). Sleep a bit before 
continuing.",
-                    transform(origIndexLaneToExecutinoCountMap.keySet(), 
IndexStatsMBean::getName));
+                    
IterableUtils.transform(origIndexLaneToExecutinoCountMap.keySet(), 
IndexStatsMBean::getName));
             try {
                 clock.waitUntil(clock.getTime() + 
TimeUnit.SECONDS.toMillis(1));
             } catch (InterruptedException e) {
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
index 5134362349..28f18af0d7 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
@@ -61,7 +61,6 @@ import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
 
 /**
@@ -607,7 +606,7 @@ public class IndexCopier implements CopyOnReadStatsMBean, 
Closeable {
 
     @Override
     public String[] getGarbageDetails() {
-        return IterableUtils.toArray(transform(failedToDeleteFiles.values(),
+        return 
IterableUtils.toArray(IterableUtils.transform(failedToDeleteFiles.values(),
                 input -> input.deleteLog()), String.class);
     }
 
@@ -651,7 +650,7 @@ public class IndexCopier implements CopyOnReadStatsMBean, 
Closeable {
 
     @Override
     public String[] getCopyInProgressDetails() {
-        return IterableUtils.toArray(transform(copyInProgressFiles,
+        return 
IterableUtils.toArray(IterableUtils.transform(copyInProgressFiles,
                 input -> input.copyLog()), String.class);
     }
 
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java
index 67829f0d1e..e0b6700a60 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java
@@ -116,7 +116,7 @@ public class LuceneDocumentHolder implements 
JournalProperty {
     }
 
     private static Iterable<? extends LuceneDocInfo> 
asLuceneDocInfo(ListValuedMap<String, String> docs) {
-        return Iterables.transform(docs.entries(), input -> {
+        return IterableUtils.transform(docs.entries(), input -> {
                 return new LuceneDocInfo() {
                     @Override
                     public String getIndexPath() {
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexInfo.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexInfo.java
index bf81faced5..cac7eb4e0b 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexInfo.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexInfo.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.TreeTraverser;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -91,7 +92,7 @@ public class HybridPropertyIndexInfo {
         TreeTraverser<NodeState> t = new TreeTraverser<NodeState>() {
             @Override
             public Iterable<NodeState> children(NodeState root) {
-                return Iterables.transform(root.getChildNodeEntries(), 
ChildNodeEntry::getNodeState);
+                return IterableUtils.transform(root.getChildNodeEntries(), 
ChildNodeEntry::getNodeState);
             }
         };
         AtomicInteger matches = new AtomicInteger();
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java
index a1f44ee6fc..acddd8154c 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java
@@ -36,7 +36,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.commons.PathUtils.isAbsolute;
 import static 
org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROPERTY_INDEX;
 import static 
org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_HEAD_BUCKET;
@@ -103,10 +102,10 @@ public class HybridPropertyIndexLookup {
             result = querySimple(filter, indexName, propIndexNode, 
encodedValues);
         }
 
-        Iterable<String> paths = transform(result, path -> isAbsolute(path) ? 
path : "/" + path);
+        Iterable<String> paths = IterableUtils.transform(result, path -> 
isAbsolute(path) ? path : "/" + path);
 
         if (log.isTraceEnabled()) {
-            paths = transform(paths, path -> {
+            paths = IterableUtils.transform(paths, path -> {
                 log.trace("[{}] {} = {} -> {}", indexPath, propertyName, 
encodedValues, path);
                 return path;
             });
diff --git 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/RecursiveDeleteTest.java
 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/RecursiveDeleteTest.java
index 34c604c258..d034617cf0 100644
--- 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/RecursiveDeleteTest.java
+++ 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/RecursiveDeleteTest.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.TreeTraverser;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.fixture.DocumentMemoryFixture;
 import org.apache.jackrabbit.oak.fixture.MemoryFixture;
 import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
@@ -152,7 +153,7 @@ public class RecursiveDeleteTest {
         TreeTraverser<NodeState> t = new TreeTraverser<NodeState>() {
             @Override
             public Iterable<NodeState> children(NodeState root) {
-                return Iterables.transform(root.getChildNodeEntries(), 
ChildNodeEntry::getNodeState);
+                return IterableUtils.transform(root.getChildNodeEntries(), 
ChildNodeEntry::getNodeState);
             }
         };
         return t.preOrderTraversal(state).size();
diff --git 
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateEntryTraverser.java
 
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateEntryTraverser.java
index 1f5e70410b..2d50ce1d92 100644
--- 
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateEntryTraverser.java
+++ 
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/NodeStateEntryTraverser.java
@@ -41,7 +41,6 @@ import java.util.function.Consumer;
 
 import static java.util.Collections.emptyList;
 import static java.util.Collections.singleton;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 public class NodeStateEntryTraverser implements Iterable<NodeStateEntry>, 
Closeable {
     private final Closer closer = Closer.create();
@@ -123,7 +122,7 @@ public class NodeStateEntryTraverser implements 
Iterable<NodeStateEntry>, Closea
             return emptyList();
         }
 
-        return transform(
+        return IterableUtils.transform(
                 IterableUtils.chainedIterable(singleton(nodeState),
                     nodeState.getAllBundledNodesStates()),
                 dns -> {
diff --git 
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java
 
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java
index 454f73e47c..39edc24fa7 100644
--- 
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java
+++ 
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java
@@ -30,6 +30,7 @@ import org.apache.jackrabbit.guava.common.cache.Cache;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.json.JsopReader;
 import org.apache.jackrabbit.oak.commons.json.JsopTokenizer;
 import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
@@ -155,7 +156,7 @@ public class DocumentNodeStoreHelper {
                     mds, Collection.NODES);
             Bson query = Filters.eq(NodeDocument.HAS_BINARY_FLAG, 
NodeDocument.HAS_BINARY_VAL);
             FindIterable<BasicDBObject> cursor = dbCol.find(query);
-            return Iterables.transform(cursor,
+            return IterableUtils.transform(cursor,
                     input -> MongoDocumentStoreHelper.convertFromDBObject(mds, 
Collection.NODES, input));
         } else {
             return Utils.getSelectedDocuments(store,
diff --git 
a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/TestUtils.java
 
b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/TestUtils.java
index a34ddcf5b5..38bedcac60 100644
--- 
a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/TestUtils.java
+++ 
b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/TestUtils.java
@@ -19,6 +19,7 @@
 package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
 import 
org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry.NodeStateEntryBuilder;
@@ -62,7 +63,7 @@ public class TestUtils {
     }
 
     static Iterable<NodeStateEntry> createEntries(List<String> paths) {
-        return Iterables.transform(paths, p -> new 
NodeStateEntryBuilder(createNodeState(p), p).withID(getID(p)).build());
+        return IterableUtils.transform(paths, p -> new 
NodeStateEntryBuilder(createNodeState(p), p).withID(getID(p)).build());
     }
 
     static String getID(String path) {
diff --git 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreCheckHelper.java
 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreCheckHelper.java
index 4944e72764..de14e1f57e 100644
--- 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreCheckHelper.java
+++ 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreCheckHelper.java
@@ -18,12 +18,12 @@ package org.apache.jackrabbit.oak.plugins.document.mongo;
 
 import com.mongodb.DBObject;
 
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.Collection;
 import org.apache.jackrabbit.oak.plugins.document.NodeDocument;
 import org.bson.BsonDocument;
 import org.bson.BsonInt32;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 /**
  * <code>MongoDocumentStoreCheckHelper</code>...
@@ -35,7 +35,7 @@ public class MongoDocumentStoreCheckHelper {
     }
 
     public static Iterable<NodeDocument> 
getAllNodeDocuments(MongoDocumentStore store) {
-        return transform(store.getDBCollection(Collection.NODES)
+        return IterableUtils.transform(store.getDBCollection(Collection.NODES)
                         .find(DBObject.class)
                         .sort(new BsonDocument("$natural", new BsonInt32(1))),
                 input -> store.convertFromDBObject(Collection.NODES, input)
diff --git 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java
index 1bda8da88e..e32a311ddf 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.run;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.commons.io.FileUtils.byteCountToDisplaySize;
 import static org.apache.jackrabbit.oak.api.Type.BINARIES;
 import static org.apache.jackrabbit.oak.api.Type.BINARY;
@@ -31,6 +30,7 @@ import java.util.function.Function;
 
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
 
@@ -126,7 +126,7 @@ final class PrintingDiff implements NodeStateDiff {
             String v = BLOB_LENGTH.apply(ps.getValue(BINARY));
             val.append(" = {").append(v).append("}");
         } else if (ps.getType() == BINARIES) {
-            String v = transform(ps.getValue(BINARIES), 
BLOB_LENGTH::apply).toString();
+            String v = IterableUtils.transform(ps.getValue(BINARIES), 
BLOB_LENGTH::apply).toString();
             val.append("[").append(ps.count()).append("] = ").append(v);
         } else if (ps.isArray()) {
             val.append("[").append(ps.count()).append("] = 
").append(ps.getValue(STRINGS));
diff --git 
a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java
 
b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java
index 5c8bfd5b0b..1797e9527f 100644
--- 
a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java
+++ 
b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java
@@ -102,7 +102,7 @@ public class AggregateTest {
 
         NodeState state = nb.getNodeState();
         final AtomicInteger counter = new AtomicInteger();
-        Iterable<? extends ChildNodeEntry> countingIterator = 
Iterables.transform(state.getChildNodeEntries(),
+        Iterable<? extends ChildNodeEntry> countingIterator = 
IterableUtils.transform(state.getChildNodeEntries(),
                 input -> {
                     counter.incrementAndGet();
                     return input;
diff --git 
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
 
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
index 933c7be707..a3dc3bf84f 100644
--- 
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
+++ 
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
@@ -264,7 +264,7 @@ public abstract class CompositeConfiguration<T extends 
SecurityConfiguration> im
     @Override
     public Iterable<Monitor<?>> getMonitors(@NotNull StatisticsProvider 
statisticsProvider) {
         return IterableUtils.chainedIterable(
-                Iterables.transform(getConfigurations(), securityConfiguration 
-> securityConfiguration.getMonitors(statisticsProvider)));
+                IterableUtils.transform(getConfigurations(), 
securityConfiguration -> 
securityConfiguration.getMonitors(statisticsProvider)));
     }
 
     private static final class Ranking {
@@ -300,7 +300,7 @@ public abstract class CompositeConfiguration<T extends 
SecurityConfiguration> im
 
         private void refresh(@NotNull List<? extends SecurityConfiguration> 
configurations) {
             Set<Context> s = SetUtils.newLinkedHashSet(configurations.size());
-            for (Context c : Iterables.transform(configurations, 
ContextFunction.INSTANCE::apply)) {
+            for (Context c : IterableUtils.transform(configurations, 
ContextFunction.INSTANCE::apply)) {
                 if (DEFAULT != c) {
                     s.add(c);
                 }
diff --git 
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
 
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
index 291e519109..b268b1142e 100644
--- 
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
+++ 
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java
@@ -164,7 +164,7 @@ public final class PrivilegeBitsProvider implements 
PrivilegeConstants {
      */
     @NotNull
     public PrivilegeBits getBits(@NotNull Privilege[] privileges, @NotNull 
final NameMapper nameMapper) {
-        return 
getBits(IterableUtils.filter(Iterables.transform(Arrays.asList(privileges),
+        return 
getBits(IterableUtils.filter(IterableUtils.transform(Arrays.asList(privileges),
                 privilege -> 
nameMapper.getOakNameOrNull(privilege.getName())), x -> x != null));
     }
 
diff --git 
a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java
 
b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java
index 3cea0f777d..1e5d9f0656 100644
--- 
a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java
+++ 
b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java
@@ -17,7 +17,6 @@
 
 package org.apache.jackrabbit.oak.segment.tool;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.commons.io.FileUtils.byteCountToDisplaySize;
 import static org.apache.jackrabbit.oak.api.Type.BINARIES;
 import static org.apache.jackrabbit.oak.api.Type.BINARY;
@@ -32,6 +31,7 @@ import java.util.function.Function;
 
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
 
@@ -112,7 +112,7 @@ final class PrintingDiff implements NodeStateDiff {
             String v = BLOB_LENGTH.apply(ps.getValue(BINARY));
             val.append(" = {").append(v).append("}");
         } else if (ps.getType() == BINARIES) {
-            String v = transform(ps.getValue(BINARIES), 
BLOB_LENGTH::apply).toString();
+            String v = IterableUtils.transform(ps.getValue(BINARIES), 
BLOB_LENGTH::apply).toString();
             val.append("[").append(ps.count()).append("] = ").append(v);
         } else if (ps.isArray()) {
             val.append("[").append(ps.count()).append("] = 
").append(ps.getValue(STRINGS));
diff --git 
a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/upgrade/UpgradeIT.java
 
b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/upgrade/UpgradeIT.java
index ca99eff4f3..1ac887caae 100644
--- 
a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/upgrade/UpgradeIT.java
+++ 
b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/upgrade/UpgradeIT.java
@@ -18,7 +18,6 @@
 
 package org.apache.jackrabbit.oak.segment.upgrade;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.lang.String.format;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.jackrabbit.oak.segment.SegmentVersion.V_12;
@@ -36,6 +35,7 @@ import java.io.IOException;
 
 import org.apache.commons.lang3.JavaVersion;
 import org.apache.commons.lang3.SystemUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.segment.SegmentVersion;
 import org.apache.jackrabbit.oak.segment.data.SegmentData;
 import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
@@ -151,7 +151,7 @@ public class UpgradeIT {
     }
 
     private static Iterable<SegmentData> getSegments(@NotNull TarFiles 
tarFiles) {
-        return transform(
+        return IterableUtils.transform(
                 tarFiles.getSegmentIds(),
                 uuid -> newSegmentData(tarFiles.readSegment(
                     uuid.getMostSignificantBits(),
diff --git 
a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
 
b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
index c15bf33d39..e2f5c51eb8 100644
--- 
a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
+++ 
b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
@@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.composite;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
@@ -42,7 +43,6 @@ import java.util.Map;
 
 import static org.apache.jackrabbit.guava.common.collect.Iterables.cycle;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.limit;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 import static java.lang.Long.MAX_VALUE;
 import static java.util.Arrays.asList;
@@ -223,7 +223,7 @@ public class CompositeChildrenCountTest {
                 Iterable<? extends ChildNodeEntry> childrenIterable = 
cycle(new MemoryChildNodeEntry("child", EMPTY_NODE));
                 return asCountingIterable(limit(childrenIterable, 
childrenCount == MAX_VALUE ? 1000 : (int) childrenCount));
             } else {
-                return asCountingIterable(transform(asList(children), input -> 
new MemoryChildNodeEntry(input, EMPTY_NODE)));
+                return 
asCountingIterable(IterableUtils.transform(asList(children), input -> new 
MemoryChildNodeEntry(input, EMPTY_NODE)));
             }
         }
 
@@ -239,7 +239,7 @@ public class CompositeChildrenCountTest {
         }
 
         private <T> Iterable<T> asCountingIterable(Iterable<T> input) {
-            return Iterables.transform(input, inp -> {
+            return IterableUtils.transform(input, inp -> {
                     fetchedChildren++;
                     return inp;
             });
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
index dbd226a000..64d42238fe 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.plugins.document;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 import java.lang.ref.ReferenceQueue;
 import java.lang.ref.WeakReference;
@@ -271,7 +270,7 @@ class Branch {
         if (!commits.containsKey(r)) {
             return Collections.emptyList();
         }
-        Iterable<Iterable<Path>> paths = 
transform(IterableUtils.filter(commits.entrySet(),
+        Iterable<Iterable<Path>> paths = 
IterableUtils.transform(IterableUtils.filter(commits.entrySet(),
                 new Predicate<Map.Entry<Revision, BranchCommit>>() {
             @Override
             public boolean test(Map.Entry<Revision, BranchCommit> input) {
@@ -405,7 +404,7 @@ class Branch {
 
         @Override
         Iterable<Path> getModifiedPaths() {
-            Iterable<Iterable<Path>> paths = transform(previous.values(),
+            Iterable<Iterable<Path>> paths = 
IterableUtils.transform(previous.values(),
                     branchCommit -> branchCommit.getModifiedPaths());
             return IterableUtils.chainedIterable(paths);
         }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
index 398a8528d1..8891e8e26c 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
@@ -43,7 +43,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.Collections.singletonList;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
@@ -889,7 +888,7 @@ public class Commit {
     }
 
     private static boolean hasContentChanges(UpdateOp op) {
-        return IterableUtils.filter(transform(op.getChanges().keySet(),
+        return 
IterableUtils.filter(IterableUtils.transform(op.getChanges().keySet(),
                 Key::getName), 
Utils.PROPERTY_OR_DELETED::test).iterator().hasNext();
     }
 }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
index ee0417f2b5..b30702190e 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
@@ -501,7 +501,7 @@ public class DocumentNodeState extends 
AbstractDocumentNodeState implements Cach
         return new TreeTraverser<DocumentNodeState>(){
             @Override
             public Iterable<DocumentNodeState> children(DocumentNodeState 
root) {
-                return Iterables.transform(() -> root.getBundledChildren(), ce 
-> (DocumentNodeState)ce.getNodeState());
+                return IterableUtils.transform(() -> 
root.getBundledChildren(), ce -> (DocumentNodeState)ce.getNodeState());
             }
         }.preOrderTraversal(this)
          .filter(dns -> !dns.getPath().equals(this.getPath()) ); //Exclude this
@@ -572,7 +572,7 @@ public class DocumentNodeState extends 
AbstractDocumentNodeState implements Cach
     private Iterable<ChildNodeEntry> getChildNodeEntries(@NotNull String name,
                                                          int limit) {
         Iterable<? extends AbstractDocumentNodeState> children = 
store.getChildNodes(this, name, limit);
-        return Iterables.transform(children, input -> {
+        return IterableUtils.transform(children, input -> {
                 return new AbstractChildNodeEntry() {
                     @Override
                     public String getName() {
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
index 8dd74d01ae..4db3fcedfe 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.plugins.document;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.Collections.singletonList;
 import static java.util.Objects.nonNull;
 import static java.util.concurrent.TimeUnit.MICROSECONDS;
@@ -1594,7 +1593,7 @@ public final class DocumentNodeStore
         }
 
         final RevisionVector readRevision = parent.getLastRevision();
-        return transform(getChildren(parent, name, limit).children, new 
Function<String, DocumentNodeState>() {
+        return IterableUtils.transform(getChildren(parent, name, 
limit).children, new Function<String, DocumentNodeState>() {
             @Override
             public DocumentNodeState apply(String input) {
                 Path p = new Path(parent.getPath(), input);
@@ -2231,7 +2230,7 @@ public final class DocumentNodeStore
     public Iterable<String> checkpoints() {
         checkOpen();
         final long now = clock.getTime();
-        return 
Iterables.transform(IterableUtils.filter(checkpoints.getCheckpoints().entrySet(),
+        return 
IterableUtils.transform(IterableUtils.filter(checkpoints.getCheckpoints().entrySet(),
                 cp -> cp.getValue().getExpiryTime() > now),
                 cp -> cp.getKey().toString());
     }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java
index 68403143ab..287d0e93bf 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java
@@ -33,6 +33,7 @@ import java.util.concurrent.locks.ReadWriteLock;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
@@ -750,7 +751,7 @@ class DocumentNodeStoreBranch implements NodeStoreBranch {
             NodeDocument doc = Utils.getRootDocument(store.getDocumentStore());
             Set<Revision> collisions = new 
HashSet<>(doc.getLocalMap(COLLISIONS).keySet());
             Set<Revision> commits = new HashSet<>();
-            Iterables.transform(b.getCommits(), 
Revision::asTrunkRevision).forEach(commits::add);
+            IterableUtils.transform(b.getCommits(), 
Revision::asTrunkRevision).forEach(commits::add);
             Set<Revision> conflicts = SetUtils.intersection(collisions, 
commits);
             if (!conflicts.isEmpty()) {
                 throw new CommitFailedException(STATE, 2,
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
index 821897bb69..3549fa256d 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
@@ -36,7 +36,6 @@ import org.slf4j.LoggerFactory;
 
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 
 /**
  * Implementation of a DocumentNodeStoreMBean.
@@ -86,21 +85,21 @@ final class DocumentNodeStoreMBeanImpl extends 
AnnotatedStandardMBean implements
 
     @Override
     public String[] getInactiveClusterNodes() {
-        return 
IterableUtils.toArray(transform(IterableUtils.filter(clusterNodes,
+        return 
IterableUtils.toArray(IterableUtils.transform(IterableUtils.filter(clusterNodes,
                 input -> !input.isActive()),
                 input -> input.getClusterId() + "=" + input.getCreated()), 
String.class);
     }
 
     @Override
     public String[] getActiveClusterNodes() {
-        return 
IterableUtils.toArray(transform(IterableUtils.filter(clusterNodes,
+        return 
IterableUtils.toArray(IterableUtils.transform(IterableUtils.filter(clusterNodes,
                 input -> input.isActive()),
                 input -> input.getClusterId() + "=" + 
input.getLeaseEndTime()), String.class);
     }
 
     @Override
     public String[] getLastKnownRevisions() {
-        return 
IterableUtils.toArray(transform(IterableUtils.filter(nodeStore.getHeadRevision(),
+        return 
IterableUtils.toArray(IterableUtils.transform(IterableUtils.filter(nodeStore.getHeadRevision(),
                 input -> input.getClusterId() != getClusterId()),
                 input -> input.getClusterId() + "=" + input.toString()), 
String.class);
     }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
index 863a80d47f..39d18d23b9 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.Collections.singletonList;
 import static org.apache.jackrabbit.oak.plugins.document.util.Utils.asISO8601;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL;
@@ -301,7 +300,7 @@ public class LastRevRecoveryAgent {
             // invalidate all suspects (OAK-9908)
             log.info("Starting cache invalidation before sweep...");
             CacheInvalidationStats stats = store.invalidateCache(
-                    transform(suspects, Document::getId));
+                    IterableUtils.transform(suspects, Document::getId));
             log.info("Invalidation stats: {}", stats);
             sweeper.sweep(suspects, new NodeDocumentSweepListener() {
                 @Override
@@ -776,7 +775,7 @@ public class LastRevRecoveryAgent {
      * @return the recovery candidate nodes.
      */
     public Iterable<Integer> getRecoveryCandidateNodes() {
-        return 
Iterables.transform(IterableUtils.filter(missingLastRevUtil.getAllClusters(),
+        return 
IterableUtils.transform(IterableUtils.filter(missingLastRevUtil.getAllClusters(),
                 input ->revisionContext.getClusterId() != input.getClusterId()
                         && 
input.isRecoveryNeeded(revisionContext.getClock().getTime())),
                 ClusterNodeInfoDocument::getClusterId);
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
index 1922c7d733..3b593970ba 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.util.Utils.COMMITROOT_OR_REVISIONS;
 
 import java.util.AbstractMap.SimpleImmutableEntry;
@@ -134,7 +133,7 @@ final class MissingBcSweeper2 {
 
     private Iterable<Map.Entry<Path, UpdateOp>> sweepOperations(
             final Iterable<NodeDocument> docs) {
-        return IterableUtils.filter(transform(docs,
+        return IterableUtils.filter(IterableUtils.transform(docs,
                 new Function<NodeDocument, Map.Entry<Path, UpdateOp>>() {
 
             int yieldCnt = 0;
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
index 01d87b61ed..87f8a1436e 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
@@ -20,7 +20,6 @@ import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 import static 
org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.mergeSorted;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
 import static 
org.apache.jackrabbit.oak.plugins.document.StableRevisionComparator.REVERSE;
 import static 
org.apache.jackrabbit.oak.plugins.document.util.Utils.abortingIterable;
@@ -1401,7 +1400,7 @@ public final class NodeDocument extends Document {
             }
 
             // didn't find entry -> scan through remaining head ranges
-            return 
IterableUtils.filter(transform(getPreviousRanges().headMap(revision).entrySet(),
 input -> {
+            return 
IterableUtils.filter(IterableUtils.transform(getPreviousRanges().headMap(revision).entrySet(),
 input -> {
                     if (input.getValue().includes(revision)) {
                        return getPreviousDoc(input.getKey(), input.getValue());
                     }
@@ -1816,7 +1815,7 @@ public final class NodeDocument extends Document {
                 }
             };
         } else {
-            changes = 
IterableUtils.chainedIterable(transform(List.copyOf(ranges), 
rangeToChanges::apply));
+            changes = 
IterableUtils.chainedIterable(IterableUtils.transform(List.copyOf(ranges), 
rangeToChanges::apply));
         }
         return IterableUtils.filter(changes, input -> 
!readRev.isRevisionNewer(input.getKey()));
     }
@@ -1914,7 +1913,7 @@ public final class NodeDocument extends Document {
      */
     @NotNull
     RevisionVector getSweepRevisions() {
-        return new RevisionVector(transform(getLocalMap(SWEEP_REV).values(),
+        return new 
RevisionVector(IterableUtils.transform(getLocalMap(SWEEP_REV).values(),
                 s -> Revision.fromString(s)));
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
index 2ff54f551c..2b94a6887c 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java
@@ -32,7 +32,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.isDeletedEntry;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.removeCommitRoot;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.removeRevision;
@@ -162,7 +161,7 @@ final class NodeDocumentSweeper {
 
     private Iterable<Map.Entry<Path, UpdateOp>> sweepOperations(
             final Iterable<NodeDocument> docs) {
-        return IterableUtils.filter(transform(docs, doc -> new 
SimpleImmutableEntry<>(doc.getPath(), sweepOne(doc))),
+        return IterableUtils.filter(IterableUtils.transform(docs, doc -> new 
SimpleImmutableEntry<>(doc.getPath(), sweepOne(doc))),
                 input -> input.getValue() != null);
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
index 025fcef457..3fff05637c 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static java.util.AbstractMap.SimpleImmutableEntry;
 
 import java.util.Iterator;
@@ -55,7 +54,7 @@ class PropertyHistory implements Iterable<NodeDocument> {
 
     @Override
     public Iterator<NodeDocument> iterator() {
-        return 
ensureOrder(IterableUtils.filter(transform(doc.getPreviousRanges().entrySet(), 
input -> {
+        return 
ensureOrder(IterableUtils.filter(IterableUtils.transform(doc.getPreviousRanges().entrySet(),
 input -> {
                 Revision r = input.getKey();
                 int h = input.getValue().height;
                 String prevId = Utils.getPreviousIdFor(mainPath, r, h);
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
index 231383f28b..6446f6b33b 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
@@ -115,7 +115,7 @@ class UnsavedModifications {
         if (map.isEmpty()) {
             return Collections.emptyList();
         } else {
-            return Iterables.transform(IterableUtils.filter(map.entrySet(),
+            return IterableUtils.transform(IterableUtils.filter(map.entrySet(),
                     input ->start.compareRevisionTime(input.getValue()) < 1),
                     Map.Entry::getKey);
         }
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 971deace28..a91470d0ed 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
@@ -1260,7 +1260,7 @@ public class MongoDocumentStore implements DocumentStore {
                 results.put(op, findAndUpdate(collection, op));
             }
         } catch (MongoException e) {
-            throw handleException(e, collection, 
Iterables.transform(updateOps, UpdateOp::getId));
+            throw handleException(e, collection, 
IterableUtils.transform(updateOps, UpdateOp::getId));
         } finally {
             stats.doneFindAndModify(watch.elapsed(NANOSECONDS), collection, 
updateOps.stream().map(UpdateOp::getId).collect(toList()),
                     true, retryCount);
@@ -1361,7 +1361,7 @@ public class MongoDocumentStore implements DocumentStore {
                 }
             }
         } catch (MongoException e) {
-            throw handleException(e, collection, Iterables.transform(updateOps,
+            throw handleException(e, collection, 
IterableUtils.transform(updateOps,
                     input -> input.getId()));
         } finally {
             stats.doneCreateOrUpdate(watch.elapsed(TimeUnit.NANOSECONDS),
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeeker.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeeker.java
index d904cc1650..d7aa841a98 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeeker.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeeker.java
@@ -19,7 +19,6 @@
 
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.Collection.CLUSTER_NODES;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
 
@@ -29,6 +28,7 @@ import com.mongodb.client.FindIterable;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.model.Filters;
 
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo;
 import org.apache.jackrabbit.oak.plugins.document.MissingLastRevSeeker;
 import org.apache.jackrabbit.oak.plugins.document.NodeDocument;
@@ -61,7 +61,7 @@ public class MongoMissingLastRevSeeker extends 
MissingLastRevSeeker {
 
         FindIterable<BasicDBObject> cursor = getNodeCollection()
                 .find(query).sort(sortFields);
-        return CloseableIterable.wrap(transform(cursor,
+        return CloseableIterable.wrap(IterableUtils.transform(cursor,
                 input -> store.convertFromDBObject(NODES, input)));
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
index 74c807e233..5c36b868ac 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
@@ -26,7 +26,6 @@ import static com.mongodb.client.model.Projections.include;
 import static com.mongodb.client.model.Sorts.ascending;
 import static java.util.Optional.empty;
 import static java.util.Optional.ofNullable;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static com.mongodb.client.model.Filters.and;
 import static com.mongodb.client.model.Filters.lt;
 import static java.util.Collections.emptyList;
@@ -143,7 +142,7 @@ public class MongoVersionGCSupport extends VersionGCSupport 
{
         FindIterable<BasicDBObject> cursor = getNodeCollection()
                 .find(query).batchSize(batchSize);
 
-        return CloseableIterable.wrap(transform(cursor,
+        return CloseableIterable.wrap(IterableUtils.transform(cursor,
                 input -> store.convertFromDBObject(NODES, input)));
     }
 
@@ -283,7 +282,7 @@ public class MongoVersionGCSupport extends VersionGCSupport 
{
                 .hint(modifiedIdHint)
                 .sort(sort)
                 .limit(limit);
-        return wrap(transform(cursor, input -> 
store.convertFromDBObject(NODES, input)));
+        return wrap(IterableUtils.transform(cursor, input -> 
store.convertFromDBObject(NODES, input)));
     }
 
     /**
@@ -347,7 +346,7 @@ public class MongoVersionGCSupport extends VersionGCSupport 
{
             // of the query as part of OAK-8351 does), it nevertheless 
             // makes any future similar problem more visible than long running
             // queries alone (15min is still long).
-            Iterable<NodeDocument> iterable = 
IterableUtils.filter(transform(getNodeCollection().find(query)
+            Iterable<NodeDocument> iterable = 
IterableUtils.filter(IterableUtils.transform(getNodeCollection().find(query)
                     .maxTime(15, TimeUnit.MINUTES).hint(hint),
                     input -> store.convertFromDBObject(NODES, input)),
                     input -> !isDefaultNoBranchSplitNewerThan(input, 
sweepRevs));
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
index 4d1fd661cb..55698437fe 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.rdb;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.CHAR2OCTETRATIO;
 import static 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.asBytes;
 import static 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.asDocumentStoreException;
@@ -431,7 +430,7 @@ public class RDBDocumentStoreJDBC {
     }
 
     private static <T extends Document> void assertNoDuplicatedIds(List<T> 
documents) {
-        if (SetUtils.toSet(transform(documents, Document::getId)).size() < 
documents.size()) {
+        if (SetUtils.toSet(IterableUtils.transform(documents, 
Document::getId)).size() < documents.size()) {
             throw new IllegalArgumentException("There are duplicated ids in 
the document list");
         }
     }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
index 443ecab4c1..9c434c85e6 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
@@ -172,7 +172,7 @@ public class DelegatingDocumentNodeState extends 
AbstractDocumentNodeState {
     @NotNull
     @Override
     public Iterable<? extends ChildNodeEntry> getChildNodeEntries() {
-        return Iterables.transform(delegate.getChildNodeEntries(),
+        return IterableUtils.transform(delegate.getChildNodeEntries(),
                 input -> new MemoryChildNodeEntry(input.getName(), 
decorate(input.getName(), input.getNodeState())));
     }
 
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
index c04e8efea8..8b56fe89b3 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
@@ -44,6 +44,7 @@ import 
org.apache.jackrabbit.guava.common.collect.AbstractIterator;
 import org.apache.jackrabbit.oak.commons.OakVersion;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.commons.StringUtils;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo;
 import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfoDocument;
 import org.apache.jackrabbit.oak.plugins.document.Collection;
@@ -64,7 +65,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.MIN_ID_VALUE;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.isDeletedEntry;
 import static 
org.apache.jackrabbit.oak.plugins.document.NodeDocument.isCommitRootEntry;
@@ -969,14 +969,14 @@ public class Utils {
      */
     public static Iterable<StringValue> asStringValueIterable(
             @NotNull Iterable<String> values) {
-        return transform(values, input -> new StringValue(input));
+        return IterableUtils.transform(values, input -> new 
StringValue(input));
     }
 
     /**
      * Transforms the given paths into ids using {@link 
#getIdFromPath(String)}.
      */
     public static Iterable<String> pathToId(@NotNull Iterable<String> paths) {
-        return transform(paths, input -> getIdFromPath(input));
+        return IterableUtils.transform(paths, input -> getIdFromPath(input));
     }
 
     /**
diff --git 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java
 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java
index efad31157b..97c34e409a 100644
--- 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java
+++ 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java
@@ -23,6 +23,7 @@ import static java.util.Objects.requireNonNull;
 import java.util.Map.Entry;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.spi.state.AbstractChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -33,7 +34,7 @@ import org.apache.jackrabbit.oak.spi.state.NodeState;
 public class MemoryChildNodeEntry extends AbstractChildNodeEntry {
 
     public static <E extends Entry<String, ? extends NodeState>> 
Iterable<ChildNodeEntry> iterable(Iterable<E> set) {
-        return Iterables.transform(set, entry -> new 
MemoryChildNodeEntry(entry.getKey(), entry.getValue()));
+        return IterableUtils.transform(set, entry -> new 
MemoryChildNodeEntry(entry.getKey(), entry.getValue()));
     }
 
     private final String name;
diff --git 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
index 3420264e62..44b5747e79 100644
--- 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
+++ 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
@@ -26,6 +26,7 @@ import javax.jcr.PropertyType;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.conditions.Validate;
 import org.apache.jackrabbit.oak.plugins.value.Conversions.Converter;
@@ -59,29 +60,29 @@ abstract class MultiPropertyState<T> extends 
EmptyPropertyState {
     private <S> S  convertTo(Type<S> type) {
         switch (type.tag()) {
             case PropertyType.STRING:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toString());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toString());
             case PropertyType.BINARY:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toBinary());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toBinary());
             case PropertyType.LONG:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toLong());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toLong());
             case PropertyType.DOUBLE:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toDouble());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toDouble());
             case PropertyType.DATE:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toDate());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toDate());
             case PropertyType.BOOLEAN:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toBoolean());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toBoolean());
             case PropertyType.NAME:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toString());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toString());
             case PropertyType.PATH:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toString());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toString());
             case PropertyType.REFERENCE:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toString());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toString());
             case PropertyType.WEAKREFERENCE:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toString());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toString());
             case PropertyType.URI:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toString());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toString());
             case PropertyType.DECIMAL:
-                return (S) Iterables.transform(values, value -> 
getConverter(value).toDecimal());
+                return (S) IterableUtils.transform(values, value -> 
getConverter(value).toDecimal());
             default: throw new IllegalArgumentException("Unknown type:" + 
type);
         }
     }
diff --git 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java
 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java
index d9ee3af66b..76d1e2b613 100644
--- 
a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java
+++ 
b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java
@@ -30,6 +30,7 @@ import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -288,7 +289,7 @@ public abstract class AbstractNodeState implements 
NodeState {
 
     @Override
     public Iterable<String> getChildNodeNames() {
-        return Iterables.transform(getChildNodeEntries(), input -> 
input.getName());
+        return IterableUtils.transform(getChildNodeEntries(), input -> 
input.getName());
     }
 
     /**
diff --git 
a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
 
b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
index da97f02ec4..285d0487e0 100644
--- 
a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
+++ 
b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.upgrade;
 
-import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
 import static org.apache.jackrabbit.JcrConstants.JCR_SAMENAMESIBLINGS;
 import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
 import static 
org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
@@ -160,7 +159,7 @@ public class SameNameSiblingsEditor extends DefaultEditor {
      * @return a list of names of children accepting the predicate
      */
     private static Iterable<String> filterChildren(NodeState parent, final 
Predicate<NodeState> predicate) {
-        return transform(IterableUtils.filter(parent.getChildNodeEntries(),
+        return 
IterableUtils.transform(IterableUtils.filter(parent.getChildNodeEntries(),
                 input -> predicate.test(input.getNodeState())),
                 input -> input.getName());
     }
diff --git 
a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java
 
b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java
index 8b3eba06a7..2322cc5d1d 100644
--- 
a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java
+++ 
b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java
@@ -19,6 +19,7 @@
 package org.apache.jackrabbit.oak.upgrade.checkpoint;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
+import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.plugins.document.DocumentCheckpointRetriever;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
@@ -86,7 +87,7 @@ public final class CheckpointRetriever {
     }
 
     private static List<Checkpoint> getCheckpoints(NodeState checkpointRoot) {
-        return 
ListUtils.toList(Iterables.transform(checkpointRoot.getChildNodeEntries(),
+        return 
ListUtils.toList(IterableUtils.transform(checkpointRoot.getChildNodeEntries(),
                 input -> Checkpoint.createFromSegmentNode(input.getName(), 
input.getNodeState())));
     }
 }

Reply via email to