You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2024/12/27 11:01:52 UTC

(jackrabbit-oak) branch OAK-11328 created (now 68bc40f21e)

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

reschke pushed a change to branch OAK-11328
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


      at 68bc40f21e OAK-11328: Remove usage of Guava ImmutableList (test classes)

This branch includes the following new commits:

     new 68bc40f21e OAK-11328: Remove usage of Guava ImmutableList (test classes)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(jackrabbit-oak) 01/01: OAK-11328: Remove usage of Guava ImmutableList (test classes)

Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 68bc40f21e092a7f1cf0ddde7e68404c56de6470
Author: Julian Reschke <re...@apache.org>
AuthorDate: Fri Dec 27 12:01:29 2024 +0100

    OAK-11328: Remove usage of Guava ImmutableList (test classes)
---
 .../external/ExternalIdentityRefTest.java          |   5 +-
 .../external/TestIdentityProvider.java             |   7 +-
 .../external/basic/DefaultSyncContextTest.java     |   3 +-
 .../external/impl/AbstractDynamicTest.java         |  10 +-
 .../impl/CustomCredentialsSupportTest.java         |   3 +-
 .../external/impl/DynamicGroupsTest.java           |   6 +-
 .../external/impl/DynamicSyncContextTest.java      |   4 +-
 .../impl/principal/DynamicGroupValidatorTest.java  |   3 +-
 .../ExternalGroupPrincipalProviderTest.java        |   3 +-
 .../impl/principal/ExternalGroupPrincipalTest.java |  11 +-
 .../principal/ExternalIdentityValidatorTest.java   |  11 +-
 .../PrincipalProviderAutoMembershipTest.java       |   3 +-
 .../impl/principal/ValidatorNoProtectionTest.java  |   4 +-
 .../impl/principal/ValidatorNotDynamicTest.java    |   5 +-
 .../authorization/cug/impl/AccessControlTest.java  |   3 +-
 .../cug/impl/CugAccessControlManagerTest.java      |   7 +-
 .../cug/impl/CugConfigurationTest.java             |   3 +-
 .../authorization/cug/impl/CugContextTest.java     |   7 +-
 .../authorization/cug/impl/CugEvaluationTest.java  |  15 ++-
 .../cug/impl/CugPermissionProviderTest.java        |   5 +-
 .../authorization/cug/impl/CugValidatorTest.java   |  23 +++--
 .../authorization/cug/impl/NestedCugHookTest.java  |  10 +-
 .../security/authorization/cug/impl/NoCugTest.java |   3 +-
 .../authorization/cug/impl/SupportedPathsTest.java |   5 +-
 .../authorization/cug/impl/TopLevelPathTest.java   |   3 +-
 .../authorization/cug/impl/VersionTest.java        |   5 +-
 .../impl/AccessControlManagerLimitedUserTest.java  |   8 +-
 .../principalbased/impl/MockUtility.java           |   4 +-
 .../principalbased/impl/PolicyValidatorTest.java   |   7 +-
 .../PrincipalBasedAccessControlManagerTest.java    |   6 +-
 .../impl/PrincipalPolicyImplTest.java              |   4 +-
 .../impl/PrincipalPolicyImporterTest.java          |   8 +-
 .../oak/blob/cloud/s3/S3DataStoreUtils.java        |   3 +-
 ...aredDataStoreMarkSweepGarbageCollectorTest.java |  10 +-
 .../blob/datastore/DataStoreBlobStoreTest.java     |   4 +-
 .../commons/FileLineDifferenceIteratorTest.java    |   8 +-
 .../oak/commons/sort/StringSortTest.java           |   7 +-
 .../jackrabbit/oak/spi/mount/MountInfoTest.java    |  15 ++-
 .../jackrabbit/oak/core/SecureNodeBuilderTest.java |  13 +--
 .../plugins/atomic/AtomicCounterEditorTest.java    |   4 +-
 .../oak/plugins/cow/COWNodeStoreTest.java          |   4 +-
 .../oak/plugins/index/AsyncIndexUpdateTest.java    |   3 +-
 .../oak/plugins/index/IndexUpdateTest.java         |   8 +-
 .../index/importer/IndexDefinitionUpdaterTest.java |   5 +-
 .../index/nodetype/NodeTypeIndexQueryTest.java     |   7 +-
 .../index/property/MultiPropertyOrTest.java        |  11 +-
 .../index/property/MultipleIndicesTest.java        |  19 ++--
 .../OrderedPropertyIndexEditorProviderTest.java    |   3 +-
 .../plugins/index/property/RelativePathTest.java   |   7 +-
 .../property/SinglePropertyIndexQueryTests.java    |  11 +-
 .../property/ValuePatternPropertyIndexTests.java   |   5 +-
 .../strategy/ContentMirrorStoreStrategyTest.java   |  14 +--
 .../index/reference/ReferenceIndexTest.java        |   9 +-
 .../oak/plugins/nodetype/TypeEditorTest.java       |  14 +--
 .../nodetype/write/NodeTypeRegistryTest.java       |   3 +-
 .../oak/query/PropertyInexistenceTest.java         |  22 ++--
 .../oak/query/QueryCostOverheadTest.java           |  13 +--
 .../oak/query/SQL2OptimiseQueryTest.java           |  15 ++-
 .../oak/query/TraversalAvoidanceTest.java          |   6 +-
 .../oak/query/index/IndexSelectionTest.java        |  10 +-
 .../oak/query/index/TraversingIndexQueryTest.java  | 114 ++++++++++-----------
 .../oak/query/stats/QuerySimilarCostTest.java      |   4 +-
 .../AuthorizationConfigurationImplOSGiTest.java    |   5 +-
 .../authorization/AuthorizationContextTest.java    |   5 +-
 .../authorization/accesscontrol/ACLTest.java       |   3 +-
 .../AccessControlImporterAbortTest.java            |   5 +-
 .../AccessControlImporterBaseTest.java             |  43 ++++----
 .../AccessControlImporterBesteffortTest.java       |   7 +-
 .../AccessControlImporterIgnoreTest.java           |   7 +-
 .../AccessControlManagerImplTest.java              |  19 ++--
 ...AccessControlManagerLimitedPermissionsTest.java |   7 +-
 .../accesscontrol/AccessControlValidatorTest.java  |  22 ++--
 .../accesscontrol/RemappedPrivilegeNamesTest.java  |   3 +-
 .../composite/AbstractCompositeProviderTest.java   |  19 ++--
 .../CompositeAccessControlManagerTest.java         |   4 +-
 .../CompositePermissionProviderOrTest.java         |   3 +-
 .../composite/CompositeProviderCoverageTest.java   |   7 +-
 .../composite/CompositeProviderCustomMixTest.java  |   4 +-
 .../composite/CompositeProviderFullScopeTest.java  |   4 +-
 .../CompositeProviderGetTreePermissionTest.java    |   5 +-
 .../composite/CompositeProviderNoScopeTest.java    |   7 +-
 .../composite/CompositeProviderScopeTest.java      |   3 +-
 .../composite/CompositeProviderSupportedTest.java  |   5 +-
 .../evaluation/ChildOrderPropertyTest.java         |   3 +-
 .../authorization/evaluation/RootTest.java         |  27 +++--
 .../authorization/evaluation/TreeTest.java         |   3 +-
 .../permission/ChildOrderDiffTest.java             |   5 +-
 .../permission/PermissionValidatorTest.java        |   4 +-
 .../permission/VersionablePathHookTest.java        |   4 +-
 .../CompositeRestrictionProviderTest.java          |  20 ++--
 .../restriction/CurrentPatternTest.java            |   7 +-
 .../restriction/ItemNamePatternTest.java           |   9 +-
 .../restriction/ItemNameRestrictionTest.java       |  13 ++-
 .../restriction/NodeTypePatternTest.java           |   5 +-
 .../restriction/PrefixPatternTest.java             |   5 +-
 .../restriction/RestrictionProviderImplTest.java   |  25 +++--
 .../internal/SecurityProviderRegistrationTest.java |   5 +-
 .../principal/PrincipalConfigurationImplTest.java  |   5 +-
 .../security/privilege/JcrAllCommitHookTest.java   |   4 +-
 .../security/privilege/PrivilegeContextTest.java   |   6 +-
 .../oak/security/privilege/PrivilegeImplTest.java  |   6 +-
 .../security/privilege/PrivilegeValidatorTest.java |  22 ++--
 .../security/user/AbstractGroupPrincipalTest.java  |   7 +-
 .../user/AddMembersByIdBestEffortTest.java         |   4 +-
 .../security/user/AuthorizableIteratorTest.java    |   5 +-
 .../oak/security/user/GroupImplTest.java           |   6 +-
 .../oak/security/user/ImpersonationImplTest.java   |   4 +-
 .../oak/security/user/IntermediatePathTest.java    |   5 +-
 .../security/user/PasswordExpiryHistoryTest.java   |   4 +-
 .../oak/security/user/PasswordHistoryTest.java     |   8 +-
 .../oak/security/user/SystemUserImplTest.java      |   4 +-
 .../oak/security/user/UserContextTest.java         |   5 +-
 .../oak/security/user/UserImporterBaseTest.java    |   5 +-
 .../user/UserImporterImpersonationIgnoreTest.java  |  18 ++--
 .../user/UserImporterMembershipAbortTest.java      |   9 +-
 .../user/UserImporterMembershipBesteffortTest.java |   7 +-
 .../user/UserImporterMembershipIgnoreTest.java     |  29 +++---
 .../oak/security/user/UserImporterTest.java        |  16 +--
 .../oak/security/user/action/GroupActionTest.java  |   4 +-
 .../user/action/PasswordValidationActionTest.java  |   5 +-
 .../oak/security/user/action/UserActionTest.java   |   4 +-
 .../oak/security/user/query/QueryUtilTest.java     |   3 +-
 .../security/user/query/ResultIteratorTest.java    |  14 +--
 .../security/user/query/UserQueryManagerTest.java  |   5 +-
 .../WhiteboardAuthorizableActionProviderTest.java  |   3 +-
 .../accesscontrol/L4_EffectivePoliciesTest.java    |   3 +-
 .../L5_AccessControlListImplTest.java              |  19 ++--
 .../L5_CustomPermissionEvaluationTest.java         |   8 +-
 .../privilege/L3_BuiltInPrivilegesTest.java        |   4 +-
 .../security/user/L6_AuthorizableContentTest.java  |   5 +-
 .../user/L7_AuthorizablePropertiesTest.java        |   7 +-
 .../org/apache/jackrabbit/oak/api/TreeTest.java    |   4 +-
 .../index/AsyncIndexUpdateClusterTestIT.java       |   4 +-
 .../jackrabbit/oak/IndexCostEvaluationTest.java    |   3 +-
 .../apache/jackrabbit/oak/jcr/NamePathTest.java    |  26 +++--
 .../security/authorization/HasPermissionTest.java  |   5 +-
 .../oak/jcr/security/user/RemappingTest.java       |   5 +-
 .../oak/jcr/security/user/UserQueryTest.java       |   6 +-
 .../apache/jackrabbit/oak/jcr/AtomicCounterIT.java |   6 +-
 .../plugins/index/lucene/IndexNodeManagerTest.java |   9 +-
 .../oak/plugins/index/lucene/IndexPlannerTest.java |  15 ++-
 .../lucene/IndexlaneRepositoryTraversalTest.java   |   5 +-
 .../index/lucene/LuceneIndexDefinitionTest.java    |  10 +-
 .../index/lucene/LuceneIndexEditorTest.java        |   4 +-
 .../oak/plugins/index/lucene/LuceneIndexTest.java  |  54 +++++-----
 .../MultiplexingLucenePropertyIndexTest.java       |   7 +-
 .../index/lucene/NodeStateAnalyzerFactoryTest.java |   7 +-
 .../index/lucene/hybrid/HybridIndexTest.java       |  34 +++---
 .../index/lucene/property/BucketSwitcherTest.java  |  25 +++--
 .../property/HybridPropertyIndexLookupTest.java    |  11 +-
 .../property/HybridPropertyIndexStorageTest.java   |   5 +-
 .../lucene/property/PropertyIndexCleanerTest.java  |   5 +-
 .../lucene/property/UniqueIndexCleanerTest.java    |   8 +-
 .../flatfile/ChildNodeStateProviderTest.java       |  22 ++--
 .../flatfile/NodeStateEntryWriterTest.java         |  13 ++-
 .../index/indexer/document/flatfile/TestUtils.java |   4 +-
 .../oak/plugins/document/RevisionsCommandTest.java |  14 ++-
 .../jackrabbit/oak/run/DataStoreCheckTest.java     |  13 ++-
 .../jackrabbit/oak/run/DataStoreCommandTest.java   |   7 +-
 .../oak/run/DocumentStoreCheckCommandTest.java     |   4 +-
 ...ndTraversalQueriesSimilarResultsCommonTest.java |   5 +-
 .../index/IndexExclusionQueryCommonTest.java       |  13 ++-
 .../oak/plugins/index/IndexPlannerCommonTest.java  |  13 ++-
 .../oak/plugins/index/search/AggregateTest.java    |  42 ++++----
 .../jackrabbit/oak/plugins/tree/TreeUtilTest.java  |  88 ++++++++--------
 .../spi/security/CompositeConfigurationTest.java   |  11 +-
 .../token/CompositeTokenProviderTest.java          |   9 +-
 .../authorization/accesscontrol/ACETest.java       |   7 +-
 .../AbstractAccessControlListTest.java             |   3 +-
 .../authorization/permission/PermissionsTest.java  |  13 ++-
 .../restriction/CompositePatternTest.java          |  16 +--
 .../CompositeRestrictionProviderTest.java          |   7 +-
 .../restriction/RestrictionImplTest.java           |   5 +-
 .../principal/CompositePrincipalProviderTest.java  |  13 ++-
 .../ImmutablePrivilegeDefinitionTest.java          |  16 +--
 .../privilege/PrivilegeBitsProviderTest.java       |  28 ++---
 .../user/action/AccessControlActionTest.java       |   9 +-
 .../user/action/CompositeActionProviderTest.java   |   8 +-
 .../spi/security/user/util/PasswordUtilTest.java   |   5 +-
 .../oak/spi/security/user/util/UserUtilTest.java   |   9 +-
 .../jackrabbit/oak/spi/xml/NodeInfoTest.java       |   7 +-
 .../jackrabbit/oak/spi/xml/PropInfoTest.java       |  41 ++++----
 .../oak/spi/xml/ReferenceChangeTrackerTest.java    |   3 +-
 .../oak/segment/SegmentDataStoreBlobGCIT.java      |   4 +-
 .../jackrabbit/oak/segment/SegmentParserTest.java  |   5 +-
 .../spi/monitor/CompositeIOMonitorTest.java        |  11 +-
 .../tool/iotrace/BreadthFirstTraceTest.java        |  19 ++--
 .../segment/tool/iotrace/DepthFirstTraceTest.java  |  19 ++--
 .../oak/segment/tool/iotrace/IOTracerTest.java     |   3 +-
 .../oak/segment/tool/iotrace/RandomTraceTest.java  |   7 +-
 .../oak/plugins/index/solr/query/SolrIndexIT.java  |  28 ++---
 .../composite/CompositeNodeStoreServiceTest.java   |   5 +-
 .../document/BlobReferenceIteratorTest.java        |   5 +-
 .../plugins/document/DocumentNodeStoreTest.java    |  21 ++--
 .../oak/plugins/document/DocumentSplitTest.java    |  16 ++-
 .../plugins/document/DocumentStoreStatsTest.java   |  31 +++---
 .../oak/plugins/document/FormatVersionTest.java    |   4 +-
 .../oak/plugins/document/MongoBlobGCTest.java      |   6 +-
 .../document/ThrottlingStatsCollectorImplTest.java |  34 +++---
 .../document/VersionGarbageCollectorIT.java        |  18 ++--
 .../plugins/document/blob/RDBBlobStoreTest.java    |   7 +-
 .../bundlor/BundledDocumentDifferTest.java         |   7 +-
 .../document/bundlor/DocumentBundlingTest.java     |   5 +-
 .../secondary/SecondaryStoreCacheTest.java         |  16 ++-
 .../secondary/SecondaryStoreObserverTest.java      |  10 +-
 .../oak/plugins/document/util/BaseUpdaterTest.java |   5 +-
 .../document/util/CreateMetricUpdaterTest.java     |  17 +--
 .../document/util/UpsertMetricUpdaterTest.java     |  15 +--
 .../oak/plugins/document/util/UtilsTest.java       |  13 ++-
 .../oak/plugins/memory/MemoryNodeBuilderTest.java  |   4 +-
 .../oak/upgrade/PrivilegeUpgradeTest.java          |   5 +-
 .../oak/upgrade/util/VersionCopyTestUtils.java     |   3 +-
 212 files changed, 1031 insertions(+), 1178 deletions(-)

diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalIdentityRefTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalIdentityRefTest.java
index 9da36685a8..38e73d903b 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalIdentityRefTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalIdentityRefTest.java
@@ -17,11 +17,10 @@
 package org.apache.jackrabbit.oak.spi.security.authentication.external;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.junit.Test;
@@ -169,7 +168,7 @@ public class ExternalIdentityRefTest {
 
     @Test
     public void testToString() {
-        for (ExternalIdentityRef r : ImmutableList.of(ref, refEmptyProvider, refEmptyProvider)) {
+        for (ExternalIdentityRef r : List.of(ref, refEmptyProvider, refEmptyProvider)) {
             assertEquals("ExternalIdentityRef{" + "id='" + r.getId() + '\'' + ", providerName='" + r.getProviderName() + '\'' + '}', r.toString());
         }
     }
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestIdentityProvider.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestIdentityProvider.java
index c2a8cbbb66..26278937c1 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestIdentityProvider.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestIdentityProvider.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.function.Supplier;
@@ -29,8 +30,6 @@ import javax.jcr.Credentials;
 import javax.jcr.SimpleCredentials;
 import javax.security.auth.login.LoginException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.jetbrains.annotations.NotNull;
 
 public class TestIdentityProvider implements ExternalIdentityProvider {
@@ -75,7 +74,7 @@ public class TestIdentityProvider implements ExternalIdentityProvider {
         addUser(new TestUser(ID_SECOND_USER, getName())
                 .withProperty("profile/name", "Second User")
                 .withProperty("age", 24)
-                .withProperty("col", ImmutableList.of("v1", "v2", "v3"))
+                .withProperty("col", List.of("v1", "v2", "v3"))
                 .withProperty("boolArr", new Boolean[]{true, false})
                 .withProperty("charArr", new char[]{'t', 'o', 'b'})
                 .withProperty("byteArr", new byte[0])
@@ -283,7 +282,7 @@ public class TestIdentityProvider implements ExternalIdentityProvider {
         @NotNull
         @Override
         public Iterable<ExternalIdentityRef> getDeclaredMembers() {
-            return ImmutableList.of();
+            return List.of();
         }
     }
 
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
index 32a607cbae..444d26698e 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.basic;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -1451,7 +1450,7 @@ public class DefaultSyncContextTest extends AbstractExternalAuthTest {
 
     @Test
     public void testCreateValuesEmptyCollection() throws Exception {
-        Value[] vs = syncCtx.createValues(ImmutableList.of());
+        Value[] vs = syncCtx.createValues(List.of());
         assertNotNull(vs);
         assertEquals(0, vs.length);
     }
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/AbstractDynamicTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/AbstractDynamicTest.java
index 4190916655..6094a9774e 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/AbstractDynamicTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/AbstractDynamicTest.java
@@ -16,12 +16,11 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
-import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser;
@@ -36,6 +35,7 @@ import javax.jcr.ValueFactory;
 import java.security.Principal;
 import java.util.Iterator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static org.junit.Assert.assertSame;
 
@@ -116,17 +116,17 @@ public abstract class AbstractDynamicTest extends AbstractExternalAuthTest {
 
     @NotNull
     static List<String> getIds(@NotNull Iterator<? extends Authorizable> authorizables) {
-        return ImmutableList.copyOf(Iterators.transform(authorizables, authorizable -> {
+        return CollectionUtils.toStream(authorizables).map(authorizable -> {
             try {
                 return authorizable.getID();
             } catch (RepositoryException repositoryException) {
                 throw new RuntimeException();
             }
-        }));
+        }).collect(Collectors.toList());
     }
 
     @NotNull
     static List<String> getPrincipalNames(@NotNull Iterator<Principal> groupPrincipals) {
-        return ImmutableList.copyOf(Iterators.transform(groupPrincipals, Principal::getName));
+        return CollectionUtils.toStream(groupPrincipals).map(Principal::getName).collect(Collectors.toList());
     }
 }
\ No newline at end of file
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java
index 704f0c1a91..1ba7db49a5 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java
@@ -27,7 +27,6 @@ import javax.jcr.GuestCredentials;
 import javax.jcr.SimpleCredentials;
 import javax.security.auth.login.LoginException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.AuthInfo;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup;
@@ -71,7 +70,7 @@ public class CustomCredentialsSupportTest extends ExternalLoginTestBase {
 
     @Test
     public void testLoginWithUnsupportedCredentials() throws Exception {
-        List<Credentials> creds = ImmutableList.of(
+        List<Credentials> creds = List.of(
                 new SimpleCredentials("testUser", new char[0]),
                 new GuestCredentials());
 
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicGroupsTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicGroupsTest.java
index a398d75482..a6e57907d3 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicGroupsTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicGroupsTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-import org.apache.jackrabbit.guava.common.collect.Iterators;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -26,6 +23,7 @@ import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProvider;
@@ -294,7 +292,7 @@ public class DynamicGroupsTest extends DynamicSyncContextTest {
         UserManager um = getUserManager(r);
         PrincipalManager pm = getPrincipalManager(r);
         
-        List<ExternalIdentityRef> declaredGroupRefs = ImmutableList.copyOf(previouslySyncedUser.getDeclaredGroups());
+        List<ExternalIdentityRef> declaredGroupRefs = CollectionUtils.toList(previouslySyncedUser.getDeclaredGroups());
         assertTrue(declaredGroupRefs.size() > 1);
         
         String groupId = declaredGroupRefs.get(0).getId();
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java
index 40106a4399..6680d231bc 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DynamicSyncContextTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -47,6 +46,7 @@ import org.junit.Test;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
@@ -119,7 +119,7 @@ public class DynamicSyncContextTest extends AbstractDynamicTest {
 
     private void assertDynamicMembership(@NotNull Authorizable a, @NotNull ExternalIdentity externalIdentity, long depth) throws Exception {
         Value[] vs = a.getProperty(REP_EXTERNAL_PRINCIPAL_NAMES);
-        Set<String> pNames = ImmutableList.copyOf(vs).stream().map(value -> {
+        Set<String> pNames = Arrays.stream(vs).map(value -> {
             try {
                 return value.getString();
             } catch (RepositoryException e) {
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/DynamicGroupValidatorTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/DynamicGroupValidatorTest.java
index 130605c6f3..b780521f33 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/DynamicGroupValidatorTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/DynamicGroupValidatorTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
@@ -141,7 +140,7 @@ public class DynamicGroupValidatorTest extends AbstractPrincipalTest {
         assertFalse(groupTree.hasProperty(REP_MEMBERS));
         
         String uuid = r.getTree(userManager.getAuthorizable(USER_ID).getPath()).getProperty(JCR_UUID).getValue(Type.STRING);
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(uuid), Type.WEAKREFERENCES);
+        groupTree.setProperty(REP_MEMBERS, List.of(uuid), Type.WEAKREFERENCES);
         try {
             r.commit();
             fail("CommitFailedException 77 expected.");
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java
index 98c7e6aec4..f31f01b097 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
@@ -586,7 +585,7 @@ public class ExternalGroupPrincipalProviderTest extends AbstractPrincipalTest {
                 return in.iterator();
             }
         };
-        List<Principal> out = ImmutableList.copyOf(p.findPrincipals(null, false, PrincipalManager.SEARCH_TYPE_ALL, 0, -1));
+        List<Principal> out = CollectionUtils.toList(p.findPrincipals(null, false, PrincipalManager.SEARCH_TYPE_ALL, 0, -1));
         Collections.sort(in, Comparator.comparing(Principal::getName));
         assertEquals(in, out);
     }
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalTest.java
index 78e5bb6ac6..69cb1f25a5 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
@@ -26,6 +25,7 @@ import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.QueryEngine;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser;
@@ -38,7 +38,9 @@ import javax.jcr.RepositoryException;
 import java.security.Principal;
 import java.text.ParseException;
 import java.util.Enumeration;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import static org.apache.jackrabbit.oak.spi.security.authentication.external.TestIdentityProvider.ID_SECOND_USER;
 import static org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES;
@@ -69,10 +71,10 @@ public class ExternalGroupPrincipalTest extends AbstractPrincipalTest {
         Authorizable notMember = getUserManager(root).getAuthorizable(ID_SECOND_USER);
         assertFalse(principal.isMember(notMember.getPrincipal()));
 
-        root.getTree(notMember.getPath()).setProperty(REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of("secondGroup"), Type.STRINGS);
+        root.getTree(notMember.getPath()).setProperty(REP_EXTERNAL_PRINCIPAL_NAMES, List.of("secondGroup"), Type.STRINGS);
         assertFalse(principal.isMember(notMember.getPrincipal()));
 
-        root.getTree(notMember.getPath()).setProperty(REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of(), Type.STRINGS);
+        root.getTree(notMember.getPath()).setProperty(REP_EXTERNAL_PRINCIPAL_NAMES, List.of(), Type.STRINGS);
         assertFalse(principal.isMember(new PrincipalImpl(notMember.getPrincipal().getName())));
     }
 
@@ -80,7 +82,8 @@ public class ExternalGroupPrincipalTest extends AbstractPrincipalTest {
     public void testIsMemberExternalGroup() throws Exception {
         GroupPrincipal principal = getGroupPrincipal();
 
-        Iterable<String> exGroupPrincNames = Iterables.transform(ImmutableList.copyOf(idp.listGroups()), ExternalIdentity::getPrincipalName);
+        List<String> exGroupPrincNames = CollectionUtils.toStream(
+                idp.listGroups()).map(ExternalIdentity::getPrincipalName).collect(Collectors.toList());
         for (String principalName : exGroupPrincNames) {
             assertFalse(principal.isMember(new PrincipalImpl(principalName)));
         }
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java
index 52963b0370..b45b21062b 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.prin
 
 import javax.jcr.SimpleCredentials;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -85,7 +84,7 @@ public class ExternalIdentityValidatorTest extends ExternalLoginTestBase {
     public void testAddExternalPrincipalNames() throws Exception {
         Tree userTree = root.getTree(testUserPath);
         try {
-            userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of("principalName"), Type.STRINGS);
+            userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, List.of("principalName"), Type.STRINGS);
             root.commit();
             fail("Creating rep:externalPrincipalNames must be detected.");
         } catch (CommitFailedException e) {
@@ -101,7 +100,7 @@ public class ExternalIdentityValidatorTest extends ExternalLoginTestBase {
         Root systemRoot = getSystemRoot();
         try {
             Tree userTree = systemRoot.getTree(testUserPath);
-            userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of("principalName"), Type.STRINGS);
+            userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, List.of("principalName"), Type.STRINGS);
             systemRoot.commit();
             fail("Creating rep:externalPrincipalNames without rep:externalId must be detected.");
         } catch (CommitFailedException e) {
@@ -117,7 +116,7 @@ public class ExternalIdentityValidatorTest extends ExternalLoginTestBase {
         Root systemRoot = getSystemRoot();
         Tree userTree = systemRoot.getTree(testUserPath);
         userTree.setProperty(REP_EXTERNAL_ID, "externalId");
-        userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of("principalName"), Type.STRINGS);
+        userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, List.of("principalName"), Type.STRINGS);
         systemRoot.commit();
     }
 
@@ -167,7 +166,7 @@ public class ExternalIdentityValidatorTest extends ExternalLoginTestBase {
         Tree userTree = systemRoot.getTree(externalUserPath);
 
         // changing with system root must succeed
-        userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of("principalNames"), Type.STRINGS);
+        userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, List.of("principalNames"), Type.STRINGS);
         systemRoot.commit();
     }
 
@@ -233,7 +232,7 @@ public class ExternalIdentityValidatorTest extends ExternalLoginTestBase {
         Root systemRoot = getSystemRoot();
         try {
             Tree userTree = systemRoot.getTree(testUserPath);
-            userTree.setProperty(REP_EXTERNAL_ID, ImmutableList.of("id", "id2"), Type.STRINGS);
+            userTree.setProperty(REP_EXTERNAL_ID, List.of("id", "id2"), Type.STRINGS);
             systemRoot.commit();
             fail("Creating rep:externalId as multiple STRING property must be detected.");
         } catch (CommitFailedException e) {
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/PrincipalProviderAutoMembershipTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/PrincipalProviderAutoMembershipTest.java
index 7d68a2ceb4..1afb4307a7 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/PrincipalProviderAutoMembershipTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/PrincipalProviderAutoMembershipTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
@@ -300,7 +299,7 @@ public class PrincipalProviderAutoMembershipTest extends ExternalGroupPrincipalP
 
     @Test
     public void testFindPrincipalsByHint() throws Exception {
-        List<String> hints = ImmutableList.of(
+        List<String> hints = List.of(
                 USER_AUTO_MEMBERSHIP_GROUP_PRINCIPAL_NAME,
                 GROUP_AUTO_MEMBERSHIP_GROUP_PRINCIPAL_NAME,
                 USER_AUTO_MEMBERSHIP_GROUP_ID,
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNoProtectionTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNoProtectionTest.java
index 0c894a3551..8866700c55 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNoProtectionTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNoProtectionTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
+import java.util.List;
 import java.util.Map;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
@@ -41,7 +41,7 @@ public class ValidatorNoProtectionTest extends ExternalIdentityValidatorTest {
     public void testRepExternalIdMultiple() throws Exception {
         Root systemRoot = getSystemRoot();
         Tree userTree = systemRoot.getTree(testUserPath);
-        userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_ID, ImmutableList.of("id", "id2"), Type.STRINGS);
+        userTree.setProperty(ExternalIdentityConstants.REP_EXTERNAL_ID, List.of("id", "id2"), Type.STRINGS);
         systemRoot.commit();
     }
 
diff --git a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNotDynamicTest.java b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNotDynamicTest.java
index a6a9ab2d36..f63aef6450 100644
--- a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNotDynamicTest.java
+++ b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ValidatorNotDynamicTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -24,6 +23,8 @@ import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.apache.jackrabbit.oak.api.CommitFailedException.CONSTRAINT;
 import static org.junit.Assert.fail;
 
@@ -41,7 +42,7 @@ public class ValidatorNotDynamicTest extends ExternalIdentityValidatorTest {
 
     private void setExternalPrincipalNames() throws Exception  {
         Root systemRoot = getSystemRoot();
-        systemRoot.getTree(externalUserPath).setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, ImmutableList.of("principalName"), Type.STRINGS);
+        systemRoot.getTree(externalUserPath).setProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES, List.of("principalName"), Type.STRINGS);
         systemRoot.commit();
 
         root.refresh();
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AccessControlTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AccessControlTest.java
index b157e1b404..bef75f9deb 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AccessControlTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AccessControlTest.java
@@ -21,7 +21,6 @@ import java.util.Set;
 
 import javax.jcr.security.AccessControlManager;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
@@ -73,7 +72,7 @@ public class AccessControlTest extends AbstractCugTest {
          *   - /content2      : allow everyone,  deny testGroup (isolated)
          *
          */
-        acPaths = ImmutableList.of(
+        acPaths = List.of(
                 "/content/rep:policy",
                 PermissionConstants.PERMISSIONS_STORE_PATH,
                 "/content/a/rep:cugPolicy",
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManagerTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManagerTest.java
index cdc445031c..3cfed4f116 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManagerTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugAccessControlManagerTest.java
@@ -30,7 +30,6 @@ import javax.jcr.security.AccessControlPolicyIterator;
 import javax.jcr.security.NamedAccessControlPolicy;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.guava.common.collect.Sets;
 import org.apache.jackrabbit.JcrConstants;
@@ -170,7 +169,7 @@ public class CugAccessControlManagerTest extends AbstractCugTest {
         CugPolicy cugPolicy = (CugPolicy) policies[0];
         assertTrue(cugPolicy.getPrincipals().isEmpty());
 
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of("unknownPrincipalName", EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of("unknownPrincipalName", EveryonePrincipal.NAME), Type.STRINGS);
 
         policies = cugAccessControlManager.getPolicies(SUPPORTED_PATH);
         cugPolicy = (CugPolicy) policies[0];
@@ -323,7 +322,7 @@ public class CugAccessControlManagerTest extends AbstractCugTest {
 
     @Test
     public void testSetInvalidPolicy() throws Exception {
-        List<AccessControlPolicy> invalidPolicies = ImmutableList.of(
+        List<AccessControlPolicy> invalidPolicies = List.of(
                 new AccessControlPolicy() {},
                 (NamedAccessControlPolicy) () -> "name",
                 InvalidCug.INSTANCE
@@ -453,7 +452,7 @@ public class CugAccessControlManagerTest extends AbstractCugTest {
 
     @Test
     public void testRemoveInvalidPolicy() throws Exception {
-        List<AccessControlPolicy> invalidPolicies = ImmutableList.of(
+        List<AccessControlPolicy> invalidPolicies = List.of(
                 new AccessControlPolicy() {},
                 (NamedAccessControlPolicy) () -> "name",
                 InvalidCug.INSTANCE
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java
index 8f92428a20..e50152e7ec 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import java.util.Set;
 import javax.jcr.security.AccessControlManager;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration;
@@ -186,7 +185,7 @@ public class CugConfigurationTest extends AbstractCugTest {
                 CugConstants.PARAM_CUG_SUPPORTED_PATHS, "/content");
         CugConfiguration cc = createConfiguration(params);
 
-        List<Principal> excluded = ImmutableList.of(
+        List<Principal> excluded = List.of(
                 SystemPrincipal.INSTANCE,
                 (AdminPrincipal) () -> "admin",
                 (SystemUserPrincipal) () -> "systemUser");
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugContextTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugContextTest.java
index 63c323b78e..5508bde012 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugContextTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugContextTest.java
@@ -21,7 +21,6 @@ import java.util.Set;
 import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -41,7 +40,7 @@ import static org.junit.Assert.assertTrue;
 public class CugContextTest extends AbstractCugTest implements NodeTypeConstants {
 
     private static String CUG_PATH = "/content/a/rep:cugPolicy";
-    private static List<String> NO_CUG_PATH = ImmutableList.of(
+    private static List<String> NO_CUG_PATH = List.of(
             "/content",
             "/content/a",
             "/content/rep:policy",
@@ -116,7 +115,7 @@ public class CugContextTest extends AbstractCugTest implements NodeTypeConstants
         assertTrue(CugContext.INSTANCE.definesLocation(TreeLocation.create(root, CUG_PATH)));
         assertTrue(CugContext.INSTANCE.definesLocation(TreeLocation.create(root, CUG_PATH + "/" + CugConstants.REP_PRINCIPAL_NAMES)));
 
-        List<String> existingNoCug = ImmutableList.of(
+        List<String> existingNoCug = List.of(
                 "/content",
                 "/content/a",
                 "/content/rep:policy"
@@ -126,7 +125,7 @@ public class CugContextTest extends AbstractCugTest implements NodeTypeConstants
             assertFalse(path, CugContext.INSTANCE.definesLocation(TreeLocation.create(root, path + "/" + CugConstants.REP_PRINCIPAL_NAMES)));
         }
 
-        List<String> nonExistingCug = ImmutableList.of(
+        List<String> nonExistingCug = List.of(
                 "/content/rep:cugPolicy",
                 UNSUPPORTED_PATH + "/rep:cugPolicy");
         for (String path : nonExistingCug) {
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugEvaluationTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugEvaluationTest.java
index e9c7b20521..e9c2835dfe 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugEvaluationTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugEvaluationTest.java
@@ -22,7 +22,6 @@ import java.util.Set;
 import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.ContentSession;
@@ -104,7 +103,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
 
     @Test
     public void testRead() {
-        List<String> noAccess = ImmutableList.of(
+        List<String> noAccess = List.of(
                 "/", UNSUPPORTED_PATH, /* no access */
                 "/content/a", "/content/a/b", "/content/aa/bb", /* granted by ace, denied by cug */
                 "/content2"            /* granted by cug only */
@@ -113,7 +112,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
             assertFalse(p, testRoot.getTree(p).exists());
         }
 
-        List<String> readAccess = ImmutableList.of("/content", "/content/subtree", "/content/a/b/c", "/content/aa");
+        List<String> readAccess = List.of("/content", "/content/subtree", "/content/a/b/c", "/content/aa");
         for (String p : readAccess) {
             assertTrue(p, testRoot.getTree(p).exists());
         }
@@ -135,7 +134,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
 
     @Test
     public void testReadCug() {
-        List<String> noAccess = ImmutableList.of(
+        List<String> noAccess = List.of(
                 "/content/a/rep:cugPolicy", "/content/aa/bb/rep:cugPolicy", "/content2/rep:cugPolicy"
         );
         for (String p : noAccess) {
@@ -155,7 +154,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
 
     @Test
     public void testWrite() throws Exception {
-        List<String> readOnly = ImmutableList.of("/content", "/content/a/b/c");
+        List<String> readOnly = List.of("/content", "/content/a/b/c");
         for (String p : readOnly) {
             try {
                 Tree content = testRoot.getTree(p);
@@ -179,7 +178,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
             assertTrue(pp.isGranted(root.getTree("/content/writeTest"), null, Permissions.ADD_NODE));
             assertTrue(pp.isGranted(root.getTree("/content/a/b/c/writeTest"), null, Permissions.ADD_NODE));
 
-            List<String> paths = ImmutableList.of("/content", "/content/a/b/c");
+            List<String> paths = List.of("/content", "/content/a/b/c");
             for (String p : paths) {
                 Tree content = r.getTree(p);
                 TreeUtil.addChild(content, "writeTest", NT_OAK_UNSTRUCTURED);
@@ -197,7 +196,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
         Root r = cs.getLatestRoot();
         try {
             Tree tree = r.getTree("/content/a/b/c");
-            tree.setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REP_CUG_MIXIN, AccessControlConstants.MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
+            tree.setProperty(JCR_MIXINTYPES, List.of(MIX_REP_CUG_MIXIN, AccessControlConstants.MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
             tree.addChild(AccessControlConstants.REP_POLICY).setProperty(JCR_PRIMARYTYPE, AccessControlConstants.NT_REP_ACL, Type.NAME);
             r.commit();
             fail();
@@ -215,7 +214,7 @@ public class CugEvaluationTest extends AbstractCugTest implements NodeTypeConsta
         try {
             // modify the existing cug
             Tree tree = r.getTree("/content/a/rep:cugPolicy");
-            tree.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME, testGroupPrincipal.getName()), Type.STRINGS);
+            tree.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME, testGroupPrincipal.getName()), Type.STRINGS);
             r.commit();
             fail();
         } catch (CommitFailedException e) {
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProviderTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProviderTest.java
index be0551a2f9..9d26e422a2 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProviderTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProviderTest.java
@@ -25,7 +25,6 @@ import javax.jcr.AccessDeniedException;
 import javax.jcr.GuestCredentials;
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.Root;
@@ -88,11 +87,11 @@ public class CugPermissionProviderTest extends AbstractCugTest implements NodeTy
         PATH_INCUG_MAP.put(INVALID_PATH, false);
     }
 
-    private static final List<String> READABLE_PATHS = ImmutableList.of(
+    private static final List<String> READABLE_PATHS = List.of(
             "/content/a/b/c", "/content/a/b/c/jcr:primaryType",
             "/content/a/b/c/nonExisting", "/content/a/b/c/nonExisting/jcr:primaryType");
 
-    private static final List<String> NOT_READABLE_PATHS = ImmutableList.of(
+    private static final List<String> NOT_READABLE_PATHS = List.of(
             "/", "/jcr:primaryType",
             UNSUPPORTED_PATH, UNSUPPORTED_PATH + "/jcr:primaryType",
             "/content", "/content/jcr:primaryType",
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java
index 1831b7921d..b5036c057f 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.cug.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -37,6 +36,8 @@ import org.junit.Test;
 import javax.jcr.nodetype.NodeDefinitionTemplate;
 import javax.jcr.nodetype.NodeTypeTemplate;
 
+import java.util.List;
+
 import static java.util.Objects.requireNonNull;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -64,7 +65,7 @@ public class CugValidatorTest extends AbstractCugTest {
         node = root.getTree(SUPPORTED_PATH2);
         try {
             node.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_CUG_POLICY, Type.NAME);
-            node.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+            node.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
             root.commit();
             fail();
         } catch (CommitFailedException e) {
@@ -118,9 +119,9 @@ public class CugValidatorTest extends AbstractCugTest {
 
     @Test(expected = CommitFailedException.class)
     public void testChangePrimaryTypeOfCug() throws Exception {
-        node.setProperty(JcrConstants.JCR_MIXINTYPES, ImmutableList.of(MIX_REP_CUG_MIXIN), Type.NAMES);
+        node.setProperty(JcrConstants.JCR_MIXINTYPES, List.of(MIX_REP_CUG_MIXIN), Type.NAMES);
         Tree cug = TreeUtil.addChild(node, REP_CUG_POLICY, NT_REP_CUG_POLICY);
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
         root.commit();
 
         try {
@@ -136,7 +137,7 @@ public class CugValidatorTest extends AbstractCugTest {
     @Test(expected = CommitFailedException.class)
     public void testInvalidPrimaryType() throws Exception {
         Tree cug = TreeUtil.addChild(node, REP_CUG_POLICY, NodeTypeConstants.NT_OAK_UNSTRUCTURED);
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
 
         try {
             root.commit();
@@ -152,7 +153,7 @@ public class CugValidatorTest extends AbstractCugTest {
     @Test(expected = CommitFailedException.class)
     public void testMissingMixin() throws Exception {
         Tree cug = TreeUtil.addChild(node, REP_CUG_POLICY, NT_REP_CUG_POLICY);
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
 
         try {
             root.commit();
@@ -167,9 +168,9 @@ public class CugValidatorTest extends AbstractCugTest {
 
     @Test(expected = CommitFailedException.class)
     public void testRemoveMixin() throws Exception {
-        node.setProperty(JcrConstants.JCR_MIXINTYPES, ImmutableList.of(MIX_REP_CUG_MIXIN), Type.NAMES);
+        node.setProperty(JcrConstants.JCR_MIXINTYPES, List.of(MIX_REP_CUG_MIXIN), Type.NAMES);
         Tree cug = TreeUtil.addChild(node, REP_CUG_POLICY, NT_REP_CUG_POLICY);
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
         root.commit();
 
         try {
@@ -186,9 +187,9 @@ public class CugValidatorTest extends AbstractCugTest {
 
     @Test(expected = CommitFailedException.class)
     public void testCugPolicyWithDifferentName() throws Exception {
-        node.setProperty(JcrConstants.JCR_MIXINTYPES, ImmutableList.of(MIX_REP_CUG_MIXIN), Type.NAMES);
+        node.setProperty(JcrConstants.JCR_MIXINTYPES, List.of(MIX_REP_CUG_MIXIN), Type.NAMES);
         Tree cug = TreeUtil.addChild(node, "anotherName", NT_REP_CUG_POLICY);
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
         try {
             root.commit();
         }  catch (CommitFailedException e) {
@@ -228,7 +229,7 @@ public class CugValidatorTest extends AbstractCugTest {
     public void testJcrNodeTypesOutsideOfSystemIsValidated() throws Exception {
         Tree n = TreeUtil.addChild(node, JCR_NODE_TYPES, NT_OAK_UNSTRUCTURED);
         Tree cug = TreeUtil.addChild(n, REP_CUG_POLICY, NT_REP_CUG_POLICY);
-        cug.setProperty(REP_PRINCIPAL_NAMES, ImmutableList.of(EveryonePrincipal.NAME), Type.STRINGS);
+        cug.setProperty(REP_PRINCIPAL_NAMES, List.of(EveryonePrincipal.NAME), Type.STRINGS);
 
         try {
             root.commit();
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java
index 462fef159e..e5a8fef4bb 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.cug.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
@@ -36,6 +35,7 @@ import org.junit.Test;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.AccessControlPolicy;
 import java.util.Collections;
+import java.util.List;
 
 import static org.apache.jackrabbit.oak.commons.PathUtils.ROOT_PATH;
 import static org.junit.Assert.assertEquals;
@@ -421,7 +421,7 @@ public class NestedCugHookTest extends AbstractCugTest {
         // cannot be relativized during the reconnect-preparation
         NodeBuilder before = new MemoryNodeBuilder(getTreeProvider().asNodeState(adminSession.getLatestRoot().getTree(PathUtils.ROOT_PATH)));
         NodeBuilder cugNode = before.getChildNode("content").getChildNode("rep:cugPolicy");
-        cugNode.setProperty(HIDDEN_NESTED_CUGS, ImmutableList.of("/nested/out/of/hierarchy", "/content/subtree"), Type.STRINGS);
+        cugNode.setProperty(HIDDEN_NESTED_CUGS, List.of("/nested/out/of/hierarchy", "/content/subtree"), Type.STRINGS);
 
         NestedCugHook nch = new NestedCugHook();
         nch.processCommit(before.getNodeState(), after, new CommitInfo("sid", null));
@@ -442,7 +442,7 @@ public class NestedCugHookTest extends AbstractCugTest {
         // for that very cug)
         NodeBuilder after = new MemoryNodeBuilder(getTreeProvider().asNodeState(root.getTree(PathUtils.ROOT_PATH)));
         NodeBuilder cugNode = after.getChildNode("content").getChildNode("rep:cugPolicy");
-        cugNode.setProperty(HIDDEN_NESTED_CUGS, ImmutableList.of(), Type.STRINGS);
+        cugNode.setProperty(HIDDEN_NESTED_CUGS, List.of(), Type.STRINGS);
 
         NodeState before = getTreeProvider().asNodeState(adminSession.getLatestRoot().getTree(PathUtils.ROOT_PATH));
 
@@ -467,7 +467,7 @@ public class NestedCugHookTest extends AbstractCugTest {
         // the nested cug of the before-state (and thus cannot clean-up the hidden structure)
         NodeBuilder before = new MemoryNodeBuilder(getTreeProvider().asNodeState(adminSession.getLatestRoot().getTree(PathUtils.ROOT_PATH)));
         NodeBuilder cugNode = before.getChildNode("content").getChildNode("rep:cugPolicy");
-        cugNode.setProperty(HIDDEN_NESTED_CUGS, ImmutableList.of(), Type.STRINGS);
+        cugNode.setProperty(HIDDEN_NESTED_CUGS, List.of(), Type.STRINGS);
 
         NestedCugHook nch = new NestedCugHook();
         nch.processCommit(before.getNodeState(), after, new CommitInfo("sid", null));
@@ -510,7 +510,7 @@ public class NestedCugHookTest extends AbstractCugTest {
         // the nested /content with the root node (and thus cannot clean-up the hidden structure,
         // which is already 'cleaned' for that very cug)
         NodeBuilder after = new MemoryNodeBuilder(getTreeProvider().asNodeState(root.getTree(PathUtils.ROOT_PATH)));
-        after.setProperty(HIDDEN_NESTED_CUGS, ImmutableList.of(), Type.STRINGS);
+        after.setProperty(HIDDEN_NESTED_CUGS, List.of(), Type.STRINGS);
         after.setProperty(HIDDEN_TOP_CUG_CNT, 0);
         NodeState before = getTreeProvider().asNodeState(adminSession.getLatestRoot().getTree(PathUtils.ROOT_PATH));
 
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java
index c0f0ca0776..586aa8e5d3 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java
@@ -21,7 +21,6 @@ import java.util.Set;
 
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.plugins.tree.TreeLocation;
@@ -40,7 +39,7 @@ import static org.junit.Assert.assertTrue;
 
 public class NoCugTest extends AbstractCugTest {
 
-    private static final List<String> PATHS = ImmutableList.of(PathUtils.ROOT_PATH, SUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH3, UNSUPPORTED_PATH, INVALID_PATH);
+    private static final List<String> PATHS = List.of(PathUtils.ROOT_PATH, SUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH3, UNSUPPORTED_PATH, INVALID_PATH);
 
     private CugPermissionProvider cugPermProvider;
 
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/SupportedPathsTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/SupportedPathsTest.java
index 31ed92b7bf..dad9f29bc6 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/SupportedPathsTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/SupportedPathsTest.java
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -79,7 +78,7 @@ public class SupportedPathsTest {
     public void testRootPath() {
         SupportedPaths supportedPaths = new SupportedPaths(Set.of("/"));
 
-        List<String> paths = ImmutableList.of("/", "/content", "/jcr:system", "/testRoot", "/some/other/path", "/content/a", "/content/a/b");
+        List<String> paths = List.of("/", "/content", "/jcr:system", "/testRoot", "/some/other/path", "/content/a", "/content/a/b");
 
         for (String path : paths) {
             assertTrue(path, supportedPaths.includes(path));
@@ -91,7 +90,7 @@ public class SupportedPathsTest {
     public void testEmpty() {
         SupportedPaths supportedPaths = new SupportedPaths(Set.of());
 
-        List<String> paths = ImmutableList.of("/", "/content", "/jcr:system", "/testRoot", "/some/other/path", "/content/a", "/content/a/b");
+        List<String> paths = List.of("/", "/content", "/jcr:system", "/testRoot", "/some/other/path", "/content/a", "/content/a/b");
 
         for (String path : paths) {
             assertFalse(path, supportedPaths.includes(path));
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java
index d3f534d4ef..caf119c3f6 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.spi.security.authorization.cug.impl;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
@@ -39,7 +38,7 @@ import static org.junit.Assert.assertTrue;
 
 public class TopLevelPathTest extends AbstractCugTest {
 
-    private static final List<String> PATHS = ImmutableList.of(ROOT_PATH, SUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH3, UNSUPPORTED_PATH, INVALID_PATH);
+    private static final List<String> PATHS = List.of(ROOT_PATH, SUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH3, UNSUPPORTED_PATH, INVALID_PATH);
 
     @Test
     public void testHasAnyNoCug() {
diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/VersionTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/VersionTest.java
index 5ae6789678..0a90e55253 100644
--- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/VersionTest.java
+++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/VersionTest.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.ContentSession;
@@ -76,12 +75,12 @@ public class VersionTest extends AbstractCugTest implements NodeTypeConstants, V
         // - /content2      : allow everyone,  deny testGroup (isolated)
         setupCugsAndAcls();
 
-        readAccess = ImmutableList.of(
+        readAccess = List.of(
                 SUPPORTED_PATH,
                 "/content/subtree",
                 "/content/aa");
 
-        noReadAccess = ImmutableList.of(
+        noReadAccess = List.of(
                 UNSUPPORTED_PATH,  /* no access */
                 "/content2",       /* granted by cug only */
                 "/content/a",      /* granted by ace, denied by cug */
diff --git a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AccessControlManagerLimitedUserTest.java b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AccessControlManagerLimitedUserTest.java
index 642a6812ce..ccb3d1977a 100644
--- a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AccessControlManagerLimitedUserTest.java
+++ b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AccessControlManagerLimitedUserTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy;
@@ -47,7 +46,6 @@ import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.Privilege;
 import java.security.Principal;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -561,7 +559,7 @@ public class AccessControlManagerLimitedUserTest extends AbstractPrincipalBasedT
             Tree policyTree = testRoot.getTree(getPolicyPath());
             Tree entry = TreeUtil.addChild(policyTree, "entry", NT_REP_PRINCIPAL_ENTRY);
             entry.setProperty(REP_EFFECTIVE_PATH, TEST_OAK_PATH, Type.PATH);
-            entry.setProperty(Constants.REP_PRIVILEGES, ImmutableList.of(JCR_ADD_CHILD_NODES), Type.NAMES);
+            entry.setProperty(Constants.REP_PRIVILEGES, List.of(JCR_ADD_CHILD_NODES), Type.NAMES);
             testRoot.commit();
         } catch (CommitFailedException e) {
             assertEquals(CommitFailedException.ACCESS, e.getType());
@@ -581,7 +579,7 @@ public class AccessControlManagerLimitedUserTest extends AbstractPrincipalBasedT
             Tree policyTree = testRoot.getTree(getPolicyPath());
             Tree entry = TreeUtil.addChild(policyTree, "entry", NT_REP_PRINCIPAL_ENTRY);
             entry.setProperty(REP_EFFECTIVE_PATH, TEST_OAK_PATH, Type.PATH);
-            entry.setProperty(Constants.REP_PRIVILEGES, ImmutableList.of(JCR_ADD_CHILD_NODES), Type.NAMES);
+            entry.setProperty(Constants.REP_PRIVILEGES, List.of(JCR_ADD_CHILD_NODES), Type.NAMES);
             testRoot.commit();
         } catch (CommitFailedException e) {
             assertEquals(CommitFailedException.ACCESS, e.getType());
@@ -612,7 +610,7 @@ public class AccessControlManagerLimitedUserTest extends AbstractPrincipalBasedT
         Tree policyTree = testRoot.getTree(getPolicyPath());
         Tree entry = TreeUtil.addChild(policyTree, "entry", NT_REP_PRINCIPAL_ENTRY);
         entry.setProperty(REP_EFFECTIVE_PATH, TEST_OAK_PATH, Type.PATH);
-        entry.setProperty(Constants.REP_PRIVILEGES, ImmutableList.of(JCR_ADD_CHILD_NODES), Type.NAMES);
+        entry.setProperty(Constants.REP_PRIVILEGES, List.of(JCR_ADD_CHILD_NODES), Type.NAMES);
         testRoot.commit();
     }
 
diff --git a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/MockUtility.java b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/MockUtility.java
index 6d87333b09..ad7e90f0e1 100644
--- a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/MockUtility.java
+++ b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/MockUtility.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -36,6 +35,7 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.mockito.Mockito;
 
+import java.util.Arrays;
 import java.util.Set;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -98,7 +98,7 @@ final class MockUtility {
     }
 
     static PropertyState createMixinTypesProperty(@NotNull String... mixinTypes) {
-        return PropertyStates.createProperty(JcrConstants.JCR_MIXINTYPES, ImmutableList.copyOf(mixinTypes), Type.NAMES);
+        return PropertyStates.createProperty(JcrConstants.JCR_MIXINTYPES, Arrays.asList(mixinTypes), Type.NAMES);
     }
 
     static FilterProvider mockFilterProvider(boolean canHandle) {
diff --git a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java
index 2205f984f7..66b46e64e0 100644
--- a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java
+++ b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PolicyValidatorTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -42,6 +40,7 @@ import org.junit.Test;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -525,7 +524,7 @@ public class PolicyValidatorTest extends AbstractPrincipalBasedTest {
         try {
             NodeState entry = mockNodeState(NT_REP_PRINCIPAL_ENTRY);
             when(entry.getProperty(REP_EFFECTIVE_PATH)).thenReturn(PropertyStates.createProperty(REP_EFFECTIVE_PATH,"/path", Type.PATH));
-            when(entry.getNames(REP_PRIVILEGES)).thenReturn(ImmutableList.of("privName"));
+            when(entry.getNames(REP_PRIVILEGES)).thenReturn(List.of("privName"));
 
             v.childNodeChanged("entryName", entry, entry);
             fail("CommitFailedException type OAK code 13 expected.");
@@ -554,7 +553,7 @@ public class PolicyValidatorTest extends AbstractPrincipalBasedTest {
         try {
             NodeState entry = mockNodeState(NT_REP_PRINCIPAL_ENTRY);
             when(entry.getProperty(REP_EFFECTIVE_PATH)).thenReturn(null);
-            when(entry.getNames(REP_PRIVILEGES)).thenReturn(ImmutableList.of(JCR_READ));
+            when(entry.getNames(REP_PRIVILEGES)).thenReturn(List.of(JCR_READ));
 
             v.childNodeChanged("entryName", entry, entry);
             fail("CommitFailedException type CONSTRAINT code 21 expected.");
diff --git a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManagerTest.java b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManagerTest.java
index c5a54cbf0f..42d65a0499 100644
--- a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManagerTest.java
+++ b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalBasedAccessControlManagerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy;
 import org.apache.jackrabbit.api.security.authorization.PrincipalAccessControlList;
@@ -24,6 +23,7 @@ import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
 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.CollectionUtils;
 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;
@@ -554,7 +554,7 @@ public class PrincipalBasedAccessControlManagerTest extends AbstractPrincipalBas
         Iterator<AccessControlPolicy> effective = acMgr.getEffectivePolicies(principals, new String[0]);
         AccessControlPolicy[] expected = acMgr.getEffectivePolicies(principals);
         
-        assertArrayEquals(expected, ImmutableList.copyOf(effective).toArray(new AccessControlPolicy[0]));
+        assertArrayEquals(expected, (CollectionUtils.toList(effective).toArray()));
     }
 
     @Test
@@ -567,7 +567,7 @@ public class PrincipalBasedAccessControlManagerTest extends AbstractPrincipalBas
         String[] paths = readablePaths.stream().map(oakPath -> namePathMapper.getJcrPath(oakPath)).distinct().toArray(String[]::new);
         assertEquals(3, paths.length);
         
-        List<AccessControlPolicy> effective = ImmutableList.copyOf(acMgr.getEffectivePolicies(Collections.singleton(validPrincipal), paths));
+        List<AccessControlPolicy> effective = CollectionUtils.toList(acMgr.getEffectivePolicies(Collections.singleton(validPrincipal), paths));
 
         assertEquals(1, effective.size());
         assertEquals(ReadPolicy.INSTANCE, effective.get(0));
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 f27ed5f556..c8f5bd7bd9 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
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.authorization.PrincipalAccessControlList;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeCollection;
@@ -50,6 +49,7 @@ import javax.jcr.security.AccessControlEntry;
 import javax.jcr.security.AccessControlException;
 import javax.jcr.security.Privilege;
 import java.security.Principal;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -140,7 +140,7 @@ public class PrincipalPolicyImplTest extends AbstractPrincipalBasedTest {
         Tree t = mock(Tree.class);
         PropertyState path = PropertyStates.createProperty(REP_EFFECTIVE_PATH, oakPath);
         when(t.getProperty(REP_EFFECTIVE_PATH)).thenReturn(path);
-        PropertyState privs = PropertyStates.createProperty(REP_PRIVILEGES, ImmutableList.copyOf(privilegeNames), Type.NAMES);
+        PropertyState privs = PropertyStates.createProperty(REP_PRIVILEGES, Arrays.asList(privilegeNames), Type.NAMES);
         when(t.getProperty(REP_PRIVILEGES)).thenReturn(privs);
         Tree rTree = when(mock(Tree.class).getProperties()).thenReturn(Collections.emptySet()).getMock();
         when(t.getChild(REP_RESTRICTIONS)).thenReturn(rTree);
diff --git a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporterTest.java b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporterTest.java
index b969900f80..a6aabe5137 100644
--- a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporterTest.java
+++ b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/PrincipalPolicyImporterTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Maps;
 import org.apache.jackrabbit.api.security.user.User;
@@ -53,6 +52,7 @@ import javax.jcr.security.AccessControlException;
 import javax.jcr.security.AccessControlPolicy;
 import java.security.Principal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -148,10 +148,10 @@ public class PrincipalPolicyImporterTest extends AbstractPrincipalBasedTest {
     }
 
     private List<PropInfo> mockPropInfos(@NotNull Map<String, Value[]> restrictions) throws RepositoryException {
-        List<PropInfo> propInfos = new ArrayList();
+        List<PropInfo> propInfos = new ArrayList<>();
         for (Map.Entry<String,Value[]> r : restrictions.entrySet()) {
             String jcrName = r.getKey();
-            List<Value> vs = ImmutableList.copyOf(r.getValue());
+            List<Value> vs = Arrays.asList(r.getValue());
             PropInfo propInfo = mockPropInfo(jcrName);
             if (!vs.isEmpty()) {
                 TextValue first = when(mock(TextValue.class).getString()).thenReturn(vs.get(0).getString()).getMock();
@@ -574,7 +574,7 @@ public class PrincipalPolicyImporterTest extends AbstractPrincipalBasedTest {
         // rep:privileges with wrong type
         PropInfo propInfo = mockPropInfo(getJcrName(REP_PRIVILEGES));
         TextValue tx = when(mock(TextValue.class).getString()).thenReturn(getJcrName(JCR_READ)).getMock();
-        List values = ImmutableList.of(tx);
+        List values = List.of(tx);
         when(propInfo.getTextValues()).thenReturn(values);
         when(propInfo.getType()).thenReturn(PropertyType.STRING);
         propInfos.add(propInfo);
diff --git a/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java b/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
index 7b4a9afa1c..b0e0c15fb4 100644
--- a/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
+++ b/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
@@ -41,7 +41,6 @@ import com.amazonaws.services.s3.model.S3ObjectSummary;
 import com.amazonaws.services.s3.transfer.TransferManager;
 
 import org.apache.jackrabbit.guava.common.base.Strings;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Maps;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.data.DataStore;
@@ -66,7 +65,7 @@ public class S3DataStoreUtils extends DataStoreUtils {
     protected static Class S3 = S3DataStore.class;
 
     public static List<String> getFixtures() {
-        return ImmutableList.of(S3.getName());
+        return List.of(S3.getName());
     }
 
     public static boolean isS3DataStore() {
diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreMarkSweepGarbageCollectorTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreMarkSweepGarbageCollectorTest.java
index 1d577b893b..e36a569579 100644
--- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreMarkSweepGarbageCollectorTest.java
+++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreMarkSweepGarbageCollectorTest.java
@@ -16,10 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.blob;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.core.data.DataIdentifier;
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStoreException;
@@ -79,7 +77,7 @@ public class SharedDataStoreMarkSweepGarbageCollectorTest {
   @Before
   public void setUp() throws IOException {
     when(whiteboard.track(CheckpointMBean.class)).thenReturn(tracker);
-    when(tracker.getServices()).thenReturn(ImmutableList.of(checkpointMBean));
+    when(tracker.getServices()).thenReturn(List.of(checkpointMBean));
 
     when(blobStore.getType()).thenReturn(SHARED);
 
@@ -116,7 +114,7 @@ public class SharedDataStoreMarkSweepGarbageCollectorTest {
   @Test
   public void markAndSweepShouldSucceedWhenAllRepositoriesAreAvailable() throws Exception {
     setupSharedDataRecords("REPO1", "REPO1");
-    when(blobStore.getAllChunkIds(0L)).thenReturn(ImmutableList.<String>of().iterator());
+    when(blobStore.getAllChunkIds(0L)).thenReturn(List.<String>of().iterator());
 
     collector.markAndSweep(false, true);
 
@@ -133,8 +131,8 @@ public class SharedDataStoreMarkSweepGarbageCollectorTest {
     DataRecord repoDataRecord = mock(DataRecord.class);
     when(repoDataRecord.getIdentifier()).thenReturn(new DataIdentifier("repository-" + repoRepoId));
 
-    List<DataRecord> refs = ImmutableList.of(refDataRecord);
-    List<DataRecord> repos = ImmutableList.of(repoDataRecord);
+    List<DataRecord> refs = List.of(refDataRecord);
+    List<DataRecord> repos = List.of(repoDataRecord);
 
     when(blobStore.getAllMetadataRecords(SharedDataStoreUtils.SharedStoreRecordType.REFERENCES.getType())).thenReturn(refs);
     when(blobStore.getAllMetadataRecords(SharedDataStoreUtils.SharedStoreRecordType.REPOSITORY.getType())).thenReturn(repos);
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 a797063aff..028a88b650 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
@@ -29,9 +29,7 @@ import java.util.Random;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.data.DataIdentifier;
@@ -170,7 +168,7 @@ public class DataStoreBlobStoreTest extends AbstractBlobStoreTest {
         DataIdentifier d10 = new DataIdentifier("d-10");
         DataIdentifier d20 = new DataIdentifier("d-20");
         DataIdentifier d30 = new DataIdentifier("d-30");
-        List<DataIdentifier> dis = ImmutableList.of(d10, d20, d30);
+        List<DataIdentifier> dis = List.of(d10, d20, d30);
         List<DataRecord> recs = CollectionUtils.toList(
             Iterables.transform(dis, input -> new TimeDataRecord(input)));
         OakFileDataStore mockedDS = mock(OakFileDataStore.class);
diff --git a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
index 8011eb15b6..1cb0ecf497 100644
--- a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
+++ b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
@@ -37,7 +37,7 @@ import java.util.function.Function;
 import org.apache.commons.io.LineIterator;
 import org.apache.jackrabbit.guava.common.base.Splitter;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.commons.io.FileLineDifferenceIterator;
 import org.jetbrains.annotations.Nullable;
 import org.junit.Test;
@@ -159,12 +159,12 @@ public class FileLineDifferenceIteratorTest {
 
     private static void assertReverseDiff(String marked, String all, List<String> diff) throws IOException {
         Iterator<String> itr = createItr(all, marked);
-        assertThat("marked: " + marked + " all: " + all, ImmutableList.copyOf(itr), is(diff));
+        assertThat("marked: " + marked + " all: " + all, CollectionUtils.toList(itr), is(diff));
     }
 
     private static void assertDiff(String marked, String all, List<String> diff) throws IOException {
         Iterator<String> itr = createItr(marked, all);
-        assertThat("marked: " + marked + " all: " + all, ImmutableList.copyOf(itr), is(diff));
+        assertThat("marked: " + marked + " all: " + all, CollectionUtils.toList(itr), is(diff));
     }
 
     private static Iterator<String> createItr(String marked, String all) throws IOException {
@@ -189,6 +189,6 @@ public class FileLineDifferenceIteratorTest {
                 }
             });
 
-        assertThat("marked: " + marked + " all: " + all, ImmutableList.copyOf(itr), is(diff));
+        assertThat("marked: " + marked + " all: " + all, CollectionUtils.toList(itr), is(diff));
     }
 }
diff --git a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/StringSortTest.java b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/StringSortTest.java
index cf8423038a..1006d190ac 100644
--- a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/StringSortTest.java
+++ b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/sort/StringSortTest.java
@@ -28,8 +28,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -106,7 +105,7 @@ public class StringSortTest {
         Collections.sort(paths, comparator);
         collector.sort();
 
-        List<String> sortedPaths = ImmutableList.copyOf(collector.getIds());
+        List<String> sortedPaths = CollectionUtils.toList(collector.getIds());
         assertEquals(paths.size(), sortedPaths.size());
         assertEquals(paths, sortedPaths);
     }
@@ -123,7 +122,7 @@ public class StringSortTest {
 
         if (permutation) {
             List<String> newRoots = new ArrayList<>();
-            CollectionUtils.permutations(rootPaths).
+            org.apache.commons.collections4.CollectionUtils.permutations(rootPaths).
                     stream().
                     sorted((a, b) -> Arrays.compare(a.toArray(new String[0]), b.toArray(new String[0]))).
                     forEach(permuts -> newRoots.add(String.join("", permuts)));
diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/spi/mount/MountInfoTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/spi/mount/MountInfoTest.java
index d8763fc186..33817431de 100644
--- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/spi/mount/MountInfoTest.java
+++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/spi/mount/MountInfoTest.java
@@ -16,10 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.spi.mount;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -27,12 +25,13 @@ import org.apache.jackrabbit.oak.spi.mount.MountInfo;
 import org.junit.Test;
 
 import java.util.Collections;
+import java.util.List;
 
 public class MountInfoTest {
 
     @Test
     public void testIsMounted() throws Exception{
-        MountInfo md = new MountInfo("foo", false, of("/x/y"), of("/a", "/b"));
+        MountInfo md = new MountInfo("foo", false, List.of("/x/y"), List.of("/a", "/b"));
         assertTrue(md.isMounted("/a"));
         assertTrue(md.isMounted("/b"));
         assertTrue(md.isMounted("/b/c/d"));
@@ -45,7 +44,7 @@ public class MountInfoTest {
 
     @Test
     public void testIsUnder() {
-        MountInfo md = new MountInfo("foo", false, Collections.<String>emptyList(), of("/apps", "/etc/config", "/content/my/site", "/var"));
+        MountInfo md = new MountInfo("foo", false, Collections.emptyList(), List.of("/apps", "/etc/config", "/content/my/site", "/var"));
         assertTrue(md.isUnder("/etc"));
         assertTrue(md.isUnder("/content"));
         assertTrue(md.isUnder("/content/my"));
@@ -56,7 +55,7 @@ public class MountInfoTest {
 
     @Test
     public void testIsDirectlyUnder() {
-        MountInfo md = new MountInfo("foo", false, Collections.<String>emptyList(), of("/apps", "/etc/my/config", "/var"));
+        MountInfo md = new MountInfo("foo", false, Collections.<String>emptyList(), List.of("/apps", "/etc/my/config", "/var"));
         assertFalse(md.isDirectlyUnder("/etc"));
         assertTrue(md.isDirectlyUnder("/etc/my"));
         assertFalse(md.isDirectlyUnder("/etc/my/config"));
@@ -65,7 +64,7 @@ public class MountInfoTest {
 
     @Test
     public void testSupportFragment() {
-        MountInfo md = new MountInfo("foo", false, of("/apps", "/libs/*/site", "/content/*$", "/var$"), Collections.emptyList());
+        MountInfo md = new MountInfo("foo", false, List.of("/apps", "/libs/*/site", "/content/*$", "/var$"), Collections.emptyList());
 
         assertFalse(md.isSupportFragment("/"));
         assertTrue(md.isSupportFragment("/apps"));
@@ -86,7 +85,7 @@ public class MountInfoTest {
 
     @Test
     public void testSupportFragmentUnder() {
-        MountInfo md = new MountInfo("foo", false, of("/apps", "/libs/*/site", "/content/*$", "/var$"), Collections.emptyList());
+        MountInfo md = new MountInfo("foo", false, List.of("/apps", "/libs/*/site", "/content/*$", "/var$"), Collections.emptyList());
 
         assertTrue(md.isSupportFragmentUnder("/"));
         assertTrue(md.isSupportFragmentUnder("/apps"));
@@ -107,7 +106,7 @@ public class MountInfoTest {
 
     @Test
     public void testIsMountedWithFragments() {
-        MountInfo md = new MountInfo("foo", false, of("/apps", "/libs/*/site", "/content/*$", "/var$"), Collections.emptyList());
+        MountInfo md = new MountInfo("foo", false, List.of("/apps", "/libs/*/site", "/content/*$", "/var$"), Collections.emptyList());
 
         assertFalse(md.isMounted("/oak:mount-foo"));
         assertTrue(md.isMounted("/apps/oak:mount-foo"));
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/core/SecureNodeBuilderTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/core/SecureNodeBuilderTest.java
index 3eb02946fe..76b232d885 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/core/SecureNodeBuilderTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/core/SecureNodeBuilderTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.core;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.LazyValue;
@@ -31,6 +30,8 @@ import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.apache.jackrabbit.oak.core.TestPermissionProvider.NAME_ACCESSIBLE;
 import static org.apache.jackrabbit.oak.core.TestPermissionProvider.NAME_NON_ACCESSIBLE;
 import static org.apache.jackrabbit.oak.core.TestPermissionProvider.NAME_NON_EXISTING;
@@ -266,7 +267,7 @@ public class SecureNodeBuilderTest {
 
     @Test
     public void testGetPropertiesAfterSet() {
-        secureNodeBuilder.setProperty(PropertyStates.createProperty("another", ImmutableList.of("v", "v2"), Type.STRINGS));
+        secureNodeBuilder.setProperty(PropertyStates.createProperty("another", List.of("v", "v2"), Type.STRINGS));
         assertEquals(2, Iterables.size(secureNodeBuilder.getProperties()));
     }
 
@@ -291,7 +292,7 @@ public class SecureNodeBuilderTest {
 
     @Test
     public void testGetBooleanTypeBooleans() {
-        secureNodeBuilder.setProperty("booleans", ImmutableList.of(true, false), Type.BOOLEANS);
+        secureNodeBuilder.setProperty("booleans", List.of(true, false), Type.BOOLEANS);
         assertFalse(secureNodeBuilder.getBoolean("booleans"));
     }
 
@@ -304,7 +305,7 @@ public class SecureNodeBuilderTest {
 
     @Test
     public void testGetStringTypeStrings() {
-        secureNodeBuilder.setProperty("strings", ImmutableList.of("a", "b"), Type.STRINGS);
+        secureNodeBuilder.setProperty("strings", List.of("a", "b"), Type.STRINGS);
         assertNull(secureNodeBuilder.getString("strings"));
     }
 
@@ -323,7 +324,7 @@ public class SecureNodeBuilderTest {
 
     @Test
     public void testGetNameTypeNames() {
-        secureNodeBuilder.setProperty("names", ImmutableList.of("a", "b"), Type.NAMES);
+        secureNodeBuilder.setProperty("names", List.of("a", "b"), Type.NAMES);
         assertNull(secureNodeBuilder.getName("names"));
     }
 
@@ -342,7 +343,7 @@ public class SecureNodeBuilderTest {
 
     @Test
     public void testGetNamesTypeNames() {
-        Iterable<String> names = ImmutableList.of("a", "b");
+        Iterable<String> names = List.of("a", "b");
         secureNodeBuilder.setProperty("names", names, Type.NAMES);
         assertTrue(Iterables.elementsEqual(names, secureNodeBuilder.getNames("names")));
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java
index a68a3d0847..0c4f1df13f 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.plugins.atomic;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
+
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
 import static org.apache.jackrabbit.oak.api.Type.LONG;
 import static org.apache.jackrabbit.oak.api.Type.NAMES;
@@ -213,7 +213,7 @@ public class AtomicCounterEditorTest {
     }
     
     private static NodeBuilder setMixin(@NotNull final NodeBuilder builder) {
-        return requireNonNull(builder).setProperty(JCR_MIXINTYPES, of(MIX_ATOMIC_COUNTER), NAMES);
+        return requireNonNull(builder).setProperty(JCR_MIXINTYPES, List.of(MIX_ATOMIC_COUNTER), NAMES);
     }
     
     
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreTest.java
index 65501c3255..f90d547910 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.cow;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -27,6 +26,7 @@ import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.List;
 import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
@@ -96,7 +96,7 @@ public class COWNodeStoreTest {
         info = cowNodeStore.checkpointInfo(checkpoint2);
         assertEquals("The new checkpoint is not available", Map.of("k", "v2"), info);
         assertTrue("The retrieve() doesn't work for the new checkpoint", cowNodeStore.retrieve(checkpoint2).hasChildNode("foo"));
-        assertEquals(ImmutableList.of(checkpoint1, checkpoint2), cowNodeStore.checkpoints());
+        assertEquals(List.of(checkpoint1, checkpoint2), cowNodeStore.checkpoints());
 
         assertTrue("The new checkpoint shouldn't be stored in the main store", store.checkpointInfo(checkpoint2).isEmpty());
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java
index 4ccea8d9fe..d70eb184c6 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java
@@ -97,7 +97,6 @@ import org.junit.After;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Maps;
 
 import ch.qos.logback.classic.Level;
@@ -1880,7 +1879,7 @@ public class AsyncIndexUpdateTest {
         AsyncIndexUpdate async = new AsyncIndexUpdate("async", store, provider);
         CollectingValidatorProvider v = new CollectingValidatorProvider();
 
-        async.setValidatorProviders(ImmutableList.<ValidatorProvider>of(v));
+        async.setValidatorProviders(List.of(v));
         async.run();
 
         assertFalse(v.visitedPaths.isEmpty());
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java
index cb2e87faaf..30931b342c 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java
@@ -44,12 +44,12 @@ import static org.junit.Assert.fail;
 
 import java.util.Calendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import ch.qos.logback.classic.Level;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
@@ -554,15 +554,15 @@ public class IndexUpdateTest {
         // create async defs with nrt and sync mixed in
         createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                 "asyncIndex", true, false, Set.of("foo"), null)
-                .setProperty(ASYNC_PROPERTY_NAME, ImmutableList.of("async-run"), Type.STRINGS)
+                .setProperty(ASYNC_PROPERTY_NAME, List.of("async-run"), Type.STRINGS)
                 .setProperty(REINDEX_PROPERTY_NAME, false);
         createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                 "nrtIndex", true, false, Set.of("foo"), null)
-                .setProperty(ASYNC_PROPERTY_NAME, ImmutableList.of("async-run", "nrt"), Type.STRINGS)
+                .setProperty(ASYNC_PROPERTY_NAME, List.of("async-run", "nrt"), Type.STRINGS)
                 .setProperty(REINDEX_PROPERTY_NAME, false);
         createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                 "asyncSyncIndex", true, false, Set.of("foo"), null)
-                .setProperty(ASYNC_PROPERTY_NAME, ImmutableList.of("async-run", "sync"), Type.STRINGS)
+                .setProperty(ASYNC_PROPERTY_NAME, List.of("async-run", "sync"), Type.STRINGS)
                 .setProperty(REINDEX_PROPERTY_NAME, false);
 
         // node states to run hook on
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/importer/IndexDefinitionUpdaterTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/importer/IndexDefinitionUpdaterTest.java
index 2ace0da3ad..dac5aa1499 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/importer/IndexDefinitionUpdaterTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/importer/IndexDefinitionUpdaterTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.importer;
 
 import java.io.File;
@@ -27,12 +26,12 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.felix.inventory.Format;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.index.inventory.IndexDefinitionPrinter;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
 import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory;
@@ -144,7 +143,7 @@ public class IndexDefinitionUpdaterTest {
         NodeBuilder idxBuilder = updater.apply(builder, "/oak:index/barIndex");
 
         PropertyState childOrder = builder.getChildNode("oak:index").getProperty(":childOrder");
-        List<String> names = ImmutableList.copyOf(childOrder.getValue(Type.NAMES));
+        List<String> names = CollectionUtils.toList(childOrder.getValue(Type.NAMES));
 
         assertEquals(asList("fooIndex", "barIndex"), names);
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexQueryTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexQueryTest.java
index b641d3bb32..750c36ae2f 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexQueryTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexQueryTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.nodetype;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.createIndexDefinition;
@@ -62,7 +61,7 @@ public class NodeTypeIndexQueryTest extends AbstractQueryTest {
     private static void mixLanguage(Tree t, String n) {
         Tree c = t.addChild(n);
         c.setProperty(JCR_PRIMARYTYPE, "nt:unstructured", Type.NAME);
-        c.setProperty(JCR_MIXINTYPES, of("mix:language"), Type.NAMES);
+        c.setProperty(JCR_MIXINTYPES, List.of("mix:language"), Type.NAMES);
     }
 
     @Test
@@ -86,8 +85,8 @@ public class NodeTypeIndexQueryTest extends AbstractQueryTest {
 
         assertQuery("select [jcr:path] from [nt:unstructured] ",
                 new ArrayList<String>());
-        assertQuery("select [jcr:path] from [nt:folder] ", of("/c", "/d"));
-        assertQuery("select [jcr:path] from [mix:language] ", of("/e", "/f"));
+        assertQuery("select [jcr:path] from [nt:folder] ", List.of("/c", "/d"));
+        assertQuery("select [jcr:path] from [mix:language] ", List.of("/e", "/f"));
 
         setTraversalEnabled(true);
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiPropertyOrTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiPropertyOrTest.java
index b10262c6a2..31df7419fe 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiPropertyOrTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiPropertyOrTest.java
@@ -30,7 +30,6 @@ import java.util.Random;
 
 import javax.jcr.query.Query;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Maps;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
@@ -61,7 +60,7 @@ public class MultiPropertyOrTest extends AbstractQueryTest {
                         NodeBuilder index = IndexUtils.getOrCreateOakIndex(builder);
                         IndexUtils.createIndexDefinition(
                                 index, "xyz", true, false,
-                                ImmutableList.of("x", "y", "z", "w"), null);
+                                List.of("x", "y", "z", "w"), null);
                     }
                 })
                 .with(new OpenSecurityProvider())
@@ -79,7 +78,7 @@ public class MultiPropertyOrTest extends AbstractQueryTest {
         root.commit();
         setTraversalEnabled(false);
         assertQuery("select [jcr:path] from [nt:base] where [x] is not null",
-                ImmutableList.of("/a"));
+                List.of("/a"));
 
         List<String> lines = executeQuery(
                 "explain select [jcr:path] from [nt:base] where [x] is not null",
@@ -105,13 +104,13 @@ public class MultiPropertyOrTest extends AbstractQueryTest {
 
         assertQuery(
                 "select [jcr:path] from [nt:base] where [x] = 'foo' OR [y] = 'foo'",
-                ImmutableList.of("/a"));
+                List.of("/a"));
         assertQuery(
                 "select [jcr:path] from [nt:base] where [x] = 'foo' OR [z] = 'foo'",
-                ImmutableList.of("/a", "/c"));
+                List.of("/a", "/c"));
         assertQuery(
                 "select [jcr:path] from [nt:base] where [x] = 'foo' OR [y] = 'bar'",
-                ImmutableList.of("/a", "/b"));
+                List.of("/a", "/b"));
         setTraversalEnabled(false);
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultipleIndicesTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultipleIndicesTest.java
index baac33ba97..58cd459cad 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultipleIndicesTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultipleIndicesTest.java
@@ -20,6 +20,7 @@ import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.createIndexDefi
 import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.getOrCreateOakIndex;
 
 import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -33,8 +34,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 public class MultipleIndicesTest extends AbstractQueryTest {
 
     @Override
@@ -46,10 +45,10 @@ public class MultipleIndicesTest extends AbstractQueryTest {
                     public void initialize(@NotNull NodeBuilder builder) {
                         createIndexDefinition(
                                 getOrCreateOakIndex(builder), "pid",
-                                true, false, ImmutableList.of("pid"), null);
+                                true, false, List.of("pid"), null);
                         createIndexDefinition(
                                 getOrCreateOakIndex(builder.child("content")),
-                                "pid", true, false, ImmutableList.of("pid"),
+                                "pid", true, false, List.of("pid"),
                                 null);
                     }
                 })
@@ -80,13 +79,13 @@ public class MultipleIndicesTest extends AbstractQueryTest {
                 new ArrayList<String>());
 
         assertQuery("select [jcr:path] from [nt:base] where [pid] = 'foo'",
-                ImmutableList.of("/", "/a", "/c", "/content/x"));
+                List.of("/", "/a", "/c", "/content/x"));
 
         assertQuery("select [jcr:path] from [nt:base] where [pid] = 'bar'",
-                ImmutableList.of("/b", "/content/z"));
+                List.of("/b", "/content/z"));
 
         assertQuery("select [jcr:path] from [nt:base] where [pid] = 'baz'",
-                ImmutableList.of("/content/y"));
+                List.of("/content/y"));
         setTraversalEnabled(true);
     }
 
@@ -109,11 +108,11 @@ public class MultipleIndicesTest extends AbstractQueryTest {
 
         setTraversalEnabled(false);
         assertQuery("select [jcr:path] from [nt:base] where [pid] = 'value'",
-                ImmutableList.of("/node-1"));
+                List.of("/node-1"));
         assertQuery("select [jcr:path] from [nt:base] where [pid] = ''",
-                ImmutableList.of("/node-2"));
+                List.of("/node-2"));
         assertQuery("select [jcr:path] from [nt:base] where [pid] = ':'",
-                ImmutableList.of("/node-3"));
+                List.of("/node-3"));
 
         setTraversalEnabled(true);
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
index 7e64b603af..e594b0d9ce 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
@@ -30,7 +30,6 @@ import java.util.List;
 
 import javax.jcr.RepositoryException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
 import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
@@ -60,7 +59,7 @@ public class OrderedPropertyIndexEditorProviderTest {
     private NodeBuilder createIndexDef(NodeBuilder root) throws RepositoryException {
         return IndexUtils.createIndexDefinition(
             root.child(IndexConstants.INDEX_DEFINITIONS_NAME), indexName, false,
-            ImmutableList.of(indexedProperty), null, OrderedIndex.TYPE, null);
+            List.of(indexedProperty), null, OrderedIndex.TYPE, null);
     }
     
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/RelativePathTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/RelativePathTest.java
index aa1269a518..d977728e40 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/RelativePathTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/RelativePathTest.java
@@ -23,7 +23,6 @@ import java.util.List;
 
 import javax.jcr.query.Query;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -49,7 +48,7 @@ public class RelativePathTest extends AbstractQueryTest {
                     public void initialize(@NotNull NodeBuilder builder) {
                         NodeBuilder index = IndexUtils.getOrCreateOakIndex(builder);
                         IndexUtils.createIndexDefinition(index, "myProp", true,
-                                false, ImmutableList.<String>of("myProp"), null);
+                                false, List.of("myProp"), null);
                     }
                 })
                 .with(new OpenSecurityProvider())
@@ -68,7 +67,7 @@ public class RelativePathTest extends AbstractQueryTest {
         root.commit();
         setTraversalEnabled(false);
         assertQuery("select [jcr:path] from [nt:base] where [n/myProp] is not null",
-                ImmutableList.of("/a", "/b"));
+                List.of("/a", "/b"));
 
         List<String> lines = executeQuery(
                 "explain select [jcr:path] from [nt:base] where [n/myProp] is not null",
@@ -79,7 +78,7 @@ public class RelativePathTest extends AbstractQueryTest {
 
         assertQuery(
                 "select [jcr:path] from [nt:base] where [n/myProp] = 'foo'",
-                ImmutableList.of("/a"));
+                List.of("/a"));
         setTraversalEnabled(false);
     }
 }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/SinglePropertyIndexQueryTests.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/SinglePropertyIndexQueryTests.java
index 9086156f8c..3e55d5d2d3 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/SinglePropertyIndexQueryTests.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/SinglePropertyIndexQueryTests.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.property;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.oak.api.Type.NAMES;
 import static org.apache.jackrabbit.oak.api.Type.STRINGS;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.PROPERTY_NAMES;
@@ -49,7 +48,7 @@ public class SinglePropertyIndexQueryTests extends AbstractQueryTest {
     @Override
     protected void createTestIndexNode() throws Exception {
         Tree index = super.createTestIndexNode(root.getTree("/"), TYPE);
-        index.setProperty(PROPERTY_NAMES, of(INDEXED_PROPERTY), NAMES);
+        index.setProperty(PROPERTY_NAMES, List.of(INDEXED_PROPERTY), NAMES);
         index.setProperty(REINDEX_PROPERTY_NAME, true);
         root.commit();
     }
@@ -66,19 +65,19 @@ public class SinglePropertyIndexQueryTests extends AbstractQueryTest {
 
         // adding /content/node1 { a, b } 
         Tree node = content.addChild("node1");
-        node.setProperty(INDEXED_PROPERTY, of("a", "b"), STRINGS);
+        node.setProperty(INDEXED_PROPERTY, List.of("a", "b"), STRINGS);
         expected.add(node.getPath());
 
         // adding /content/node2 { c, d }
         node = content.addChild("node2");
-        node.setProperty(INDEXED_PROPERTY, of("c", "d"), STRINGS);
+        node.setProperty(INDEXED_PROPERTY, List.of("c", "d"), STRINGS);
         expected.add(node.getPath());
 
         // adding nodes with {a, x} and {c, x} these should not be returned
         node = content.addChild("node3");
-        node.setProperty(INDEXED_PROPERTY, of("a", "x"), STRINGS);
+        node.setProperty(INDEXED_PROPERTY, List.of("a", "x"), STRINGS);
         node = content.addChild("node4");
-        node.setProperty(INDEXED_PROPERTY, of("c", "x"), STRINGS);
+        node.setProperty(INDEXED_PROPERTY, List.of("c", "x"), STRINGS);
 
         root.commit();
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/ValuePatternPropertyIndexTests.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/ValuePatternPropertyIndexTests.java
index bf86b4d5ba..49eb50bd37 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/ValuePatternPropertyIndexTests.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/ValuePatternPropertyIndexTests.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.property;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.oak.api.Type.NAMES;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.PROPERTY_NAMES;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
@@ -34,6 +33,8 @@ import org.apache.jackrabbit.oak.query.AbstractQueryTest;
 import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
 import org.junit.Test;
 
+import java.util.List;
+
 public class ValuePatternPropertyIndexTests extends AbstractQueryTest {
     private static final String INDEXED_PROPERTY = "indexedProperty";
     
@@ -57,7 +58,7 @@ public class ValuePatternPropertyIndexTests extends AbstractQueryTest {
     
     private void valuePattern(String middle, String plan) throws Exception {
         Tree index = super.createTestIndexNode(root.getTree("/"), TYPE);
-        index.setProperty(PROPERTY_NAMES, of(INDEXED_PROPERTY), NAMES);
+        index.setProperty(PROPERTY_NAMES, List.of(INDEXED_PROPERTY), NAMES);
         index.setProperty(IndexConstants.VALUE_INCLUDED_PREFIXES, "hello" + middle + "world");
         index.setProperty(REINDEX_PROPERTY_NAME, true);
         root.commit();
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java
index f00db7a58b..97ad3cce87 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.property.strategy;
 
-import static org.apache.jackrabbit.guava.common.base.Suppliers.memoize;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static java.util.Arrays.asList;
+
+import static org.apache.jackrabbit.guava.common.base.Suppliers.memoize;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.ENTRY_COUNT_PROPERTY_NAME;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_CONTENT_NODE_NAME;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.KEY_COUNT_PROPERTY_NAME;
@@ -31,12 +31,14 @@ import static org.junit.Assert.assertThat;
 
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.function.Supplier;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.query.index.FilterImpl;
 import org.apache.jackrabbit.oak.spi.query.Filter;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -306,21 +308,21 @@ public class ContentMirrorStoreStrategyTest {
         indexMeta.setChildNode(INDEX_CONTENT_NODE_NAME, builder.getNodeState());
 
         Iterable<String> paths = store.query(filter, null, indexMeta.getNodeState(), KEY);
-        assertThat(copyOf(paths), containsInAnyOrder("a", "a/c", "b"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("a", "a/c", "b"));
 
         FilterImpl filter2 = FilterImpl.newTestInstance();
         filter2.restrictPath("/content/a", Filter.PathRestriction.ALL_CHILDREN);
 
         paths = store.query(filter2, null, indexMeta.getNodeState(), KEY);
-        assertThat(copyOf(paths), containsInAnyOrder("a", "a/c"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("a", "a/c"));
 
         store = new ContentMirrorStoreStrategy(INDEX_CONTENT_NODE_NAME, "/content", true);
 
         paths = store.query(filter, null, indexMeta.getNodeState(), KEY);
-        assertThat(copyOf(paths), containsInAnyOrder("/content/a", "/content/a/c", "/content/b"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("/content/a", "/content/a/c", "/content/b"));
 
         paths = store.query(filter2, null, indexMeta.getNodeState(), KEY);
-        assertThat(copyOf(paths), containsInAnyOrder("/content/a", "/content/a/c"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("/content/a", "/content/a/c"));
     }
 
     private static void assertInRange(String msg, double expected, double actual) {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexTest.java
index c68b1caf3a..4179578b1e 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexTest.java
@@ -47,7 +47,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
 import static org.apache.jackrabbit.JcrConstants.NT_BASE;
 import static org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty;
@@ -80,11 +79,11 @@ public class ReferenceIndexTest {
         FilterImpl f = createFilter(indexed, NT_BASE);
         f.restrictProperty("*", Operator.EQUAL, newReference("u1"), PropertyType.REFERENCE);
 
-        assertFilter(f, new ReferenceIndex(), indexed, of("/a", "/b"));
+        assertFilter(f, new ReferenceIndex(), indexed, List.of("/a", "/b"));
 
         FilterImpl f2 = createFilter(indexed, NT_BASE);
         f2.restrictProperty("*", Operator.EQUAL, newReference("u2"), PropertyType.WEAKREFERENCE);
-        assertFilter(f2, new ReferenceIndex(), indexed, of("/c"));
+        assertFilter(f2, new ReferenceIndex(), indexed, List.of("/c"));
     }
 
     @Test
@@ -117,11 +116,11 @@ public class ReferenceIndexTest {
         f.restrictProperty("*", Operator.EQUAL, newReference("u1"), PropertyType.REFERENCE);
 
         // System.out.println(NodeStateUtils.toString(NodeStateUtils.getNode(indexed, "/oak:index/reference")));
-        assertFilter(f, referenceIndex, indexed, of("/a/x", "/b"));
+        assertFilter(f, referenceIndex, indexed, List.of("/a/x", "/b"));
 
         FilterImpl f2 = createFilter(indexed, NT_BASE);
         f2.restrictProperty("*", Operator.EQUAL, newReference("u1"), PropertyType.WEAKREFERENCE);
-        assertFilter(f2, referenceIndex, indexed, of("/c", "/a/y"));
+        assertFilter(f2, referenceIndex, indexed, List.of("/c", "/a/y"));
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorTest.java
index 1a1102c218..55bd4b463b 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorTest.java
@@ -30,8 +30,8 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.Collections;
+import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
@@ -129,7 +129,7 @@ public class TypeEditorTest {
 
         NodeBuilder testNode = builder.child("testNode");
         testNode.setProperty(JCR_PRIMARYTYPE, NT_FOLDER, Type.NAME);
-        testNode.setProperty(JCR_MIXINTYPES, ImmutableList.of("mix:title"), Type.NAMES);
+        testNode.setProperty(JCR_MIXINTYPES, List.of("mix:title"), Type.NAMES);
         testNode.setProperty("jcr:title", true);
 
         try {
@@ -148,7 +148,7 @@ public class TypeEditorTest {
         NodeBuilder builder = root.builder();
         NodeBuilder testNode = builder.child("testNode");
         testNode.setProperty(JCR_PRIMARYTYPE, NT_FOLDER, Type.NAME);
-        testNode.setProperty(JCR_MIXINTYPES, ImmutableList.of("mix:title"), Type.NAMES);
+        testNode.setProperty(JCR_MIXINTYPES, List.of("mix:title"), Type.NAMES);
         testNode.setProperty("jcr:title", "title");
 
         NodeState before = builder.getNodeState();
@@ -177,7 +177,7 @@ public class TypeEditorTest {
         NodeBuilder ace = acl.child("first");
         ace.setProperty(JCR_PRIMARYTYPE, AccessControlConstants.NT_REP_GRANT_ACE, Type.NAME);
         ace.setProperty(AccessControlConstants.REP_PRINCIPAL_NAME, EveryonePrincipal.NAME);
-        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, ImmutableList.of(PrivilegeConstants.JCR_READ), Type.STRINGS);
+        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, List.of(PrivilegeConstants.JCR_READ), Type.STRINGS);
 
         try {
             hook.processCommit(before, builder.getNodeState(), CommitInfo.EMPTY);
@@ -199,12 +199,12 @@ public class TypeEditorTest {
         NodeBuilder ace = acl.child("first");
         ace.setProperty(JCR_PRIMARYTYPE, AccessControlConstants.NT_REP_GRANT_ACE, Type.NAME);
         ace.setProperty(AccessControlConstants.REP_PRINCIPAL_NAME, EveryonePrincipal.NAME);
-        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, ImmutableList.of(PrivilegeConstants.JCR_READ), Type.NAMES);
+        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, List.of(PrivilegeConstants.JCR_READ), Type.NAMES);
 
         NodeState before = builder.getNodeState();
 
         // change to invalid type
-        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, ImmutableList.of(PrivilegeConstants.JCR_READ), Type.STRINGS);
+        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, List.of(PrivilegeConstants.JCR_READ), Type.STRINGS);
 
         try {
             hook.processCommit(before, builder.getNodeState(), CommitInfo.EMPTY);
@@ -316,7 +316,7 @@ public class TypeEditorTest {
 
         builder = root.builder();
         before = builder.getNodeState();
-        builder.child("testcontent").setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REFERENCEABLE), Type.NAMES);
+        builder.child("testcontent").setProperty(JCR_MIXINTYPES, List.of(MIX_REFERENCEABLE), Type.NAMES);
         try {
             hook.processCommit(before, builder.getNodeState(), CommitInfo.EMPTY);
             fail("should not be able to change mixin due to illegal uuid format");
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java
index ee0cde6907..2f878c65da 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.nodetype.write;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.Objects.requireNonNull;
 import static org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.JcrConstants.NT_BASE;
@@ -143,7 +142,7 @@ public class NodeTypeRegistryTest {
         
         Tree test = root.getTree("/").addChild("test");
         test.setProperty(JCR_PRIMARYTYPE, NT_FOLDER, NAME);
-        test.setProperty(JCR_MIXINTYPES, of(MIX_INDEXABLE), Type.NAMES);
+        test.setProperty(JCR_MIXINTYPES, List.of(MIX_INDEXABLE), Type.NAMES);
         test.addChild("oak:index").setProperty(JCR_PRIMARYTYPE, NT_UNSTRUCTURED, NAME);
         root.commit();
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/PropertyInexistenceTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/PropertyInexistenceTest.java
index 8aecb03eca..5d6f4ff9fd 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/PropertyInexistenceTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/PropertyInexistenceTest.java
@@ -16,10 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.query;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
@@ -64,10 +62,10 @@ public class PropertyInexistenceTest extends AbstractQueryTest {
         root.commit();
 
         String query1 = "SELECT * FROM [nt:base] WHERE ISDESCENDANTNODE('/a') AND [z] IS NULL";
-        List<String> expected1 = ImmutableList.of("/a/x", "/a/x/y");
+        List<String> expected1 = List.of("/a/x", "/a/x/y");
 
         String query2 = "SELECT * FROM [nt:base] WHERE ISDESCENDANTNODE('/a/x') AND [z] IS NULL";
-        List<String> expected2 = ImmutableList.of("/a/x/y");
+        List<String> expected2 = List.of("/a/x/y");
 
         assertQuery(query1, expected1);
         assertQuery(query2, expected2);
@@ -88,12 +86,12 @@ public class PropertyInexistenceTest extends AbstractQueryTest {
         root.commit();
 
         String query1 = "SELECT * FROM [nt:base] WHERE ISDESCENDANTNODE('/a') AND [y/z] IS NULL";
-        List<String> expected1 = ImmutableList.of("/a/x", "/a/x/y", "/a/x1");
-        List<String> expectedOld1 = ImmutableList.of("/a/x");
+        List<String> expected1 = List.of("/a/x", "/a/x/y", "/a/x1");
+        List<String> expectedOld1 = List.of("/a/x");
 
         String query2 = "SELECT * FROM [nt:base] WHERE ISDESCENDANTNODE('/a/x') AND [y/z] IS NULL";
-        List<String> expected2 = ImmutableList.of("/a/x/y");
-        List<String> expectedOld2 = ImmutableList.of();
+        List<String> expected2 = List.of("/a/x/y");
+        List<String> expectedOld2 = List.of();
 
         assertQuery(query1, expected1);
         assertQuery(query2, expected2);
@@ -112,8 +110,8 @@ public class PropertyInexistenceTest extends AbstractQueryTest {
         System.setProperty("oak.useOldInexistenceCheck", "false");
 
         String query3 = "SELECT * FROM [nt:base] WHERE ISDESCENDANTNODE('/a/x2') AND [y/z] IS NULL";
-        List<String> expected3 = ImmutableList.of("/a/x2/z", "/a/x2/z1/y");
-        List<String> expectedOld3 = ImmutableList.of();
+        List<String> expected3 = List.of("/a/x2/z", "/a/x2/z1/y");
+        List<String> expectedOld3 = List.of();
 
         assertQuery(query3, expected3);
 
@@ -131,8 +129,8 @@ public class PropertyInexistenceTest extends AbstractQueryTest {
         root.commit();
 
         String query = "SELECT * FROM [nt:base] WHERE ISDESCENDANTNODE('/a') AND [w/y/z] IS NULL";
-        List<String> expected = ImmutableList.of("/a/x", "/a/x1", "/a/x1/w", "/a/x2", "/a/x2/w", "/a/x2/w/y");
-        List<String> expectedOld = ImmutableList.of("/a/x2");
+        List<String> expected = List.of("/a/x", "/a/x1", "/a/x1/w", "/a/x2", "/a/x2/w", "/a/x2/w/y");
+        List<String> expectedOld = List.of("/a/x2");
 
         assertQuery(query, expected);
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/QueryCostOverheadTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/QueryCostOverheadTest.java
index 24d437e115..77298990ed 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/QueryCostOverheadTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/QueryCostOverheadTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.query;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
@@ -29,6 +28,8 @@ import org.apache.jackrabbit.oak.query.ast.FullTextSearchImpl;
 import org.apache.jackrabbit.oak.query.ast.OrImpl;
 import org.junit.Test;
 
+import java.util.List;
+
 public class QueryCostOverheadTest {
     @Test
     public void getCostOverhead() {
@@ -54,14 +55,14 @@ public class QueryCostOverheadTest {
         c1 = new ComparisonImpl(null, null, null);
         c2 = new FullTextSearchImpl(null, null, null);
         c3 = new FullTextSearchImpl(null, null, null);
-        c = new OrImpl(of(c1, c2, c3));
+        c = new OrImpl(List.of(c1, c2, c3));
         query = createQuery(c);
         assertTrue(query.containsUnfilteredFullTextCondition());
         
         c2 = new FullTextSearchImpl(null, null, null);
         c3 = new FullTextSearchImpl(null, null, null);
         c4 = new ComparisonImpl(null, null, null);
-        c1 = new OrImpl(of(c2, c3, c4));
+        c1 = new OrImpl(List.of(c2, c3, c4));
         c5 = mock(DescendantNodeImpl.class);
         c = new AndImpl(c1, c5);
         query = createQuery(c);
@@ -74,20 +75,20 @@ public class QueryCostOverheadTest {
         c1 = new FullTextSearchImpl(null, null, null);
         c2 = new FullTextSearchImpl(null, null, null);
         c3 = new FullTextSearchImpl(null, null, null);
-        c = new OrImpl(of(c1, c2, c3));
+        c = new OrImpl(List.of(c1, c2, c3));
         query = createQuery(c);
         assertFalse(query.containsUnfilteredFullTextCondition());
         
         c1 = new ComparisonImpl(null, null, null);
         c2 = new FullTextSearchImpl(null, null, null);
         c3 = new FullTextSearchImpl(null, null, null);
-        c = new AndImpl(of(c1, c2, c3));
+        c = new AndImpl(List.of(c1, c2, c3));
         query = createQuery(c);
         assertFalse(query.containsUnfilteredFullTextCondition());
 
         c1 = new ComparisonImpl(null, null, null);
         c2 = new ComparisonImpl(null, null, null);
-        c = new AndImpl(of(c1, c2, c3));
+        c = new AndImpl(List.of(c1, c2, c3));
         query = createQuery(c);
         assertFalse(query.containsUnfilteredFullTextCondition());
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java
index f8685022ec..8092a1f191 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SQL2OptimiseQueryTest.java
@@ -16,9 +16,7 @@
  */
 package org.apache.jackrabbit.oak.query;
 
-import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
-import static javax.jcr.query.Query.JCR_SQL2;
+import static java.util.Objects.requireNonNull;import static javax.jcr.query.Query.JCR_SQL2;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.oak.api.Type.NAME;
 import static org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants.NT_OAK_UNSTRUCTURED;
@@ -125,7 +123,7 @@ public class SQL2OptimiseQueryTest extends  AbstractQueryTest {
         
         statement = String.format("SELECT * FROM [%s] WHERE p = 'a' OR p = 'b'",
             NT_OAK_UNSTRUCTURED);
-        expected = of("/test/a", "/test/b", "/test2/a");
+        expected = List.of("/test/a", "/test/b", "/test2/a");
         setQuerySelectionMode(ORIGINAL);
         original = executeQuery(statement, JCR_SQL2, true);
         setQuerySelectionMode(ALTERNATIVE);
@@ -137,7 +135,7 @@ public class SQL2OptimiseQueryTest extends  AbstractQueryTest {
         statement = String.format(
             "SELECT * FROM [%s] WHERE p = 'a' OR p = 'b' OR p = 'c' OR p = 'd' OR p = 'e' ",
             NT_OAK_UNSTRUCTURED);
-        expected = of("/test/a", "/test/b", "/test/c", "/test/d", "/test/e", "/test2/a");
+        expected = List.of("/test/a", "/test/b", "/test/c", "/test/d", "/test/e", "/test2/a");
         setQuerySelectionMode(ORIGINAL);
         original = executeQuery(statement, JCR_SQL2, true);
         setQuerySelectionMode(ALTERNATIVE);
@@ -149,7 +147,7 @@ public class SQL2OptimiseQueryTest extends  AbstractQueryTest {
         statement = String.format(
             "SELECT * FROM [%s] WHERE (p = 'a' OR p = 'b') AND (p1 = 'a1' OR p1 = 'b1')",
             NT_OAK_UNSTRUCTURED);
-        expected = of("/test/a", "/test/b");
+        expected = List.of("/test/a", "/test/b");
         setQuerySelectionMode(ORIGINAL);
         original = executeQuery(statement, JCR_SQL2, true);
         setQuerySelectionMode(ALTERNATIVE);
@@ -161,7 +159,8 @@ public class SQL2OptimiseQueryTest extends  AbstractQueryTest {
         statement = String.format(
             "SELECT * FROM [%s] WHERE (p = 'a' AND p1 = 'a1') OR (p = 'b' AND p1 = 'b1')",
             NT_OAK_UNSTRUCTURED);
-        expected = of("/test/a", "/test/b");
+        expected = List.of("/test/a", "/test/b");
+        expected = List.of("/test/a", "/test/b");
         setQuerySelectionMode(ORIGINAL);
         original = executeQuery(statement, JCR_SQL2, true);
         setQuerySelectionMode(ALTERNATIVE);
@@ -176,7 +175,7 @@ public class SQL2OptimiseQueryTest extends  AbstractQueryTest {
             + "OR c.[p3] = 'a') " 
             + "AND ISDESCENDANTNODE(c, '/test') "
             + "ORDER BY added DESC";
-        expected = of("/test/a", "/test/b", "/test/c");
+        expected = List.of("/test/a", "/test/b", "/test/c");
         setQuerySelectionMode(ORIGINAL);
         original = executeQuery(statement, JCR_SQL2, true);
         setQuerySelectionMode(ALTERNATIVE);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/TraversalAvoidanceTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/TraversalAvoidanceTest.java
index fc39b40057..f3e02547dc 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/TraversalAvoidanceTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/TraversalAvoidanceTest.java
@@ -44,8 +44,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 public class TraversalAvoidanceTest extends AbstractQueryTest {
     
     Whiteboard wb;
@@ -192,7 +190,7 @@ public class TraversalAvoidanceTest extends AbstractQueryTest {
         @NotNull
         @Override
         public List<? extends QueryIndex> getQueryIndexes(NodeState nodeState) {
-            return ImmutableList.of(queryIndex);
+            return List.of(queryIndex);
         }
     }
 
@@ -248,7 +246,7 @@ public class TraversalAvoidanceTest extends AbstractQueryTest {
 
         @Override
         public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) {
-            return ImmutableList.copyOf(plans);
+            return List.copyOf(plans);
         }
 
         @Override
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/IndexSelectionTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/IndexSelectionTest.java
index a6afdcbb30..ca77a4f17a 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/IndexSelectionTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/IndexSelectionTest.java
@@ -16,13 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.query.index;
 
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
@@ -64,7 +62,7 @@ public class IndexSelectionTest extends AbstractQueryTest {
         root.commit();
 
         assertQuery("SELECT * FROM [nt:base] WHERE [jcr:uuid] = '"+uuid+"' ",
-                ImmutableList.of("/"));
+                List.of("/"));
         assertEquals("Test index plan should not be invoked", 
                 0, testIndexProvider.index.invocationCount);
     }
@@ -77,7 +75,7 @@ public class IndexSelectionTest extends AbstractQueryTest {
         root.commit();
 
         assertQuery("SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null",
-                ImmutableList.of("/"));
+                List.of("/"));
         assertEquals("Test index plan should be invoked", 
                 1, testIndexProvider.index.invocationCount);
     }
@@ -91,7 +89,7 @@ public class IndexSelectionTest extends AbstractQueryTest {
         root.commit();
 
         assertQuery("SELECT * FROM [nt:base] WHERE [jcr:uuid] in('" + uuid + "', '" + uuid2 + "')",
-                ImmutableList.of("/"));
+                List.of("/"));
         assertEquals("Test index plan should be invoked", 
                 1, testIndexProvider.index.invocationCount);
     }
@@ -101,7 +99,7 @@ public class IndexSelectionTest extends AbstractQueryTest {
         @NotNull
         @Override
         public List<? extends QueryIndex> getQueryIndexes(NodeState nodeState) {
-            return ImmutableList.<QueryIndex>of(index);
+            return List.of(index);
         }
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java
index 69f5973a6d..07f17b3419 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java
@@ -14,7 +14,7 @@
 package org.apache.jackrabbit.oak.query.index;
 
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
+
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
 import static org.apache.jackrabbit.oak.api.Type.LONG;
@@ -37,8 +37,6 @@ import org.jetbrains.annotations.Nullable;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 /**
  * Tests the query engine using the default index implementation: the
  * {@link TraversingIndex}
@@ -71,7 +69,7 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         node.setProperty("jcr:mimeType", "text/plain");
         root.commit();
         assertQuery("//*[jcr:contains(., 'text/plain')]", "xpath",
-                ImmutableList.of("/content"));
+                List.of("/content"));
     }
 
     @Test
@@ -83,10 +81,10 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         root.commit();
         assertQuery("//*[jcr:contains(., 'testFullTextTermNameSimple')]",
                 "xpath",
-                ImmutableList.of("/content/testFullTextTermNameSimple"));
+                List.of("/content/testFullTextTermNameSimple"));
         assertQuery("//*[jcr:contains(., 'testFullTextTermNameFile.txt')]",
                 "xpath",
-                ImmutableList.of("/content/testFullTextTermNameFile.txt"));
+                List.of("/content/testFullTextTermNameFile.txt"));
     }
 
     @Test
@@ -95,13 +93,13 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
 
         c.addChild("one").setProperty("prop", "value");
         c.addChild("two").setProperty("prop",
-                ImmutableList.of("aaa", "value", "bbb"), Type.STRINGS);
+                List.of("aaa", "value", "bbb"), Type.STRINGS);
         c.addChild("three").setProperty("prop",
-                ImmutableList.of("aaa", "bbb", "ccc"), Type.STRINGS);
+                List.of("aaa", "bbb", "ccc"), Type.STRINGS);
         root.commit();
 
         assertQuery("//*[@prop != 'value']", "xpath",
-                ImmutableList.of("/content/two", "/content/three"));
+                List.of("/content/two", "/content/three"));
     }
 
     @Test
@@ -110,13 +108,13 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
 
         c.addChild("one").setProperty("prop", "aaa");
         c.addChild("two").setProperty("prop",
-                ImmutableList.of("aaa", "bbb", "ccc"), Type.STRINGS);
-        c.addChild("three").setProperty("prop", ImmutableList.of("aaa", "bbb"),
+                List.of("aaa", "bbb", "ccc"), Type.STRINGS);
+        c.addChild("three").setProperty("prop", List.of("aaa", "bbb"),
                 Type.STRINGS);
         root.commit();
 
         assertQuery("//*[(@prop = 'aaa' and @prop = 'bbb' and @prop = 'ccc')]",
-                "xpath", ImmutableList.of("/content/two"));
+                "xpath", List.of("/content/two"));
     }
 
     @Test
@@ -125,13 +123,13 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
 
         c.addChild("one").setProperty("prop", "aaaBoom");
         c.addChild("two").setProperty("prop",
-                ImmutableList.of("aaaBoom", "bbbBoom", "cccBoom"), Type.STRINGS);
-        c.addChild("three").setProperty("prop", ImmutableList.of("aaaBoom", "bbbBoom"),
+                List.of("aaaBoom", "bbbBoom", "cccBoom"), Type.STRINGS);
+        c.addChild("three").setProperty("prop", List.of("aaaBoom", "bbbBoom"),
                 Type.STRINGS);
         root.commit();
 
         assertQuery("//*[(jcr:like(@prop, 'aaa%') and jcr:like(@prop, 'bbb%') and jcr:like(@prop, 'ccc%'))]",
-                "xpath", ImmutableList.of("/content/two"));
+                "xpath", List.of("/content/two"));
     }
 
     @Test
@@ -141,17 +139,17 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         c.addChild("one").addChild("child").setProperty("prop", "aaa");
         c.addChild("two")
                 .addChild("child")
-                .setProperty("prop", ImmutableList.of("aaa", "bbb", "ccc"),
+                .setProperty("prop", List.of("aaa", "bbb", "ccc"),
                         Type.STRINGS);
         c.addChild("three")
                 .addChild("child")
-                .setProperty("prop", ImmutableList.of("aaa", "bbb"),
+                .setProperty("prop", List.of("aaa", "bbb"),
                         Type.STRINGS);
         root.commit();
 
         assertQuery(
                 "//*[(child/@prop = 'aaa' and child/@prop = 'bbb' and child/@prop = 'ccc')]",
-                "xpath", ImmutableList.of("/content/two"));
+                "xpath", List.of("/content/two"));
     }
 
     @Test
@@ -161,17 +159,17 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         c.addChild("one").addChild("child").setProperty("prop", "aaaBoom");
         c.addChild("two")
                 .addChild("child")
-                .setProperty("prop", ImmutableList.of("aaaBoom", "bbbBoom", "cccBoom"),
+                .setProperty("prop", List.of("aaaBoom", "bbbBoom", "cccBoom"),
                         Type.STRINGS);
         c.addChild("three")
                 .addChild("child")
-                .setProperty("prop", ImmutableList.of("aaaBoom", "bbbBoom"),
+                .setProperty("prop", List.of("aaaBoom", "bbbBoom"),
                         Type.STRINGS);
         root.commit();
 
         assertQuery(
                 "//*[(jcr:like(child/@prop, 'aaa%') and jcr:like(child/@prop, 'bbb%') and jcr:like(child/@prop, 'ccc%'))]",
-                "xpath", ImmutableList.of("/content/two"));
+                "xpath", List.of("/content/two"));
     }
 
     @Test
@@ -204,8 +202,7 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         assertQuery(
                 "/jcr:root/home//*[@id='socialgraph_test_group']",
                 "xpath",
-                ImmutableList
-                        .of("/home/users/testing/socialgraph_test_user_4/social/relationships/friend/socialgraph_test_group"));
+                List.of("/home/users/testing/socialgraph_test_user_4/social/relationships/friend/socialgraph_test_group"));
 
         // sql2 select c.[jcr:path] as [jcr:path], c.[jcr:score] as [jcr:score],
         // c.* from [nt:base] as a inner join [nt:base] as b on ischildnode(b,
@@ -217,8 +214,7 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         assertQuery(
                 "/jcr:root/home//social/relationships//*[@id='socialgraph_test_group']",
                 "xpath",
-                ImmutableList
-                        .of("/home/users/testing/socialgraph_test_user_4/social/relationships/friend/socialgraph_test_group"));
+               List.of("/home/users/testing/socialgraph_test_user_4/social/relationships/friend/socialgraph_test_group"));
 
     }
 
@@ -229,22 +225,22 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         root.commit();
 
         assertQuery("//*[(@prop > 1)]", "xpath",
-                ImmutableList.of("/content/node1"));
+                List.of("/content/node1"));
         assertQuery("//*[(@prop > 2)]", "xpath",
-                ImmutableList.of("/content/node1"));
+                List.of("/content/node1"));
         assertQuery("//*[(@prop > 20)]", "xpath",
-                ImmutableList.of("/content/node1"));
+                List.of("/content/node1"));
         assertQuery("//*[(@prop > 100)]", "xpath",
-                ImmutableList.of("/content/node1"));
+                List.of("/content/node1"));
         assertQuery("//*[(@prop > 200)]", "xpath", new ArrayList<String>());
         assertQuery("//*[(@prop > 1000)]", "xpath", new ArrayList<String>());
 
-        assertQuery("//*[(*/@prop > 1)]", "xpath", ImmutableList.of("/content"));
-        assertQuery("//*[(*/@prop > 2)]", "xpath", ImmutableList.of("/content"));
+        assertQuery("//*[(*/@prop > 1)]", "xpath", List.of("/content"));
+        assertQuery("//*[(*/@prop > 2)]", "xpath", List.of("/content"));
         assertQuery("//*[(*/@prop > 20)]", "xpath",
-                ImmutableList.of("/content"));
+                List.of("/content"));
         assertQuery("//*[(*/@prop > 100)]", "xpath",
-                ImmutableList.of("/content"));
+                List.of("/content"));
         assertQuery("//*[(*/@prop > 200)]", "xpath", new ArrayList<String>());
         assertQuery("//*[(*/@prop > 1000)]", "xpath", new ArrayList<String>());
     }
@@ -271,35 +267,35 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         root.commit();
 
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 9)]", "xpath",
-                ImmutableList.of("/content/nodes/a"));
+                List.of("/content/nodes/a"));
 
         assertQuery(
                 "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 9)]",
-                "xpath", ImmutableList.of("/content/nodes/a"));
+                "xpath", List.of("/content/nodes/a"));
 
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 10)]", "xpath",
-                ImmutableList.of("/content/nodes/a"));
+                List.of("/content/nodes/a"));
         assertQuery(
                 "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 10)]",
-                "xpath", ImmutableList.of("/content/nodes/a"));
+                "xpath", List.of("/content/nodes/a"));
 
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 15)]", "xpath",
-                ImmutableList.of("/content/nodes/a"));
+                List.of("/content/nodes/a"));
         assertQuery(
                 "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 15)]",
-                "xpath", ImmutableList.of("/content/nodes/a"));
+                "xpath", List.of("/content/nodes/a"));
 
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 20)]", "xpath",
-                ImmutableList.of("/content/nodes/a"));
+                List.of("/content/nodes/a"));
         assertQuery(
                 "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 20)]",
-                "xpath", ImmutableList.of("/content/nodes/a"));
+                "xpath", List.of("/content/nodes/a"));
 
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 30)]", "xpath",
-                ImmutableList.of("/content/nodes/a"));
+                List.of("/content/nodes/a"));
         assertQuery(
                 "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 30)]",
-                "xpath", ImmutableList.of("/content/nodes/a"));
+                "xpath", List.of("/content/nodes/a"));
     }
     
     /**
@@ -377,53 +373,53 @@ public class TraversingIndexQueryTest extends AbstractQueryTest {
         root.commit();
         
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 9)]", "xpath",
-            of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
+            List.of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
                 "/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 10)]", "xpath",
-            of("/content/nodes/a10", "/content/nodes/a20", "/content/nodes/a30"));
+            List.of("/content/nodes/a10", "/content/nodes/a20", "/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 20)]", "xpath",
-            of("/content/nodes/a20", "/content/nodes/a30"));
+            List.of("/content/nodes/a20", "/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 30)]", "xpath",
-            of("/content/nodes/a30"));
+            List.of("/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop >= 40)]", "xpath", emptyList);
 
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop <= 8)]", "xpath", emptyList);
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop <= 9)]", "xpath",
-            of("/content/nodes/a9"));
+            List.of("/content/nodes/a9"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop <= 10)]", "xpath",
-            of("/content/nodes/a9", "/content/nodes/a10"));
+            List.of("/content/nodes/a9", "/content/nodes/a10"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop <= 20)]", "xpath",
-            of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20"));
+            List.of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20"));
         assertQuery("/jcr:root/content/nodes//*[(*/*/*/@prop <= 30)]", "xpath",
-            of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
+            List.of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
                 "/content/nodes/a30"));
         
         assertQuery(
             "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 9)]",
             "xpath",
-            of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
+            List.of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
                 "/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 10)]",
-            "xpath", of("/content/nodes/a10", "/content/nodes/a20", "/content/nodes/a30"));
+            "xpath", List.of("/content/nodes/a10", "/content/nodes/a20", "/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 20)]",
-            "xpath", of("/content/nodes/a20", "/content/nodes/a30"));
+            "xpath", List.of("/content/nodes/a20", "/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 30)]",
-            "xpath", of("/content/nodes/a30"));
+            "xpath", List.of("/content/nodes/a30"));
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop >= 40)]",
             "xpath", emptyList);
 
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop <= 8)]",
             "xpath", emptyList);
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop <= 9)]",
-            "xpath", of("/content/nodes/a9"));
+            "xpath", List.of("/content/nodes/a9"));
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop <= 10)]",
-            "xpath", of("/content/nodes/a9", "/content/nodes/a10"));
+            "xpath", List.of("/content/nodes/a9", "/content/nodes/a10"));
         assertQuery("/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop <= 20)]",
-            "xpath", of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20"));
+            "xpath", List.of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20"));
         assertQuery(
             "/jcr:root/content/nodes//element(*, nt:unstructured)[(*/*/*/@prop <= 30)]",
             "xpath",
-            of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
+            List.of("/content/nodes/a9", "/content/nodes/a10", "/content/nodes/a20",
                 "/content/nodes/a30"));
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
index 63eb9fc195..8a479a197a 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
@@ -46,8 +46,6 @@ import org.junit.Assert;
 import org.junit.Test;
 import org.slf4j.event.Level;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 /**
  * Tests for cases where two or more indices return a similar cost estimation for the same query
  */
@@ -101,7 +99,7 @@ public class QuerySimilarCostTest extends AbstractQueryTest {
 
         @Override
         public @NotNull List<? extends QueryIndex> getQueryIndexes(NodeState nodeState) {
-            return ImmutableList.<QueryIndex>of(index);
+            return List.of(index);
         }
     }
 
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 ea224f0c09..c7308ec560 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
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.security.authorization.accesscontrol.AccessControlImporter;
@@ -101,13 +100,13 @@ public class AuthorizationConfigurationImplOSGiTest extends AbstractSecurityTest
 
     @Test
     public void testGetCommitHooks() {
-        List<Class> expected = ImmutableList.of(VersionablePathHook.class, PermissionHook.class);
+        List<Class> expected = List.of(VersionablePathHook.class, PermissionHook.class);
         assertTrue(Iterables.elementsEqual(expected, Iterables.transform(authorizationConfiguration.getCommitHooks(adminSession.getWorkspaceName()), commitHook -> commitHook.getClass())));
     }
 
     @Test
     public void testGetValidators() {
-        List<Class> expected = ImmutableList.of(PermissionStoreValidatorProvider.class, PermissionValidatorProvider.class, AccessControlValidatorProvider.class);
+        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())));
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationContextTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationContextTest.java
index 306938e67f..526b88a087 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationContextTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationContextTest.java
@@ -22,7 +22,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
@@ -127,7 +126,7 @@ public class AuthorizationContextTest extends AbstractSecurityTest {
         assertTrue(ctx.definesLocation(TreeLocation.create(root, policyPath + "/allow/" + AccessControlConstants.REP_PRINCIPAL_NAME)));
         assertTrue(ctx.definesLocation(TreeLocation.create(root, policyPath + "/allow/" + AccessControlConstants.REP_PRIVILEGES)));
 
-        List<String> existingRegular = ImmutableList.of(
+        List<String> existingRegular = List.of(
                 "/",
                 "/jcr:system"
         );
@@ -136,7 +135,7 @@ public class AuthorizationContextTest extends AbstractSecurityTest {
             assertFalse(path, ctx.definesLocation(TreeLocation.create(root, PathUtils.concat(path, JcrConstants.JCR_PRIMARYTYPE))));
         }
 
-        List<String> nonExistingItem = ImmutableList.of(
+        List<String> nonExistingItem = List.of(
                 '/' + AccessControlConstants.REP_REPO_POLICY,
                 "/content/" + AccessControlConstants.REP_POLICY,
                 "/content/" + AccessControlConstants.REP_PRIVILEGES,
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACLTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACLTest.java
index 2bf3ceea6a..5fd8b8bab9 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACLTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/ACLTest.java
@@ -34,7 +34,6 @@ import javax.jcr.security.AccessControlEntry;
 import javax.jcr.security.AccessControlException;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
@@ -114,7 +113,7 @@ public class ACLTest extends AbstractAccessControlTest implements PrivilegeConst
     @Test
     public void testGetNamePathMapper() {
         assertSame(getNamePathMapper(), acl.getNamePathMapper());
-        assertSame(NamePathMapper.DEFAULT, createACL(TEST_PATH, ImmutableList.of(), NamePathMapper.DEFAULT).getNamePathMapper());
+        assertSame(NamePathMapper.DEFAULT, createACL(TEST_PATH, List.of(), NamePathMapper.DEFAULT).getNamePathMapper());
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterAbortTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterAbortTest.java
index d4d689b80b..0d05bff559 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterAbortTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterAbortTest.java
@@ -18,7 +18,8 @@ package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
 import javax.jcr.security.AccessControlException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import java.util.List;
+
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
 import org.junit.Test;
 
@@ -33,6 +34,6 @@ public class AccessControlImporterAbortTest extends AccessControlImporterBaseTes
     public void testStartAceChildInfoUnknownPrincipal() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(unknownPrincipalInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(unknownPrincipalInfo));
     }
 }
\ No newline at end of file
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBaseTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBaseTest.java
index 02dfc26fdc..cc7fd70836 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBaseTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBaseTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
@@ -71,9 +70,9 @@ import static org.mockito.Mockito.withSettings;
 
 public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTest implements AccessControlConstants {
 
-    final NodeInfo aceGrantInfo = new NodeInfo("grantAceName", NT_REP_GRANT_ACE, ImmutableList.of(), null);
-    private final NodeInfo aceDenyInfo = new NodeInfo("denyAceName", NT_REP_DENY_ACE, ImmutableList.of(), null);
-    private final NodeInfo restrInfo = new NodeInfo("anyRestrName", NT_REP_RESTRICTIONS, ImmutableList.of(), null);
+    final NodeInfo aceGrantInfo = new NodeInfo("grantAceName", NT_REP_GRANT_ACE, List.of(), null);
+    private final NodeInfo aceDenyInfo = new NodeInfo("denyAceName", NT_REP_DENY_ACE, List.of(), null);
+    private final NodeInfo restrInfo = new NodeInfo("anyRestrName", NT_REP_RESTRICTIONS, List.of(), null);
     final PropInfo unknownPrincipalInfo = new PropInfo(REP_PRINCIPAL_NAME, PropertyType.STRING, createTextValue("unknownPrincipal"));
 
     private Tree accessControlledTree;
@@ -327,38 +326,38 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
 
     @Test(expected = IllegalStateException.class)
     public void testStartChildInfoNotInitialized() throws Exception {
-        importer.startChildInfo(mock(NodeInfo.class), ImmutableList.of());
+        importer.startChildInfo(mock(NodeInfo.class), List.of());
     }
 
     @Test(expected = ConstraintViolationException.class)
     public void testStartChildInfoUnknownType() throws Exception {
-        NodeInfo invalidChildInfo = new NodeInfo("anyName", NT_OAK_UNSTRUCTURED, ImmutableList.of(), null);
+        NodeInfo invalidChildInfo = new NodeInfo("anyName", NT_OAK_UNSTRUCTURED, List.of(), null);
         init();
         importer.start(aclTree);
-        importer.startChildInfo(invalidChildInfo, ImmutableList.of());
+        importer.startChildInfo(invalidChildInfo, List.of());
     }
 
     @Test(expected = ConstraintViolationException.class)
     public void testStartNestedAceChildInfo() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of());
-        importer.startChildInfo(aceDenyInfo, ImmutableList.of());
+        importer.startChildInfo(aceGrantInfo, List.of());
+        importer.startChildInfo(aceDenyInfo, List.of());
     }
 
     @Test(expected = ConstraintViolationException.class)
     public void testStartRestrictionChildInfoWithoutAce() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(restrInfo, ImmutableList.of());
+        importer.startChildInfo(restrInfo, List.of());
     }
 
     @Test
     public void testStartAceAndRestrictionChildInfo() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of());
-        importer.startChildInfo(restrInfo, ImmutableList.of());
+        importer.startChildInfo(aceGrantInfo, List.of());
+        importer.startChildInfo(restrInfo, List.of());
     }
 
     @Test(expected = AccessControlException.class)
@@ -366,7 +365,7 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
         init();
         importer.start(aclTree);
         PropInfo invalidPrivInfo = new PropInfo(REP_PRIVILEGES, PropertyType.NAME, createTextValues("jcr:invalidPrivilege"), PropInfo.MultipleStatus.MULTIPLE);
-        importer.startChildInfo(aceDenyInfo, ImmutableList.of(invalidPrivInfo));
+        importer.startChildInfo(aceDenyInfo, List.of(invalidPrivInfo));
     }
 
     //-------------------------------------------------------< endChildInfo >---
@@ -387,7 +386,7 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
     public void testEndChildInfoIncompleteAce() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of());
+        importer.startChildInfo(aceGrantInfo, List.of());
         importer.endChildInfo();
     }
 
@@ -418,10 +417,10 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
     public void testInvalidRestriction() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(principalInfo, privInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(principalInfo, privInfo));
 
         PropInfo invalidRestrProp = new PropInfo(REP_GLOB, PropertyType.NAME, createTextValues("glob1", "glob2"), PropInfo.MultipleStatus.MULTIPLE);
-        importer.startChildInfo(restrInfo, ImmutableList.of(invalidRestrProp));
+        importer.startChildInfo(restrInfo, List.of(invalidRestrProp));
         importer.endChildInfo();
         importer.endChildInfo();
         importer.end(aclTree);
@@ -431,10 +430,10 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
     public void testUnknownRestriction() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(principalInfo, privInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(principalInfo, privInfo));
 
         PropInfo invalidRestrProp = new PropInfo("unknown", PropertyType.STRING, createTextValue("val"));
-        importer.startChildInfo(restrInfo, ImmutableList.of(invalidRestrProp));
+        importer.startChildInfo(restrInfo, List.of(invalidRestrProp));
         importer.endChildInfo();
         importer.endChildInfo();
         importer.end(aclTree);
@@ -444,7 +443,7 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
     public void testImportSimple() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(principalInfo, privInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(principalInfo, privInfo));
         importer.endChildInfo();
         importer.end(aclTree);
 
@@ -469,7 +468,7 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
 
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(principalInfo, privInfo, globInfo, ntNamesInfo, itemNamesInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(principalInfo, privInfo, globInfo, ntNamesInfo, itemNamesInfo));
         importer.endChildInfo();
         importer.end(aclTree);
 
@@ -487,8 +486,8 @@ public abstract class AccessControlImporterBaseTest  extends AbstractSecurityTes
 
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(principalInfo, privInfo));
-        importer.startChildInfo(restrInfo, ImmutableList.of(globInfo, ntNamesInfo, itemNamesInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(principalInfo, privInfo));
+        importer.startChildInfo(restrInfo, List.of(globInfo, ntNamesInfo, itemNamesInfo));
         importer.endChildInfo();
         importer.endChildInfo();
         importer.end(aclTree);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBesteffortTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBesteffortTest.java
index cf08ac1038..77a725d169 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBesteffortTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterBesteffortTest.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
 import javax.jcr.PropertyType;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
@@ -26,6 +25,8 @@ import org.apache.jackrabbit.oak.spi.xml.PropInfo;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.junit.Assert.assertEquals;
 
 public class AccessControlImporterBesteffortTest extends AccessControlImporterBaseTest{
@@ -39,7 +40,7 @@ public class AccessControlImporterBesteffortTest extends AccessControlImporterBa
     public void testStartAceChildInfoUnknownPrincipal() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(unknownPrincipalInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(unknownPrincipalInfo));
     }
 
     @Test
@@ -48,7 +49,7 @@ public class AccessControlImporterBesteffortTest extends AccessControlImporterBa
         importer.start(aclTree);
 
         PropInfo privs = new PropInfo(REP_PRIVILEGES, PropertyType.NAME, createTextValues(PrivilegeConstants.JCR_READ));
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(unknownPrincipalInfo, privs));
+        importer.startChildInfo(aceGrantInfo, List.of(unknownPrincipalInfo, privs));
         importer.endChildInfo();
 
         importer.end(aclTree);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterIgnoreTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterIgnoreTest.java
index 3075ef731a..37cc4c5d92 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterIgnoreTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlImporterIgnoreTest.java
@@ -18,12 +18,13 @@ package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
 import javax.jcr.PropertyType;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
 import org.apache.jackrabbit.oak.spi.xml.PropInfo;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.junit.Assert.assertFalse;
 
 public class AccessControlImporterIgnoreTest extends AccessControlImporterBaseTest{
@@ -37,7 +38,7 @@ public class AccessControlImporterIgnoreTest extends AccessControlImporterBaseTe
     public void testStartAceChildInfoUnknownPrincipal() throws Exception {
         init();
         importer.start(aclTree);
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(unknownPrincipalInfo));
+        importer.startChildInfo(aceGrantInfo, List.of(unknownPrincipalInfo));
     }
 
     @Test
@@ -46,7 +47,7 @@ public class AccessControlImporterIgnoreTest extends AccessControlImporterBaseTe
         importer.start(aclTree);
 
         PropInfo privs = new PropInfo(REP_PRIVILEGES, PropertyType.NAME, createTextValues(PrivilegeConstants.JCR_READ));
-        importer.startChildInfo(aceGrantInfo, ImmutableList.of(unknownPrincipalInfo, privs));
+        importer.startChildInfo(aceGrantInfo, List.of(unknownPrincipalInfo, privs));
         importer.endChildInfo();
 
         importer.end(aclTree);
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 3d4a7e05b3..f276daff1d 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
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
@@ -641,7 +640,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
     @Test
     public void testGetApplicablePoliciesOnAccessControllable() throws Exception {
         Tree node = root.getTree(testPath);
-        node.setProperty(JcrConstants.JCR_MIXINTYPES, ImmutableList.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
+        node.setProperty(JcrConstants.JCR_MIXINTYPES, List.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
 
         AccessControlPolicyIterator itr = acMgr.getApplicablePolicies(testPath);
 
@@ -784,7 +783,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
         Tree aclNode = root.getTree(testPath + '/' + REP_POLICY);
         Tree aceNode = TreeUtil.addChild(aclNode, "testACE", NT_REP_DENY_ACE);
         aceNode.setProperty(REP_PRINCIPAL_NAME, "invalidPrincipal");
-        aceNode.setProperty(REP_PRIVILEGES, ImmutableList.of(PrivilegeConstants.JCR_READ), Type.NAMES);
+        aceNode.setProperty(REP_PRIVILEGES, List.of(PrivilegeConstants.JCR_READ), Type.NAMES);
 
         // reading policies with unknown principal name should not fail.
         AccessControlPolicy[] policies = acMgr.getPolicies(testPath);
@@ -1485,7 +1484,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
 
     @Test
     public void testGetApplicablePoliciesByPrincipal() throws Exception {
-        List<Principal> principals = ImmutableList.of(testPrincipal, EveryonePrincipal.getInstance());
+        List<Principal> principals = List.of(testPrincipal, EveryonePrincipal.getInstance());
         for (Principal principal : principals) {
             AccessControlPolicy[] applicable = acMgr.getApplicablePolicies(principal);
             assertPolicies(applicable, 1);
@@ -1515,7 +1514,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
 
     @Test
     public void testGetPoliciesByPrincipal() throws Exception {
-        List<Principal> principals = ImmutableList.of(testPrincipal, EveryonePrincipal.getInstance());
+        List<Principal> principals = List.of(testPrincipal, EveryonePrincipal.getInstance());
         for (Principal principal : principals) {
             assertPolicies(acMgr.getPolicies(principal), 0);
         }
@@ -1718,7 +1717,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
 
         // different ways to create the principal-set to make sure the filtering
         // doesn't rely on principal equality but rather on the name.
-        List<Principal> principals = ImmutableList.of(
+        List<Principal> principals = List.of(
                 testPrincipal,
                 new PrincipalImpl(testPrincipal.getName()),
                 () -> testPrincipal.getName());
@@ -1745,7 +1744,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
         Tree testTree = r.getTree(testPath);
         Tree ace = TreeUtil.addChild(testTree, "ace", NT_REP_GRANT_ACE);
         ace.setProperty(REP_PRINCIPAL_NAME, testPrincipal.getName());
-        ace.setProperty(REP_PRIVILEGES, ImmutableList.of(JCR_READ), Type.NAMES);
+        ace.setProperty(REP_PRIVILEGES, List.of(JCR_READ), Type.NAMES);
 
         QueryEngine qe = mockQueryEngine(ace);
         when(r.getQueryEngine()).thenReturn(qe);
@@ -1765,7 +1764,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
         Tree aclWithWrongType = TreeUtil.addChild(testTree, REP_POLICY, NT_OAK_UNSTRUCTURED);
         Tree ace = TreeUtil.addChild(aclWithWrongType, "ace", NT_REP_GRANT_ACE);
         ace.setProperty(REP_PRINCIPAL_NAME, testPrincipal.getName());
-        ace.setProperty(REP_PRIVILEGES, ImmutableList.of(JCR_READ), Type.NAMES);
+        ace.setProperty(REP_PRIVILEGES, List.of(JCR_READ), Type.NAMES);
 
         QueryEngine qe = mockQueryEngine(ace);
         when(r.getQueryEngine()).thenReturn(qe);
@@ -1777,7 +1776,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
     
     private static QueryEngine mockQueryEngine(@NotNull Tree aceTree) throws Exception {
         ResultRow row = when(mock(ResultRow.class).getTree(null)).thenReturn(aceTree).getMock();
-        Iterable rows = ImmutableList.of(row);
+        Iterable rows = List.of(row);
         Result res = mock(Result.class);
         when(res.getRows()).thenReturn(rows).getMock();
         QueryEngine qe = mock(QueryEngine.class);
@@ -1794,7 +1793,7 @@ public class AccessControlManagerImplTest extends AbstractAccessControlTest impl
         Tree testTree = r.getTree(testPath);
         Tree ace = TreeUtil.addChild(testTree, "ace", NT_REP_GRANT_ACE);
         ace.setProperty(REP_PRINCIPAL_NAME, testPrincipal.getName());
-        ace.setProperty(REP_PRIVILEGES, ImmutableList.of(JCR_READ), Type.NAMES);
+        ace.setProperty(REP_PRIVILEGES, List.of(JCR_READ), Type.NAMES);
 
         QueryEngine qe = mock(QueryEngine.class);
         when(qe.executeQuery(anyString(), anyString(), any(Map.class), any(Map.class))).thenThrow(new ParseException("test", 0));
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerLimitedPermissionsTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerLimitedPermissionsTest.java
index 55c3ea3d92..106fdb2a68 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerLimitedPermissionsTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlManagerLimitedPermissionsTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
@@ -338,7 +337,7 @@ public class AccessControlManagerLimitedPermissionsTest extends AbstractSecurity
         root.commit();
 
         testRoot.refresh();
-        List<Principal> principals = ImmutableList.of(testPrincipal, EveryonePrincipal.getInstance());
+        List<Principal> principals = List.of(testPrincipal, EveryonePrincipal.getInstance());
         for (Principal principal : principals) {
             // testRoot can't read access control content -> doesn't see
             // the existing policies and creates a new applicable policy.
@@ -358,7 +357,7 @@ public class AccessControlManagerLimitedPermissionsTest extends AbstractSecurity
         testRoot.refresh();
         PrincipalManager testPrincipalMgr = getPrincipalManager(testRoot);
 
-        List<Principal> principals = ImmutableList.of(testPrincipal, EveryonePrincipal.getInstance());
+        List<Principal> principals = List.of(testPrincipal, EveryonePrincipal.getInstance());
         for (Principal principal : principals) {
             if (testPrincipalMgr.hasPrincipal(principal.getName())) {
                 // testRoot can't read access control content -> doesn't see
@@ -418,7 +417,7 @@ public class AccessControlManagerLimitedPermissionsTest extends AbstractSecurity
 
         testRoot.refresh();
 
-        List<String> paths = ImmutableList.of(testPath, NodeTypeConstants.NODE_TYPES_PATH);
+        List<String> paths = List.of(testPath, NodeTypeConstants.NODE_TYPES_PATH);
         for (String path : paths) {
             assertFalse(testAcMgr.hasPrivileges(path, privilegesFromNames(PrivilegeConstants.JCR_READ_ACCESS_CONTROL)));
             try {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidatorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidatorTest.java
index 221488a86c..50d72c9016 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidatorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/AccessControlValidatorTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -63,7 +61,9 @@ import javax.jcr.Value;
 import javax.jcr.ValueFactory;
 import javax.jcr.security.AccessControlManager;
 import java.security.Principal;
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -148,7 +148,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
 
     @NotNull
     private Tree createPolicy(@NotNull Tree tree, boolean createRestrictionNode) throws AccessDeniedException {
-        tree.setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
+        tree.setProperty(JCR_MIXINTYPES, List.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
 
         Tree acl = TreeUtil.addChild(tree, REP_POLICY, NT_REP_ACL);
         acl.setOrderableChildren(true);
@@ -163,7 +163,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
     private static Tree createACE(@NotNull Tree acl, @NotNull String aceName, @NotNull String ntName, @NotNull String principalName, @NotNull String... privilegeNames) throws AccessDeniedException {
         Tree ace = TreeUtil.addChild(acl, aceName, ntName);
         ace.setProperty(REP_PRINCIPAL_NAME, principalName);
-        ace.setProperty(REP_PRIVILEGES, ImmutableList.copyOf(privilegeNames), Type.NAMES);
+        ace.setProperty(REP_PRIVILEGES, Arrays.asList(privilegeNames), Type.NAMES);
         return ace;
     }
 
@@ -176,7 +176,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
     @Test(expected = CommitFailedException.class)
     public void testPolicyWithOutChildOrder() throws Exception {
         Tree testRoot = getTestTree();
-        testRoot.setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
+        testRoot.setProperty(JCR_MIXINTYPES, List.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
         TreeUtil.addChild(testRoot, REP_POLICY, NT_REP_ACL);
 
         try {
@@ -189,7 +189,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
     @Test(expected = CommitFailedException.class)
     public void testOnlyRootIsRepoAccessControllable() throws Exception {
         Tree testRoot = getTestTree();
-        testRoot.setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REP_REPO_ACCESS_CONTROLLABLE), Type.NAMES);
+        testRoot.setProperty(JCR_MIXINTYPES, List.of(MIX_REP_REPO_ACCESS_CONTROLLABLE), Type.NAMES);
 
         try {
             root.commit();
@@ -201,7 +201,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
     @Test(expected = CommitFailedException.class)
     public void testAddInvalidRepoPolicy() throws Exception {
         Tree testRoot = getTestTree();
-        testRoot.setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
+        testRoot.setProperty(JCR_MIXINTYPES, List.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
         TreeUtil.addChild(testRoot, REP_REPO_POLICY, NT_REP_ACL);
         try {
             root.commit();
@@ -439,7 +439,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
         Tree ace = createDuplicateAceTree();
         Tree rest = TreeUtil.addChild(ace, REP_RESTRICTIONS, NT_REP_RESTRICTIONS);
         rest.setProperty(AccessControlConstants.REP_GLOB, "some/glob", Type.STRING);
-        rest.setProperty(AccessControlConstants.REP_GLOBS, ImmutableList.of("glob1", "glob2"), Type.STRINGS);
+        rest.setProperty(AccessControlConstants.REP_GLOBS, List.of("glob1", "glob2"), Type.STRINGS);
         
         try {
             root.commit();
@@ -455,7 +455,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
         Tree policy = root.getTree(testPath + "/rep:policy");
         Tree ace = TreeUtil.addChild(policy, "duplicateAce", NT_REP_GRANT_ACE);
         ace.setProperty(REP_PRINCIPAL_NAME, testPrincipal.getName());
-        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, ImmutableList.of(PrivilegeConstants.JCR_ADD_CHILD_NODES), Type.NAMES);
+        ace.setProperty(AccessControlConstants.REP_PRIVILEGES, List.of(PrivilegeConstants.JCR_ADD_CHILD_NODES), Type.NAMES);
         return ace;
     }
 
@@ -606,7 +606,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
     @Test(expected = CommitFailedException.class)
     public void testAddPolicyTreeWithInvalidName() throws Exception {
         Tree rootTree = root.getTree(PathUtils.ROOT_PATH);
-        rootTree.setProperty(JCR_MIXINTYPES, ImmutableList.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
+        rootTree.setProperty(JCR_MIXINTYPES, List.of(MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES);
         TreeUtil.addChild(rootTree, "invalidName", NT_REP_ACL);
 
         Validator v = createRootValidator(rootTree);
@@ -622,7 +622,7 @@ public class AccessControlValidatorTest extends AbstractSecurityTest implements
         Tree rootTree = root.getTree(PathUtils.ROOT_PATH);
         Tree policy = createPolicy(rootTree, false);
         Tree entry = policy.getChild(aceName);
-        entry.setProperty(REP_PRIVILEGES, ImmutableList.of(), Type.NAMES);
+        entry.setProperty(REP_PRIVILEGES, List.of(), Type.NAMES);
 
         Validator v = createRootValidator(rootTree);
         try {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/RemappedPrivilegeNamesTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/RemappedPrivilegeNamesTest.java
index b65918f975..ea60f63ddf 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/RemappedPrivilegeNamesTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/accesscontrol/RemappedPrivilegeNamesTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.accesscontrol;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
@@ -90,6 +89,6 @@ public class RemappedPrivilegeNamesTest extends AbstractAccessControlTest {
         getAccessControlManager(root).setPolicy(acl.getPath(), acl);
         Tree aceTree = root.getTree(acl.getPath()).getChild(REP_POLICY).getChildren().iterator().next();
         Iterable<String> privNames = TreeUtil.getNames(aceTree, PrivilegeConstants.REP_PRIVILEGES);
-        assertTrue(Iterables.elementsEqual(ImmutableList.of(PrivilegeConstants.JCR_READ), privNames));
+        assertTrue(Iterables.elementsEqual(List.of(PrivilegeConstants.JCR_READ), privNames));
     }
 }
\ No newline at end of file
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java
index d3a49d8731..3c551709c2 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.composite;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
@@ -46,6 +45,7 @@ import org.junit.Test;
 import javax.jcr.Session;
 import javax.jcr.security.AccessControlManager;
 import java.security.Principal;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -69,8 +69,8 @@ public abstract class AbstractCompositeProviderTest extends AbstractSecurityTest
 
     static final String TEST_PATH_2 = "/test2";
 
-    static final List<String> NODE_PATHS = ImmutableList.of(ROOT_PATH, TEST_PATH, TEST_PATH_2, TEST_CHILD_PATH, TEST_A_PATH, TEST_A_B_PATH, TEST_A_B_C_PATH, TEST_A_B2_PATH);
-    static final List<String> TP_PATHS = ImmutableList.of(ROOT_PATH, TEST_PATH, TEST_A_PATH, TEST_A_B_PATH, TEST_A_B_C_PATH, TEST_A_B_C_PATH + "/nonexisting");
+    static final List<String> NODE_PATHS = List.of(ROOT_PATH, TEST_PATH, TEST_PATH_2, TEST_CHILD_PATH, TEST_A_PATH, TEST_A_B_PATH, TEST_A_B_C_PATH, TEST_A_B2_PATH);
+    static final List<String> TP_PATHS = List.of(ROOT_PATH, TEST_PATH, TEST_A_PATH, TEST_A_B_PATH, TEST_A_B_C_PATH, TEST_A_B_C_PATH + "/nonexisting");
 
     static final PropertyState PROPERTY_STATE = PropertyStates.createProperty("propName", "val");
 
@@ -238,14 +238,13 @@ public abstract class AbstractCompositeProviderTest extends AbstractSecurityTest
     List<AggregatedPermissionProvider> getAggregatedProviders(@NotNull String workspaceName,
                                                               @NotNull AuthorizationConfiguration config,
                                                               @NotNull Set<Principal> principals) {
-        ImmutableList<AggregatedPermissionProvider> l = ImmutableList.of(
+        List<AggregatedPermissionProvider> l = new ArrayList<>(List.of(
                     (AggregatedPermissionProvider) config.getPermissionProvider(root, workspaceName, principals),
-                    getTestPermissionProvider());
+                    getTestPermissionProvider()));
         if (reverseOrder()) {
-            return l.reverse();
-        } else {
-            return l;
+            Collections.reverse(l);
         }
+        return l;
     }
 
     CompositePermissionProvider createPermissionProvider(Principal... principals) {
@@ -572,7 +571,7 @@ public abstract class AbstractCompositeProviderTest extends AbstractSecurityTest
 
     @Test
     public void testTreePermissionGetChild() throws Exception {
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
 
         Tree rootTree = readOnlyRoot.getTree(ROOT_PATH);
         NodeState ns = getTreeProvider().asNodeState(rootTree);
@@ -587,7 +586,7 @@ public abstract class AbstractCompositeProviderTest extends AbstractSecurityTest
 
     @Test
     public void testTreePermissionGetChildOR() throws Exception {
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
 
         Tree rootTree = readOnlyRoot.getTree(ROOT_PATH);
         NodeState ns = getTreeProvider().asNodeState(rootTree);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManagerTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManagerTest.java
index 3b90bdb869..3b572906f6 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManagerTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManagerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.composite;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
@@ -44,6 +43,7 @@ import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.AccessControlPolicyIterator;
 import javax.jcr.security.Privilege;
 import java.security.Principal;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Set;
 
@@ -100,7 +100,7 @@ public class CompositeAccessControlManagerTest extends AbstractSecurityTest {
 
     @NotNull
     private CompositeAccessControlManager createComposite(@NotNull AggregationFilter aggregationFilter, @NotNull AccessControlManager... acMgrs) {
-        return new CompositeAccessControlManager(root, NamePathMapper.DEFAULT, getSecurityProvider(), ImmutableList.copyOf(acMgrs), aggregationFilter);
+        return new CompositeAccessControlManager(root, NamePathMapper.DEFAULT, getSecurityProvider(), Arrays.asList(acMgrs), aggregationFilter);
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositePermissionProviderOrTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositePermissionProviderOrTest.java
index 28951c63d4..11fbf672a5 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositePermissionProviderOrTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositePermissionProviderOrTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.composite;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -98,7 +97,7 @@ public class CompositePermissionProviderOrTest extends AbstractSecurityTest {
         String workspaceName = root.getContentSession().getWorkspaceName();
         AuthorizationConfiguration config = getConfig(AuthorizationConfiguration.class);
 
-        ImmutableList<AggregatedPermissionProvider> l = ImmutableList.of(
+        List<AggregatedPermissionProvider> l = List.of(
                 (AggregatedPermissionProvider) config.getPermissionProvider(root, workspaceName, principals),
                 new ReadNodeGrantedInSupportedTree());
         
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
index 601deece30..6883858d48 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.Set;
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -79,7 +78,7 @@ public class CompositeProviderCoverageTest extends AbstractCompositeProviderTest
 
     @Override
     List<AggregatedPermissionProvider> getAggregatedProviders(@NotNull String workspaceName, @NotNull AuthorizationConfiguration config, @NotNull Set<Principal> principals) {
-        return ImmutableList.of(getTestPermissionProvider());
+        return List.of(getTestPermissionProvider());
     }
 
     @Override
@@ -111,7 +110,7 @@ public class CompositeProviderCoverageTest extends AbstractCompositeProviderTest
     @Override
     @Test
     public void testTreePermissionGetChild() throws Exception {
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
 
         Tree rootTree = readOnlyRoot.getTree(ROOT_PATH);
         NodeState ns = getTreeProvider().asNodeState(rootTree);
@@ -127,7 +126,7 @@ public class CompositeProviderCoverageTest extends AbstractCompositeProviderTest
     @Override
     @Test
     public void testTreePermissionGetChildOR() throws Exception {
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
 
         Tree rootTree = readOnlyRoot.getTree(ROOT_PATH);
         NodeState ns = getTreeProvider().asNodeState(rootTree);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCustomMixTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCustomMixTest.java
index 6407a51677..4931748367 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCustomMixTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCustomMixTest.java
@@ -20,7 +20,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+
 import org.apache.jackrabbit.guava.common.collect.Sets;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
@@ -232,7 +232,7 @@ public class CompositeProviderCustomMixTest extends AbstractSecurityTest {
         AggregatedPermissionProvider a2 = new CustomProvider(root, supported2, granted2, grantMap);
 
         AuthorizationConfiguration config = getConfig(AuthorizationConfiguration.class);
-        List<AggregatedPermissionProvider> composite = ImmutableList.of(a1, a2);
+        List<AggregatedPermissionProvider> composite = List.of(a1, a2);
         return CompositePermissionProvider.create(root, composite, config.getContext(), type, getRootProvider(), getTreeProvider());
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderFullScopeTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderFullScopeTest.java
index ead95d6ab8..a47cd60d61 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderFullScopeTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderFullScopeTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.composite;
 
+import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
 
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
@@ -226,7 +226,7 @@ public class CompositeProviderFullScopeTest extends AbstractCompositeProviderTes
         for (String p : defActionsGranted.keySet()) {
             String[] actions = defActionsGranted.get(p);
 
-            if (ImmutableList.copyOf(actions).contains(Session.ACTION_READ)) {
+            if (Arrays.asList(actions).contains(Session.ACTION_READ)) {
                 TreeLocation tl = TreeLocation.create(readOnlyRoot, p);
                 assertEquals(p, tl.getTree() != null, cppTestUser.isGranted(p, Session.ACTION_READ));
             } else {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderGetTreePermissionTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderGetTreePermissionTest.java
index 001bc1993b..e326e7486d 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderGetTreePermissionTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderGetTreePermissionTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.composite;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -31,6 +30,8 @@ import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
+import java.util.Arrays;
+
 import static org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.CompositionType.AND;
 import static org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.CompositionType.OR;
 import static org.junit.Assert.assertSame;
@@ -47,7 +48,7 @@ public class CompositeProviderGetTreePermissionTest extends AbstractSecurityTest
 
     private CompositePermissionProvider createProvider(@NotNull CompositeAuthorizationConfiguration.CompositionType compositionType,
                                                        @NotNull AggregatedPermissionProvider... providers) {
-        return CompositePermissionProvider.create(root, ImmutableList.copyOf(providers), Context.DEFAULT, compositionType, getRootProvider(), getTreeProvider());
+        return CompositePermissionProvider.create(root, Arrays.asList(providers), Context.DEFAULT, compositionType, getRootProvider(), getTreeProvider());
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderNoScopeTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderNoScopeTest.java
index 5e71f87e76..def4c75b67 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderNoScopeTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderNoScopeTest.java
@@ -24,7 +24,6 @@ import java.util.Map;
 import java.util.Set;
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -119,7 +118,7 @@ public class CompositeProviderNoScopeTest extends AbstractCompositeProviderTest
     @Override
     @Test
     public void testTreePermissionGetChild() {
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
 
         Tree rootTree = readOnlyRoot.getTree(ROOT_PATH);
         NodeState ns = getTreeProvider().asNodeState(rootTree);
@@ -136,7 +135,7 @@ public class CompositeProviderNoScopeTest extends AbstractCompositeProviderTest
     @Override
     @Test
     public void testTreePermissionGetChildOR() {
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
 
         Tree rootTree = readOnlyRoot.getTree(ROOT_PATH);
         NodeState ns = getTreeProvider().asNodeState(rootTree);
@@ -453,7 +452,7 @@ public class CompositeProviderNoScopeTest extends AbstractCompositeProviderTest
         TreePermission tp = cppTestUser.getTreePermission(rootTree, TreePermission.EMPTY);
         assertEquals(2, ((TreePermission[]) tpField.get(tp)).length);
 
-        List<String> childNames = ImmutableList.of("test", "a", "b", "c", "nonexisting");
+        List<String> childNames = List.of("test", "a", "b", "c", "nonexisting");
         for (String cName : childNames) {
             ns = ns.getChildNode(cName);
             tp = tp.getChildPermission(cName, ns);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderScopeTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderScopeTest.java
index 69f1518d3a..1cdb7c7800 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderScopeTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderScopeTest.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import java.util.Set;
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
@@ -72,7 +71,7 @@ import static org.junit.Assert.assertTrue;
  */
 public class CompositeProviderScopeTest extends AbstractCompositeProviderTest {
 
-    private static List<String> PATH_OUTSIDE_SCOPE = ImmutableList.of(ROOT_PATH, TEST_PATH, TEST_CHILD_PATH);
+    private static List<String> PATH_OUTSIDE_SCOPE = List.of(ROOT_PATH, TEST_PATH, TEST_CHILD_PATH);
 
     private CompositePermissionProvider cppTestUser;
     private CompositePermissionProvider cppAdminUser;
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderSupportedTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderSupportedTest.java
index e3db40fd88..4100e4ecc9 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderSupportedTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderSupportedTest.java
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.composite;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import java.util.Arrays;
+
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -89,7 +90,7 @@ public class CompositeProviderSupportedTest extends AbstractSecurityTest {
     }
 
     private CompositePermissionProvider createProvider(@NotNull CompositeAuthorizationConfiguration.CompositionType compositionType, @NotNull AggregatedPermissionProvider... aggregated) {
-        return CompositePermissionProvider.create(root, ImmutableList.copyOf(aggregated), Context.DEFAULT, compositionType, getRootProvider(), getTreeProvider());
+        return CompositePermissionProvider.create(root, Arrays.asList(aggregated), Context.DEFAULT, compositionType, getRootProvider(), getTreeProvider());
     }
 
     @Test
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 f017dcf4d0..d53620e243 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
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertTrue;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -98,7 +97,7 @@ public class ChildOrderPropertyTest extends AbstractOakCoreTest {
         // verify that properties cannot be read:
         assertFalse(aTree.hasProperty(JcrConstants.JCR_PRIMARYTYPE));
 
-        List<String> expected = ImmutableList.of("/a/bb", "/a/b");
+        List<String> expected = List.of("/a/bb", "/a/b");
         Iterable<String> childPaths = Iterables.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/evaluation/RootTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/RootTest.java
index 3b2cb05b14..fee48b3b4c 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/RootTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/RootTest.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.security.authorization.evaluation;
 
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -44,7 +43,7 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> accessible = ImmutableList.of("/", "/a", "/a/b", "/a/b/c");
+        List<String> accessible = List.of("/", "/a", "/a/b", "/a/b/c");
         for (String path : accessible) {
             assertTrue(testRoot.getTree(path).exists());
         }
@@ -60,12 +59,12 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> notAccessible = ImmutableList.of("/", "/a/b");
+        List<String> notAccessible = List.of("/", "/a/b");
         for (String path : notAccessible) {
             assertFalse(path, testRoot.getTree(path).exists());
         }
 
-        List<String> accessible = ImmutableList.of("/a", "/a/bb", "/a/b/c");
+        List<String> accessible = List.of("/a", "/a/bb", "/a/b/c");
         for (String path : accessible) {
             assertTrue(path, testRoot.getTree(path).exists());
         }
@@ -79,7 +78,7 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> accessible = ImmutableList.of("/", "/a", "/a/b", "/a/b/c");
+        List<String> accessible = List.of("/", "/a", "/a/b", "/a/b/c");
         for (String path : accessible) {
             Tree tree = testRoot.getTree(path);
             assertNotNull(tree);
@@ -99,14 +98,14 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> notAccessible = ImmutableList.of("/", "/a/b");
+        List<String> notAccessible = List.of("/", "/a/b");
         for (String path : notAccessible) {
             Tree tree = testRoot.getTree(path);
             assertNotNull(path, tree);
             assertFalse(tree.exists());
         }
 
-        List<String> accessible = ImmutableList.of("/a", "/a/bb", "/a/b/c");
+        List<String> accessible = List.of("/a", "/a/bb", "/a/b/c");
         for (String path : accessible) {
             Tree tree = testRoot.getTree(path);
             assertNotNull(path, tree);
@@ -121,7 +120,7 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> notAccessible = ImmutableList.of("/", "/a", "/a/b", "/a/bb", "/a/b/c");
+        List<String> notAccessible = List.of("/", "/a", "/a/b", "/a/bb", "/a/b/c");
         for (String path : notAccessible) {
             Tree tree = testRoot.getTree(path);
             assertNotNull(path, tree);
@@ -135,14 +134,14 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> accessible = ImmutableList.of("/", "/a", "/a/b", "/a/bb", "/a/b/c");
+        List<String> accessible = List.of("/", "/a", "/a/b", "/a/bb", "/a/b/c");
         for (String path : accessible) {
             String propertyPath = PathUtils.concat(path, JcrConstants.JCR_PRIMARYTYPE);
             PropertyState property = testRoot.getTree(path).getProperty(JcrConstants.JCR_PRIMARYTYPE);
             assertNotNull(propertyPath, property);
         }
 
-        List<String> propPaths = ImmutableList.of("/a/aProp", "/a/b/bProp", "/a/bb/bbProp", "/a/b/c/cProp");
+        List<String> propPaths = List.of("/a/aProp", "/a/b/bProp", "/a/bb/bbProp", "/a/b/c/cProp");
         for (String path : propPaths) {
             PropertyState property = testRoot.getTree(PathUtils.getParentPath(path)).getProperty(PathUtils.getName(path));
             assertNotNull(path, property);
@@ -155,14 +154,14 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> accessible = ImmutableList.of("/", "/a", "/a/b", "/a/bb", "/a/b/c");
+        List<String> accessible = List.of("/", "/a", "/a/b", "/a/bb", "/a/b/c");
         for (String path : accessible) {
             String propertyPath = PathUtils.concat(path, JcrConstants.JCR_PRIMARYTYPE);
             PropertyState property = testRoot.getTree(path).getProperty(JcrConstants.JCR_PRIMARYTYPE);
             assertNotNull(propertyPath, property);
         }
 
-        List<String> propPaths = ImmutableList.of("/a/aProp", "/a/b/bProp", "/a/bb/bbProp", "/a/b/c/cProp");
+        List<String> propPaths = List.of("/a/aProp", "/a/b/bProp", "/a/bb/bbProp", "/a/b/c/cProp");
         for (String path : propPaths) {
             PropertyState property = testRoot.getTree(PathUtils.getParentPath(path)).getProperty(PathUtils.getName(path));
             assertNotNull(path, property);
@@ -177,13 +176,13 @@ public class RootTest extends AbstractOakCoreTest {
 
         Root testRoot = getTestRoot();
 
-        List<String> accessible = ImmutableList.of("/a/aProp", "/a/bb/bbProp", "/a/b/c/cProp");
+        List<String> accessible = List.of("/a/aProp", "/a/bb/bbProp", "/a/b/c/cProp");
         for (String path : accessible) {
             PropertyState property = testRoot.getTree(PathUtils.getParentPath(path)).getProperty(PathUtils.getName(path));
             assertNotNull(path, property);
         }
 
-        List<String> notAccessible = ImmutableList.of("/jcr:primaryType", "/a/b/bProp");
+        List<String> notAccessible = List.of("/jcr:primaryType", "/a/b/bProp");
         for (String path : notAccessible) {
             PropertyState property = testRoot.getTree(PathUtils.getParentPath(path)).getProperty(PathUtils.getName(path));
             assertNull(path, property);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/TreeTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/TreeTest.java
index b7e2b7a03f..893eef1b53 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/TreeTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/TreeTest.java
@@ -25,7 +25,6 @@ import static org.junit.Assert.fail;
 
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -101,7 +100,7 @@ public class TreeTest extends AbstractOakCoreTest {
         assertEquals(cntA - 1, testRoot.getTree("/a").getChildrenCount(Long.MAX_VALUE));
 
         // for the following nodes the cnt must not differ
-        List<String> paths = ImmutableList.of("/a/b", "/a/b/c");
+        List<String> paths = List.of("/a/b", "/a/b/c");
         for (String path : paths) {
             assertEquals(
                     root.getTree(path).getChildrenCount(Long.MAX_VALUE),
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ChildOrderDiffTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ChildOrderDiffTest.java
index 0db13cbfbb..c83a187164 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ChildOrderDiffTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ChildOrderDiffTest.java
@@ -16,13 +16,14 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.permission;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
+import java.util.Arrays;
+
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -30,7 +31,7 @@ public class ChildOrderDiffTest {
 
     @NotNull
     private static PropertyState createPropertyState(@NotNull String... names) {
-        return PropertyStates.createProperty("any", ImmutableList.copyOf(names), Type.NAMES);
+        return PropertyStates.createProperty("any", Arrays.asList(names), Type.NAMES);
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidatorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidatorTest.java
index ab97d1076d..77e3316bf9 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidatorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidatorTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.permission;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
@@ -47,6 +46,7 @@ import org.junit.Test;
 
 import javax.jcr.security.AccessControlManager;
 import java.security.Principal;
+import java.util.List;
 import java.util.Set;
 
 import static org.apache.jackrabbit.JcrConstants.JCR_CREATED;
@@ -276,7 +276,7 @@ public class PermissionValidatorTest extends AbstractSecurityTest {
             Root testRoot = testSession.getLatestRoot();
 
             Tree testChild = testRoot.getTree(TEST_CHILD_PATH);
-            testChild.setProperty(PropertyStates.createProperty(JcrConstants.JCR_MIXINTYPES, ImmutableList.of(AccessControlConstants.MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES));
+            testChild.setProperty(PropertyStates.createProperty(JcrConstants.JCR_MIXINTYPES, List.of(AccessControlConstants.MIX_REP_ACCESS_CONTROLLABLE), Type.NAMES));
 
             Tree testPolicy = testChild.getChild(AccessControlConstants.REP_POLICY);
             testPolicy.setOrderableChildren(true);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionablePathHookTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionablePathHookTest.java
index 22ad256a77..92f68bbfec 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionablePathHookTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionablePathHookTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.permission;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -36,6 +35,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
+import java.util.List;
 
 import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
 import static org.apache.jackrabbit.JcrConstants.JCR_VERSIONHISTORY;
@@ -76,7 +76,7 @@ public class VersionablePathHookTest extends AbstractSecurityTest  {
 
             @Override
             public @NotNull Iterable<? extends PropertyState> getProperties() {
-                return ImmutableList.of(PropertyStates.createProperty(JCR_VERSIONHISTORY, "someValue"));
+                return List.of(PropertyStates.createProperty(JCR_VERSIONHISTORY, "someValue"));
             }
 
             @Override
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CompositeRestrictionProviderTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CompositeRestrictionProviderTest.java
index 1ad0fa9ae4..b9354bf2a2 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CompositeRestrictionProviderTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CompositeRestrictionProviderTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.restriction;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
@@ -37,6 +36,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.ValueFactory;
 import javax.jcr.security.AccessControlException;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -92,11 +92,11 @@ public class CompositeRestrictionProviderTest extends AbstractSecurityTest imple
     public void testReadRestrictions() throws Exception {
         Tree aceNode = TreeUtil.addChild(root.getTree("/"), "test", NT_REP_GRANT_ACE);
         aceNode.setProperty("boolean", true);
-        aceNode.setProperty(PropertyStates.createProperty("longs", ImmutableList.of(vf.createValue(10), vf.createValue(290))));
+        aceNode.setProperty(PropertyStates.createProperty("longs", List.of(vf.createValue(10), vf.createValue(290))));
         aceNode.setProperty(REP_GLOB, "*");
         aceNode.setProperty(REP_NT_NAMES, Set.of(), Type.NAMES); // empty array
         aceNode.setProperty("invalid", "val");
-        aceNode.setProperty("invalid2", ImmutableList.of("val1", "val2", "val3"), Type.STRINGS);
+        aceNode.setProperty("invalid2", List.of("val1", "val2", "val3"), Type.STRINGS);
 
         Set<Restriction> restrictions = provider.readRestrictions("/test", aceNode);
         assertEquals(4, restrictions.size());
@@ -136,9 +136,9 @@ public class CompositeRestrictionProviderTest extends AbstractSecurityTest imple
         Tree aceNode = TreeUtil.addChild(root.getTree("/"), "test", NT_REP_GRANT_ACE);
         Tree rNode = TreeUtil.addChild(aceNode, REP_RESTRICTIONS, NT_REP_RESTRICTIONS);
         rNode.setProperty("boolean", true);
-        rNode.setProperty(PropertyStates.createProperty("longs", ImmutableList.of(vf.createValue(10), vf.createValue(290))));
+        rNode.setProperty(PropertyStates.createProperty("longs", List.of(vf.createValue(10), vf.createValue(290))));
         rNode.setProperty(REP_GLOB, "*");
-        rNode.setProperty(REP_NT_NAMES, ImmutableList.of(), Type.NAMES); // empty array
+        rNode.setProperty(REP_NT_NAMES, List.of(), Type.NAMES); // empty array
 
         provider.validateRestrictions("/test", aceNode);
 
@@ -162,7 +162,7 @@ public class CompositeRestrictionProviderTest extends AbstractSecurityTest imple
             rNode.setProperty("boolean", true);
         }
 
-        rNode.setProperty(REP_GLOB, ImmutableList.of("*", "/jcr:content"), Type.STRINGS);
+        rNode.setProperty(REP_GLOB, List.of("*", "/jcr:content"), Type.STRINGS);
         try {
             provider.validateRestrictions("/test", aceNode);
             fail("validation should detect wrong restriction type (multi vs single valued)");
@@ -175,9 +175,9 @@ public class CompositeRestrictionProviderTest extends AbstractSecurityTest imple
     public void testValidateRestrictionsAtEntryNode() throws Exception {
         Tree aceNode = TreeUtil.addChild(root.getTree("/"), "test", NT_REP_GRANT_ACE);
         aceNode.setProperty("boolean", true);
-        aceNode.setProperty(PropertyStates.createProperty("longs", ImmutableList.of(vf.createValue(10), vf.createValue(290))));
+        aceNode.setProperty(PropertyStates.createProperty("longs", List.of(vf.createValue(10), vf.createValue(290))));
         aceNode.setProperty(REP_GLOB, "*");
-        aceNode.setProperty(REP_NT_NAMES, ImmutableList.of(), Type.NAMES); // empty array
+        aceNode.setProperty(REP_NT_NAMES, List.of(), Type.NAMES); // empty array
 
         provider.validateRestrictions("/test", aceNode);
     }
@@ -188,7 +188,7 @@ public class CompositeRestrictionProviderTest extends AbstractSecurityTest imple
 
         Tree aceNode = TreeUtil.addChild(root.getTree("/"), "test", NT_REP_GRANT_ACE);
         Tree rNode = TreeUtil.addChild(aceNode, REP_RESTRICTIONS, NT_REP_RESTRICTIONS);
-        rNode.setProperty(PropertyStates.createProperty("longs", ImmutableList.of(vf.createValue(10), vf.createValue(290))));
+        rNode.setProperty(PropertyStates.createProperty("longs", List.of(vf.createValue(10), vf.createValue(290))));
 
         try {
             rp.validateRestrictions("/test", aceNode);
@@ -223,7 +223,7 @@ public class CompositeRestrictionProviderTest extends AbstractSecurityTest imple
         assertFalse(provider.getPattern("/test", aceNode) instanceof CompositePattern);
 
         rNode.setProperty("boolean", true);
-        rNode.setProperty(PropertyStates.createProperty("longs", ImmutableList.of(vf.createValue(10), vf.createValue(290))));
+        rNode.setProperty(PropertyStates.createProperty("longs", List.of(vf.createValue(10), vf.createValue(290))));
 
         assertTrue(provider.getPattern("/test", rNode) instanceof CompositePattern);
     }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CurrentPatternTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CurrentPatternTest.java
index 93606f012f..141885ca65 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CurrentPatternTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/CurrentPatternTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.restriction;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -148,7 +147,7 @@ public class CurrentPatternTest {
 
     @Test
     public void testMatchesPath() {
-        List<String[]> propNames = ImmutableList.of(new String[0], new String[]{RESIDUAL_NAME}, new String[] {PROP_NAME});
+        List<String[]> propNames = List.of(new String[0], new String[]{RESIDUAL_NAME}, new String[] {PROP_NAME});
         for (String[] pn : propNames) {
             RestrictionPattern rp = createPattern(pn);
             assertTrue(rp.matches(TEST_PATH));
@@ -172,7 +171,7 @@ public class CurrentPatternTest {
         }
         
         // pattern with * or all propnames will match
-        List<String[]> propNames = ImmutableList.of(new String[]{RESIDUAL_NAME}, knownPropertyNames);
+        List<String[]> propNames = List.of(new String[]{RESIDUAL_NAME}, knownPropertyNames);
         for (String[] names : propNames) {
             rp = createPattern(names);
             for (String pn : knownPropertyNames) {
@@ -205,7 +204,7 @@ public class CurrentPatternTest {
         }
 
         // pattern with * or all node-names will NOT match because they point to items that are known to be nodes
-        List<String[]> propNames = ImmutableList.of(new String[]{RESIDUAL_NAME}, knownNodeNames);
+        List<String[]> propNames = List.of(new String[]{RESIDUAL_NAME}, knownNodeNames);
         for (String[] names : propNames) {
             rp = createPattern(names);
             for (String pn : knownNodeNames) {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNamePatternTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNamePatternTest.java
index e7211674d9..cc3e4fd0e8 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNamePatternTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNamePatternTest.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.security.authorization.restriction;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
@@ -53,7 +52,7 @@ public class ItemNamePatternTest extends AbstractSecurityTest {
     public void testMatchesItem() throws Exception {
 
         Tree rootTree = root.getTree("/");
-        List<String> matching = ImmutableList.of("a", "b", "c", "d/e/a", "a/b/c/d/b", "test/c");
+        List<String> matching = List.of("a", "b", "c", "d/e/a", "a/b/c/d/b", "test/c");
         for (String relPath : matching) {
             Tree testTree = addTree(rootTree, relPath);
 
@@ -64,7 +63,7 @@ public class ItemNamePatternTest extends AbstractSecurityTest {
             testTree.remove();
         }
 
-        List<String> notMatching = ImmutableList.of("d", "b/d", "d/e/f", "c/b/abc");
+        List<String> notMatching = List.of("d", "b/d", "d/e/f", "c/b/abc");
         for (String relPath : notMatching) {
             Tree testTree = addTree(rootTree, relPath);
 
@@ -78,12 +77,12 @@ public class ItemNamePatternTest extends AbstractSecurityTest {
 
     @Test
     public void testMatchesPath() {
-        List<String> matching = ImmutableList.of("/a", "/b", "/c", "/d/e/a", "/a/b/c/d/b", "/test/c");
+        List<String> matching = List.of("/a", "/b", "/c", "/d/e/a", "/a/b/c/d/b", "/test/c");
         for (String p : matching) {
             assertTrue(pattern.matches(p));
         }
 
-        List<String> notMatching = ImmutableList.of("/", "/d", "/b/d", "/d/e/f", "/c/b/abc");
+        List<String> notMatching = List.of("/", "/d", "/b/d", "/d/e/f", "/c/b/abc");
         for (String p : notMatching) {
             assertFalse(pattern.matches(p));
         }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNameRestrictionTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNameRestrictionTest.java
index 95478f462c..5837faa672 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNameRestrictionTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/ItemNameRestrictionTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.restriction;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -71,12 +70,12 @@ public class ItemNameRestrictionTest extends AbstractRestrictionTest {
     public void testRead() {
         Root testRoot = testSession.getLatestRoot();
 
-        List<String> visible = ImmutableList.of("/a", "/a/d/b", "/a/d/b/e/c");
+        List<String> visible = List.of("/a", "/a/d/b", "/a/d/b/e/c");
         for (String p : visible) {
             assertTrue(testRoot.getTree(p).exists());
         }
 
-        List<String> invisible = ImmutableList.of("/", "/a/d", "/a/d/b/e", "/a/d/b/e/c/f");
+        List<String> invisible = List.of("/", "/a/d", "/a/d/b/e", "/a/d/b/e/c/f");
         for (String p : invisible) {
             assertFalse(testRoot.getTree(p).exists());
         }
@@ -91,7 +90,7 @@ public class ItemNameRestrictionTest extends AbstractRestrictionTest {
     public void testAddProperty() throws Exception {
         Root testRoot = testSession.getLatestRoot();
 
-        List<String> paths = ImmutableList.of("/a", "/a/d/b", "/a/d/b/e/c");
+        List<String> paths = List.of("/a", "/a/d/b", "/a/d/b/e/c");
         for (String p : paths) {
             Tree t = testRoot.getTree(p);
             t.setProperty("b", "anyvalue");
@@ -132,7 +131,7 @@ public class ItemNameRestrictionTest extends AbstractRestrictionTest {
     public void testAddChild() throws Exception {
         Root testRoot = testSession.getLatestRoot();
 
-        List<String> paths = ImmutableList.of("/a", "/a/d/b", "/a/d/b/e/c");
+        List<String> paths = List.of("/a", "/a/d/b", "/a/d/b/e/c");
         for (String p : paths) {
             Tree t = testRoot.getTree(p);
             TreeUtil.addChild(t, "c", NodeTypeConstants.NT_OAK_UNSTRUCTURED);
@@ -143,7 +142,7 @@ public class ItemNameRestrictionTest extends AbstractRestrictionTest {
     @Test
     public void testRemoveTree() {
         Root testRoot = testSession.getLatestRoot();
-        List<String> paths = ImmutableList.of("/a/d/b/e/c", "/a/d/b", "/a");
+        List<String> paths = List.of("/a/d/b/e/c", "/a/d/b", "/a");
         for (String p : paths) {
             try {
                 testRoot.getTree(p).remove();
@@ -169,7 +168,7 @@ public class ItemNameRestrictionTest extends AbstractRestrictionTest {
         root.commit();
 
         Root testRoot = testSession.getLatestRoot();
-        List<String> paths = ImmutableList.of("/a/d/b/e/c", "/a/d/b");
+        List<String> paths = List.of("/a/d/b/e/c", "/a/d/b");
         for (String p : paths) {
             testRoot.getTree(p).remove();
             testRoot.commit();
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/NodeTypePatternTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/NodeTypePatternTest.java
index 5d2ef62d1d..5144efa7f0 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/NodeTypePatternTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/NodeTypePatternTest.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.security.authorization.restriction;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -58,7 +57,7 @@ public class NodeTypePatternTest extends AbstractSecurityTest {
     public void testNotMatchesItem() throws Exception {
         Tree rootTree = root.getTree("/");
 
-        List<String> notMatching = ImmutableList.of(NodeTypeConstants.NT_OAK_RESOURCE, NodeTypeConstants.NT_OAK_UNSTRUCTURED, JcrConstants.NT_VERSION);
+        List<String> notMatching = List.of(NodeTypeConstants.NT_OAK_RESOURCE, NodeTypeConstants.NT_OAK_UNSTRUCTURED, JcrConstants.NT_VERSION);
         for (String ntName : notMatching) {
             Tree testTree = TreeUtil.addChild(rootTree, "name", ntName);
 
@@ -72,7 +71,7 @@ public class NodeTypePatternTest extends AbstractSecurityTest {
 
     @Test
     public void testMatchesPath() {
-        List<String> notMatching = ImmutableList.of("/", "/a", "/b", "/c", "/d/e/a", "/a/b/c/d/b", "/test/c", "/d", "/b/d", "/d/e/f", "/c/b/abc");
+        List<String> notMatching = List.of("/", "/a", "/b", "/c", "/d/e/a", "/a/b/c/d/b", "/test/c", "/d", "/b/d", "/d/e/f", "/c/b/abc");
         for (String p : notMatching) {
             assertFalse(pattern.matches(p));
         }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/PrefixPatternTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/PrefixPatternTest.java
index 06f5074dc4..a1c38d0e9a 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/PrefixPatternTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/PrefixPatternTest.java
@@ -20,7 +20,6 @@ import java.util.List;
 import java.util.Set;
 import javax.jcr.NamespaceRegistry;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -55,7 +54,7 @@ public class PrefixPatternTest extends AbstractSecurityTest {
             testTree.remove();
         }
 
-        List<String> notMatching = ImmutableList.of(NamespaceRegistry.PREFIX_EMPTY, NamespaceRegistry.PREFIX_MIX, "any");
+        List<String> notMatching = List.of(NamespaceRegistry.PREFIX_EMPTY, NamespaceRegistry.PREFIX_MIX, "any");
         for (String prefix : notMatching) {
             String name = (prefix.isEmpty()) ? "name" : prefix + ":name";
             Tree testTree = TreeUtil.addChild(rootTree, name, NodeTypeConstants.NT_OAK_UNSTRUCTURED);
@@ -71,7 +70,7 @@ public class PrefixPatternTest extends AbstractSecurityTest {
 
     @Test
     public void testMatchesPath() {
-        List<String> notMatching = ImmutableList.of("/", "/a", "/d/jcr:e/a");
+        List<String> notMatching = List.of("/", "/a", "/d/jcr:e/a");
         for (String p : notMatching) {
             assertFalse(p, pattern.matches(p));
         }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImplTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImplTest.java
index 021bc46d96..4221ac4b92 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImplTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImplTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.authorization.restriction;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
@@ -132,7 +131,7 @@ public class RestrictionProviderImplTest extends AbstractSecurityTest implements
     public void testGetRestrictionPattern() throws Exception {
         Map<PropertyState, RestrictionPattern> map = new HashMap<>();
         map.put(PropertyStates.createProperty(REP_GLOB, "/*/jcr:content"), GlobPattern.create("/testPath", "/*/jcr:content"));
-        List<String> ntNames = ImmutableList.of(JcrConstants.NT_FOLDER, JcrConstants.NT_LINKEDFILE);
+        List<String> ntNames = List.of(JcrConstants.NT_FOLDER, JcrConstants.NT_LINKEDFILE);
         map.put(PropertyStates.createProperty(REP_NT_NAMES, ntNames, Type.NAMES), new NodeTypePattern(ntNames));
 
         Tree tree = TreeUtil.getOrAddChild(root.getTree("/"), "testPath", JcrConstants.NT_UNSTRUCTURED);
@@ -161,17 +160,17 @@ public class RestrictionProviderImplTest extends AbstractSecurityTest implements
         Map<PropertyState, RestrictionPattern> map = new HashMap<>();
         String globRestriction = "/*/jcr:content";
         map.put(PropertyStates.createProperty(REP_GLOB, globRestriction), GlobPattern.create("/testPath", globRestriction));
-        List<String> ntNames = ImmutableList.of(JcrConstants.NT_FOLDER, JcrConstants.NT_LINKEDFILE);
+        List<String> ntNames = List.of(JcrConstants.NT_FOLDER, JcrConstants.NT_LINKEDFILE);
         map.put(PropertyStates.createProperty(REP_NT_NAMES, ntNames, Type.NAMES), new NodeTypePattern(ntNames));
-        List<String> prefixes = ImmutableList.of("rep", "jcr");
+        List<String> prefixes = List.of("rep", "jcr");
         map.put(PropertyStates.createProperty(REP_PREFIXES, prefixes, Type.STRINGS), new PrefixPattern(prefixes));
-        List<String> itemNames = ImmutableList.of("abc", "jcr:primaryType");
+        List<String> itemNames = List.of("abc", "jcr:primaryType");
         map.put(PropertyStates.createProperty(REP_ITEM_NAMES, prefixes, Type.NAMES), new ItemNamePattern(itemNames));
-        List<String> propNames = ImmutableList.of("jcr:mixinTypes", "jcr:primaryType");
+        List<String> propNames = List.of("jcr:mixinTypes", "jcr:primaryType");
         map.put(PropertyStates.createProperty(REP_CURRENT, propNames, Type.STRINGS), new CurrentPattern("/testPath", propNames));
         List<String> globs = Collections.singletonList(globRestriction);
         map.put(PropertyStates.createProperty(REP_GLOBS, globs, Type.STRINGS), new GlobsPattern("/testPath", globs));
-        List<String> subtrees = ImmutableList.of("/sub/tree", "/a/b/c/");
+        List<String> subtrees = List.of("/sub/tree", "/a/b/c/");
         map.put(PropertyStates.createProperty(REP_SUBTREES, subtrees, Type.STRINGS), new SubtreePattern("/testPath", subtrees));
 
         Tree tree = TreeUtil.getOrAddChild(root.getTree("/"), "testPath", JcrConstants.NT_UNSTRUCTURED);
@@ -191,22 +190,22 @@ public class RestrictionProviderImplTest extends AbstractSecurityTest implements
         Map<PropertyState, RestrictionPattern> map = new HashMap<>();
         map.put(PropertyStates.createProperty(REP_GLOB, globRestriction), GlobPattern.create("/testPath", globRestriction));
 
-        List<String> ntNames = ImmutableList.of(JcrConstants.NT_FOLDER, JcrConstants.NT_LINKEDFILE);
+        List<String> ntNames = List.of(JcrConstants.NT_FOLDER, JcrConstants.NT_LINKEDFILE);
         map.put(PropertyStates.createProperty(REP_NT_NAMES, ntNames, Type.NAMES), new NodeTypePattern(ntNames));
 
-        List<String> prefixes = ImmutableList.of("rep", "jcr");
+        List<String> prefixes = List.of("rep", "jcr");
         map.put(PropertyStates.createProperty(REP_PREFIXES, prefixes, Type.STRINGS), new PrefixPattern(prefixes));
 
-        List<String> itemNames = ImmutableList.of("abc", "jcr:primaryType");
+        List<String> itemNames = List.of("abc", "jcr:primaryType");
         map.put(PropertyStates.createProperty(REP_ITEM_NAMES, itemNames, Type.NAMES), new ItemNamePattern(itemNames));
 
-        List<String> propNames = ImmutableList.of("*");
+        List<String> propNames = List.of("*");
         map.put(PropertyStates.createProperty(REP_CURRENT, propNames, Type.STRINGS), new CurrentPattern("/testPath", propNames));
 
         List<String> globs = Collections.singletonList(globRestriction);
         map.put(PropertyStates.createProperty(REP_GLOBS, globs, Type.STRINGS), new GlobsPattern("/testPath", globs));
 
-        List<String> subtrees = ImmutableList.of("/sub/tree", "/a/b/c/");
+        List<String> subtrees = List.of("/sub/tree", "/a/b/c/");
         map.put(PropertyStates.createProperty(REP_SUBTREES, subtrees, Type.STRINGS), new SubtreePattern("/testPath", subtrees));
 
         Tree tree = TreeUtil.getOrAddChild(root.getTree("/"), "testPath", JcrConstants.NT_UNSTRUCTURED);
@@ -259,7 +258,7 @@ public class RestrictionProviderImplTest extends AbstractSecurityTest implements
 
         AccessControlManager acMgr = getAccessControlManager(root);
 
-        List<String> globs = ImmutableList.of(
+        List<String> globs = List.of(
                 "/1*/2*/3*/4*/5*/6*/7*/8*/9*/10*/11*/12*/13*/14*/15*/16*/17*/18*/19*/20*/21*",
                 "*********************");
         for (String glob : globs) {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
index 723c552a00..0d3b5b2282 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.internal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
@@ -887,7 +886,7 @@ public class SecurityProviderRegistrationTest extends AbstractSecurityTest {
         SortedMap m = (SortedMap) f.get(registration);
         assertEquals(3, m.size());
         Collection c = m.values();
-        assertTrue(Iterables.elementsEqual(ImmutableList.of(service2, service3, service1), c));
+        assertTrue(Iterables.elementsEqual(List.of(service2, service3, service1), c));
     }
 
     @Test
@@ -1105,7 +1104,7 @@ public class SecurityProviderRegistrationTest extends AbstractSecurityTest {
         assertNull(context.getService(SecurityProvider.class));
 
         AuthorizationConfiguration mockConfiguration = mockConfiguration(AuthorizationConfiguration.class);
-        when(mockConfiguration.getMonitors(any(StatisticsProvider.class))).thenReturn(ImmutableList.of(new TestMonitor()));
+        when(mockConfiguration.getMonitors(any(StatisticsProvider.class))).thenReturn(List.of(new TestMonitor()));
 
         registration.bindAuthorizationConfiguration(mockConfiguration, Collections.singletonMap(SERVICE_PID, "customAuthorizationConfig"));
         SecurityProvider service = context.getService(SecurityProvider.class);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImplTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImplTest.java
index f983f8cacc..5115a6b24c 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImplTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImplTest.java
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.oak.security.principal;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import java.util.List;
+
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Root;
@@ -128,7 +129,7 @@ public class PrincipalConfigurationImplTest extends AbstractSecurityTest {
             @NotNull
             @Override
             public Iterable<? extends SecurityConfiguration> getConfigurations() {
-                return ImmutableList.of();
+                return List.of();
             }
 
             @NotNull
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllCommitHookTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllCommitHookTest.java
index 42dd60c8f5..21170954a8 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllCommitHookTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllCommitHookTest.java
@@ -16,10 +16,10 @@
  */
 package org.apache.jackrabbit.oak.security.privilege;
 
+import java.util.List;
 import java.util.Set;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Root;
@@ -107,7 +107,7 @@ public class JcrAllCommitHookTest extends AbstractSecurityTest {
         Root r = adminSession.getLatestRoot();
         Tree t = r.getTree(PRIVILEGES_PATH);
         Tree jcrAll = t.getChild(JCR_ALL);
-        jcrAll.setProperty(REP_AGGREGATES, ImmutableList.of("newPriv"), Type.NAMES);
+        jcrAll.setProperty(REP_AGGREGATES, List.of("newPriv"), Type.NAMES);
         t.addChild("newPriv");
         NodeState after = getTreeProvider().asNodeState(r.getTree(PathUtils.ROOT_PATH));
         hook.processCommit(before, after, null);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java
index 746b3f9c21..1fbeb1bcc8 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.security.privilege;
 
 import java.util.List;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -123,7 +123,7 @@ public class PrivilegeContextTest {
 
     @Test
     public void testDefinesLocation() {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 PrivilegeConstants.PRIVILEGES_PATH,
                 PrivilegeConstants.PRIVILEGES_PATH + "/child",
                 PrivilegeConstants.PRIVILEGES_PATH + "/another/child"
@@ -139,7 +139,7 @@ public class PrivilegeContextTest {
 
     @Test
     public void testNotDefinesLocation() {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 PathUtils.ROOT_PATH,
                 PrivilegeConstants.PRIVILEGES_PATH + "sibling",
                 "/some/other/path",
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 4b6f2babb2..ccc829ec03 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
@@ -16,10 +16,10 @@
  */
 package org.apache.jackrabbit.oak.security.privilege;
 
+import java.util.List;
 import java.util.Set;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
@@ -163,7 +163,7 @@ public class PrivilegeImplTest extends AbstractSecurityTest implements Privilege
     public void testInvalidDeclaredAggregate() throws Exception {
         Tree privilegeDefs = root.getTree(PRIVILEGES_PATH);
         Tree privDef = TreeUtil.addChild(privilegeDefs, "test", NT_REP_PRIVILEGE);
-        privDef.setProperty(REP_AGGREGATES, ImmutableList.of(JCR_READ, "invalid"), Type.NAMES);
+        privDef.setProperty(REP_AGGREGATES, List.of(JCR_READ, "invalid"), Type.NAMES);
 
         Privilege p = getPrivilegeManager(root).getPrivilege("test");
         assertAggregation(p.getDeclaredAggregatePrivileges(), JCR_READ);
@@ -173,7 +173,7 @@ public class PrivilegeImplTest extends AbstractSecurityTest implements Privilege
     public void testCyclicDeclaredAggregate() throws Exception {
         Tree privilegeDefs = root.getTree(PRIVILEGES_PATH);
         Tree privDef = TreeUtil.addChild(privilegeDefs, "test", NT_REP_PRIVILEGE);
-        privDef.setProperty(REP_AGGREGATES, ImmutableList.of(JCR_READ, "test"), Type.NAMES);
+        privDef.setProperty(REP_AGGREGATES, List.of(JCR_READ, "test"), Type.NAMES);
 
         Privilege p = getPrivilegeManager(root).getPrivilege("test");
         assertAggregation(p.getDeclaredAggregatePrivileges(), JCR_READ);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
index fcb7eadaa5..41e683c024 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
@@ -17,9 +17,9 @@
 package org.apache.jackrabbit.oak.security.privilege;
 
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -129,7 +129,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
         try {
             Tree privTree = createPrivilegeTree("test");
             privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES,
-                    ImmutableList.of(JCR_READ, JCR_MODIFY_PROPERTIES), Type.NAMES));
+                    List.of(JCR_READ, JCR_MODIFY_PROPERTIES), Type.NAMES));
             setPrivilegeBits(privTree, REP_BITS, 340);
 
             root.commit();
@@ -211,7 +211,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
     public void testAggregatesIncludesJcrAll() throws Exception {
         try {
             Tree privTree = createPrivilegeTree("test");
-            privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES, ImmutableList.of(JCR_ALL, JCR_READ, JCR_WRITE), Type.NAMES));
+            privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES, List.of(JCR_ALL, JCR_READ, JCR_WRITE), Type.NAMES));
             PrivilegeBits.getInstance(bitsProvider.getBits(JCR_ALL, JCR_READ, JCR_WRITE)).writeTo(privTree);
 
             root.commit();
@@ -224,7 +224,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
     public void testAggregatesMatchesExisting() throws Exception {
         try {
             Tree privTree = createPrivilegeTree("test");
-            privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES, ImmutableList.of(REP_READ_NODES, REP_READ_PROPERTIES), Type.NAMES));
+            privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES, List.of(REP_READ_NODES, REP_READ_PROPERTIES), Type.NAMES));
             PrivilegeBits.getInstance(bitsProvider.getBits(REP_READ_NODES, REP_READ_PROPERTIES)).writeTo(privTree);
 
             root.commit();
@@ -236,8 +236,8 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
     @Test(expected = CommitFailedException.class)
     public void testPropertyChanged() throws Exception {
         try {
-            PropertyState before = PropertyStates.createProperty(REP_AGGREGATES, ImmutableList.of(REP_READ_NODES, REP_READ_PROPERTIES), Type.NAMES);
-            PropertyState after = PropertyStates.createProperty(REP_AGGREGATES, ImmutableList.of(REP_READ_NODES), Type.NAMES);
+            PropertyState before = PropertyStates.createProperty(REP_AGGREGATES, List.of(REP_READ_NODES, REP_READ_PROPERTIES), Type.NAMES);
+            PropertyState after = PropertyStates.createProperty(REP_AGGREGATES, List.of(REP_READ_NODES), Type.NAMES);
 
             PrivilegeValidator validator = new PrivilegeValidator(root, root, getTreeProvider());
             validator.propertyChanged(before, after);
@@ -249,7 +249,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
     @Test(expected = CommitFailedException.class)
     public void testPropertyDeleted() throws Exception {
         try {
-            PropertyState before = PropertyStates.createProperty(REP_AGGREGATES, ImmutableList.of(REP_READ_NODES, REP_READ_PROPERTIES), Type.NAMES);
+            PropertyState before = PropertyStates.createProperty(REP_AGGREGATES, List.of(REP_READ_NODES, REP_READ_PROPERTIES), Type.NAMES);
 
             PrivilegeValidator validator = new PrivilegeValidator(root, root, getTreeProvider());
             validator.propertyDeleted(before);
@@ -288,7 +288,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
             NodeState newDef = new MemoryNodeBuilder(EmptyNodeState.EMPTY_NODE)
                     .setProperty(JCR_PRIMARYTYPE, NT_REP_PRIVILEGE)
                     .setProperty(REP_BITS, 8)
-                    .setProperty(REP_AGGREGATES, ImmutableList.of("unknown", JCR_READ), Type.NAMES)
+                    .setProperty(REP_AGGREGATES, List.of("unknown", JCR_READ), Type.NAMES)
                     .getNodeState();
 
             PrivilegeValidator validator = createPrivilegeValidator();
@@ -306,7 +306,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
             NodeState newDef = new MemoryNodeBuilder(EmptyNodeState.EMPTY_NODE)
                     .setProperty(JCR_PRIMARYTYPE, NT_REP_PRIVILEGE)
                     .setProperty(REP_BITS, 8)
-                    .setProperty(REP_AGGREGATES, ImmutableList.of("test", JCR_READ), Type.NAMES)
+                    .setProperty(REP_AGGREGATES, List.of("test", JCR_READ), Type.NAMES)
                     .getNodeState();
 
             PrivilegeValidator validator = createPrivilegeValidator();
@@ -325,7 +325,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
             NodeState newDef = new MemoryNodeBuilder(EmptyNodeState.EMPTY_NODE)
                     .setProperty(JCR_PRIMARYTYPE, NT_REP_PRIVILEGE)
                     .setProperty(REP_BITS, 8)
-                    .setProperty(REP_AGGREGATES, ImmutableList.of("test2", JCR_READ), Type.NAMES)
+                    .setProperty(REP_AGGREGATES, List.of("test2", JCR_READ), Type.NAMES)
                     .getNodeState();
 
             PrivilegeValidator validator = createPrivilegeValidator();
@@ -344,7 +344,7 @@ public class PrivilegeValidatorTest extends AbstractSecurityTest implements Priv
         Tree privDefs = root.getTree(PRIVILEGES_PATH);
         Tree newPriv = TreeUtil.addChild(privDefs, "newPriv", NT_REP_PRIVILEGE);
         PrivilegeBits.getInstance(PrivilegeBits.BUILT_IN.get(JCR_READ), PrivilegeBits.BUILT_IN.get(JCR_ADD_CHILD_NODES)).writeTo(newPriv);
-        newPriv.setProperty(REP_AGGREGATES, ImmutableList.of(JCR_READ, JCR_ADD_CHILD_NODES), Type.NAMES);
+        newPriv.setProperty(REP_AGGREGATES, List.of(JCR_READ, JCR_ADD_CHILD_NODES), Type.NAMES);
 
         TreeProvider tp = mock(TreeProvider.class);
         when(tp.createReadOnlyTree(any(Tree.class), anyString(), any(NodeState.class))).thenReturn(newPriv);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
index fa6b8123f3..b07ed1eee0 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -87,7 +86,7 @@ public class AbstractGroupPrincipalTest extends AbstractSecurityTest {
 
     @Test
     public void testIsMemberMissingAuthorizable() {
-        List<Principal> principals = ImmutableList.of(
+        List<Principal> principals = List.of(
                 new PrincipalImpl("name"),
                 () -> "name"
         );
@@ -108,7 +107,7 @@ public class AbstractGroupPrincipalTest extends AbstractSecurityTest {
 
     @Test
     public void testIsMemberOfEveryoneMissingAuthorizable() {
-        List<Principal> principals = ImmutableList.of(
+        List<Principal> principals = List.of(
                 new PrincipalImpl("name"),
                 () -> "name"
         );
@@ -188,7 +187,7 @@ public class AbstractGroupPrincipalTest extends AbstractSecurityTest {
         @NotNull
         @Override
         Iterator<Authorizable> getMembers() throws RepositoryException {
-            return ImmutableList.of(member).iterator();
+            return List.of(member).iterator();
         }
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java
index c4c16a8513..df8b6b14bc 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java
@@ -17,11 +17,11 @@
 package org.apache.jackrabbit.oak.security.user;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -110,7 +110,7 @@ public class AddMembersByIdBestEffortTest extends AbstractAddMembersByIdTest {
         assertTrue(failed.isEmpty());
 
         Iterable<String> memberIds = getMemberIds(testGroup);
-        Iterables.elementsEqual(ImmutableList.copyOf(NON_EXISTING_IDS), memberIds);
+        Iterables.elementsEqual(Arrays.asList(NON_EXISTING_IDS), memberIds);
 
         Iterator<Authorizable> members = testGroup.getDeclaredMembers();
         assertFalse(members.hasNext());
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AuthorizableIteratorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AuthorizableIteratorTest.java
index 0484a939a4..ac965482b1 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AuthorizableIteratorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AuthorizableIteratorTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.User;
@@ -100,7 +99,7 @@ public class AuthorizableIteratorTest extends AbstractSecurityTest {
     
     @Test
     public void testFilterDuplicates() throws Exception {
-        List<Authorizable> l = ImmutableList.of(getTestUser());
+        List<Authorizable> l = List.of(getTestUser());
         assertEquals(1, Iterators.size(AuthorizableIterator.create(true, l.iterator(), l.iterator())));
         assertEquals(2, Iterators.size(AuthorizableIterator.create(false, l.iterator(), l.iterator())));
         
@@ -119,7 +118,7 @@ public class AuthorizableIteratorTest extends AbstractSecurityTest {
     public void testFilterDuplicatesGetIdFails() throws Exception {
         Authorizable a = when(mock(Authorizable.class).getID()).thenThrow(new RepositoryException()).getMock();
 
-        List<Authorizable> l = ImmutableList.of(getTestUser(), a);
+        List<Authorizable> l = List.of(getTestUser(), a);
         assertEquals(1, Iterators.size(AuthorizableIterator.create(true, l.iterator(), Collections.emptyIterator())));
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/GroupImplTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/GroupImplTest.java
index daa120d8fe..e88bc84bc4 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/GroupImplTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/GroupImplTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -31,6 +30,7 @@ import org.junit.Test;
 import javax.jcr.nodetype.ConstraintViolationException;
 import java.security.Principal;
 import java.util.Iterator;
+import java.util.List;
 import java.util.UUID;
 
 import static org.apache.jackrabbit.oak.spi.security.user.UserConstants.REP_MEMBERS;
@@ -165,7 +165,7 @@ public class GroupImplTest extends AbstractUserTest {
     @Test
     public void testImpactOfOak8054AddingMembers() throws Exception {
         Tree groupTree = root.getTree(group.getPath());
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(new UserProvider(root, ConfigurationParameters.EMPTY).getContentID(getTestUser().getID())), Type.STRINGS);
+        groupTree.setProperty(REP_MEMBERS, List.of(new UserProvider(root, ConfigurationParameters.EMPTY).getContentID(getTestUser().getID())), Type.STRINGS);
         root.commit();
 
         group.addMember(uMgr.createUser("userid", null));
@@ -182,7 +182,7 @@ public class GroupImplTest extends AbstractUserTest {
         User user = uMgr.createUser("userid", null);
         UserProvider up = new UserProvider(root, ConfigurationParameters.EMPTY);
         Tree groupTree = root.getTree(group.getPath());
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(up.getContentID(getTestUser().getID()), up.getContentID(user.getID())), Type.STRINGS);
+        groupTree.setProperty(REP_MEMBERS, List.of(up.getContentID(getTestUser().getID()), up.getContentID(user.getID())), Type.STRINGS);
         root.commit();
 
         group.removeMembers(user.getID());
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplTest.java
index 1b244b09d4..bd05b2cd97 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplTest.java
@@ -18,13 +18,13 @@ package org.apache.jackrabbit.oak.security.user;
 
 import java.security.Principal;
 import java.util.Enumeration;
+import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 import javax.jcr.RepositoryException;
 import javax.security.auth.Subject;
 
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -93,7 +93,7 @@ public class ImpersonationImplTest extends ImpersonationImplEmptyTest {
 
         PropertyState property = tree.getProperty(UserConstants.REP_IMPERSONATORS);
         assertNotNull(property);
-        assertEquals(ImmutableList.of(impersonator.getPrincipal().getName()), property.getValue(Type.STRINGS));
+        assertEquals(List.of(impersonator.getPrincipal().getName()), property.getValue(Type.STRINGS));
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/IntermediatePathTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/IntermediatePathTest.java
index e6685bc4b2..69fb4b94fa 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/IntermediatePathTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/IntermediatePathTest.java
@@ -22,7 +22,6 @@ import java.util.UUID;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.ConstraintViolationException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -139,7 +138,7 @@ public class IntermediatePathTest extends AbstractSecurityTest {
     @Test
     public void testInvalidAbsolutePaths() throws Exception {
         TreeUtil.addChild(root.getTree(PathUtils.ROOT_PATH), "testNode", NodeTypeConstants.NT_OAK_UNSTRUCTURED);
-        List<String> invalidPaths = ImmutableList.of(
+        List<String> invalidPaths = List.of(
                 "/",
                 PathUtils.getAncestorPath(UserConstants.DEFAULT_GROUP_PATH, 1),
                 PathUtils.getAncestorPath(UserConstants.DEFAULT_GROUP_PATH, 2),
@@ -183,7 +182,7 @@ public class IntermediatePathTest extends AbstractSecurityTest {
     @Test
     public void testRelativePaths() throws Exception {
         TreeUtil.addChild(root.getTree(PathUtils.ROOT_PATH), "testNode", NodeTypeConstants.NT_OAK_UNSTRUCTURED);
-        List<String> invalidPaths = ImmutableList.of("..", "../..", "../../..", "../../../testNode","a/b/../../../c");
+        List<String> invalidPaths = List.of("..", "../..", "../../..", "../../../testNode","a/b/../../../c");
         for (String relPath : invalidPaths) {
             try {
                 createAuthorizable(false, relPath);
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java
index f7698b6835..2001c24914 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
@@ -36,6 +35,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -57,7 +57,7 @@ public class PasswordExpiryHistoryTest extends AbstractSecurityTest {
         pwAction.init(null, ConfigurationParameters.of(
                 PasswordValidationAction.CONSTRAINT, "^.*(?=.{4,}).*"
         ));
-        final AuthorizableActionProvider actionProvider = securityProvider -> ImmutableList.of(pwAction);
+        final AuthorizableActionProvider actionProvider = securityProvider -> List.of(pwAction);
 
         ConfigurationParameters userConfig = ConfigurationParameters.of(
                 Map.of(
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java
index d2c31065a1..08139e751b 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java
@@ -24,11 +24,11 @@ import java.util.Map;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.ConstraintViolationException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
 import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
@@ -62,7 +62,9 @@ public class PasswordHistoryTest extends AbstractSecurityTest implements UserCon
     @NotNull
     private List<String> getHistory(@NotNull User user) throws RepositoryException {
         Iterable<String> history = TreeUtil.getStrings(root.getTree(user.getPath()).getChild(REP_PWD), REP_PWD_HISTORY);
-        return (history == null) ? Collections.emptyList() : ImmutableList.copyOf(history).reverse();
+        List<String> result = history == null ? Collections.emptyList() : CollectionUtils.toList(history);
+        Collections.reverse(result);
+        return result;
     }
 
     /**
@@ -217,7 +219,7 @@ public class PasswordHistoryTest extends AbstractSecurityTest implements UserCon
         User user = getTestUser();
         Tree userTree = root.getTree(user.getPath());
 
-        List<ConfigurationParameters> configs = ImmutableList.of(
+        List<ConfigurationParameters> configs = List.of(
                 ConfigurationParameters.EMPTY,
                 ConfigurationParameters.of(PARAM_PASSWORD_HISTORY_SIZE, PASSWORD_HISTORY_DISABLED_SIZE),
                 ConfigurationParameters.of(PARAM_PASSWORD_HISTORY_SIZE, -1),
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemUserImplTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemUserImplTest.java
index dc7aea0c5f..b268e6bc35 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemUserImplTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemUserImplTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
@@ -49,6 +48,7 @@ import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.security.auth.login.LoginException;
 import java.util.Iterator;
+import java.util.List;
 import java.util.UUID;
 
 import static org.junit.Assert.assertEquals;
@@ -95,7 +95,7 @@ public class SystemUserImplTest extends AbstractSecurityTest {
                 ConfigurationParameters.of(UserConstants.PARAM_AUTHORIZABLE_ACTION_PROVIDER, (AuthorizableActionProvider) securityProvider -> {
                     AuthorizableAction action = new AccessControlAction();
                     action.init(securityProvider, ConfigurationParameters.of(AccessControlAction.USER_PRIVILEGE_NAMES, new String[]{PrivilegeConstants.JCR_ALL}));
-                    return ImmutableList.of(action);
+                    return List.of(action);
                 }));
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
index 1b9aa5da03..4afdd01266 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
@@ -21,7 +21,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -225,7 +224,7 @@ public class UserContextTest implements UserConstants {
                 NT_REP_GROUP, GROUP_PROPERTY_NAMES,
                 NT_REP_USER, USER_PROPERTY_NAMES,
                 NT_REP_PASSWORD, PWD_PROPERTY_NAMES,
-                NT_REP_MEMBER_REFERENCES, ImmutableList.of(REP_MEMBERS)
+                NT_REP_MEMBER_REFERENCES, List.of(REP_MEMBERS)
         );
 
         m.forEach((key, value) -> {
@@ -302,7 +301,7 @@ public class UserContextTest implements UserConstants {
 
     @Test
     public void testNotDefinesLocation() {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 PathUtils.ROOT_PATH,
                 NodeTypeConstants.NODE_TYPES_PATH,
                 "/content",
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
index 15a22c7c20..b91b5a75b9 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.user.User;
@@ -65,7 +64,7 @@ public abstract class UserImporterBaseTest extends AbstractSecurityTest implemen
         @NotNull
         @Override
         public List<? extends AuthorizableAction> getAuthorizableActions(@NotNull SecurityProvider securityProvider) {
-            return (testAction == null) ? ImmutableList.of() : ImmutableList.of(testAction);
+            return (testAction == null) ? List.of() : List.of(testAction);
         }
     };
 
@@ -206,6 +205,6 @@ public abstract class UserImporterBaseTest extends AbstractSecurityTest implemen
 
     @NotNull
     NodeInfo createNodeInfo(@NotNull String name, @NotNull String primaryTypeName) {
-        return new NodeInfo(name, primaryTypeName, ImmutableList.of(), null);
+        return new NodeInfo(name, primaryTypeName, List.of(), null);
     }
 }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
index 9a0ac48143..0265afca07 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -34,6 +33,7 @@ import org.junit.Test;
 import javax.jcr.RepositoryException;
 
 import java.security.Principal;
+import java.util.List;
 import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
@@ -73,7 +73,7 @@ public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
 
         PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
         assertNotNull(impersonators);
-        assertEquals(ImmutableList.of(testUser.getPrincipal().getName()), impersonators.getValue(Type.STRINGS));
+        assertEquals(List.of(testUser.getPrincipal().getName()), impersonators.getValue(Type.STRINGS));
     }
 
     @Test
@@ -83,7 +83,7 @@ public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
 
         PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
         assertNotNull(impersonators);
-        assertEquals(ImmutableList.of(testUser.getPrincipal().getName()), impersonators.getValue(Type.STRINGS));
+        assertEquals(List.of(testUser.getPrincipal().getName()), impersonators.getValue(Type.STRINGS));
     }
 
     @Test(expected = RepositoryException.class)
@@ -102,19 +102,19 @@ public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
 
     @Test
     public void testReplaceExistingProperty() throws Exception {
-        userTree.setProperty(REP_IMPERSONATORS, ImmutableList.of("impersonator1"), Type.STRINGS);
+        userTree.setProperty(REP_IMPERSONATORS, List.of("impersonator1"), Type.STRINGS);
 
         assertTrue(importer.handlePropInfo(userTree, createPropInfo(REP_IMPERSONATORS, testUser.getPrincipal().getName()), mockPropertyDefinition(NT_REP_USER, true)));
         importer.processReferences();
 
         PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
         assertNotNull(impersonators);
-        assertEquals(ImmutableList.of(testUser.getPrincipal().getName()), impersonators.getValue(Type.STRINGS));
+        assertEquals(List.of(testUser.getPrincipal().getName()), impersonators.getValue(Type.STRINGS));
     }
 
     @Test
     public void testReplaceExistingProperty2() throws Exception {
-        userTree.setProperty(REP_IMPERSONATORS, ImmutableList.of("impersonator1"), Type.STRINGS);
+        userTree.setProperty(REP_IMPERSONATORS, List.of("impersonator1"), Type.STRINGS);
 
         assertTrue(importer.handlePropInfo(userTree, createPropInfo(REP_IMPERSONATORS, "impersonator1", testUser.getPrincipal().getName()), mockPropertyDefinition(NT_REP_USER, true)));
         importer.processReferences();
@@ -138,7 +138,7 @@ public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
 
         PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
         assertNotNull(impersonators);
-        assertEquals(ImmutableList.of("impersonator1"), impersonators.getValue(Type.STRINGS));
+        assertEquals(List.of("impersonator1"), impersonators.getValue(Type.STRINGS));
     }
 
     @Test
@@ -156,7 +156,7 @@ public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
 
         PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
         assertNotNull(impersonators);
-        assertEquals(ImmutableList.of("impersonator1"), impersonators.getValue(Type.STRINGS));
+        assertEquals(List.of("impersonator1"), impersonators.getValue(Type.STRINGS));
     }
 
     @Test
@@ -176,7 +176,7 @@ public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
             return null;
         }).when(ua).onRevokeImpersonation(any(User.class), any(Principal.class), any(Root.class), any(NamePathMapper.class));
 
-        userTree.setProperty(REP_IMPERSONATORS, ImmutableList.of("impersonator1"), Type.STRINGS);
+        userTree.setProperty(REP_IMPERSONATORS, List.of("impersonator1"), Type.STRINGS);
 
         assertTrue(importer.handlePropInfo(userTree, createPropInfo(REP_IMPERSONATORS), mockPropertyDefinition(NT_REP_USER, true)));
         importer.processReferences();
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
index 8d8d22faec..c4e44304fb 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.security.user;
 
 import javax.jcr.nodetype.ConstraintViolationException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
@@ -26,6 +25,8 @@ import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.junit.Assert.assertTrue;
 
 public class UserImporterMembershipAbortTest extends UserImporterMembershipIgnoreTest {
@@ -38,13 +39,13 @@ public class UserImporterMembershipAbortTest extends UserImporterMembershipIgnor
 
     @Test(expected = ConstraintViolationException.class)
     public void testUnknownMember() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, unknownContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, unknownContentId)));
         importer.processReferences();
     }
 
     @Test(expected = ConstraintViolationException.class)
     public void testMixedMembers() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, unknownContentId, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, unknownContentId, knownMemberContentId)));
         importer.processReferences();
     }
 
@@ -59,7 +60,7 @@ public class UserImporterMembershipAbortTest extends UserImporterMembershipIgnor
 
     @Test(expected = ConstraintViolationException.class)
     public void testNewMembersToEveryone() throws Exception {
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(knownMemberContentId), Type.STRINGS);
+        groupTree.setProperty(REP_MEMBERS, List.of(knownMemberContentId), Type.STRINGS);
         groupTree.setProperty(REP_PRINCIPAL_NAME, EveryonePrincipal.NAME);
 
         Tree userTree = createUserTree();
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipBesteffortTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipBesteffortTest.java
index 324f1f0fa8..5d7ec9d279 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipBesteffortTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipBesteffortTest.java
@@ -16,11 +16,12 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.junit.Assert.assertTrue;
 
 public class UserImporterMembershipBesteffortTest extends UserImporterMembershipIgnoreTest {
@@ -33,7 +34,7 @@ public class UserImporterMembershipBesteffortTest extends UserImporterMembership
 
     @Test
     public void testUnknownMember() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, unknownContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, unknownContentId)));
         importer.processReferences();
 
         assertTrue(groupTree.hasProperty(REP_MEMBERS));
@@ -41,7 +42,7 @@ public class UserImporterMembershipBesteffortTest extends UserImporterMembership
 
     @Test
     public void testMixedMembers() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, unknownContentId, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, unknownContentId, knownMemberContentId)));
         importer.processReferences();
 
         assertTrue(groupTree.hasProperty(REP_MEMBERS));
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
index 87c0e70ddf..ff94c3df30 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.Set;
 import javax.jcr.RepositoryException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -68,13 +67,13 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void testInvalidMemberContentId() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, "memberId")));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, "memberId")));
         importer.processReferences();
     }
 
     @Test
     public void testUnknownMember() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, unknownContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, unknownContentId)));
         importer.processReferences();
 
         // default importbehavior == IGNORE
@@ -83,7 +82,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
     @Test
     public void testKnownMemberThresholdNotReached() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
         importer.processReferences();
 
         assertTrue(groupTree.hasProperty(REP_MEMBERS));
@@ -97,7 +96,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
         }
         groupTree.setProperty(REP_MEMBERS, memberIds, Type.STRINGS);
 
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
         importer.processReferences();
 
         assertEquals(1, memberRefList.getChildrenCount(100));
@@ -106,7 +105,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
     @Test
     public void testMixedMembers() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, unknownContentId, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, unknownContentId, knownMemberContentId)));
         importer.processReferences();
 
         assertFalse(memberRefList.hasChild("memberRef"));
@@ -114,7 +113,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
     @Test(expected = RepositoryException.class)
     public void testGroupRemovedBeforeProcessing() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
 
         groupTree.remove();
         importer.processReferences();
@@ -122,14 +121,14 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
     @Test(expected = RepositoryException.class)
     public void testUserConvertedGroupBeforeProcessing() throws Exception {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, knownMemberContentId)));
         groupTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_USER);
         importer.processReferences();
     }
 
     @Test
     public void testAddMemberToNonExistingMember() throws Exception {
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(unknownContentId), Type.STRINGS);
+        groupTree.setProperty(REP_MEMBERS, List.of(unknownContentId), Type.STRINGS);
 
         assertTrue(importer.handlePropInfo(groupTree, createPropInfo(REP_MEMBERS, knownMemberContentId), mockPropertyDefinition(NT_REP_GROUP, true)));
         importer.processReferences();
@@ -145,7 +144,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
         String contentId = userProvider.getContentID(userTree);
         assertTrue(importer.handlePropInfo(userTree, createPropInfo(REP_AUTHORIZABLE_ID, TEST_USER_ID), mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
 
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(knownMemberContentId), Type.STRINGS);
+        groupTree.setProperty(REP_MEMBERS, List.of(knownMemberContentId), Type.STRINGS);
         assertTrue(importer.handlePropInfo(groupTree, createPropInfo(REP_MEMBERS, contentId), mockPropertyDefinition(NT_REP_GROUP, true)));
         importer.processReferences();
 
@@ -165,7 +164,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
         PropertyState members = groupTree.getProperty(REP_MEMBERS);
         assertNotNull(members);
-        assertEquals(ImmutableList.of(contentId), ImmutableList.copyOf(members.getValue(Type.STRINGS)));
+        assertEquals(List.of(contentId), CollectionUtils.toList(members.getValue(Type.STRINGS)));
     }
 
     @Test
@@ -180,7 +179,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
         PropertyState members = groupTree.getProperty(REP_MEMBERS);
         assertNotNull(members);
-        assertEquals(ImmutableList.of(contentId), ImmutableList.copyOf(members.getValue(Type.STRINGS)));
+        assertEquals(List.of(contentId), CollectionUtils.toList((members.getValue(Type.STRINGS))));
     }
 
     @Test
@@ -197,7 +196,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
     @Test
     public void testNewMembersToEveryone() throws Exception {
-        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(knownMemberContentId), Type.STRINGS);
+        groupTree.setProperty(REP_MEMBERS, List.of(knownMemberContentId), Type.STRINGS);
         groupTree.setProperty(REP_PRINCIPAL_NAME, EveryonePrincipal.NAME);
 
         Tree userTree = createUserTree();
@@ -209,7 +208,7 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
         PropertyState members = groupTree.getProperty(REP_MEMBERS);
         assertNotNull(members);
-        assertEquals(ImmutableList.of(knownMemberContentId), ImmutableList.copyOf(members.getValue(Type.STRINGS)));
+        assertEquals(List.of(knownMemberContentId), CollectionUtils.toList((members.getValue(Type.STRINGS))));
     }
 
     @Test
@@ -227,6 +226,6 @@ public class UserImporterMembershipIgnoreTest extends UserImporterBaseTest {
 
         PropertyState members = groupTree.getProperty(REP_MEMBERS);
         assertNotNull(members);
-        assertEquals(ImmutableList.of(contentId), ImmutableList.copyOf(members.getValue(Type.STRINGS)));
+        assertEquals(List.of(contentId), CollectionUtils.toList((members.getValue(Type.STRINGS))));
     }
 }
\ No newline at end of file
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
index abe4b03f79..a8782755da 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
@@ -52,6 +51,7 @@ import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.PropertyDefinition;
 import java.lang.reflect.Field;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 
 import static org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants.NT_OAK_UNSTRUCTURED;
@@ -625,7 +625,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
 
     @Test(expected = IllegalStateException.class)
     public void testStartChildInfoIllegalState() {
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, "member1")));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, "member1")));
     }
 
     @Test(expected = IllegalStateException.class)
@@ -635,7 +635,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
         memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBER_REFERENCES_LIST);
         importer.start(memberRefList);
 
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, "member1")));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, "member1")));
     }
 
     @Test
@@ -646,7 +646,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
         memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBER_REFERENCES_LIST);
 
         assertTrue(importer.start(memberRefList));
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of());
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of());
     }
 
     @Test
@@ -657,7 +657,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
         memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBER_REFERENCES_LIST);
 
         assertTrue(importer.start(memberRefList));
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, "member1")));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo(REP_MEMBERS, "member1")));
     }
 
     @Test
@@ -668,7 +668,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
         memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBER_REFERENCES_LIST);
 
         importer.start(memberRefList);
-        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo("otherName", "member1")));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_REP_MEMBER_REFERENCES), List.of(createPropInfo("otherName", "member1")));
         importer.processReferences();
 
         // no members should have been added to the group node
@@ -684,7 +684,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
         Tree repMembers = groupTree.addChild("memberTree");
         repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
         assertTrue(importer.start(repMembers));
-        importer.startChildInfo(createNodeInfo("memberTree", NT_REP_MEMBERS), ImmutableList.of(createPropInfo("anyProp", "memberValue")));
+        importer.startChildInfo(createNodeInfo("memberTree", NT_REP_MEMBERS), List.of(createPropInfo("anyProp", "memberValue")));
     }
 
     @Test
@@ -695,7 +695,7 @@ public class UserImporterTest extends UserImporterBaseTest implements UserConsta
         memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBER_REFERENCES_LIST);
 
         assertTrue(importer.start(memberRefList));
-        importer.startChildInfo(createNodeInfo("memberRef", NT_OAK_UNSTRUCTURED), ImmutableList.of(createPropInfo(REP_MEMBERS, "member1")));
+        importer.startChildInfo(createNodeInfo("memberRef", NT_OAK_UNSTRUCTURED), List.of(createPropInfo(REP_MEMBERS, "member1")));
     }
 
     //-------------------------------------------------------< endChildInfo >---
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java
index d4c8cd6fd4..302926740e 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user.action;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
@@ -33,6 +32,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 import static org.mockito.Mockito.mock;
@@ -45,7 +45,7 @@ public class GroupActionTest extends AbstractSecurityTest {
     private static final String TEST_USER_PREFIX = "testUser";
 
     final GroupAction groupAction = mock(GroupAction.class);
-    private final AuthorizableActionProvider actionProvider = securityProvider -> ImmutableList.of(groupAction);
+    private final AuthorizableActionProvider actionProvider = securityProvider -> List.of(groupAction);
 
     private User testUser01;
     private User testUser02;
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/PasswordValidationActionTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/PasswordValidationActionTest.java
index 0b910ad496..abba077269 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/PasswordValidationActionTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/PasswordValidationActionTest.java
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.oak.security.user.action;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import java.util.List;
+
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Type;
@@ -44,7 +45,7 @@ public class PasswordValidationActionTest extends AbstractSecurityTest {
 
     private final PasswordValidationAction pwAction = new PasswordValidationAction();
     private final AuthorizableAction testAction = mock(AuthorizableAction.class);
-    private final AuthorizableActionProvider actionProvider = securityProvider -> ImmutableList.of(pwAction, testAction);
+    private final AuthorizableActionProvider actionProvider = securityProvider -> List.of(pwAction, testAction);
 
     @Before
     public void before() throws Exception {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/UserActionTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/UserActionTest.java
index bbff8dda1e..db0b8e6133 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/UserActionTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/UserActionTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user.action;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.Root;
@@ -35,6 +34,7 @@ import org.junit.Test;
 import javax.jcr.RepositoryException;
 import javax.jcr.ValueFactory;
 import java.security.Principal;
+import java.util.List;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -50,7 +50,7 @@ public class UserActionTest extends AbstractSecurityTest {
     private UserAction userAction = mock(UserAction.class);
     private ClearProfileAction clearProfileAction = new ClearProfileAction();
 
-    private final AuthorizableActionProvider actionProvider = securityProvider -> ImmutableList.of(userAction, clearProfileAction);
+    private final AuthorizableActionProvider actionProvider = securityProvider -> List.of(userAction, clearProfileAction);
 
     @Override
     protected ConfigurationParameters getSecurityConfigParameters() {
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java
index f95c8d0189..00b7ed2b0f 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java
@@ -24,7 +24,6 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.QueryBuilder;
@@ -159,7 +158,7 @@ public class QueryUtilTest {
 
     @Test
     public void testEscapeNodeName() {
-        List<String> names = ImmutableList.of("name", JcrConstants.JCR_CREATED, "%name", "a%name", "name%");
+        List<String> names = List.of("name", JcrConstants.JCR_CREATED, "%name", "a%name", "name%");
         for (String name : names) {
             assertEquals(QueryUtils.escapeNodeName(name), QueryUtil.escapeNodeName(name));
         }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/ResultIteratorTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/ResultIteratorTest.java
index 6f6c3b4dfd..0b4b916dec 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/ResultIteratorTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/ResultIteratorTest.java
@@ -18,9 +18,9 @@ package org.apache.jackrabbit.oak.security.user.query;
 
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.List;
 import java.util.NoSuchElementException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.junit.Test;
 
@@ -37,7 +37,7 @@ public class ResultIteratorTest {
 
     @Test
     public void testCreateWithoutLimitation() {
-        Iterator<String> it = ImmutableList.of("str").iterator();
+        Iterator<String> it = List.of("str").iterator();
         assertSame(it, ResultIterator.create(ResultIterator.OFFSET_NONE, ResultIterator.MAX_ALL, it));
     }
 
@@ -58,22 +58,22 @@ public class ResultIteratorTest {
 
     @Test
     public void testCreateOffsetLtSize() {
-        assertEquals(1, Iterators.size(ResultIterator.create(1, ResultIterator.MAX_ALL,  ImmutableList.of("str", "str").iterator())));
+        assertEquals(1, Iterators.size(ResultIterator.create(1, ResultIterator.MAX_ALL, List.of("str", "str").iterator())));
     }
 
     @Test
     public void testCreateOffsetEqualsMax() {
-        assertEquals(1, Iterators.size(ResultIterator.create(1, 1,  ImmutableList.of("str", "str").iterator())));
+        assertEquals(1, Iterators.size(ResultIterator.create(1, 1, List.of("str", "str").iterator())));
     }
 
     @Test
     public void testCreateOffsetGtMax() {
-        assertEquals(1, Iterators.size(ResultIterator.create(2, 1,  ImmutableList.of("str", "str", "str").iterator())));
+        assertEquals(1, Iterators.size(ResultIterator.create(2, 1, List.of("str", "str", "str").iterator())));
     }
 
     @Test
     public void testCreateOffsetLtMax() {
-        Iterator resultIt = ResultIterator.create(1, 3,  ImmutableList.of("str", "str", "str", "str").iterator());
+        Iterator resultIt = ResultIterator.create(1, 3, List.of("str", "str", "str", "str").iterator());
         assertEquals(3, Iterators.size(resultIt));
     }
 
@@ -85,7 +85,7 @@ public class ResultIteratorTest {
 
     @Test
     public void testNextWithOffset() {
-        Iterator<String> it = ResultIterator.create(1, ResultIterator.MAX_ALL, ImmutableList.of("str", "str2").iterator());
+        Iterator<String> it = ResultIterator.create(1, ResultIterator.MAX_ALL, List.of("str", "str2").iterator());
         assertEquals("str2", it.next());
     }
 
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java
index a3c476adae..0a372ee494 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security.user.query;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -496,7 +495,7 @@ public class UserQueryManagerTest extends AbstractUserTest {
         };
 
         Iterator<Authorizable> result = queryMgr.findAuthorizables(q);
-        assertEquals(ImmutableList.of(user, g2, g), ImmutableList.copyOf(result));
+        assertEquals(List.of(user, g2, g), CollectionUtils.toList(result));
     }
 
     @Test
@@ -517,7 +516,7 @@ public class UserQueryManagerTest extends AbstractUserTest {
         };
 
         Iterator<Authorizable> result = queryMgr.findAuthorizables(q);
-        assertEquals(ImmutableList.of(user, g, g2), ImmutableList.copyOf(result));
+        assertEquals(List.of(user, g, g2), CollectionUtils.toList(result));
     }
 
     @Test
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java
index e46fb2bd27..e7be81e0e5 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.security.user.whiteboard;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.apache.jackrabbit.oak.spi.security.user.action.AbstractAuthorizableAction;
 import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableAction;
@@ -64,7 +63,7 @@ public class WhiteboardAuthorizableActionProviderTest {
     public void testRegisteredImplementation() {
         actionProvider.start(whiteboard);
 
-        AuthorizableActionProvider registered = securityProvider -> ImmutableList.of(new TestAction());
+        AuthorizableActionProvider registered = securityProvider -> List.of(new TestAction());
         whiteboard.register(AuthorizableActionProvider.class, registered, Map.of());
 
         List<? extends AuthorizableAction> actions = actionProvider.getAuthorizableActions(Mockito.mock(SecurityProvider.class));
diff --git a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L4_EffectivePoliciesTest.java b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L4_EffectivePoliciesTest.java
index d443f0d924..9583db37a3 100644
--- a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L4_EffectivePoliciesTest.java
+++ b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L4_EffectivePoliciesTest.java
@@ -27,7 +27,6 @@ import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
@@ -270,7 +269,7 @@ public class L4_EffectivePoliciesTest extends AbstractJCRTest {
         testSession = getTestSession();
         AccessControlManager testAcMgr = testSession.getAccessControlManager();
 
-        List<String> paths = ImmutableList.of(testRoot, NodeTypeConstants.NODE_TYPES_PATH);
+        List<String> paths = List.of(testRoot, NodeTypeConstants.NODE_TYPES_PATH);
         for (String path : paths) {
             // EXERCISE : complete or fix the test case
             AccessControlPolicy[] effectivePolicies = testAcMgr.getEffectivePolicies(path);
diff --git a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L5_AccessControlListImplTest.java b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L5_AccessControlListImplTest.java
index d4d274e983..46fc6ed626 100644
--- a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L5_AccessControlListImplTest.java
+++ b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/authorization/accesscontrol/L5_AccessControlListImplTest.java
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.exercise.security.authorization.accesscontrol;
 
 import java.security.Principal;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import javax.jcr.RepositoryException;
@@ -27,7 +28,6 @@ import javax.jcr.security.AccessControlException;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.JackrabbitWorkspace;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
@@ -186,15 +186,16 @@ public class L5_AccessControlListImplTest extends AbstractJCRTest {
 
     public void testAddEntryWithInvalidPrincipals() throws Exception {
         // EXERCISE: explain for each principal in the list why using it for an ACE fails
-        List<Principal> invalidPrincipals = ImmutableList.of(
+        List<Principal> invalidPrincipals = Arrays.asList(
                 new InvalidTestPrincipal("unknown"),
                 null,
-                new PrincipalImpl(""), new Principal() {
-            @Override
-            public String getName() {
-                return "unknown";
-            }
-        });
+                    new PrincipalImpl(""),
+                    new Principal() {
+                        @Override
+                        public String getName() {
+                            return "unknown";
+                        }
+                });
 
         for (Principal principal : invalidPrincipals) {
             try {
@@ -227,7 +228,7 @@ public class L5_AccessControlListImplTest extends AbstractJCRTest {
         Privilege customPriv = ((JackrabbitWorkspace) superuser.getWorkspace()).getPrivilegeManager().registerPrivilege(privilegeName, true, new String[0]);
 
         // EXERCISE : walks through this test and explain why adding those ACEs fails.
-        List<Privilege[]> invalidPrivileges = ImmutableList.of(
+        List<Privilege[]> invalidPrivileges = Arrays.asList(
                 new Privilege[0],
                 null,
                 new Privilege[] {customPriv}
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 656aef48e0..06424a920b 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
@@ -25,7 +25,6 @@ import javax.jcr.GuestCredentials;
 import javax.jcr.Session;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -204,8 +203,7 @@ public class L5_CustomPermissionEvaluationTest extends AbstractSecurityTest {
 
         root.commit();
 
-        trees = ImmutableList.<Tree>builder().add(root.getTree("/")).add(testTree).add(aTree).add(aaTree).add(bTree).add(bbTree).add(cTree).add(ccTree).build();
-
+        trees = List.of(root.getTree("/"), testTree, aTree, aaTree, bTree, bbTree, cTree, ccTree);
     }
 
     private PermissionProvider getPermissionProvider(@NotNull Set<Principal> principals) {
@@ -270,7 +268,7 @@ public class L5_CustomPermissionEvaluationTest extends AbstractSecurityTest {
 
     @Test
     public void testWriteAccess() throws Exception {
-        List<Set<Principal>> editors = ImmutableList.<Set<Principal>>of(
+        List<Set<Principal>> editors = List.<Set<Principal>>of(
                 Set.of(new Editor("ida")),
                 Set.of(EveryonePrincipal.getInstance(), new Editor("amanda")),
                 Set.of(getTestUser().getPrincipal(),new Editor("susi")),
@@ -310,7 +308,7 @@ public class L5_CustomPermissionEvaluationTest extends AbstractSecurityTest {
 
     @Test
     public void testReadAccess() throws Exception {
-        List<Set<Principal>> readers = ImmutableList.<Set<Principal>>of(
+        List<Set<Principal>> readers = List.of(
                 Set.of(new Reader("ida")),
                 Set.of(EveryonePrincipal.getInstance(), new Reader("fairuz")),
                 Set.of(getTestUser().getPrincipal(),new Editor("juni")),
diff --git a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L3_BuiltInPrivilegesTest.java b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L3_BuiltInPrivilegesTest.java
index ffedf62fa5..33fc37bda0 100644
--- a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L3_BuiltInPrivilegesTest.java
+++ b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L3_BuiltInPrivilegesTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.exercise.security.privilege;
 
+import java.util.Arrays;
 import java.util.Map;
 import java.util.Set;
 import javax.jcr.RepositoryException;
@@ -23,7 +24,6 @@ import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -133,7 +133,7 @@ public class L3_BuiltInPrivilegesTest extends AbstractSecurityTest {
         );
 
         Iterable<Privilege> aggregated = Iterables.<Privilege>filter(
-                ImmutableList.<Privilege>copyOf(privilegeManager.getRegisteredPrivileges()),
+                Arrays.asList(privilegeManager.getRegisteredPrivileges()),
                 input -> input != null && input.isAggregate());
 
         for (Privilege aggrPrivilege : aggregated) {
diff --git a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L6_AuthorizableContentTest.java b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L6_AuthorizableContentTest.java
index 5366a5315d..7724b2f1ec 100644
--- a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L6_AuthorizableContentTest.java
+++ b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L6_AuthorizableContentTest.java
@@ -20,7 +20,6 @@ import java.util.List;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -149,7 +148,7 @@ public class L6_AuthorizableContentTest extends AbstractJCRTest {
         String expectedNodeTypeName = null; // EXERCISE
         assertEquals(expectedNodeTypeName, node.getPrimaryNodeType().getName());
 
-        List<String> mixinTypes = ImmutableList.of(); // EXERCISE : fill the list
+        List<String> mixinTypes = List.of(); // EXERCISE : fill the list
         for (String mixin : mixinTypes) {
             assertTrue(node.isNodeType(mixin));
         }
@@ -174,7 +173,7 @@ public class L6_AuthorizableContentTest extends AbstractJCRTest {
         String expectedNodeTypeName = null; // EXERCISE
         assertEquals(expectedNodeTypeName, node.getPrimaryNodeType().getName());
 
-        List<String> mixinTypes = ImmutableList.of(); // EXERCISE : fill the list
+        List<String> mixinTypes = List.of(); // EXERCISE : fill the list
         for (String mixin : mixinTypes) {
             assertTrue(node.isNodeType(mixin));
         }
diff --git a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L7_AuthorizablePropertiesTest.java b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L7_AuthorizablePropertiesTest.java
index 1b8ea63c0f..c1e9f2d213 100644
--- a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L7_AuthorizablePropertiesTest.java
+++ b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/user/L7_AuthorizablePropertiesTest.java
@@ -22,7 +22,6 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -125,7 +124,7 @@ public class L7_AuthorizablePropertiesTest extends AbstractJCRTest {
         Node node = getAuthorizableNode(testUser);
 
         // EXERCISE: build the list of existing user properties rel paths
-        List<String> userPropertiesPath = ImmutableList.of();
+        List<String> userPropertiesPath = List.of();
         for (String relPath : userPropertiesPath) {
             assertTrue(testUser.hasProperty(relPath));
         }
@@ -139,13 +138,13 @@ public class L7_AuthorizablePropertiesTest extends AbstractJCRTest {
         assertArrayEquals(petsExpected, node.getProperty(expectedRelPath).getValues());
 
         // EXERCISE: build a list of protected JCR properties that cannot be accessed using the Authorizable interface
-        List<String> protectedJcrPropertyNames = ImmutableList.of();
+        List<String> protectedJcrPropertyNames = List.of();
         for (String relPath : protectedJcrPropertyNames) {
             assertFalse(testUser.hasProperty(relPath));
         }
 
         // EXERCISE: build a list of protected properties defined by the authorizable or user node type definitions that cannot be accessed using the Authorizable interface
-        List<String> protectedAuthorizablePropertyNames = ImmutableList.of();
+        List<String> protectedAuthorizablePropertyNames = List.of();
         for (String relPath : protectedAuthorizablePropertyNames) {
             assertFalse(testUser.hasProperty(relPath));
         }
diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/api/TreeTest.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/api/TreeTest.java
index c4e44bd858..e4a63f1f9f 100644
--- a/oak-it/src/test/java/org/apache/jackrabbit/oak/api/TreeTest.java
+++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/api/TreeTest.java
@@ -28,8 +28,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.OakBaseTest;
 import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
@@ -60,7 +58,7 @@ public class TreeTest extends OakBaseTest {
     public void setUp() {
         repository = new Oak(store)
             .with(new OpenSecurityProvider())
-            .with(new CompositeConflictHandler(ImmutableList.of(
+            .with(new CompositeConflictHandler(List.of(
                     ConflictHandlers.wrap(new ChildOrderConflictHandler() {
                         /**
                          * Allow deleting changed node.
diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateClusterTestIT.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateClusterTestIT.java
index 285dca7192..69908e95b1 100644
--- a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateClusterTestIT.java
+++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateClusterTestIT.java
@@ -53,7 +53,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.io.Closer;
 
 public class AsyncIndexUpdateClusterTestIT {
@@ -65,8 +64,7 @@ public class AsyncIndexUpdateClusterTestIT {
     private MemoryBlobStore bs;
 
     private Random random = new Random();
-    private final List<String> values = ImmutableList.of("a", "b", "c", "d",
-            "e");
+    private final List<String> values = List.of("a", "b", "c", "d", "e");
 
     private Closer closer = Closer.create();
     private final AtomicBoolean illegalReindex = new AtomicBoolean(false);
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/IndexCostEvaluationTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/IndexCostEvaluationTest.java
index c0f43e5b50..f09e2eb21b 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/IndexCostEvaluationTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/IndexCostEvaluationTest.java
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak;
 
 import ch.qos.logback.classic.Level;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
@@ -113,7 +112,7 @@ public class IndexCostEvaluationTest {
 
         @Override
         public @NotNull List<? extends QueryIndex> getQueryIndexes(NodeState nodeState) {
-            return ImmutableList.<QueryIndex>of(index);
+            return List.of(index);
         }
     }
 
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java
index 6224f87d43..38f6fd39d3 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java
@@ -32,8 +32,6 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
 import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
 import org.junit.After;
@@ -62,7 +60,7 @@ public class NamePathTest {
 
     @Test
     public void testSlashInPath() throws RepositoryException {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "//jcr:content",
                 "//content"
         );
@@ -71,7 +69,7 @@ public class NamePathTest {
 
     @Test
     public void testSlashInName() throws RepositoryException {
-        List<String> names = ImmutableList.of(
+        List<String> names = List.of(
                 "/jcr:content",
                 "/content",
                 "jcr:con/ent",
@@ -83,7 +81,7 @@ public class NamePathTest {
 
     @Test
     public void testColonInPath() throws RepositoryException {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "/jcr:con:ent"
         );
         testPaths(paths);
@@ -91,7 +89,7 @@ public class NamePathTest {
 
     @Test
     public void testColonInName() throws RepositoryException {
-        List<String> names = ImmutableList.of(
+        List<String> names = List.of(
                 "jcr:con:ent"
         );
         testNames(names);
@@ -99,7 +97,7 @@ public class NamePathTest {
 
     @Test
     public void testSquareBracketsInPath() throws RepositoryException {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "//jcr:content",
                 "/jcr:con]ent",
                 "/con]ent"
@@ -109,7 +107,7 @@ public class NamePathTest {
 
     @Test
     public void testSquareBracketsInName() throws RepositoryException {
-        List<String> names = ImmutableList.of(
+        List<String> names = List.of(
                 "jcr:content[1]",
                 "content[1]",
                 "jcr:conten[t]",
@@ -135,7 +133,7 @@ public class NamePathTest {
 
     @Test
     public void testAsteriskInPath() throws RepositoryException {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "/jcr:con*ent",
                 "/jcr:*ontent",
                 "/jcr:conten*",
@@ -148,7 +146,7 @@ public class NamePathTest {
 
     @Test
     public void testAsteriskInName() throws RepositoryException {
-        List<String> names = ImmutableList.of(
+        List<String> names = List.of(
                 "jcr:con*ent",
                 "jcr:*ontent",
                 "jcr:conten*",
@@ -161,7 +159,7 @@ public class NamePathTest {
 
     @Test
     public void testVerticalLineInPath() throws Exception {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "/jcr:con|ent",
                 "/jcr:|ontent",
                 "/jcr:conten|",
@@ -174,7 +172,7 @@ public class NamePathTest {
 
     @Test
     public void testVerticalLineInName() throws Exception {
-        List<String> names = ImmutableList.of(
+        List<String> names = List.of(
                 "jcr:con|ent",
                 "jcr:|ontent",
                 "jcr:conten|",
@@ -187,7 +185,7 @@ public class NamePathTest {
 
     @Test
     public void testWhitespaceInPath() throws Exception {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "/content ",
                 "/ content",
                 "/content\t",
@@ -201,7 +199,7 @@ public class NamePathTest {
 
     @Test
     public void testWhitespaceInName() throws Exception {
-        List<String> names = ImmutableList.of(
+        List<String> names = List.of(
                 "jcr:content ",
                 "content ",
                 " content",
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/HasPermissionTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/HasPermissionTest.java
index a8dad6686b..8fa0aff676 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/HasPermissionTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/HasPermissionTest.java
@@ -22,7 +22,6 @@ import java.util.Map;
 
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissions;
 
@@ -32,7 +31,7 @@ import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissio
 public class HasPermissionTest extends AbstractEvaluationTest {
 
     public void testEmpty() throws Exception {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "/", path, childPPath, path + "/rep:policy",
                 "/nonExisting", path + "/nonExisting");
 
@@ -82,7 +81,7 @@ public class HasPermissionTest extends AbstractEvaluationTest {
     }
 
     public void testMultiple() throws Exception {
-        List<String> paths = ImmutableList.of(
+        List<String> paths = List.of(
                 "/", path, childPPath, path + "/rep:policy",
                 "/nonExisting", path + "/nonExisting");
 
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/RemappingTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/RemappingTest.java
index 2cd275ae80..22586f1ad0 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/RemappingTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/RemappingTest.java
@@ -24,7 +24,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.Value;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Query;
 import org.apache.jackrabbit.api.security.user.QueryBuilder;
@@ -43,8 +42,8 @@ public class RemappingTest extends AbstractUserTest {
     private Session session;
     private Authorizable authorizable;
 
-    private List<String> unmappedPaths = ImmutableList.of("uTest:property", "uTest:node/uTest:property2");
-    private List<String> mappedPaths = ImmutableList.of("my:property", "my:node/my:property2");
+    private List<String> unmappedPaths = List.of("uTest:property", "uTest:node/uTest:property2");
+    private List<String> mappedPaths = List.of("my:property", "my:node/my:property2");
     private Value nameValue;
 
     @Override
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
index f2c697cfd1..7cf06c8f02 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserQueryTest.java
@@ -27,9 +27,7 @@ import java.util.Set;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.Query;
@@ -755,7 +753,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<String> continents = ImmutableList.of("africa", "america", "australia").iterator();
+        Iterator<String> continents = List.of("africa", "america", "australia").iterator();
         String expected = continents.next();
         while (result.hasNext()) {
             Authorizable a = result.next();
@@ -779,7 +777,7 @@ public class UserQueryTest extends AbstractUserTest {
             }
         });
 
-        Iterator<String> continents = ImmutableList.of("Africa", "America", "africa", "australia").iterator();
+        Iterator<String> continents = List.of("Africa", "America", "africa", "australia").iterator();
         String expected = continents.next();
         while (result.hasNext()) {
             Authorizable a = result.next();
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/jcr/AtomicCounterIT.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/jcr/AtomicCounterIT.java
index ec590a5e8a..bfe6c5ed8f 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/jcr/AtomicCounterIT.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/jcr/AtomicCounterIT.java
@@ -18,6 +18,7 @@
  */
 package org.apache.jackrabbit.oak.jcr;
 
+import java.util.List;
 import java.util.Set;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -47,7 +48,6 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
 import static org.apache.jackrabbit.oak.api.Type.BOOLEAN;
 import static org.apache.jackrabbit.oak.api.Type.LONG;
@@ -74,7 +74,7 @@ public class AtomicCounterIT {
         NodeBuilder builder = ns.getRoot().builder();
         NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
         NodeBuilder lucene = newLuceneIndexDefinition(index, "lucene", Set.of("String"), null, "async");
-        lucene.setProperty("async", of("async", "nrt"), STRINGS);
+        lucene.setProperty("async", List.of("async", "nrt"), STRINGS);
         IndexDefinition.updateDefinition(index.child("lucene"));
         ns.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
 
@@ -111,7 +111,7 @@ public class AtomicCounterIT {
         Root root = session.getLatestRoot();
         Tree t = root.getTree("/");
         Tree counter = t.addChild("counter");
-        counter.setProperty(JCR_MIXINTYPES, of(MIX_ATOMIC_COUNTER), NAMES);
+        counter.setProperty(JCR_MIXINTYPES, List.of(MIX_ATOMIC_COUNTER), NAMES);
         root.commit();
 
         root = session.getLatestRoot();
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManagerTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManagerTest.java
index 5e6d3ae44b..937b78af2e 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManagerTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManagerTest.java
@@ -16,14 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
+import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.plugins.index.lucene.directory.OakDirectory;
 import org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex;
 import org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndexFactory;
@@ -140,7 +139,7 @@ public class IndexNodeManagerTest {
     @Test
     public void indexOpenedBeforeFistCycle() throws Exception {
         NodeState nrtIndex = createNRTIndex();
-        NodeState asyncIndex = nrtIndex.builder().setProperty("async", ImmutableList.of("async"), STRINGS).getNodeState();
+        NodeState asyncIndex = nrtIndex.builder().setProperty("async", List.of("async"), STRINGS).getNodeState();
         NodeState nonAsyncIndex;
         {
             NodeBuilder builder = nrtIndex.builder();
@@ -193,7 +192,7 @@ public class IndexNodeManagerTest {
             directory.close();
             nrtIndex = indexBuilder.getNodeState();
         }
-        NodeState asyncIndex = nrtIndex.builder().setProperty("async", ImmutableList.of("async"), STRINGS).getNodeState();
+        NodeState asyncIndex = nrtIndex.builder().setProperty("async", List.of("async"), STRINGS).getNodeState();
         NodeState nonAsyncIndex;
         {
             NodeBuilder builder = nrtIndex.builder();
@@ -218,7 +217,7 @@ public class IndexNodeManagerTest {
     @Test
     public void hasIndexingRun() {
         NodeState nrtIndex = createNRTIndex();
-        NodeState asyncIndex = nrtIndex.builder().setProperty("async", ImmutableList.of("async"), STRINGS).getNodeState();
+        NodeState asyncIndex = nrtIndex.builder().setProperty("async", List.of("async"), STRINGS).getNodeState();
         NodeState nonAsyncIndex;
         {
             NodeBuilder builder = nrtIndex.builder();
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java
index bea73fc3c5..45efad6168 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlannerTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import static java.util.Objects.requireNonNull;
@@ -103,8 +102,6 @@ import org.jetbrains.annotations.NotNull;
 import org.junit.After;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 public class IndexPlannerTest {
     private NodeState root = INITIAL_CONTENT;
 
@@ -121,7 +118,7 @@ public class IndexPlannerTest {
         defn.setProperty(createProperty(ORDERED_PROP_NAMES, Set.of("foo"), STRINGS));
         LuceneIndexNode node = createIndexNode(new LuceneIndexDefinition(root, defn.getNodeState(), "/foo"));
         FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/foo", createFilter("nt:base"),
-            ImmutableList.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING)));
+            List.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING)));
         assertNotNull(planner.getPlan());
         assertTrue(pr(planner.getPlan()).isUniquePathsRequired());
     }
@@ -131,7 +128,7 @@ public class IndexPlannerTest {
         NodeBuilder defn = newLucenePropertyIndexDefinition(builder, "test", Set.of("foo"), "async");
         LuceneIndexNode node = createIndexNode(new LuceneIndexDefinition(root, defn.getNodeState(), "/foo"));
         FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/foo", createFilter("nt:file"),
-            ImmutableList.of(new OrderEntry("jcr:score", Type.LONG, OrderEntry.Order.ASCENDING)));
+            List.of(new OrderEntry("jcr:score", Type.LONG, OrderEntry.Order.ASCENDING)));
         assertNull(planner.getPlan());
     }
 
@@ -1127,7 +1124,7 @@ public class IndexPlannerTest {
         filter.restrictProperty("foo", Operator.EQUAL, PropertyValues.newString("bar"));
 
         FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/foo", filter,
-            ImmutableList.of(new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
+            List.of(new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
         QueryIndex.IndexPlan plan = planner.getPlan();
         assertNotNull(plan);
 
@@ -1151,7 +1148,7 @@ public class IndexPlannerTest {
         filter.setFullTextConstraint(FullTextParser.parse("bar", "mountain"));
 
         FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/foo", filter,
-            ImmutableList.of(new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
+            List.of(new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
         QueryIndex.IndexPlan plan = planner.getPlan();
         assertNotNull(plan);
 
@@ -1297,7 +1294,7 @@ public class IndexPlannerTest {
         LuceneIndexDefinition definition = new LuceneIndexDefinition(root, defn.getNodeState(), "/test");
         LuceneIndexNode node = createIndexNode(definition);
         FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/test", createFilter("nt:base"),
-            ImmutableList.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING),
+            List.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING),
                 new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
 
         assertNotNull(planner.getPlan());
@@ -1312,7 +1309,7 @@ public class IndexPlannerTest {
         LuceneIndexDefinition definition = new LuceneIndexDefinition(root, defn.getNodeState(), "/test");
         LuceneIndexNode node = createIndexNode(definition);
         FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/test", createFilter("nt:base"),
-            ImmutableList.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING),
+            List.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING),
                 new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
 
         assertNotNull(planner.getPlan());
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexlaneRepositoryTraversalTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexlaneRepositoryTraversalTest.java
index 14c1e55fc2..870c3ef503 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexlaneRepositoryTraversalTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexlaneRepositoryTraversalTest.java
@@ -19,7 +19,6 @@
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import ch.qos.logback.classic.Level;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -131,8 +130,8 @@ public class IndexlaneRepositoryTraversalTest {
         Tree test1 = root.getTree("/").addChild(INDEX_DEFINITIONS_NAME).addChild("mynodetype");
         test1.setProperty("jcr:primaryType", "oak:QueryIndexDefinition", Type.NAME);
         test1.setProperty("type", "property");
-        test1.setProperty("propertyNames", ImmutableList.of("jcr:primaryType", "jcr:mixinTypes"), Type.NAMES);
-        test1.setProperty("declaringNodeTypes", ImmutableList.of("oak:QueryIndexDefinition"), Type.NAMES);
+        test1.setProperty("propertyNames", List.of("jcr:primaryType", "jcr:mixinTypes"), Type.NAMES);
+        test1.setProperty("declaringNodeTypes", List.of("oak:QueryIndexDefinition"), Type.NAMES);
         test1.setProperty("nodeTypeListDefined", true);
         test1.setProperty("reindex", true);
         root.commit();
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDefinitionTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDefinitionTest.java
index 0d9766b388..a4abb51327 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDefinitionTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDefinitionTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import java.util.Collections;
@@ -25,7 +24,6 @@ import java.util.Set;
 
 import javax.jcr.PropertyType;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
@@ -312,7 +310,7 @@ public class LuceneIndexDefinitionTest {
     @Test
     public void indexRuleInheritanceOrdering() throws Exception{
         NodeBuilder rules = builder.child(INDEX_RULES);
-        rules.setProperty(OAK_CHILD_ORDER, ImmutableList.of("nt:hierarchyNode", "nt:base"),NAMES);
+        rules.setProperty(OAK_CHILD_ORDER, List.of("nt:hierarchyNode", "nt:base"),NAMES);
         rules.child("nt:hierarchyNode").setProperty(FulltextIndexConstants.FIELD_BOOST, 2.0);
         rules.child("nt:base").setProperty(FulltextIndexConstants.FIELD_BOOST, 3.0);
 
@@ -325,7 +323,7 @@ public class LuceneIndexDefinitionTest {
     @Test
     public void indexRuleInheritanceOrdering2() throws Exception{
         NodeBuilder rules = builder.child(INDEX_RULES);
-        rules.setProperty(OAK_CHILD_ORDER, ImmutableList.of("nt:base", "nt:hierarchyNode"),NAMES);
+        rules.setProperty(OAK_CHILD_ORDER, List.of("nt:base", "nt:hierarchyNode"),NAMES);
         rules.child("nt:hierarchyNode").setProperty(FulltextIndexConstants.FIELD_BOOST, 2.0);
         rules.child("nt:base").setProperty(FulltextIndexConstants.FIELD_BOOST, 3.0);
 
@@ -400,7 +398,7 @@ public class LuceneIndexDefinitionTest {
                 .setProperty(FulltextIndexConstants.PROP_IS_REGEX, true)
                 .setProperty(FulltextIndexConstants.FIELD_BOOST, 4.0);
 
-        rules.child("nt:folder").child(PROP_NODE).setProperty(OAK_CHILD_ORDER, ImmutableList.of("prop2", "prop1"), NAMES);
+        rules.child("nt:folder").child(PROP_NODE).setProperty(OAK_CHILD_ORDER, List.of("prop2", "prop1"), NAMES);
 
         LuceneIndexDefinition defn = new LuceneIndexDefinition(root, builder.getNodeState(), "/foo");
 
@@ -416,7 +414,7 @@ public class LuceneIndexDefinitionTest {
         assertEquals(4.0f, rule1.getConfig("fooProp").boost, 0);
 
         //Order it correctly to get expected result
-        rules.child("nt:folder").child(PROP_NODE).setProperty(OAK_CHILD_ORDER, ImmutableList.of("prop1", "prop2"), NAMES);
+        rules.child("nt:folder").child(PROP_NODE).setProperty(OAK_CHILD_ORDER, List.of("prop1", "prop2"), NAMES);
         defn = new LuceneIndexDefinition(root, builder.getNodeState(), "/foo");
         rule1 = defn.getApplicableIndexingRule(asState(newNode("nt:folder")));
         assertEquals(3.0f, rule1.getConfig("fooProp").boost, 0);
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java
index a54da2e962..92ef77eff9 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import java.io.File;
@@ -29,7 +28,6 @@ import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.commons.CIHelper;
 import org.apache.jackrabbit.oak.plugins.blob.datastore.CachingFileDataStore;
@@ -118,7 +116,7 @@ public class LuceneIndexEditorTest {
 
     @Parameterized.Parameters(name = "{index}: useBlobStore ({0})")
     public static List<Boolean[]> fixtures() {
-        return ImmutableList.of(new Boolean[] {true}, new Boolean[] {false});
+        return List.of(new Boolean[] {true}, new Boolean[] {false});
     }
 
     @Before
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
index 69c093c81c..1b998419cb 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.transform;
 import static org.apache.jackrabbit.guava.common.util.concurrent.MoreExecutors.newDirectExecutorService;
 import static java.util.Arrays.asList;
@@ -69,6 +68,7 @@ import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
 import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.IndexUpdate;
@@ -116,8 +116,6 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 @SuppressWarnings("ConstantConditions")
 public class LuceneIndexTest {
 
@@ -218,7 +216,7 @@ public class LuceneIndexTest {
         List<IndexPlan> plans = queryIndex.getPlans(filter, null, indexed);
         Cursor cursor = queryIndex.query(plans.get(0), indexed);
 
-        List<String> paths = copyOf(transform(cursor, IndexRow::getPath));
+        List<String> paths = CollectionUtils.toList(transform(cursor, IndexRow::getPath));
         assertFalse(paths.isEmpty());
         assertEquals(LuceneIndex.LUCENE_QUERY_BATCH_SIZE + 1, paths.size());
     }
@@ -400,7 +398,7 @@ public class LuceneIndexTest {
 
         FilterImpl filter = createFilter(NT_TEST);
         filter.restrictProperty("foo", Operator.EQUAL, null);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/c"));
+        assertFilter(filter, queryIndex, indexed, List.of("/c"));
     }
 
     @Test
@@ -431,7 +429,7 @@ public class LuceneIndexTest {
 
         FilterImpl filter = createFilter(NT_TEST);
         filter.restrictProperty("foo", Operator.NOT_EQUAL, null);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/a","/b"));
+        assertFilter(filter, queryIndex, indexed, List.of("/a","/b"));
     }
 
 
@@ -467,7 +465,7 @@ public class LuceneIndexTest {
 
         FilterImpl filter = createFilter(NT_TEST);
         filter.restrictProperty("jcr:content/bar", Operator.EQUAL, null);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/b1"));
+        assertFilter(filter, queryIndex, indexed, List.of("/b1"));
 
         builder.child("b1").child("jcr:content").setProperty("bar", "foo");
         after = builder.getNodeState();
@@ -502,19 +500,19 @@ public class LuceneIndexTest {
 
         FilterImpl filter = createTestFilter();
         filter.restrictPath("/", Filter.PathRestriction.EXACT);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/"));
+        assertFilter(filter, queryIndex, indexed, List.of("/"));
 
         filter = createTestFilter();
         filter.restrictPath("/", Filter.PathRestriction.DIRECT_CHILDREN);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/a", "/a1"));
+        assertFilter(filter, queryIndex, indexed, List.of("/a", "/a1"));
 
         filter = createTestFilter();
         filter.restrictPath("/a", Filter.PathRestriction.DIRECT_CHILDREN);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/a/b"));
+        assertFilter(filter, queryIndex, indexed, List.of("/a/b"));
 
         filter = createTestFilter();
         filter.restrictPath("/a", Filter.PathRestriction.ALL_CHILDREN);
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/a/b", "/a/b/c"));
+        assertFilter(filter, queryIndex, indexed, List.of("/a/b", "/a/b/c"));
     }
 
     @Test
@@ -538,15 +536,15 @@ public class LuceneIndexTest {
 
         FilterImpl filter = createFilter(NT_FILE);
         filter.restrictProperty(QueryConstants.RESTRICTION_LOCAL_NAME, Operator.EQUAL, PropertyValues.newString("foo"));
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/foo"));
+        assertFilter(filter, queryIndex, indexed, List.of("/foo"));
 
         filter = createFilter(NT_FILE);
         filter.restrictProperty(QueryConstants.RESTRICTION_LOCAL_NAME, Operator.LIKE, PropertyValues.newString("camelCase"));
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/camelCase"));
+        assertFilter(filter, queryIndex, indexed, List.of("/camelCase"));
 
         filter = createFilter(NT_FILE);
         filter.restrictProperty(QueryConstants.RESTRICTION_LOCAL_NAME, Operator.LIKE, PropertyValues.newString("camel%"));
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/camelCase"));
+        assertFilter(filter, queryIndex, indexed, List.of("/camelCase"));
     }
 
     private FilterImpl createTestFilter(){
@@ -573,7 +571,7 @@ public class LuceneIndexTest {
         FilterImpl filter = createFilter("nt:base");
 
         filter.setFullTextConstraint(new FullTextTerm(null, "fox jumping", false, false, null));
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/"));
+        assertFilter(filter, queryIndex, indexed, List.of("/"));
 
         //No stop word configured so default analyzer would also check for 'was'
         filter.setFullTextConstraint(new FullTextTerm(null, "fox was jumping", false, false, null));
@@ -594,36 +592,36 @@ public class LuceneIndexTest {
         queryIndex = new LucenePropertyIndex(tracker);
 
         filter.setFullTextConstraint(new FullTextTerm(null, "fox jumping", false, false, null));
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/"));
+        assertFilter(filter, queryIndex, indexed, List.of("/"));
 
         //Now this should get passed as the analyzer would ignore 'was'
         filter.setFullTextConstraint(new FullTextTerm(null, "fox was jumping", false, false, null));
-        assertFilter(filter, queryIndex, indexed, ImmutableList.of("/"));
+        assertFilter(filter, queryIndex, indexed, List.of("/"));
     }
 
     @Test
     public void testTokens() {
         Analyzer analyzer = LuceneIndexConstants.ANALYZER;
-        assertEquals(ImmutableList.of("parent", "child"),
+        assertEquals(List.of("parent", "child"),
             LuceneIndex.tokenize("/parent/child", analyzer));
-        assertEquals(ImmutableList.of("p1234", "p5678"),
+        assertEquals(List.of("p1234", "p5678"),
             LuceneIndex.tokenize("/p1234/p5678", analyzer));
-        assertEquals(ImmutableList.of("first", "second"),
+        assertEquals(List.of("first", "second"),
             LuceneIndex.tokenize("first_second", analyzer));
-        assertEquals(ImmutableList.of("first1", "second2"),
+        assertEquals(List.of("first1", "second2"),
             LuceneIndex.tokenize("first1_second2", analyzer));
-        assertEquals(ImmutableList.of("first", "second"),
+        assertEquals(List.of("first", "second"),
             LuceneIndex.tokenize("first. second", analyzer));
-        assertEquals(ImmutableList.of("first", "second"),
+        assertEquals(List.of("first", "second"),
             LuceneIndex.tokenize("first.second", analyzer));
 
-        assertEquals(ImmutableList.of("hello", "world"),
+        assertEquals(List.of("hello", "world"),
             LuceneIndex.tokenize("hello-world", analyzer));
-        assertEquals(ImmutableList.of("hello", "wor*"),
+        assertEquals(List.of("hello", "wor*"),
             LuceneIndex.tokenize("hello-wor*", analyzer));
-        assertEquals(ImmutableList.of("*llo", "world"),
+        assertEquals(List.of("*llo", "world"),
             LuceneIndex.tokenize("*llo-world", analyzer));
-        assertEquals(ImmutableList.of("*llo", "wor*"),
+        assertEquals(List.of("*llo", "wor*"),
             LuceneIndex.tokenize("*llo-wor*", analyzer));
     }
 
@@ -843,7 +841,7 @@ public class LuceneIndexTest {
         newLucenePropertyIndexDefinition(index, "luceneTest", Set.of("foo"), null);
         newLucenePropertyIndexDefinition(index, "luceneTest2", Set.of("foo2"), null);
 
-        builder.child(INDEX_DEFINITIONS_NAME).child("luceneTest").setProperty(IndexConstants.ENTRY_COUNT_PROPERTY_NAME, ImmutableList.of(2L), Type.LONGS);
+        builder.child(INDEX_DEFINITIONS_NAME).child("luceneTest").setProperty(IndexConstants.ENTRY_COUNT_PROPERTY_NAME, List.of(2L), Type.LONGS);
 
         NodeState before = builder.getNodeState();
         // Add some content that qualifies to be indexed by both of the above indexes (separately)
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/MultiplexingLucenePropertyIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/MultiplexingLucenePropertyIndexTest.java
index 2864cff8ee..d4a70dd1ef 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/MultiplexingLucenePropertyIndexTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/MultiplexingLucenePropertyIndexTest.java
@@ -16,10 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.oak.api.QueryEngine.NO_BINDINGS;
 import static org.apache.jackrabbit.oak.api.Type.STRINGS;
 import static org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndexTest.createIndex;
@@ -44,7 +42,6 @@ import java.util.concurrent.Executors;
 
 import javax.jcr.PropertyType;
 
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.Oak;
@@ -213,13 +210,13 @@ public class MultiplexingLucenePropertyIndexTest extends AbstractQueryTest {
         assertEquals(2, getIndexDirNames(idxName).size());
 
         String barQuery = "select [jcr:path] from [nt:base] where [foo] = 'bar'";
-        assertQuery(barQuery, of("/libs/a", "/content/a"));
+        assertQuery(barQuery, List.of("/libs/a", "/content/a"));
 
         Result result = executeQuery(barQuery, SQL2, NO_BINDINGS);
         assertTrue(result.getRows().iterator().hasNext());
         assertEquals(2, result.getSize(Result.SizePrecision.FAST_APPROXIMATION, 100));
 
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar2'", of("/libs/b"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar2'", List.of("/libs/b"));
     }
 
     @Test
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/NodeStateAnalyzerFactoryTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/NodeStateAnalyzerFactoryTest.java
index c4ead1c3b1..e9a4f1365c 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/NodeStateAnalyzerFactoryTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/NodeStateAnalyzerFactoryTest.java
@@ -16,16 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintWriter;
 import java.io.Reader;
 import java.lang.reflect.Field;
+import java.util.List;
 import java.util.Map;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.plugins.index.lucene.NodeStateAnalyzerFactory.NodeStateResourceLoader;
@@ -109,7 +108,7 @@ public class NodeStateAnalyzerFactoryTest {
         nb.child(ANL_TOKENIZER).setProperty(ANL_NAME, "whitespace");
 
         NodeBuilder filters = nb.child(ANL_FILTERS);
-        filters.setProperty(OAK_CHILD_ORDER, ImmutableList.of("stop", "LowerCase"),NAMES);
+        filters.setProperty(OAK_CHILD_ORDER, List.of("stop", "LowerCase"),NAMES);
         filters.child("LowerCase").setProperty(ANL_NAME, "LowerCase");
         filters.child("LowerCase").setProperty(JCR_PRIMARYTYPE, "nt:unstructured");
         //name is optional. Derived from nodeName
@@ -131,7 +130,7 @@ public class NodeStateAnalyzerFactoryTest {
         nb.child(ANL_TOKENIZER).setProperty(ANL_NAME, "whitespace");
 
         NodeBuilder filters = nb.child(ANL_CHAR_FILTERS);
-        filters.setProperty(OAK_CHILD_ORDER, ImmutableList.of("htmlStrip", "mapping"),NAMES);
+        filters.setProperty(OAK_CHILD_ORDER, List.of("htmlStrip", "mapping"),NAMES);
         filters.child("mapping").setProperty(ANL_NAME, "mapping");
         filters.child("htmlStrip"); //name is optional. Derived from nodeName
 
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
index 05c4f12918..d588ad353f 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
@@ -38,7 +38,6 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import ch.qos.logback.classic.Level;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.commons.exec.CommandLine;
 import org.apache.commons.exec.DefaultExecutor;
@@ -99,7 +98,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.guava.common.util.concurrent.MoreExecutors.newDirectExecutorService;
 import static org.apache.jackrabbit.oak.api.QueryEngine.NO_BINDINGS;
 import static org.apache.jackrabbit.oak.spi.mount.Mounts.defaultMountInfoProvider;
@@ -194,25 +192,25 @@ public class HybridIndexTest extends AbstractQueryTest {
         runAsyncIndex();
 
         setTraversalEnabled(false);
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a"));
 
         //Add new node. This would not be reflected in result as local index would not be updated
         createPath("/b").setProperty("foo", "bar");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a"));
 
         //Now let some time elapse such that readers can be refreshed
         clock.waitUntil(clock.getTime() + refreshDelta + 1);
 
         //Now recently added stuff should be visible without async indexing run
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a", "/b"));
 
         createPath("/c").setProperty("foo", "bar");
         root.commit();
 
         //Post async index it should still be upto date
         runAsyncIndex();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b", "/c"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a", "/b", "/c"));
     }
 
     @Test
@@ -262,7 +260,7 @@ public class HybridIndexTest extends AbstractQueryTest {
 
         runAsyncIndex();
         assertEquals(1, testBlob.accessCount);
-        assertQuery("select * from [nt:base] where CONTAINS(*, 'sky')", of("/test/msg/jcr:content"));
+        assertQuery("select * from [nt:base] where CONTAINS(*, 'sky')", List.of("/test/msg/jcr:content"));
 
     }
 
@@ -281,12 +279,12 @@ public class HybridIndexTest extends AbstractQueryTest {
         runAsyncIndex();
 
         setTraversalEnabled(false);
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a"));
 
         //Add new node. This should get immediately reelected as its a sync index
         createPath("/b").setProperty("foo", "bar");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a", "/b"));
     }
 
     @Test
@@ -299,19 +297,19 @@ public class HybridIndexTest extends AbstractQueryTest {
         createPath("/a").setProperty("foo", "bar");
         root.commit();
         setTraversalEnabled(false);
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a"));
 
         //Add new node. This should get immediately reelected as its a sync index
         createPath("/b").setProperty("foo", "bar");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a", "/b"));
 
         runAsyncIndex();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a", "/b"));
 
         createPath("/c").setProperty("foo", "bar");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b", "/c"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a", "/b", "/c"));
     }
 
     @Test
@@ -325,7 +323,7 @@ public class HybridIndexTest extends AbstractQueryTest {
 
         createPath("/a").setProperty("foo", "bar");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a"));
 
         optionalEditorProvider.delegate = new TypeEditorProvider(false);
         NodeTypeRegistry.register(root, IOUtils.toInputStream(TestUtil.TEST_NODE_TYPE), "test nodeType");
@@ -335,7 +333,7 @@ public class HybridIndexTest extends AbstractQueryTest {
         b.setProperty(JcrConstants.JCR_PRIMARYTYPE, "oak:TestNode", Type.NAME);
         b.setProperty("bar", "foo");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [bar] = 'foo'", of("/b"));
+        assertQuery("select [jcr:path] from [nt:base] where [bar] = 'foo'", List.of("/b"));
     }
 
     @Test
@@ -354,7 +352,7 @@ public class HybridIndexTest extends AbstractQueryTest {
         //such that it does not indexes test nodetype
         Tree nodeType = root.getTree("/oak:index/nodetype");
         if (!nodeType.hasProperty(IndexConstants.DECLARING_NODE_TYPES)){
-            nodeType.setProperty(IndexConstants.DECLARING_NODE_TYPES, ImmutableList.of("nt:file"), Type.NAMES);
+            nodeType.setProperty(IndexConstants.DECLARING_NODE_TYPES, List.of("nt:file"), Type.NAMES);
             nodeType.setProperty(IndexConstants.REINDEX_PROPERTY_NAME, true);
         }
 
@@ -364,7 +362,7 @@ public class HybridIndexTest extends AbstractQueryTest {
 
         createPath("/a").setProperty("foo", "bar");
         root.commit();
-        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", List.of("/a"));
 
         optionalEditorProvider.delegate = new TypeEditorProvider(false);
         NodeTypeRegistry.register(root, IOUtils.toInputStream(TestUtil.TEST_NODE_TYPE), "test nodeType");
@@ -380,7 +378,7 @@ public class HybridIndexTest extends AbstractQueryTest {
 
         String query = "select [jcr:path] from [oak:TestNode] ";
         assertThat(explain(query), containsString("/oak:index/hybridtest"));
-        assertQuery(query, of("/b", "/c"));
+        assertQuery(query, List.of("/b", "/c"));
     }
 
     @Test
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcherTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcherTest.java
index 3ddf24a5e3..d44271dba2 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcherTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcherTest.java
@@ -16,15 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene.property;
 
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.state.EqualsDiff;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_HEAD_BUCKET;
 import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_PREVIOUS_BUCKET;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
@@ -43,7 +42,7 @@ public class BucketSwitcherTest {
     @Test
     public void basic() throws Exception {
         bs.switchBucket(100);
-        assertThat(copyOf(bs.getOldBuckets()), empty());
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), empty());
     }
 
     @Test
@@ -52,7 +51,7 @@ public class BucketSwitcherTest {
         builder.setProperty(PROP_HEAD_BUCKET, "1");
 
         bs.switchBucket(100);
-        assertThat(copyOf(bs.getOldBuckets()), empty());
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), empty());
     }
 
     @Test
@@ -65,7 +64,7 @@ public class BucketSwitcherTest {
         bs.switchBucket(100);
         assertFalse(builder.hasProperty(PROP_PREVIOUS_BUCKET));
         assertEquals("2", builder.getString(PROP_HEAD_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1"));
     }
 
     @Test
@@ -81,7 +80,7 @@ public class BucketSwitcherTest {
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertTrue(builder.hasChildNode("3"));
 
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1"));
     }
 
     @Test
@@ -96,7 +95,7 @@ public class BucketSwitcherTest {
         bs.switchBucket(150);
         assertFalse(builder.hasProperty(PROP_PREVIOUS_BUCKET));
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1", "2"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1", "2"));
     }
 
     /**
@@ -117,7 +116,7 @@ public class BucketSwitcherTest {
 
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertEquals("2", builder.getString(PROP_PREVIOUS_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1"));
 
         NodeState state1 = builder.getNodeState();
         assertFalse(bs.switchBucket(100));
@@ -126,7 +125,7 @@ public class BucketSwitcherTest {
         //as previous
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertEquals("2", builder.getString(PROP_PREVIOUS_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1"));
 
         NodeState state2 = builder.getNodeState();
         assertFalse(bs.switchBucket(100));
@@ -134,7 +133,7 @@ public class BucketSwitcherTest {
         //Async indexer time still not changed. So head bucket remains same
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertEquals("2", builder.getString(PROP_PREVIOUS_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1"));
 
         NodeState state3 = builder.getNodeState();
 
@@ -159,7 +158,7 @@ public class BucketSwitcherTest {
 
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertEquals("2", builder.getString(PROP_PREVIOUS_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1"));
 
         NodeState state1 = builder.getNodeState();
         assertTrue(bs.switchBucket(150));
@@ -167,14 +166,14 @@ public class BucketSwitcherTest {
         //This time previous bucket should be discarded
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertNull(builder.getString(PROP_PREVIOUS_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1", "2"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1", "2"));
 
         NodeState state2 = builder.getNodeState();
         assertTrue(bs.switchBucket(200));
 
         assertEquals("3", builder.getString(PROP_HEAD_BUCKET));
         assertNull(builder.getString(PROP_PREVIOUS_BUCKET));
-        assertThat(copyOf(bs.getOldBuckets()), containsInAnyOrder("1", "2"));
+        assertThat(CollectionUtils.toList(bs.getOldBuckets()), containsInAnyOrder("1", "2"));
 
         //assert no change done after previous is removed
         //not even change of asyncIndexedTo
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookupTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookupTest.java
index 1ee37ff43f..99f4f8adab 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookupTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookupTest.java
@@ -16,13 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene.property;
 
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexDefinitionBuilder;
 import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition;
 import org.apache.jackrabbit.oak.plugins.index.search.PropertyDefinition;
@@ -108,7 +107,7 @@ public class HybridPropertyIndexLookupTest {
         Iterable<String> paths = lookup.query(filter, propertyName,
                 filter.getPropertyRestriction(propertyName));
 
-        assertThat(ImmutableList.copyOf(paths), containsInAnyOrder("/a"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("/a"));
     }
 
     @Test
@@ -128,14 +127,14 @@ public class HybridPropertyIndexLookupTest {
         Iterable<String> paths = lookup.query(filter, propertyName,
                 filter.getPropertyRestriction(propertyName));
 
-        assertThat(ImmutableList.copyOf(paths), containsInAnyOrder("/a"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("/a"));
 
         lookup = new HybridPropertyIndexLookup(indexPath, builder.getNodeState(),
                 "/content", true);
         paths = lookup.query(filter, propertyName,
                 filter.getPropertyRestriction(propertyName));
 
-        assertThat(ImmutableList.copyOf(paths), containsInAnyOrder("/content/a"));
+        assertThat(CollectionUtils.toList(paths), containsInAnyOrder("/content/a"));
     }
 
     private void propertyUpdated(String nodePath, String propertyRelativeName, String value){
@@ -157,7 +156,7 @@ public class HybridPropertyIndexLookupTest {
         HybridPropertyIndexLookup lookup = new HybridPropertyIndexLookup(indexPath, builder.getNodeState());
         Iterable<String> paths = lookup.query(filter, propertyName,
                 filter.getPropertyRestriction(propertyRestrictionName));
-        return ImmutableList.copyOf(paths);
+        return CollectionUtils.toList(paths);
     }
 
     private PropertyDefinition pd(String propName){
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexStorageTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexStorageTest.java
index e292ac1aa2..dc6640ea04 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexStorageTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexStorageTest.java
@@ -16,13 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene.property;
 
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.PropertyValue;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexDefinitionBuilder;
 import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition;
 import org.apache.jackrabbit.oak.plugins.index.search.PropertyDefinition;
@@ -205,7 +204,7 @@ public class HybridPropertyIndexStorageTest {
         HybridPropertyIndexLookup lookup = new HybridPropertyIndexLookup(indexPath, builder.getNodeState());
         FilterImpl filter = createFilter(root, "nt:base");
         Iterable<String> paths = lookup.query(filter, propertyName, value);
-        return ImmutableList.copyOf(paths);
+        return CollectionUtils.toList(paths);
     }
 
     private PropertyIndexUpdateCallback newCallback(){
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleanerTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleanerTest.java
index b8b89933bb..4ebc69def3 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleanerTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexCleanerTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene.property;
 
 import java.util.HashMap;
@@ -24,9 +23,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfo;
 import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService;
 import org.apache.jackrabbit.oak.plugins.index.lucene.property.PropertyIndexCleaner.CleanupStats;
@@ -332,7 +331,7 @@ public class PropertyIndexCleanerTest {
         HybridPropertyIndexLookup lookup = new HybridPropertyIndexLookup(indexPath, getNode(root, indexPath));
         FilterImpl filter = FilterImpl.newTestInstance();
         Iterable<String> paths = lookup.query(filter, propertyName,   PropertyValues.newString(value));
-        return ImmutableList.copyOf(paths);
+        return CollectionUtils.toList(paths);
     }
 
     private static class SimpleAsyncInfoService implements AsyncIndexInfoService {
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniqueIndexCleanerTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniqueIndexCleanerTest.java
index 9b33ff2e4f..fce3c81420 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniqueIndexCleanerTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniqueIndexCleanerTest.java
@@ -16,14 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene.property;
 
-
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_CREATED;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
@@ -42,7 +40,7 @@ public class UniqueIndexCleanerTest {
 
         UniqueIndexCleaner cleaner = new UniqueIndexCleaner(MILLISECONDS, 1);
         cleaner.clean(builder, 10);
-        assertThat(copyOf(builder.getChildNodeNames()), containsInAnyOrder("a", "b"));
+        assertThat(CollectionUtils.toList(builder.getChildNodeNames()), containsInAnyOrder("a", "b"));
     }
 
     @Test
@@ -53,7 +51,7 @@ public class UniqueIndexCleanerTest {
         refresh();
         UniqueIndexCleaner cleaner = new UniqueIndexCleaner(MILLISECONDS, 100);
         cleaner.clean(builder, 200);
-        assertThat(copyOf(builder.getChildNodeNames()), containsInAnyOrder("b"));
+        assertThat(CollectionUtils.toList(builder.getChildNodeNames()), containsInAnyOrder("b"));
     }
 
     private void refresh(){
diff --git a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProviderTest.java b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProviderTest.java
index 59f829c4a5..d558622065 100644
--- a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProviderTest.java
+++ b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProviderTest.java
@@ -26,11 +26,11 @@ import java.util.Set;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static java.util.Arrays.asList;
 import static java.util.Collections.emptyList;
 import static java.util.Collections.singletonList;
@@ -60,17 +60,17 @@ public class ChildNodeStateProviderTest {
         CountingIterable<NodeStateEntry> citr = createList(preferred, asList("/a", "/a/jcr:content", "/a/c", "/a/d", "/e", "/e/f", "/g", "/h"));
         ChildNodeStateProvider p = new ChildNodeStateProvider(citr, "/a", preferred);
 
-        assertEquals(asList("jcr:content", "c", "d"), copyOf(childNames(p.children())));
+        assertEquals(asList("jcr:content", "c", "d"), CollectionUtils.toList(childNames(p.children())));
         assertEquals(5, citr.getCount());
 
         citr.reset();
         p = new ChildNodeStateProvider(citr, "/e", preferred);
-        assertEquals(singletonList("f"), copyOf(childNames(p.children())));
+        assertEquals(singletonList("f"), CollectionUtils.toList(childNames(p.children())));
         assertEquals(7, citr.getCount());
 
 
         p = new ChildNodeStateProvider(citr, "/g", preferred);
-        assertEquals(emptyList(), copyOf(childNames(p.children())));
+        assertEquals(emptyList(), CollectionUtils.toList(childNames(p.children())));
     }
 
     @Test
@@ -79,22 +79,22 @@ public class ChildNodeStateProviderTest {
         CountingIterable<NodeStateEntry> citr = createList(preferred, asList("/a", "/a/b", "/a/b/c", "/a/b/c/d", "/e", "/e/f", "/g", "/h"));
         ChildNodeStateProvider p = new ChildNodeStateProvider(citr, "/a", preferred);
 
-        assertEquals(singletonList("b"), copyOf(childNames(p.children())));
+        assertEquals(singletonList("b"), CollectionUtils.toList(childNames(p.children())));
         assertEquals(5, citr.getCount());
 
         citr.reset();
         p = new ChildNodeStateProvider(citr, "/a/b", preferred);
-        assertEquals(singletonList("c"), copyOf(childNames(p.children())));
+        assertEquals(singletonList("c"), CollectionUtils.toList(childNames(p.children())));
         assertEquals(5, citr.getCount());
 
         p = new ChildNodeStateProvider(citr, "/a/b/c", preferred);
-        assertEquals(singletonList("d"), copyOf(childNames(p.children())));
+        assertEquals(singletonList("d"), CollectionUtils.toList(childNames(p.children())));
 
         p = new ChildNodeStateProvider(citr, "/a/b/c/d", preferred);
-        assertEquals(emptyList(), copyOf(childNames(p.children())));
+        assertEquals(emptyList(), CollectionUtils.toList(childNames(p.children())));
 
         p = new ChildNodeStateProvider(citr, "/h", preferred);
-        assertEquals(emptyList(), copyOf(childNames(p.children())));
+        assertEquals(emptyList(), CollectionUtils.toList(childNames(p.children())));
     }
 
     @Test
@@ -152,7 +152,7 @@ public class ChildNodeStateProviderTest {
         CountingIterable<NodeStateEntry> citr = createList(preferred, asList("/a", "/a/jcr:content", "/a/c", "/a/d", "/e", "/e/f"));
         ChildNodeStateProvider p = new ChildNodeStateProvider(citr, "/a", preferred);
 
-        assertEquals(asList("jcr:content", "c", "d"), copyOf(childNames(p.children())));
+        assertEquals(asList("jcr:content", "c", "d"), CollectionUtils.toList(childNames(p.children())));
         assertEquals(5, citr.getCount());
     }
 
@@ -163,7 +163,7 @@ public class ChildNodeStateProviderTest {
                 "/a/c", "/a/c/status","/a/d", "/e", "/e/f"));
         ChildNodeStateProvider p = new ChildNodeStateProvider(citr, "/a", preferred);
 
-        assertEquals(asList("jcr:content", "c", "d"), copyOf(childNames(p.children())));
+        assertEquals(asList("jcr:content", "c", "d"), CollectionUtils.toList(childNames(p.children())));
         assertEquals(7, citr.getCount());
     }
 
diff --git a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/NodeStateEntryWriterTest.java b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/NodeStateEntryWriterTest.java
index ddfc6b1f1d..6b7c4e8fc3 100644
--- a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/NodeStateEntryWriterTest.java
+++ b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/NodeStateEntryWriterTest.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
 
 import java.util.Arrays;
 import java.util.List;
 
 import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry.NodeStateEntryBuilder;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
@@ -32,7 +32,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
 import static org.apache.jackrabbit.oak.index.indexer.document.flatfile.NodeStateEntryWriter.getPath;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
@@ -112,7 +111,7 @@ public class NodeStateEntryWriterTest {
         NodeStateEntry e1 = new NodeStateEntryBuilder(b1.getNodeState(), "/a/b/c/d").build();
 
         String json = nw.asJson(e1.getNodeState());
-        List<String> pathElements = copyOf(elements(e1.getPath()));
+        List<String> pathElements = CollectionUtils.toList(elements(e1.getPath()));
 
         String line = nw.toString(pathElements, json);
 
@@ -132,7 +131,7 @@ public class NodeStateEntryWriterTest {
         NodeStateEntry e1 = new NodeStateEntryBuilder(b1.getNodeState(), "/").build();
 
         String json = nw.asJson(e1.getNodeState());
-        List<String> pathElements = copyOf(elements(e1.getPath()));
+        List<String> pathElements = CollectionUtils.toList(elements(e1.getPath()));
 
         String line = nw.toString(pathElements, json);
 
@@ -154,9 +153,9 @@ public class NodeStateEntryWriterTest {
         b.setProperty("foo1", "bar1");
         String json2 = nw.asJson(b.getNodeState());
 
-        String line1 = nw.toString(copyOf(elements("/")), json1);
-        String line2 = nw.toString(copyOf(elements("/sub-node")), json1);
-        String line3 = nw.toString(copyOf(elements("/sub-node")), json2);
+        String line1 = nw.toString(CollectionUtils.toList(elements("/")), json1);
+        String line2 = nw.toString(CollectionUtils.toList(elements("/sub-node")), json1);
+        String line3 = nw.toString(CollectionUtils.toList(elements("/sub-node")), json2);
 
         NodeStateEntryReader nr = new NodeStateEntryReader(blobStore);
 
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 e9d5b483b5..66d831e8c6 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.CollectionUtils;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry.NodeStateEntryBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -29,7 +30,6 @@ import java.util.List;
 import java.util.Set;
 import java.util.function.Predicate;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static java.util.Collections.emptySet;
 import static java.util.stream.Collectors.toList;
 import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
@@ -51,7 +51,7 @@ public class TestUtils {
 
     static List<String> sortPaths(List<String> paths, Comparator<Iterable<String>> comparator) {
         List<Iterable<String>> copy = paths.stream()
-                .map(p -> copyOf(elements(p)))
+                .map(p -> CollectionUtils.toList(elements(p)))
                 .sorted(comparator)
                 .collect(toList());
         return copy.stream().map(e -> "/" + String.join("/", e)).collect(toList());
diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
index 3f2aad0865..30dd2c0750 100644
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
@@ -20,10 +20,12 @@ package org.apache.jackrabbit.oak.plugins.document;
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.run.RevisionsCommand;
 import org.junit.Before;
@@ -409,11 +411,13 @@ public class RevisionsCommandTest {
 
     private static class RevisionsCmd implements Runnable {
 
-        private final ImmutableList<String> args;
+        private final List<String> args;
 
         public RevisionsCmd(String... args) {
-            this.args = ImmutableList.<String>builder().add(MongoUtils.URL)
-                    .add(args).build();
+            List<String> builder = new ArrayList<>();
+            builder.add(MongoUtils.URL);
+            builder.addAll(Arrays.asList(args));
+            this.args = Collections.unmodifiableList(builder);
         }
 
         @Override
diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java
index dd4d8d5b90..fb5469f5d9 100644
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java
@@ -40,7 +40,6 @@ import java.util.Properties;
 import java.util.Random;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import joptsimple.internal.Strings;
@@ -201,7 +200,7 @@ public class DataStoreCheckTest {
         Random rand = new Random();
         String deletedBlobId = Iterables.get(blobsAdded, rand.nextInt(blobsAdded.size()));
         blobsAdded.remove(deletedBlobId);
-        long count = setupDataStore.countDeleteChunks(ImmutableList.of(deletedBlobId), 0);
+        long count = setupDataStore.countDeleteChunks(List.of(deletedBlobId), 0);
         assertEquals(1, count);
         setupDataStore.close();
 
@@ -222,7 +221,7 @@ public class DataStoreCheckTest {
         blobsAdded.remove(deletedBlobId);
 
         long count = setupDataStore
-            .countDeleteChunks(ImmutableList.of(deletedBlobId),
+            .countDeleteChunks(List.of(deletedBlobId),
                 0);
         assertEquals(1, count);
         setupDataStore.close();
@@ -248,11 +247,11 @@ public class DataStoreCheckTest {
         Random rand = new Random();
         String deletedBlobId = Iterables.get(blobsAdded, rand.nextInt(blobsAdded.size()));
         blobsAdded.remove(deletedBlobId);
-        long count = setupDataStore.countDeleteChunks(ImmutableList.of(deletedBlobId), 0);
+        long count = setupDataStore.countDeleteChunks(List.of(deletedBlobId), 0);
 
         String activeDeletedBlobId = Iterables.get(blobsAdded, rand.nextInt(blobsAdded.size()));
         blobsAdded.remove(activeDeletedBlobId);
-        count += setupDataStore.countDeleteChunks(ImmutableList.of(activeDeletedBlobId), 0);
+        count += setupDataStore.countDeleteChunks(List.of(activeDeletedBlobId), 0);
         assertEquals(2, count);
 
         // artificially put the deleted id in the tracked .del file
@@ -279,11 +278,11 @@ public class DataStoreCheckTest {
         Random rand = new Random();
         String deletedBlobId = Iterables.get(blobsAdded, rand.nextInt(blobsAdded.size()));
         blobsAdded.remove(deletedBlobId);
-        long count = setupDataStore.countDeleteChunks(ImmutableList.of(deletedBlobId), 0);
+        long count = setupDataStore.countDeleteChunks(List.of(deletedBlobId), 0);
 
         String activeDeletedBlobId = Iterables.get(blobsAdded, rand.nextInt(blobsAdded.size()));
         blobsAdded.remove(activeDeletedBlobId);
-        count += setupDataStore.countDeleteChunks(ImmutableList.of(activeDeletedBlobId), 0);
+        count += setupDataStore.countDeleteChunks(List.of(activeDeletedBlobId), 0);
         assertEquals(2, count);
 
         // artificially put the deleted id in the tracked .del file
diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
index f0cc1d8d1f..f2d0fdda85 100644
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
@@ -42,7 +42,6 @@ import java.util.stream.StreamSupport;
 import ch.qos.logback.classic.Level;
 import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.guava.common.base.Strings;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.guava.common.collect.Maps;
@@ -258,7 +257,7 @@ public class DataStoreCommandTest {
         }
 
         for (String id : data.missingDataStore) {
-            long count = blobStore.countDeleteChunks(ImmutableList.of(id), 0);
+            long count = blobStore.countDeleteChunks(List.of(id), 0);
             assertEquals(1, count);
         }
 
@@ -1341,11 +1340,11 @@ public class DataStoreCommandTest {
 
     static class FixtureHelper {
         static List<StoreFixture> getStoreFixtures() {
-            return ImmutableList.of(StoreFixture.MONGO, StoreFixture.SEGMENT, StoreFixture.SEGMENT_AZURE);
+            return List.of(StoreFixture.MONGO, StoreFixture.SEGMENT, StoreFixture.SEGMENT_AZURE);
         }
 
         static List<DataStoreFixture> getDataStoreFixtures() {
-            return ImmutableList.of(DataStoreFixture.S3, DataStoreFixture.AZURE, DataStoreFixture.FDS);
+            return List.of(DataStoreFixture.S3, DataStoreFixture.AZURE, DataStoreFixture.FDS);
         }
 
         static List<Object[]> get() {
diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DocumentStoreCheckCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DocumentStoreCheckCommandTest.java
index 5083b29be6..c2963ec751 100644
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DocumentStoreCheckCommandTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DocumentStoreCheckCommandTest.java
@@ -21,8 +21,6 @@ import java.nio.file.Files;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMKBuilderProvider;
@@ -237,7 +235,7 @@ public class DocumentStoreCheckCommandTest {
         CommitHook hook = EmptyHook.INSTANCE;
         if (withIndexUpdate) {
             NodeBuilder index = IndexUtils.getOrCreateOakIndex(builder);
-            IndexUtils.createIndexDefinition(index, "uuid", true, true, ImmutableList.of("jcr:uuid"), null);
+            IndexUtils.createIndexDefinition(index, "uuid", true, true, List.of("jcr:uuid"), null);
             hook = new EditorHook(new IndexUpdateProvider(new PropertyIndexEditorProvider()));
         }
         ns.merge(builder, hook, CommitInfo.EMPTY);
diff --git a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexAndTraversalQueriesSimilarResultsCommonTest.java b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexAndTraversalQueriesSimilarResultsCommonTest.java
index 0b86a878cf..c3f871ba07 100644
--- a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexAndTraversalQueriesSimilarResultsCommonTest.java
+++ b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexAndTraversalQueriesSimilarResultsCommonTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.plugins.index.search.util.IndexDefinitionBuilder;
 import org.apache.jackrabbit.oak.query.AbstractQueryTest;
@@ -78,14 +77,14 @@ public abstract class IndexAndTraversalQueriesSimilarResultsCommonTest extends A
      * - The queries that have different results between traversal and the indexes, for the most part also produce
      * different results between Elastic and Lucene.
      */
-    protected List<String> queriesWithSameResults = ImmutableList.of(
+    protected List<String> queriesWithSameResults = List.of(
             // Full-text queries
             "/jcr:root//*[jcr:contains(@propa, '*')]",
             "/jcr:root//*[jcr:contains(@propa, '123*')]",
             "/jcr:root//*[jcr:contains(@propa, 'fal*')]"
     );
 
-    protected List<String> queriesWithDifferentResults = ImmutableList.of(
+    protected List<String> queriesWithDifferentResults = List.of(
             "/jcr:root//*[@propa]",
             "/jcr:root//*[@propa > 0]",
             "/jcr:root//*[@propa > '0']",
diff --git a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexExclusionQueryCommonTest.java b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexExclusionQueryCommonTest.java
index a813ebe4c9..82c40abcd1 100644
--- a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexExclusionQueryCommonTest.java
+++ b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexExclusionQueryCommonTest.java
@@ -22,7 +22,6 @@ import org.junit.Test;
 
 import java.util.List;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static javax.jcr.PropertyType.TYPENAME_BINARY;
 import static javax.jcr.PropertyType.TYPENAME_STRING;
 import static org.apache.jackrabbit.JcrConstants.JCR_LASTMODIFIED;
@@ -47,8 +46,8 @@ public abstract class IndexExclusionQueryCommonTest extends AbstractQueryTest {
     protected void createTestIndexNode() throws Exception {
         Tree index = createTestIndexNode(root.getTree("/"), indexOptions.getIndexType());
         index.setProperty(INCLUDE_PROPERTY_TYPES,
-                of(TYPENAME_BINARY, TYPENAME_STRING), STRINGS);
-        index.setProperty(EXCLUDE_PROPERTY_NAMES, of(NOT_IN), STRINGS);
+                List.of(TYPENAME_BINARY, TYPENAME_STRING), STRINGS);
+        index.setProperty(EXCLUDE_PROPERTY_NAMES, List.of(NOT_IN), STRINGS);
         TestUtil.useV2(index);
         root.commit();
     }
@@ -72,12 +71,12 @@ public abstract class IndexExclusionQueryCommonTest extends AbstractQueryTest {
                 + " and (@" + JCR_LASTMODIFIED
                 + " > xs:dateTime('2014-04-01T08:58:03.231Z')) ]";
 
-        TestUtil.assertEventually(() -> assertQuery(query, "xpath", of("/content/two")), 3000 * 3);
+        TestUtil.assertEventually(() -> assertQuery(query, "xpath", List.of("/content/two")), 3000 * 3);
     }
 
     @Test
     public void ignoreByName() throws Exception {
-        final List<String> expected = of("/content/two");
+        final List<String> expected = List.of("/content/two");
 
         Tree content = root.getTree("/").addChild("content");
         Tree one = content.addChild("one");
@@ -117,7 +116,7 @@ public abstract class IndexExclusionQueryCommonTest extends AbstractQueryTest {
         // Should not return /content/two since there, querty value is set for notincluded property which
         // is part of excluded properties in the index definition
 
-        TestUtil.assertEventually(() -> assertQuery(query, "xpath", of("/content/one")), 3000 * 3);
+        TestUtil.assertEventually(() -> assertQuery(query, "xpath", List.of("/content/one")), 3000 * 3);
     }
 
     @Test
@@ -138,7 +137,7 @@ public abstract class IndexExclusionQueryCommonTest extends AbstractQueryTest {
         // Assert /content/two is not returned since it matches 2014 from DATE type property field which is not part of
         // includePropertyTypes in the index definition
         String query = "/jcr:root/content//*[jcr:contains(., '2014')]";
-        TestUtil.assertEventually(() -> assertQuery(query, "xpath", of("/content/one")), 3000 * 3);
+        TestUtil.assertEventually(() -> assertQuery(query, "xpath", List.of("/content/one")), 3000 * 3);
     }
 
 }
diff --git a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexPlannerCommonTest.java b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexPlannerCommonTest.java
index ebba33eca4..e8a557e923 100644
--- a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexPlannerCommonTest.java
+++ b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexPlannerCommonTest.java
@@ -19,7 +19,6 @@
 package org.apache.jackrabbit.oak.plugins.index;
 
 import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants;
@@ -104,7 +103,7 @@ public abstract class IndexPlannerCommonTest {
         defn.setProperty(createProperty(ORDERED_PROP_NAMES, Set.of("foo"), STRINGS));
         IndexNode node = createIndexNode(getIndexDefinition(root, defn.getNodeState(), "/oak:index/" + indexName));
         FulltextIndexPlanner planner = getIndexPlanner(node, "/oak:index/" + indexName, createFilter("nt:base"),
-                ImmutableList.of(new QueryIndex.OrderEntry("foo", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
+                List.of(new QueryIndex.OrderEntry("foo", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
         assertNotNull(planner.getPlan());
         assertTrue(pr(planner.getPlan()).isUniquePathsRequired());
     }
@@ -114,7 +113,7 @@ public abstract class IndexPlannerCommonTest {
         NodeBuilder defn = getPropertyIndexDefinitionNodeBuilder(builder, indexName, Set.of("foo"), "async");
         IndexNode node = createIndexNode(getIndexDefinition(root, defn.getNodeState(), "/oak:index/" + indexName));
         FulltextIndexPlanner planner = getIndexPlanner(node, "/oak:index/" + indexName, createFilter("nt:file"),
-                ImmutableList.of(new QueryIndex.OrderEntry("jcr:score", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
+                List.of(new QueryIndex.OrderEntry("jcr:score", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
         assertNull(planner.getPlan());
     }
 
@@ -1158,7 +1157,7 @@ public abstract class IndexPlannerCommonTest {
 
         TestUtil.assertEventually(() -> {
             FulltextIndexPlanner planner = getIndexPlanner(node, "/oak:index/" + indexName, filter,
-                    ImmutableList.of(new QueryIndex.OrderEntry("bar", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
+                    List.of(new QueryIndex.OrderEntry("bar", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
             QueryIndex.IndexPlan plan = planner.getPlan();
             assertNotNull(plan);
 
@@ -1184,7 +1183,7 @@ public abstract class IndexPlannerCommonTest {
 
         TestUtil.assertEventually(() -> {
             FulltextIndexPlanner planner = getIndexPlanner(node, "/oak:index/" + indexName, filter,
-                    ImmutableList.of(new QueryIndex.OrderEntry("bar", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
+                    List.of(new QueryIndex.OrderEntry("bar", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
             QueryIndex.IndexPlan plan = planner.getPlan();
             assertNotNull(plan);
 
@@ -1338,7 +1337,7 @@ public abstract class IndexPlannerCommonTest {
 
         TestUtil.assertEventually(() -> {
             FulltextIndexPlanner planner = getIndexPlanner(node, "/oak:index/" + indexName, createFilter("nt:base"),
-                    ImmutableList.of(new QueryIndex.OrderEntry("foo", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING),
+                    List.of(new QueryIndex.OrderEntry("foo", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING),
                             new QueryIndex.OrderEntry("bar", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
             assertNotNull(planner.getPlan());
             assertEquals(1, planner.getPlan().getEstimatedEntryCount());
@@ -1356,7 +1355,7 @@ public abstract class IndexPlannerCommonTest {
 
         TestUtil.assertEventually(() -> {
             FulltextIndexPlanner planner = getIndexPlanner(node, "/oak:index/" + indexName, createFilter("nt:base"),
-                    ImmutableList.of(new QueryIndex.OrderEntry("foo", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING),
+                    List.of(new QueryIndex.OrderEntry("foo", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING),
                             new QueryIndex.OrderEntry("bar", Type.LONG, QueryIndex.OrderEntry.Order.ASCENDING)));
 
             assertNotNull(planner.getPlan());
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 38ac728f15..ab4936ef03 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
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.search;
 
 import java.util.ArrayList;
@@ -42,7 +41,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.toArray;
 import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
@@ -71,7 +69,7 @@ public class AggregateTest {
 
     @Test
     public void oneLevelAll() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("*")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("*")));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").child("c");
         nb.child("b");
@@ -83,7 +81,7 @@ public class AggregateTest {
 
     @Test
     public void oneLevelNamed() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("a")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("a")));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a");
         nb.child("b");
@@ -95,7 +93,7 @@ public class AggregateTest {
 
     @Test
     public void noOfChildNodeRead() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("a")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("a")));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a");
         for (int i = 0; i < 10; i++) {
@@ -119,7 +117,7 @@ public class AggregateTest {
 
     @Test
     public void oneLevelTyped() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("nt:resource","*", false)));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("nt:resource","*", false)));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").setProperty(JCR_PRIMARYTYPE,"nt:resource");
         nb.child("b");
@@ -131,7 +129,7 @@ public class AggregateTest {
 
     @Test
     public void oneLevelTypedMixin() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("mix:title","*", false)));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("mix:title","*", false)));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").setProperty(JcrConstants.JCR_MIXINTYPES, Collections.singleton("mix:title"), Type.NAMES);
         nb.child("b");
@@ -143,7 +141,7 @@ public class AggregateTest {
 
     @Test
     public void multiLevelAll() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("*"), ni("*/*")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("*"), ni("*/*")));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").child("c");
         nb.child("b");
@@ -156,7 +154,7 @@ public class AggregateTest {
 
     @Test
     public void multiLevelNamed() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("a"), ni("d/e")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("a"), ni("d/e")));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").child("c");
         nb.child("b");
@@ -169,7 +167,7 @@ public class AggregateTest {
 
     @Test
     public void multiLevelTyped() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("a"),
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("a"),
                 ni("nt:resource", "d/*/*", false)));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").child("c");
@@ -185,7 +183,7 @@ public class AggregateTest {
 
     @Test
     public void multiLevelNamedSubAll() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("a"), ni("d/*/*")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("a"), ni("d/*/*")));
         NodeBuilder nb = newNode("nt:base");
         nb.child("a").child("c");
         nb.child("b");
@@ -202,9 +200,9 @@ public class AggregateTest {
 
     @Test
     public void multiAggregateMapping() {
-        Aggregate ag = new Aggregate("nt:base", of(ni("*")));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni("*")));
 
-        Aggregate agFile = new Aggregate("nt:file", of(ni("*"), ni("*/*")));
+        Aggregate agFile = new Aggregate("nt:file", List.of(ni("*"), ni("*/*")));
         mapper.add("nt:file", agFile);
 
         NodeBuilder nb = newNode("nt:base");
@@ -220,7 +218,7 @@ public class AggregateTest {
 
     @Test
     public void recursionEnabled() {
-        Aggregate agFile = new Aggregate("nt:file", of(ni("*")), 5);
+        Aggregate agFile = new Aggregate("nt:file", List.of(ni("*")), 5);
         mapper.add("nt:file", agFile);
 
         NodeBuilder nb = newNode("nt:file");
@@ -237,7 +235,7 @@ public class AggregateTest {
     @Test
     public void recursionEnabledWithLimitCheck() {
         int limit = 5;
-        Aggregate agFile = new Aggregate("nt:file", of(ni("*")), limit);
+        Aggregate agFile = new Aggregate("nt:file", List.of(ni("*")), limit);
         mapper.add("nt:file", agFile);
 
         List<String> expectedPaths = new ArrayList<>();
@@ -265,12 +263,12 @@ public class AggregateTest {
 
     @Test
     public void includeMatches() {
-        Aggregate ag = new Aggregate("nt:base", of(ni(null, "*", true), ni(null, "*/*", true)));
+        Aggregate ag = new Aggregate("nt:base", List.of(ni(null, "*", true), ni(null, "*/*", true)));
         assertTrue(ag.hasRelativeNodeInclude("foo"));
         assertTrue(ag.hasRelativeNodeInclude("foo/bar"));
         assertFalse(ag.hasRelativeNodeInclude("foo/bar/baz"));
 
-        Aggregate ag2 = new Aggregate("nt:base", of(ni(null, "foo", true), ni(null, "foo/*", true)));
+        Aggregate ag2 = new Aggregate("nt:base", List.of(ni(null, "foo", true), ni(null, "foo/*", true)));
         assertTrue(ag2.hasRelativeNodeInclude("foo"));
         assertFalse(ag2.hasRelativeNodeInclude("bar"));
         assertTrue(ag2.hasRelativeNodeInclude("foo/bar"));
@@ -281,9 +279,9 @@ public class AggregateTest {
     public void testReaggregate() {
         //Enable relative include for all child nodes of nt:folder
         //So indexing would create fulltext field for each relative nodes
-        Aggregate agFolder = new Aggregate("nt:folder", of(ni("nt:file", "*", true)));
+        Aggregate agFolder = new Aggregate("nt:folder", List.of(ni("nt:file", "*", true)));
 
-        Aggregate agFile = new Aggregate("nt:file", of(ni(null, "jcr:content", true)));
+        Aggregate agFile = new Aggregate("nt:file", List.of(ni(null, "jcr:content", true)));
         mapper.add("nt:file", agFile);
         mapper.add("nt:folder", agFolder);
 
@@ -312,9 +310,9 @@ public class AggregateTest {
 
         //Enable relative include for all child nodes of nt:folder
         //So indexing would create fulltext field for each relative nodes
-        Aggregate agFolder = new Aggregate("nt:folder", of(ni("mix:title", "*", true)));
+        Aggregate agFolder = new Aggregate("nt:folder", List.of(ni("mix:title", "*", true)));
 
-        Aggregate agFile = new Aggregate("mix:title", of(ni(null, "jcr:content", true)));
+        Aggregate agFile = new Aggregate("mix:title", List.of(ni(null, "jcr:content", true)));
         mapper.add("mix:title", agFile);
         mapper.add("nt:folder", agFolder);
 
@@ -338,7 +336,7 @@ public class AggregateTest {
     public void testRelativeNodeInclude() {
         //Enable relative include for all child nodes of nt:folder
         //So indexing would create fulltext field for each relative nodes
-        Aggregate agContent = new Aggregate("app:Page", of(ni(null, "jcr:content", true)));
+        Aggregate agContent = new Aggregate("app:Page", List.of(ni(null, "jcr:content", true)));
 
         mapper.add("app:Page", agContent);
 
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtilTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtilTest.java
index 79f9ce11c5..d84e973f25 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtilTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/plugins/tree/TreeUtilTest.java
@@ -16,9 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.tree;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -310,7 +308,7 @@ public class TreeUtilTest extends AbstractTreeTest {
         Tree parent = when(mockTree("/some/tree", true).addChild("name")).thenReturn(t).getMock();
 
         when(ntDef.getProperty(JCR_HASORDERABLECHILDNODES)).thenReturn(PropertyStates.createProperty(JCR_HASORDERABLECHILDNODES, true, Type.BOOLEAN));
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithoutChildren);
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithoutChildren);
 
@@ -328,10 +326,10 @@ public class TreeUtilTest extends AbstractTreeTest {
         Tree defWithChild = mock(Tree.class);
         when(defWithChild.getProperty(JCR_DEFAULTPRIMARYTYPE)).thenReturn(PropertyStates.createProperty(JCR_DEFAULTPRIMARYTYPE, NT_OAK_UNSTRUCTURED, Type.NAME));
         when(defWithChild.getChild("name")).thenReturn(defWithChild);
-        when(defWithChild.getChildren()).thenReturn(ImmutableList.of(defWithChild));
+        when(defWithChild.getChildren()).thenReturn(List.of(defWithChild));
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithChild);
         
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithoutChildren);
         when(ntDef.getProperty(JCR_IS_ABSTRACT)).thenReturn(PropertyStates.createProperty(JCR_IS_ABSTRACT, true, Type.BOOLEAN));
         
@@ -418,7 +416,7 @@ public class TreeUtilTest extends AbstractTreeTest {
     @Test
     public void testAddMixinSuPrimary() throws Exception {
         when(ntDef.getProperty(JCR_ISMIXIN)).thenReturn(PropertyStates.createProperty(JCR_ISMIXIN, true, Type.BOOLEAN));
-        when(ntDef.getProperty(REP_PRIMARY_SUBTYPES)).thenReturn(PropertyStates.createProperty(REP_PRIMARY_SUBTYPES, ImmutableList.of(NT_OAK_UNSTRUCTURED), Type.NAMES));
+        when(ntDef.getProperty(REP_PRIMARY_SUBTYPES)).thenReturn(PropertyStates.createProperty(REP_PRIMARY_SUBTYPES, List.of(NT_OAK_UNSTRUCTURED), Type.NAMES));
         when(typeRoot.getChild("containsSubPrimary")).thenReturn(ntDef);
 
         TreeUtil.addMixin(child, "containsSubPrimary", typeRoot, "userId");
@@ -430,7 +428,7 @@ public class TreeUtilTest extends AbstractTreeTest {
     @Test
     public void testAddMixinSubMixin() throws Exception {
         when(ntDef.getProperty(JCR_ISMIXIN)).thenReturn(PropertyStates.createProperty(JCR_ISMIXIN, true, Type.BOOLEAN));
-        when(ntDef.getProperty(REP_MIXIN_SUBTYPES)).thenReturn(PropertyStates.createProperty(REP_MIXIN_SUBTYPES, ImmutableList.of(MIX_VERSIONABLE), Type.NAMES));
+        when(ntDef.getProperty(REP_MIXIN_SUBTYPES)).thenReturn(PropertyStates.createProperty(REP_MIXIN_SUBTYPES, List.of(MIX_VERSIONABLE), Type.NAMES));
         when(typeRoot.getChild("containsSubMixin")).thenReturn(ntDef);
 
         TreeUtil.addMixin(child, "containsSubMixin", typeRoot, "userId");
@@ -441,7 +439,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testAddMixin() throws Exception {
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
 
         when(ntDef.getProperty(JCR_ISMIXIN)).thenReturn(PropertyStates.createProperty(JCR_ISMIXIN, true, Type.BOOLEAN));
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithoutChildren);
@@ -457,8 +455,8 @@ public class TreeUtilTest extends AbstractTreeTest {
     @Test
     public void testAutoCreateItemsNoAutoCreateDefs() throws Exception {
         Tree noAutoCreate = when(mockTree("/definitions/definition/notAutoCreate", true).getProperty(JCR_AUTOCREATED)).thenReturn(PropertyStates.createProperty(JCR_AUTOCREATED, false)).getMock();
-        Tree defWithChildren = when(mockTree("/definitions/definition", true).getChildren()).thenReturn(ImmutableList.of(noAutoCreate)).getMock();
-        Tree definitions = when(mockTree("/definitions", true).getChildren()).thenReturn(ImmutableList.of(defWithChildren)).getMock();
+        Tree defWithChildren = when(mockTree("/definitions/definition", true).getChildren()).thenReturn(List.of(noAutoCreate)).getMock();
+        Tree definitions = when(mockTree("/definitions", true).getChildren()).thenReturn(List.of(defWithChildren)).getMock();
 
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(definitions);
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(definitions);
@@ -471,13 +469,13 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testAutoCreateItemsExcludedProperties() throws Exception {
-        List<Tree> list = ImmutableList.of(
+        List<Tree> list = List.of(
                 mockTree("/some/path/"+ REP_PRIMARY_TYPE, true),
                 mockTree("/some/path/" + REP_MIXIN_TYPES, true));
         Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(list).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithExcludedProperties);
 
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithoutChildren);
 
         TreeUtil.autoCreateItems(child, ntDef, typeRoot, "userId");
@@ -490,11 +488,11 @@ public class TreeUtilTest extends AbstractTreeTest {
     public void testAutoCreateItemsExistingUuid() throws Exception {
         Tree definition = when(mock(Tree.class).getProperty(JCR_AUTOCREATED)).thenReturn(PropertyStates.createProperty(JCR_AUTOCREATED, true)).getMock();
         Tree definitions = mockTree("/some/path/"+ REP_UUID, true);
-        when(definitions.getChildren()).thenReturn(ImmutableList.of(definition));
-        Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(definitions)).getMock();
+        when(definitions.getChildren()).thenReturn(List.of(definition));
+        Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(List.of(definitions)).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithExcludedProperties);
 
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithoutChildren);
 
         when(child.hasProperty(JCR_UUID)).thenReturn(true);
@@ -509,11 +507,11 @@ public class TreeUtilTest extends AbstractTreeTest {
     public void testAutoCreateItemsMissingUuid() throws Exception {
         Tree definition = when(mock(Tree.class).getProperty(JCR_AUTOCREATED)).thenReturn(PropertyStates.createProperty(JCR_AUTOCREATED, true)).getMock();
         Tree definitions = mockTree("/some/path/"+ REP_UUID, true);
-        when(definitions.getChildren()).thenReturn(ImmutableList.of(definition));
-        Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(definitions)).getMock();
+        when(definitions.getChildren()).thenReturn(List.of(definition));
+        Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(List.of(definitions)).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithExcludedProperties);
 
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithoutChildren);
 
         when(child.hasProperty(JCR_UUID)).thenReturn(false);
@@ -528,11 +526,11 @@ public class TreeUtilTest extends AbstractTreeTest {
     public void testAutoCreateItemsMissingDefaultValue() throws Exception {
         Tree definition = when(mock(Tree.class).getProperty(JCR_AUTOCREATED)).thenReturn(PropertyStates.createProperty(JCR_AUTOCREATED, true)).getMock();
         Tree definitions = mockTree("/some/path/unknownProperty", true);
-        when(definitions.getChildren()).thenReturn(ImmutableList.of(definition));
-        Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(definitions)).getMock();
+        when(definitions.getChildren()).thenReturn(List.of(definition));
+        Tree defWithExcludedProperties = when(mock(Tree.class).getChildren()).thenReturn(List.of(definitions)).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithExcludedProperties);
 
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithoutChildren);
 
         when(child.hasProperty("unknownProperty")).thenReturn(false);
@@ -543,12 +541,12 @@ public class TreeUtilTest extends AbstractTreeTest {
     public void testAutoCreateItemsExistingChild() throws Exception {
         Tree definition = when(mock(Tree.class).getProperty(JCR_AUTOCREATED)).thenReturn(PropertyStates.createProperty(JCR_AUTOCREATED, true)).getMock();
         Tree definitions = mockTree("/some/path/autoChild", true);
-        when(definitions.getChildren()).thenReturn(ImmutableList.of(definition));
+        when(definitions.getChildren()).thenReturn(List.of(definition));
 
-        Tree defWithAutoChild = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(definitions)).getMock();
+        Tree defWithAutoChild = when(mock(Tree.class).getChildren()).thenReturn(List.of(definitions)).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithAutoChild);
 
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithoutChildren);
 
         when(child.hasChild("autoChild")).thenReturn(true);
@@ -565,12 +563,12 @@ public class TreeUtilTest extends AbstractTreeTest {
         when(definition.getProperty(JCR_DEFAULTPRIMARYTYPE)).thenReturn(PropertyStates.createProperty(JCR_DEFAULTPRIMARYTYPE, NT_OAK_UNSTRUCTURED, Type.NAME));
 
         Tree definitions = mockTree("/some/path/autoChild", true);
-        when(definitions.getChildren()).thenReturn(ImmutableList.of(definition));
+        when(definitions.getChildren()).thenReturn(List.of(definition));
 
-        Tree defWithAutoChild = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(definitions)).getMock();
+        Tree defWithAutoChild = when(mock(Tree.class).getChildren()).thenReturn(List.of(definitions)).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(defWithAutoChild);
 
-        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree defWithoutChildren = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         when(ntDef.getChild(REP_NAMED_PROPERTY_DEFINITIONS)).thenReturn(defWithoutChildren);
 
         Tree newChild = mock(Tree.class);
@@ -606,7 +604,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testAutoCreatePropertyFromDefaultValues() {
-        PropertyState defaultSingleValue = PropertyStates.createProperty(JCR_DEFAULTVALUES, ImmutableList.of(34L), Type.LONGS);
+        PropertyState defaultSingleValue = PropertyStates.createProperty(JCR_DEFAULTVALUES, List.of(34L), Type.LONGS);
         when(propDef.getProperty(JCR_DEFAULTVALUES)).thenReturn(defaultSingleValue);
         when(propDef.getProperty(JCR_MULTIPLE)).thenReturn(PropertyStates.createProperty(JCR_MULTIPLE, false));
 
@@ -619,7 +617,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testAutoCreatePropertyFromEmptyDefaultValues() {
-        PropertyState defaultSingleValue = PropertyStates.createProperty(JCR_DEFAULTVALUES, ImmutableList.of(), Type.DATES);
+        PropertyState defaultSingleValue = PropertyStates.createProperty(JCR_DEFAULTVALUES, List.of(), Type.DATES);
         when(propDef.getProperty(JCR_DEFAULTVALUES)).thenReturn(defaultSingleValue);
         when(propDef.getProperty(JCR_MULTIPLE)).thenReturn(PropertyStates.createProperty(JCR_MULTIPLE, false));
 
@@ -629,7 +627,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testAutoCreatePropertyFromMvDefaultValues() {
-        PropertyState defaultMvValue = PropertyStates.createProperty(JCR_DEFAULTVALUES, ImmutableList.of(true, false, true), Type.BOOLEANS);
+        PropertyState defaultMvValue = PropertyStates.createProperty(JCR_DEFAULTVALUES, List.of(true, false, true), Type.BOOLEANS);
         when(propDef.getProperty(JCR_DEFAULTVALUES)).thenReturn(defaultMvValue);
         when(propDef.getProperty(JCR_MULTIPLE)).thenReturn(PropertyStates.createProperty(JCR_MULTIPLE, true));
 
@@ -643,7 +641,7 @@ public class TreeUtilTest extends AbstractTreeTest {
     @Test
     public void testGetDefaultChildTypeFromNamed() {
         Tree def = mock(Tree.class);
-        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(def)).getMock();
+        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(List.of(def)).getMock();
         PropertyState ps = PropertyStates.createProperty(JCR_DEFAULTPRIMARYTYPE, NT_RESOURCE, Type.NAME);
         when(def.getProperty(JCR_DEFAULTPRIMARYTYPE)).thenReturn(ps);
         PropertyState sns = PropertyStates.createProperty(JCR_SAMENAMESIBLINGS, false, Type.BOOLEAN);
@@ -652,7 +650,7 @@ public class TreeUtilTest extends AbstractTreeTest {
         Tree named = when(mock(Tree.class).getChild("newChild")).thenReturn(definitions).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(named);
 
-        Tree emptyDefinitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(def)).getMock();
+        Tree emptyDefinitions = when(mock(Tree.class).getChildren()).thenReturn(List.of(def)).getMock();
         when(ntDef.getChild(REP_RESIDUAL_CHILD_NODE_DEFINITIONS)).thenReturn(emptyDefinitions);
 
         assertEquals(NT_RESOURCE, TreeUtil.getDefaultChildType(typeRoot, child, "newChild"));
@@ -662,7 +660,7 @@ public class TreeUtilTest extends AbstractTreeTest {
     @Test
     public void testGetDefaultChildTypeFromNamedWithSns() {
         Tree def = mock(Tree.class);
-        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(def)).getMock();
+        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(List.of(def)).getMock();
         PropertyState ps = PropertyStates.createProperty(JCR_DEFAULTPRIMARYTYPE, NT_RESOURCE, Type.NAME);
         when(def.getProperty(JCR_DEFAULTPRIMARYTYPE)).thenReturn(ps);
         PropertyState sns = PropertyStates.createProperty(JCR_SAMENAMESIBLINGS, true, Type.BOOLEAN);
@@ -677,7 +675,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testGetDefaultChildTypeFromResidual() {
-        Tree emptyDefinitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree emptyDefinitions = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         Tree named = when(mock(Tree.class).getChild("newChild")).thenReturn(emptyDefinitions).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(named);
 
@@ -686,7 +684,7 @@ public class TreeUtilTest extends AbstractTreeTest {
         when(def.getProperty(JCR_DEFAULTPRIMARYTYPE)).thenReturn(ps);
         PropertyState sns = PropertyStates.createProperty(JCR_SAMENAMESIBLINGS, false, Type.BOOLEAN);
         when(def.getProperty(JCR_SAMENAMESIBLINGS)).thenReturn(sns);
-        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(def)).getMock();
+        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(List.of(def)).getMock();
         when(ntDef.getChild(REP_RESIDUAL_CHILD_NODE_DEFINITIONS)).thenReturn(definitions);
 
         assertEquals(NT_RESOURCE, TreeUtil.getDefaultChildType(typeRoot, child, "newChild"));
@@ -695,7 +693,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testGetDefaultChildTypeFromResidualSns() {
-        Tree emptyDefinitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of()).getMock();
+        Tree emptyDefinitions = when(mock(Tree.class).getChildren()).thenReturn(List.of()).getMock();
         Tree named = when(mock(Tree.class).getChild("newChild")).thenReturn(emptyDefinitions).getMock();
         when(ntDef.getChild(REP_NAMED_CHILD_NODE_DEFINITIONS)).thenReturn(named);
 
@@ -704,7 +702,7 @@ public class TreeUtilTest extends AbstractTreeTest {
         when(def.getProperty(JCR_DEFAULTPRIMARYTYPE)).thenReturn(ps);
         PropertyState sns = PropertyStates.createProperty(JCR_SAMENAMESIBLINGS, true, Type.BOOLEAN);
         when(def.getProperty(JCR_SAMENAMESIBLINGS)).thenReturn(sns);
-        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(def)).getMock();
+        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(List.of(def)).getMock();
         when(ntDef.getChild(REP_RESIDUAL_CHILD_NODE_DEFINITIONS)).thenReturn(definitions);
 
         assertEquals(NT_RESOURCE, TreeUtil.getDefaultChildType(typeRoot, child, "newChild"));
@@ -718,25 +716,25 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testGetEffectiveTypeNoMixins() {
-        assertEquals(ImmutableList.of(ntDef), TreeUtil.getEffectiveType(z, typeRoot));
+        assertEquals(List.of(ntDef), TreeUtil.getEffectiveType(z, typeRoot));
     }
 
     @Test
     public void testGetEffectiveType() {
-        assertEquals(ImmutableList.of(ntDef, ntDef, ntDef), TreeUtil.getEffectiveType(child, typeRoot));
+        assertEquals(List.of(ntDef, ntDef, ntDef), TreeUtil.getEffectiveType(child, typeRoot));
     }
 
     @Test
     public void testGetEffectiveTypeNonExistingPrimaryDef() {
-        assertEquals(ImmutableList.of(), TreeUtil.getEffectiveType(mockTree("/anotherTree", rootTree, false, "rep:NonExistingType"), typeRoot));
+        assertEquals(List.of(), TreeUtil.getEffectiveType(mockTree("/anotherTree", rootTree, false, "rep:NonExistingType"), typeRoot));
     }
 
     @Test
     public void testGetEffectiveTypeNonExistingMixinDef() {
         Tree tree = mockTree("/anotherTree", rootTree, false);
-        when(tree.getProperty(JCR_MIXINTYPES)).thenReturn(PropertyStates.createProperty(JCR_MIXINTYPES, ImmutableList.of("rep:NonExistingType"), Type.NAMES));
+        when(tree.getProperty(JCR_MIXINTYPES)).thenReturn(PropertyStates.createProperty(JCR_MIXINTYPES, List.of("rep:NonExistingType"), Type.NAMES));
 
-        assertEquals(ImmutableList.of(), TreeUtil.getEffectiveType(tree, typeRoot));
+        assertEquals(List.of(), TreeUtil.getEffectiveType(tree, typeRoot));
     }
 
     @Test
@@ -748,7 +746,7 @@ public class TreeUtilTest extends AbstractTreeTest {
     @Test
     public void testFindDefaultPrimaryType() {
         Tree def = mock(Tree.class);
-        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(ImmutableList.of(def)).getMock();
+        Tree definitions = when(mock(Tree.class).getChildren()).thenReturn(List.of(def)).getMock();
         assertNull(TreeUtil.findDefaultPrimaryType(definitions, false));
         assertNull(TreeUtil.findDefaultPrimaryType(definitions, true));
 
@@ -782,7 +780,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testIsNodeTypeContainedInSupertypes() {
-        PropertyState supertypes = PropertyStates.createProperty(REP_SUPERTYPES, ImmutableList.of(NT_BASE), Type.NAMES);
+        PropertyState supertypes = PropertyStates.createProperty(REP_SUPERTYPES, List.of(NT_BASE), Type.NAMES);
         when(ntDef.getProperty(REP_SUPERTYPES)).thenReturn(supertypes);
 
         assertTrue(TreeUtil.isNodeType(child, NT_BASE, typeRoot));
@@ -797,7 +795,7 @@ public class TreeUtilTest extends AbstractTreeTest {
 
     @Test
     public void testIsNodeTypeMixinContainedInSupertypes() {
-        PropertyState supertypes = PropertyStates.createProperty(REP_SUPERTYPES, ImmutableList.of(MIX_REFERENCEABLE), Type.NAMES);
+        PropertyState supertypes = PropertyStates.createProperty(REP_SUPERTYPES, List.of(MIX_REFERENCEABLE), Type.NAMES);
         when(ntDef.getProperty(REP_SUPERTYPES)).thenReturn(supertypes);
 
         PropertyState mixinNames = PropertyStates.createProperty(JcrConstants.JCR_MIXINTYPES, List.of(JcrConstants.MIX_VERSIONABLE), Type.NAMES);
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/CompositeConfigurationTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/CompositeConfigurationTest.java
index 20e0a06213..78e8037880 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/CompositeConfigurationTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/CompositeConfigurationTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.plugins.tree.RootProvider;
 import org.apache.jackrabbit.oak.plugins.tree.TreeProvider;
@@ -251,7 +250,7 @@ public class CompositeConfigurationTest extends AbstractCompositeConfigurationTe
             @NotNull
             @Override
             public List<ProtectedItemImporter> getProtectedItemImporters() {
-                return ImmutableList.of(mock(ProtectedItemImporter.class));
+                return List.of(mock(ProtectedItemImporter.class));
             }
         };
         addConfiguration(withImporter);
@@ -270,7 +269,7 @@ public class CompositeConfigurationTest extends AbstractCompositeConfigurationTe
             @NotNull
             @Override
             public List<ThreeWayConflictHandler> getConflictHandlers() {
-                return ImmutableList.of(mock(ThreeWayConflictHandler.class));
+                return List.of(mock(ThreeWayConflictHandler.class));
             }
         };
         addConfiguration(withConflictHandler);
@@ -289,7 +288,7 @@ public class CompositeConfigurationTest extends AbstractCompositeConfigurationTe
             @NotNull
             @Override
             public List<? extends CommitHook> getCommitHooks(@NotNull String workspaceName) {
-                return ImmutableList.of(mock(CommitHook.class));
+                return List.of(mock(CommitHook.class));
             }
         };
         addConfiguration(withCommitHook);
@@ -308,7 +307,7 @@ public class CompositeConfigurationTest extends AbstractCompositeConfigurationTe
             @NotNull
             @Override
             public List<? extends ValidatorProvider> getValidators(@NotNull String workspaceName, @NotNull Set<Principal> principals, @NotNull MoveTracker moveTracker) {
-                return ImmutableList.of(mock(ValidatorProvider.class));
+                return List.of(mock(ValidatorProvider.class));
             }
         };
         addConfiguration(withValidator);
@@ -402,7 +401,7 @@ public class CompositeConfigurationTest extends AbstractCompositeConfigurationTe
             @NotNull
             @Override
             public Iterable<Monitor<?>> getMonitors(@NotNull StatisticsProvider statisticsProvider) {
-                return ImmutableList.of(monitor);
+                return List.of(monitor);
             }
         };
         addConfiguration(withMonitors);
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProviderTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProviderTest.java
index 16c53ce070..7b2830201e 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProviderTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProviderTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.token;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.junit.Before;
@@ -26,6 +24,7 @@ import org.junit.Test;
 import javax.jcr.Credentials;
 import javax.jcr.GuestCredentials;
 import javax.jcr.SimpleCredentials;
+import java.util.List;
 import java.util.Map;
 
 import static org.junit.Assert.assertFalse;
@@ -58,7 +57,7 @@ public class CompositeTokenProviderTest {
     public void testNullProvider() {
         TokenProvider tp = CompositeTokenProvider.newInstance();
 
-        assertSame(tp, CompositeTokenProvider.newInstance(ImmutableList.<TokenProvider>of()));
+        assertSame(tp, CompositeTokenProvider.newInstance(List.of()));
 
         Credentials creds = new Credentials() {};
 
@@ -82,7 +81,7 @@ public class CompositeTokenProviderTest {
         TokenProvider tp = CompositeTokenProvider.newInstance(base);
 
         assertSame(base, tp);
-        assertSame(base, CompositeTokenProvider.newInstance(ImmutableList.of(base)));
+        assertSame(base, CompositeTokenProvider.newInstance(List.of(base)));
     }
 
     @Test
@@ -93,7 +92,7 @@ public class CompositeTokenProviderTest {
     @Test
     public void testCreateCompositeProviderFromList() {
         TokenProvider base = mock(TokenProvider.class);
-        TokenProvider tp = CompositeTokenProvider.newInstance(ImmutableList.of(base, base));
+        TokenProvider tp = CompositeTokenProvider.newInstance(List.of(base, base));
         assertTrue(tp instanceof CompositeTokenProvider);
     }
 
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ACETest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ACETest.java
index bf051f79d4..356f1567e4 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ACETest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ACETest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeCollection;
@@ -43,7 +42,9 @@ import javax.jcr.ValueFormatException;
 import javax.jcr.security.AccessControlException;
 import javax.jcr.security.Privilege;
 import java.security.Principal;
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 import static org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants.JCR_READ;
@@ -105,7 +106,7 @@ public class ACETest extends AbstractAccessControlTest {
     }
 
     private Restriction createRestriction(String name, Value[] values) throws Exception {
-        return new RestrictionImpl(PropertyStates.createProperty(name, ImmutableList.copyOf(values)), false);
+        return new RestrictionImpl(PropertyStates.createProperty(name, Arrays.asList(values)), false);
     }
 
     @Test
@@ -216,7 +217,7 @@ public class ACETest extends AbstractAccessControlTest {
     @Test
     public void testRestrictions() {
         Restriction r = new RestrictionImpl(PropertyStates.createProperty("r", "v"), false);
-        Restriction r2 = new RestrictionImpl(PropertyStates.createProperty("r2", ImmutableList.of("v"), Type.STRINGS), false);
+        Restriction r2 = new RestrictionImpl(PropertyStates.createProperty("r2", List.of("v"), Type.STRINGS), false);
         Set<Restriction> restrictions = Set.of(r, r2);
         ACE ace = mockACE(testPrincipal, PrivilegeBits.BUILT_IN.get(JCR_READ), true, restrictions);
         assertFalse(ace.getRestrictions().isEmpty());
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java
index 39c60303c0..fa2aa9b85b 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java
@@ -28,7 +28,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
@@ -134,7 +133,7 @@ public class AbstractAccessControlListTest extends AbstractAccessControlTest {
     @Test
     public void testGetNamePathMapper() {
         assertSame(getNamePathMapper(), createEmptyACL().getNamePathMapper());
-        assertSame(NamePathMapper.DEFAULT, createACL(getTestPath(), ImmutableList.<JackrabbitAccessControlEntry>of(), NamePathMapper.DEFAULT).getNamePathMapper());
+        assertSame(NamePathMapper.DEFAULT, createACL(getTestPath(), List.of(), NamePathMapper.DEFAULT).getNamePathMapper());
     }
 
     @Test
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
index 063c78f9d9..b515b90de4 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
@@ -24,7 +24,6 @@ import java.util.Set;
 import javax.jcr.Session;
 
 import org.apache.jackrabbit.guava.common.base.Splitter;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
@@ -208,7 +207,7 @@ public class PermissionsTest {
 
     @Test
     public void testIsAggregate() {
-        List<Long> aggregates = ImmutableList.of(Permissions.ALL, Permissions.WRITE, Permissions.READ, Permissions.SET_PROPERTY, Permissions.REMOVE);
+        List<Long> aggregates = List.of(Permissions.ALL, Permissions.WRITE, Permissions.READ, Permissions.SET_PROPERTY, Permissions.REMOVE);
         for (long permission : Permissions.PERMISSION_NAMES.keySet()) {
             if (aggregates.contains(permission)) {
                 assertTrue(Permissions.getString(permission), Permissions.isAggregate(permission));
@@ -245,7 +244,7 @@ public class PermissionsTest {
         assertFalse(Iterables.contains(aggregates, Permissions.ALL));
 
         Set<Long> expected = new HashSet<>(Permissions.PERMISSION_NAMES.keySet());
-        expected.removeAll(ImmutableList.of(Permissions.ALL, Permissions.WRITE, Permissions.READ, Permissions.SET_PROPERTY, Permissions.REMOVE));
+        expected.removeAll(List.of(Permissions.ALL, Permissions.WRITE, Permissions.READ, Permissions.SET_PROPERTY, Permissions.REMOVE));
 
         assertEquals(expected, CollectionUtils.toSet(aggregates));
     }
@@ -260,7 +259,7 @@ public class PermissionsTest {
 
     @Test
     public void testRespectParentPermissions() {
-        List<Long> permissions = ImmutableList.of(
+        List<Long> permissions = List.of(
                 Permissions.ALL,
                 Permissions.ADD_NODE,
                 Permissions.ADD_NODE|Permissions.ADD_PROPERTY,
@@ -278,7 +277,7 @@ public class PermissionsTest {
 
     @Test
     public void testNotRespectParentPermissions() {
-        List<Long> permissions = ImmutableList.of(
+        List<Long> permissions = List.of(
                 Permissions.READ,
                 Permissions.ADD_PROPERTY,
                 Permissions.REMOVE_PROPERTY,
@@ -357,7 +356,7 @@ public class PermissionsTest {
     @Test
     public void testGetPermissionsFromInvalidActions() {
         TreeLocation tl = TreeLocation.create(existingTree);
-        List<String> l = ImmutableList.of(
+        List<String> l = List.of(
                 Session.ACTION_READ + ",invalid", "invalid", "invalid," + Session.ACTION_REMOVE
         );
 
@@ -555,7 +554,7 @@ public class PermissionsTest {
 
     @Test
     public void testGetPermissionsForRegularPaths() {
-        for (String path : ImmutableList.of("/", "/a/b/c", "/myfile/jcr:content")) {
+        for (String path : List.of("/", "/a/b/c", "/myfile/jcr:content")) {
             for (long defaultPermission : Permissions.PERMISSION_NAMES.keySet()) {
                 assertEquals(defaultPermission, Permissions.getPermission(path, defaultPermission));
             }
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositePatternTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositePatternTest.java
index 2a808817a4..86a54e9913 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositePatternTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositePatternTest.java
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.spi.security.authorization.restriction;
 
 import java.util.List;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
@@ -32,24 +32,24 @@ import static org.junit.Assert.assertTrue;
 
 public class CompositePatternTest {
 
-    private final RestrictionPattern alwaysMatching = CompositePattern.create(ImmutableList.of(TestRestrictionPatter.INSTANCE_TRUE, TestRestrictionPatter.INSTANCE_TRUE));
-    private final RestrictionPattern neverMatching = CompositePattern.create(ImmutableList.of(TestRestrictionPatter.INSTANCE_TRUE, TestRestrictionPatter.INSTANCE_FALSE));
+    private final RestrictionPattern alwaysMatching = CompositePattern.create(List.of(TestRestrictionPatter.INSTANCE_TRUE, TestRestrictionPatter.INSTANCE_TRUE));
+    private final RestrictionPattern neverMatching = CompositePattern.create(List.of(TestRestrictionPatter.INSTANCE_TRUE, TestRestrictionPatter.INSTANCE_FALSE));
 
     @Test
     public void testCreateFromEmptyList() {
-        RestrictionPattern rp = CompositePattern.create(ImmutableList.of());
+        RestrictionPattern rp = CompositePattern.create(List.of());
         assertSame(RestrictionPattern.EMPTY, rp);
     }
 
     @Test
     public void testCreateFromSingletonList() {
-        RestrictionPattern rp = CompositePattern.create(ImmutableList.of(TestRestrictionPatter.INSTANCE_TRUE));
+        RestrictionPattern rp = CompositePattern.create(List.of(TestRestrictionPatter.INSTANCE_TRUE));
         assertSame(TestRestrictionPatter.INSTANCE_TRUE, rp);
     }
 
     @Test
     public void testCreateFromList() {
-        RestrictionPattern rp = CompositePattern.create(ImmutableList.of(TestRestrictionPatter.INSTANCE_TRUE, TestRestrictionPatter.INSTANCE_FALSE));
+        RestrictionPattern rp = CompositePattern.create(List.of(TestRestrictionPatter.INSTANCE_TRUE, TestRestrictionPatter.INSTANCE_FALSE));
         assertTrue(rp instanceof CompositePattern);
     }
 
@@ -61,7 +61,7 @@ public class CompositePatternTest {
 
     @Test
     public void testMatchesPath() {
-        List<String> paths = ImmutableList.of("/", "/a", "/a/b/c", "");
+        List<String> paths = List.of("/", "/a", "/a/b/c", "");
 
         for (String path : paths) {
             assertTrue(alwaysMatching.matches(path));
@@ -71,7 +71,7 @@ public class CompositePatternTest {
 
     @Test
     public void testMatchesPathIsProperty() {
-        List<String> paths = ImmutableList.of("/", "/a", "/a/b/c", "");
+        List<String> paths = List.of("/", "/a", "/a/b/c", "");
 
         for (String path : paths) {
             assertTrue(alwaysMatching.matches(path, true));
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositeRestrictionProviderTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositeRestrictionProviderTest.java
index f4c1ad1b62..a7091a01ac 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositeRestrictionProviderTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/CompositeRestrictionProviderTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.restriction;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -66,9 +65,9 @@ public class CompositeRestrictionProviderTest implements AccessControlConstants
     private static final String NAME_BOOLEAN = "boolean";
 
     private static final Restriction GLOB_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty(REP_GLOB, "*"), false);
-    private static final Restriction NT_PREFIXES_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty(REP_PREFIXES, ImmutableList.of(), Type.STRINGS), false);
+    private static final Restriction NT_PREFIXES_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty(REP_PREFIXES, List.of(), Type.STRINGS), false);
     private static final Restriction MANDATORY_BOOLEAN_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty(NAME_BOOLEAN, true, Type.BOOLEAN), true);
-    private static final Restriction LONGS_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty(NAME_LONGS, ImmutableList.of(Long.MAX_VALUE), Type.LONGS), false);
+    private static final Restriction LONGS_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty(NAME_LONGS, List.of(Long.MAX_VALUE), Type.LONGS), false);
     private static final Restriction UNKNOWN_RESTRICTION = new RestrictionImpl(PropertyStates.createProperty("unknown", "string"), false);
 
     private final AbstractRestrictionProvider rp1 = spy(createRestrictionProvider(GLOB_RESTRICTION.getDefinition(), NT_PREFIXES_RESTRICTION.getDefinition()));
@@ -300,7 +299,7 @@ public class CompositeRestrictionProviderTest implements AccessControlConstants
 
     @Test(expected = AccessControlException.class)
     public void testValidateRestrictionsInvalidDefinition() throws Exception {
-        Restriction rWithInvalidDefinition = new RestrictionImpl(PropertyStates.createProperty(REP_GLOB, ImmutableList.of("str", "str2"), Type.STRINGS), false);
+        Restriction rWithInvalidDefinition = new RestrictionImpl(PropertyStates.createProperty(REP_GLOB, List.of("str", "str2"), Type.STRINGS), false);
         Tree aceTree = getAceTree(rWithInvalidDefinition, MANDATORY_BOOLEAN_RESTRICTION);
 
         RestrictionProvider rp = createRestrictionProvider(null, rWithInvalidDefinition, GLOB_RESTRICTION.getDefinition());
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImplTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImplTest.java
index bc099e5f0c..cbc4f716bd 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImplTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImplTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authorization.restriction;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
@@ -112,7 +111,7 @@ public class RestrictionImplTest {
         // - different type
         rs.add(new RestrictionImpl(PropertyStates.createProperty(name, value, Type.STRING), isMandatory));
         // - different multi-value status
-        rs.add(new RestrictionImpl(PropertyStates.createProperty(name, ImmutableList.of(value), Type.NAMES), isMandatory));
+        rs.add(new RestrictionImpl(PropertyStates.createProperty(name, List.of(value), Type.NAMES), isMandatory));
         // - different name
         rs.add(new RestrictionImpl(createProperty("otherName", value, type), isMandatory));
         // - different value
@@ -151,7 +150,7 @@ public class RestrictionImplTest {
         // - different type
         rs.add(new RestrictionImpl(PropertyStates.createProperty(name, value, Type.STRING), isMandatory));
         // - different multi-value status
-        rs.add(new RestrictionImpl(PropertyStates.createProperty(name, ImmutableList.of(value), Type.NAMES), isMandatory));
+        rs.add(new RestrictionImpl(PropertyStates.createProperty(name, List.of(value), Type.NAMES), isMandatory));
         // - different name
         rs.add(new RestrictionImpl(createProperty("otherName", value, type), isMandatory));
         // - different value
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
index df88787fb7..9fae2b7021 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
@@ -27,7 +27,6 @@ import java.util.Random;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
@@ -53,7 +52,7 @@ public class CompositePrincipalProviderTest {
 
     private final TestPrincipalProvider pp1 = new TestPrincipalProvider();
     private final TestPrincipalProvider pp2 = new TestPrincipalProvider("p1", "p2");
-    private final PrincipalProvider cpp = CompositePrincipalProvider.of(ImmutableList.<PrincipalProvider>of(pp1, pp2));
+    private final PrincipalProvider cpp = CompositePrincipalProvider.of(List.<PrincipalProvider>of(pp1, pp2));
 
     private Iterable<Principal> testPrincipals() {
         return Iterables.concat(pp1.getTestPrincipals(), pp2.getTestPrincipals());
@@ -65,13 +64,13 @@ public class CompositePrincipalProviderTest {
 
     @Test
     public void testOfEmptyList() {
-        assertSame(EmptyPrincipalProvider.INSTANCE, CompositePrincipalProvider.of(ImmutableList.<PrincipalProvider>of()));
+        assertSame(EmptyPrincipalProvider.INSTANCE, CompositePrincipalProvider.of(List.<PrincipalProvider>of()));
     }
 
     @Test
     public void testOfSingletonList() {
         PrincipalProvider pp = new TestPrincipalProvider(true);
-        assertSame(pp, CompositePrincipalProvider.of(ImmutableList.of(pp)));
+        assertSame(pp, CompositePrincipalProvider.of(List.of(pp)));
     }
 
     @Test
@@ -107,7 +106,7 @@ public class CompositePrincipalProviderTest {
         ItemBasedPrincipal p = mock(ItemBasedPrincipal.class);
         PrincipalProvider pp = when(mock(PrincipalProvider.class).getItemBasedPrincipal(anyString())).thenReturn(p).getMock();
 
-        assertEquals(p, CompositePrincipalProvider.of(ImmutableList.of(pp, pp2)).getItemBasedPrincipal("/any/path"));
+        assertEquals(p, CompositePrincipalProvider.of(List.of(pp, pp2)).getItemBasedPrincipal("/any/path"));
     }
 
     @Test
@@ -165,7 +164,7 @@ public class CompositePrincipalProviderTest {
      */
     @Test
     public void testRangeDefault() {
-        List<? extends Principal> pps = ImmutableList.of(new PrincipalImpl("p0"), new PrincipalImpl("p1"),
+        List<? extends Principal> pps = List.of(new PrincipalImpl("p0"), new PrincipalImpl("p1"),
                 new PrincipalImpl("p2"));
 
         PrincipalProvider pp = new PrincipalProvider() {
@@ -271,7 +270,7 @@ public class CompositePrincipalProviderTest {
         // NOTE: CompositePrincipalProvider passes 0 offset to the aggregated provider!
         when(pp.findPrincipals("p", false, PrincipalManager.SEARCH_TYPE_ALL, 0, 3)).thenReturn(principals);
 
-        PrincipalProvider cpp = CompositePrincipalProvider.of(ImmutableList.of(pp, EmptyPrincipalProvider.INSTANCE));
+        PrincipalProvider cpp = CompositePrincipalProvider.of(List.of(pp, EmptyPrincipalProvider.INSTANCE));
 
         Iterator<? extends Principal> it = cpp.findPrincipals("p", false, PrincipalManager.SEARCH_TYPE_ALL, 2, 1);
         assertTrue(it.hasNext());
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java
index 06c9126bde..dc09be37d4 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java
@@ -16,10 +16,10 @@
  */
 package org.apache.jackrabbit.oak.spi.security.privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.junit.Test;
 import org.mockito.Mockito;
 
+import java.util.List;
 import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
@@ -29,7 +29,7 @@ import static org.mockito.Mockito.when;
 
 public class ImmutablePrivilegeDefinitionTest {
 
-    private final ImmutablePrivilegeDefinition def = new ImmutablePrivilegeDefinition("name", true, ImmutableList.of("aggrName"));
+    private final ImmutablePrivilegeDefinition def = new ImmutablePrivilegeDefinition("name", true, List.of("aggrName"));
 
     @Test
     public void testGetName() {
@@ -72,17 +72,17 @@ public class ImmutablePrivilegeDefinitionTest {
 
         assertNotEquals(def, otherDef);
         assertNotEquals(def, null);
-        assertNotEquals(def, new ImmutablePrivilegeDefinition("othername", true, ImmutableList.of("aggrName")));
-        assertNotEquals(def, new ImmutablePrivilegeDefinition("name", false, ImmutableList.of("aggrName")));
-        assertNotEquals(def, new ImmutablePrivilegeDefinition("name", true, ImmutableList.of("anotherName")));
-        assertNotEquals(def, new ImmutablePrivilegeDefinition("name", true, ImmutableList.of()));
-        assertNotEquals(def, new ImmutablePrivilegeDefinition("otherName", false, ImmutableList.of("aggrName","aggrName2")));
+        assertNotEquals(def, new ImmutablePrivilegeDefinition("othername", true, List.of("aggrName")));
+        assertNotEquals(def, new ImmutablePrivilegeDefinition("name", false, List.of("aggrName")));
+        assertNotEquals(def, new ImmutablePrivilegeDefinition("name", true, List.of("anotherName")));
+        assertNotEquals(def, new ImmutablePrivilegeDefinition("name", true, List.of()));
+        assertNotEquals(def, new ImmutablePrivilegeDefinition("otherName", false, List.of("aggrName","aggrName2")));
     }
 
     @Test
     public void testToString() {
         assertEquals(def.toString(), def.toString());
         assertEquals(def.toString(), new ImmutablePrivilegeDefinition(def.getName(), def.isAbstract(), def.getDeclaredAggregateNames()).toString());
-        assertEquals(def.toString(), new ImmutablePrivilegeDefinition(def.getName(), def.isAbstract(), ImmutableList.of()).toString());
+        assertEquals(def.toString(), new ImmutablePrivilegeDefinition(def.getName(), def.isAbstract(), List.of()).toString());
     }
 }
\ No newline at end of file
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProviderTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProviderTest.java
index 048a25e0b7..6c0f8bead4 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProviderTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProviderTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.privilege;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -34,6 +33,7 @@ import org.mockito.Mockito;
 import javax.jcr.security.AccessControlException;
 import javax.jcr.security.Privilege;
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
@@ -111,7 +111,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsEmptyIterable() {
-        assertSame(PrivilegeBits.EMPTY, bitsProvider.getBits(ImmutableList.of()));
+        assertSame(PrivilegeBits.EMPTY, bitsProvider.getBits(List.of()));
     }
 
     @Test
@@ -124,7 +124,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsBuiltInSingleton() {
-        PrivilegeBits bits = bitsProvider.getBits(ImmutableList.of(JCR_LOCK_MANAGEMENT));
+        PrivilegeBits bits = bitsProvider.getBits(List.of(JCR_LOCK_MANAGEMENT));
         assertFalse(bits.isEmpty());
 
         assertEquals(PrivilegeBits.BUILT_IN.get(JCR_LOCK_MANAGEMENT), bits);
@@ -141,7 +141,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsBuiltInIterable() {
-        PrivilegeBits bits = bitsProvider.getBits(ImmutableList.of(JCR_ADD_CHILD_NODES, JCR_REMOVE_CHILD_NODES));
+        PrivilegeBits bits = bitsProvider.getBits(List.of(JCR_ADD_CHILD_NODES, JCR_REMOVE_CHILD_NODES));
         assertFalse(bits.isEmpty());
 
         PrivilegeBits mod = PrivilegeBits.getInstance(bitsProvider.getBits(JCR_ADD_CHILD_NODES)).add(bitsProvider.getBits(JCR_REMOVE_CHILD_NODES));
@@ -167,7 +167,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsTwiceSingleBuiltIn() {
-        Iterable<String> names = ImmutableList.of(JCR_ADD_CHILD_NODES);
+        Iterable<String> names = List.of(JCR_ADD_CHILD_NODES);
         PrivilegeBits bits1 = bitsProvider.getBits(names);
         PrivilegeBits bits2 = bitsProvider.getBits(names);
 
@@ -180,7 +180,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsTwiceMultipleBuiltIn() {
-        Iterable<String> names = ImmutableList.of(JCR_ADD_CHILD_NODES, JCR_REMOVE_CHILD_NODES);
+        Iterable<String> names = List.of(JCR_ADD_CHILD_NODES, JCR_REMOVE_CHILD_NODES);
         PrivilegeBits bits1 = bitsProvider.getBits(names);
         PrivilegeBits bits2 = bitsProvider.getBits(names);
 
@@ -193,7 +193,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsTwiceKnown() {
-        Iterable<String> names = ImmutableList.of(KNOWN_PRIV_NAME);
+        Iterable<String> names = List.of(KNOWN_PRIV_NAME);
         PrivilegeBits bits1 = bitsProvider.getBits(names);
         PrivilegeBits bits2 = bitsProvider.getBits(names);
 
@@ -206,7 +206,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsTwiceBuitInKnown() {
-        Iterable<String> names = ImmutableList.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
+        Iterable<String> names = List.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
         PrivilegeBits bits1 = bitsProvider.getBits(names);
         PrivilegeBits bits2 = bitsProvider.getBits(names);
 
@@ -219,7 +219,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
 
     @Test
     public void testGetBitsTwiceKnownUnknown() {
-        Iterable<String> names = ImmutableList.of(KNOWN_PRIV_NAME, "unknown");
+        Iterable<String> names = List.of(KNOWN_PRIV_NAME, "unknown");
         PrivilegeBits bits1 = bitsProvider.getBits(names);
         PrivilegeBits bits2 = bitsProvider.getBits(names);
 
@@ -245,7 +245,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
     
     @Test
     public void testGetBitsValidateTwiceBuitInKnown() throws Exception {
-        Iterable<String> names = ImmutableList.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
+        Iterable<String> names = List.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
         PrivilegeBits bits1 = bitsProvider.getBits(names, true);
         PrivilegeBits bits2 = bitsProvider.getBits(names, false);
 
@@ -258,7 +258,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
     
     @Test(expected = AccessControlException.class)
     public void testBitsValidateNonExistingTree() throws Exception {
-        Iterable<String> names = ImmutableList.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
+        Iterable<String> names = List.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
 
         when(privTree.exists()).thenReturn(true);
         when(privTree.hasChild(KNOWN_PRIV_NAME)).thenReturn(false);
@@ -267,7 +267,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
     }
 
     public void testBitsValidateFalseNonExistingTree() throws Exception {
-        Iterable<String> names = ImmutableList.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
+        Iterable<String> names = List.of(KNOWN_PRIV_NAME, JCR_ADD_CHILD_NODES);
 
         when(privTree.exists()).thenReturn(true);
         when(privTree.hasChild(KNOWN_PRIV_NAME)).thenReturn(false);
@@ -354,7 +354,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
         when(anotherPriv.exists()).thenReturn(true);
         when(anotherPriv.getName()).thenReturn("name2");
         when(anotherPriv.hasProperty(REP_AGGREGATES)).thenReturn(true);
-        when(anotherPriv.getProperty(REP_AGGREGATES)).thenReturn(PropertyStates.createProperty(REP_AGGREGATES, ImmutableList.of(KNOWN_PRIV_NAME), Type.NAMES));
+        when(anotherPriv.getProperty(REP_AGGREGATES)).thenReturn(PropertyStates.createProperty(REP_AGGREGATES, List.of(KNOWN_PRIV_NAME), Type.NAMES));
         PropertyState bits2 = PropertyStates.createProperty(REP_BITS, 7500L);
         when(anotherPriv.getProperty(REP_BITS)).thenReturn(bits2);
 
@@ -463,7 +463,7 @@ public class PrivilegeBitsProviderTest implements PrivilegeConstants {
         when(privTree.getChild(KNOWN_PRIV_NAME)).thenReturn(pTree);
 
         Iterable<String> result = bitsProvider.getAggregatedPrivilegeNames(KNOWN_PRIV_NAME);
-        assertTrue(Iterables.elementsEqual(ImmutableList.of(KNOWN_PRIV_NAME), result));
+        assertTrue(Iterables.elementsEqual(List.of(KNOWN_PRIV_NAME), result));
     }
 
     @Test
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
index 2bd45f5a43..e66b58abb0 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.action;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+import java.util.List;
+
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -36,6 +37,7 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.junit.Test;
 
+
 import javax.jcr.RepositoryException;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.AccessControlPolicy;
@@ -84,14 +86,13 @@ public class AccessControlActionTest implements UserConstants {
         AccessControlManager acMgr = mock(AccessControlManager.class);
         when(acMgr.getApplicablePolicies("/none")).thenReturn(AccessControlPolicyIteratorAdapter.EMPTY);
         AccessControlPolicy policy = mock(AccessControlPolicy.class);
-        when(acMgr.getApplicablePolicies("/nonACL")).thenReturn(new AccessControlPolicyIteratorAdapter(ImmutableList.of(policy)));
+        when(acMgr.getApplicablePolicies("/nonACL")).thenReturn(new AccessControlPolicyIteratorAdapter(List.of(policy)));
         JackrabbitAccessControlList acl = mock(JackrabbitAccessControlList.class);
         if (addEntrySuccess) {
             when(acl.addAccessControlEntry(any(Principal.class), any(Privilege[].class))).thenReturn(true);
         }
-        when(acMgr.getApplicablePolicies("/acl")).thenReturn(new AccessControlPolicyIteratorAdapter(ImmutableList.of(acl)));
+        when(acMgr.getApplicablePolicies("/acl")).thenReturn(new AccessControlPolicyIteratorAdapter(List.of(acl)));
         return acMgr;
-
     }
 
     private AccessControlAction createAction(@NotNull String... privNames) {
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java
index 853fd718d8..8c1898fb36 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.spi.security.user.action;
 
 import java.util.List;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
+
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
@@ -47,7 +47,7 @@ public class CompositeActionProviderTest {
         AuthorizableActionProvider aap = new TestAuthorizableActionProvider();
         AuthorizableActionProvider aap2 = new TestAuthorizableActionProvider();
 
-        assertEquals(ImmutableList.of(TestAction.INSTANCE, TestAction.INSTANCE), new CompositeActionProvider(aap, aap2).getAuthorizableActions(securityProvider));
+        assertEquals(List.of(TestAction.INSTANCE, TestAction.INSTANCE), new CompositeActionProvider(aap, aap2).getAuthorizableActions(securityProvider));
     }
 
     @Test
@@ -55,7 +55,7 @@ public class CompositeActionProviderTest {
         AuthorizableActionProvider aap = new TestAuthorizableActionProvider();
         AuthorizableActionProvider aap2 = new TestAuthorizableActionProvider();
 
-        assertEquals(ImmutableList.of(TestAction.INSTANCE, TestAction.INSTANCE), new CompositeActionProvider(ImmutableList.of(aap, aap2)).getAuthorizableActions(securityProvider));
+        assertEquals(List.of(TestAction.INSTANCE, TestAction.INSTANCE), new CompositeActionProvider(List.of(aap, aap2)).getAuthorizableActions(securityProvider));
     }
 
 
@@ -64,7 +64,7 @@ public class CompositeActionProviderTest {
         @NotNull
         @Override
         public List<? extends AuthorizableAction> getAuthorizableActions(@NotNull SecurityProvider securityProvider) {
-            return ImmutableList.of(TestAction.INSTANCE);
+            return List.of(TestAction.INSTANCE);
         }
     }
 
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java
index ebb3642986..6da7e4125f 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java
@@ -22,7 +22,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
 import org.apache.jackrabbit.util.Text;
@@ -45,7 +44,7 @@ public class PasswordUtilTest {
 
     @Before
     public void before() throws Exception {
-        plainPasswords = ImmutableList.of(
+        plainPasswords = List.of(
                 "pw",
                 "PassWord123",
                 "_",
@@ -235,7 +234,7 @@ public class PasswordUtilTest {
 
     @Test
     public void testIsSameMisplacedAlgorithm() {
-        List<String> broken = ImmutableList.of("}{pw", "{pw", "{pw}");
+        List<String> broken = List.of("}{pw", "{pw", "{pw}");
         for (String hash : broken) {
             assertFalse(PasswordUtil.isSame(hash, "pw"));
         }
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java
index 33c0e9b7e4..60b0711ffa 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.util;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.AuthorizableTypeException;
@@ -170,7 +169,7 @@ public class UserUtilTest {
 
     @Test
     public void testGetTypeFromTree2() {
-        List<String> test = ImmutableList.of(
+        List<String> test = List.of(
                 UserConstants.NT_REP_AUTHORIZABLE,
                 JcrConstants.NT_FILE
         );
@@ -252,7 +251,7 @@ public class UserUtilTest {
 
     @Test
     public void testGetAuthorizableId() {
-        List<String> test = ImmutableList.of(UserConstants.NT_REP_GROUP, UserConstants.NT_REP_SYSTEM_USER, UserConstants.NT_REP_USER);
+        List<String> test = List.of(UserConstants.NT_REP_GROUP, UserConstants.NT_REP_SYSTEM_USER, UserConstants.NT_REP_USER);
         for (String ntName : test) {
             assertEquals("id", UserUtil.getAuthorizableId(createTree(ntName, "id")));
         }
@@ -260,7 +259,7 @@ public class UserUtilTest {
 
     @Test
     public void testGetAuthorizableIdFallback() {
-        List<String> test = ImmutableList.of(UserConstants.NT_REP_GROUP, UserConstants.NT_REP_SYSTEM_USER, UserConstants.NT_REP_USER);
+        List<String> test = List.of(UserConstants.NT_REP_GROUP, UserConstants.NT_REP_SYSTEM_USER, UserConstants.NT_REP_USER);
         for (String ntName : test) {
             assertEquals("nName", UserUtil.getAuthorizableId(createTree(ntName, null, "nName")));
         }
@@ -268,7 +267,7 @@ public class UserUtilTest {
 
     @Test
     public void testGetAuthorizableIdNoAuthorizableType() {
-        List<String> test = ImmutableList.of(UserConstants.NT_REP_AUTHORIZABLE, JcrConstants.NT_UNSTRUCTURED);
+        List<String> test = List.of(UserConstants.NT_REP_AUTHORIZABLE, JcrConstants.NT_UNSTRUCTURED);
         for (String ntName : test) {
             assertNull(UserUtil.getAuthorizableId(createTree(ntName, "id")));
         }
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java
index f87c326efb..eeb5c3b54c 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java
@@ -16,15 +16,16 @@
  */
 package org.apache.jackrabbit.oak.spi.xml;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.junit.Test;
 
+import java.util.List;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 
 public class NodeInfoTest {
 
-    private final NodeInfo nodeInfo = new NodeInfo("name", "primaryType", ImmutableList.of("mixin1", "mixin2"), "uuid");
+    private final NodeInfo nodeInfo = new NodeInfo("name", "primaryType", List.of("mixin1", "mixin2"), "uuid");
 
     @Test
     public void testGetName() {
@@ -38,7 +39,7 @@ public class NodeInfoTest {
 
     @Test
     public void testGetMixinTypeName() {
-        assertEquals(ImmutableList.of("mixin1", "mixin2"), nodeInfo.getMixinTypeNames());
+        assertEquals(List.of("mixin1", "mixin2"), nodeInfo.getMixinTypeNames());
     }
 
     @Test
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java
index f9b15ad8a8..1e97ff5b5d 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.xml;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
@@ -76,14 +75,14 @@ public class PropInfoTest {
 
     @Test(expected = DisposeException.class)
     public void testDisposeMultipleThrowing() throws Exception {
-        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of(mockTextValue("value", PropertyType.STRING, true)));
+        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, List.of(mockTextValue("value", PropertyType.STRING, true)));
         propInfo.dispose();
     }
 
     @Test
     public void testDisposeMultiple() throws Exception {
         TextValue tv = mockTextValue("value", PropertyType.STRING, false);
-        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of(tv));
+        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, List.of(tv));
         propInfo.dispose();
         verify(tv, times(1)).dispose();
     }
@@ -121,10 +120,10 @@ public class PropInfoTest {
 
     @Test
     public void testIsUnknownMultiple() throws Exception {
-        PropInfo propInfo = new PropInfo("boolean", PropertyType.BOOLEAN, ImmutableList.of(mockTextValue("false", PropertyType.BOOLEAN)), PropInfo.MultipleStatus.UNKNOWN);
+        PropInfo propInfo = new PropInfo("boolean", PropertyType.BOOLEAN, List.of(mockTextValue("false", PropertyType.BOOLEAN)), PropInfo.MultipleStatus.UNKNOWN);
         assertTrue(propInfo.isUnknownMultiple());
 
-        propInfo = new PropInfo("boolean", PropertyType.BOOLEAN, ImmutableList.of(mockTextValue("false", PropertyType.BOOLEAN)), PropInfo.MultipleStatus.MULTIPLE);
+        propInfo = new PropInfo("boolean", PropertyType.BOOLEAN, List.of(mockTextValue("false", PropertyType.BOOLEAN)), PropInfo.MultipleStatus.MULTIPLE);
         assertFalse(propInfo.isUnknownMultiple());
     }
 
@@ -136,25 +135,25 @@ public class PropInfoTest {
 
     @Test
     public void testIsUnknownMultipleSingleList() throws Exception {
-        PropInfo propInfo = new PropInfo("long", PropertyType.LONG, ImmutableList.of(mockTextValue("24", PropertyType.LONG)));
+        PropInfo propInfo = new PropInfo("long", PropertyType.LONG, List.of(mockTextValue("24", PropertyType.LONG)));
         assertTrue(propInfo.isUnknownMultiple());
     }
 
     @Test
     public void testIsUnknownMultipleSingleList2() throws Exception {
-        PropInfo propInfo = new PropInfo("long", PropertyType.LONG, ImmutableList.of(mockTextValue("24", PropertyType.LONG)), PropInfo.MultipleStatus.MULTIPLE);
+        PropInfo propInfo = new PropInfo("long", PropertyType.LONG, List.of(mockTextValue("24", PropertyType.LONG)), PropInfo.MultipleStatus.MULTIPLE);
         assertFalse(propInfo.isUnknownMultiple());
     }
 
     @Test
     public void testIsUnknownMultipleEmpty() {
-        PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, ImmutableList.of());
+        PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, List.of());
         assertFalse(propInfo.isUnknownMultiple());
     }
 
     @Test
     public void testIsUnknownMultipleMultiple() throws Exception {
-        PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, ImmutableList.of(mockTextValue("24", PropertyType.LONG), mockTextValue("44", PropertyType.LONG)));
+        PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, List.of(mockTextValue("24", PropertyType.LONG), mockTextValue("44", PropertyType.LONG)));
         assertFalse(propInfo.isUnknownMultiple());
     }
 
@@ -169,14 +168,14 @@ public class PropInfoTest {
     @Test
     public void testGetTextValueSingleList() throws Exception {
         TextValue tv = mockTextValue("value", PropertyType.STRING);
-        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of(tv));
+        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, List.of(tv));
 
         assertEquals(tv, propInfo.getTextValue());
     }
 
     @Test(expected = RepositoryException.class)
     public void testGetTextValueMultiple() throws Exception {
-        List<TextValue> tvs = ImmutableList.of(mockTextValue("24", PropertyType.LONG), mockTextValue("35", PropertyType.LONG));
+        List<TextValue> tvs = List.of(mockTextValue("24", PropertyType.LONG), mockTextValue("35", PropertyType.LONG));
         PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, tvs);
 
         propInfo.getTextValue();
@@ -187,12 +186,12 @@ public class PropInfoTest {
         TextValue tv = mockTextValue("value", PropertyType.STRING);
         PropInfo propInfo = new PropInfo("string", PropertyType.STRING, tv);
 
-        assertEquals(ImmutableList.of(tv), propInfo.getTextValues());
+        assertEquals(List.of(tv), propInfo.getTextValues());
     }
 
     @Test
     public void testGetTextValuesMultiple() throws Exception {
-        List<TextValue> tvs = ImmutableList.of(mockTextValue("24", PropertyType.LONG));
+        List<TextValue> tvs = List.of(mockTextValue("24", PropertyType.LONG));
         PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, tvs);
 
         assertEquals(tvs, propInfo.getTextValues());
@@ -209,14 +208,14 @@ public class PropInfoTest {
     @Test
     public void testGetValueSingleList() throws Exception {
         TextValue tv = mockTextValue("value", PropertyType.STRING);
-        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of(tv));
+        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, List.of(tv));
 
         assertEquals(tv.getValue(PropertyType.STRING), propInfo.getValue(PropertyType.STRING));
     }
 
     @Test(expected = RepositoryException.class)
     public void testGetValueMultiple() throws Exception {
-        List<TextValue> tvs = ImmutableList.of(mockTextValue("24", PropertyType.LONG), mockTextValue("35", PropertyType.LONG));
+        List<TextValue> tvs = List.of(mockTextValue("24", PropertyType.LONG), mockTextValue("35", PropertyType.LONG));
         PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, tvs);
 
         propInfo.getValue(PropertyType.LONG);
@@ -227,19 +226,19 @@ public class PropInfoTest {
         TextValue tv = mockTextValue("value", PropertyType.STRING);
         PropInfo propInfo = new PropInfo("string", PropertyType.STRING, tv);
 
-        assertEquals(ImmutableList.of(tv.getValue(PropertyType.STRING)), propInfo.getValues(PropertyType.STRING));
+        assertEquals(List.of(tv.getValue(PropertyType.STRING)), propInfo.getValues(PropertyType.STRING));
     }
 
     @Test
     public void testGetValuesEmpty() throws Exception {
-        PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, ImmutableList.of());
+        PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, List.of());
 
         assertTrue(propInfo.getValues(PropertyType.LONG).isEmpty());
     }
 
     @Test
     public void testGetValuesMultiple() throws Exception {
-        List<TextValue> tvs = ImmutableList.of(mockTextValue("24", PropertyType.LONG));
+        List<TextValue> tvs = List.of(mockTextValue("24", PropertyType.LONG));
         PropInfo propInfo = new PropInfo("longs", PropertyType.LONG, tvs);
 
         assertEquals(Lists.transform(tvs, input -> {
@@ -263,7 +262,7 @@ public class PropInfoTest {
 
     @Test
     public void testAsPropertyStateEmptyList() throws Exception {
-        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of());
+        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, List.of());
 
         PropertyState ps = propInfo.asPropertyState(mockPropDef(PropertyType.STRING, true));
         assertTrue(ps.isArray());
@@ -272,7 +271,7 @@ public class PropInfoTest {
 
     @Test
     public void testAsPropertyStateSingleList() throws Exception {
-        PropInfo propInfo = new PropInfo("strings", PropertyType.STRING, ImmutableList.of(mockTextValue("a", PropertyType.STRING)), PropInfo.MultipleStatus.MULTIPLE);
+        PropInfo propInfo = new PropInfo("strings", PropertyType.STRING, List.of(mockTextValue("a", PropertyType.STRING)), PropInfo.MultipleStatus.MULTIPLE);
 
         PropertyState ps = propInfo.asPropertyState(mockPropDef(PropertyType.STRING, true));
         assertTrue(ps.isArray());
@@ -281,7 +280,7 @@ public class PropInfoTest {
 
     @Test
     public void testAsPropertyStateMultiples() throws Exception {
-        PropInfo propInfo = new PropInfo("strings", PropertyType.STRING, ImmutableList.of(mockTextValue("a", PropertyType.STRING), mockTextValue("b", PropertyType.STRING)));
+        PropInfo propInfo = new PropInfo("strings", PropertyType.STRING, List.of(mockTextValue("a", PropertyType.STRING), mockTextValue("b", PropertyType.STRING)));
 
         PropertyState ps = propInfo.asPropertyState(mockPropDef(PropertyType.STRING, true));
         assertTrue(ps.isArray());
diff --git a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java
index fa0b1ace5c..f3042da9da 100644
--- a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java
+++ b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.xml;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.junit.Test;
 
@@ -53,7 +52,7 @@ public class ReferenceChangeTrackerTest {
 
         assertTrue(Iterators.elementsEqual(List.of("ref", "ref2").iterator(), rct.getProcessedReferences()));
 
-        rct.removeReferences(ImmutableList.of("ref"));
+        rct.removeReferences(List.of("ref"));
 
         assertTrue(Iterators.elementsEqual(List.of("ref2").iterator(), rct.getProcessedReferences()));
     }
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java
index dc2fa92311..b214bac8e8 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentDataStoreBlobGCIT.java
@@ -43,8 +43,6 @@ import java.util.concurrent.TimeUnit;
 
 import ch.qos.logback.classic.Level;
 import org.apache.jackrabbit.guava.common.base.Stopwatch;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.guava.common.collect.Sets;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.filefilter.FileFilterUtils;
@@ -345,7 +343,7 @@ public class SegmentDataStoreBlobGCIT {
         Random rand = new Random(87);
         List<String> existing = new ArrayList<>(state.blobsPresent);
         
-        long count = blobStore.countDeleteChunks(ImmutableList.of(existing.get(rand.nextInt(existing.size()))), 0);
+        long count = blobStore.countDeleteChunks(List.of(existing.get(rand.nextInt(existing.size()))), 0);
         
         ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(10);
         MarkSweepGarbageCollector gcObj = init(86400, executor);
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
index 2ea0bc251c..d9789d14d0 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
@@ -46,7 +46,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Random;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
@@ -229,7 +228,7 @@ public class SegmentParserTest {
         builder.setChildNode("n");
         builder.setProperty("p", 1);
         builder.setProperty("jcr:primaryType", "type", NAME);
-        builder.setProperty("jcr:mixinTypes", ImmutableList.of("type1", "type2"), NAMES);
+        builder.setProperty("jcr:mixinTypes", List.of("type1", "type2"), NAMES);
         SegmentNodeState node = new SegmentNodeState(store.getReader(), writer, store.getBlobStore(), writer.writeNode(builder.getNodeState()));
         NodeInfo nodeInfo = new TestParser(store.getReader(), "template") {
             @Override
@@ -320,7 +319,7 @@ public class SegmentParserTest {
     @Test
     public void multiValueProperty() throws IOException {
         NodeBuilder builder = EMPTY_NODE.builder();
-        builder.setProperty("p", ImmutableList.of(1L, 2L, 3L, 4L), LONGS);
+        builder.setProperty("p", List.of(1L, 2L, 3L, 4L), LONGS);
         SegmentNodeState node = new SegmentNodeState(store.getReader(), writer, store.getBlobStore(), writer.writeNode(builder.getNodeState()));
         NodeInfo nodeInfo = new TestParser(store.getReader(), "multiValueProperty") {
             @Override
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/spi/monitor/CompositeIOMonitorTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/spi/monitor/CompositeIOMonitorTest.java
index eaa91f98c8..7d8100061e 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/spi/monitor/CompositeIOMonitorTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/spi/monitor/CompositeIOMonitorTest.java
@@ -15,14 +15,13 @@
  * limitations under the License.
  *
  */
-
 package org.apache.jackrabbit.oak.segment.spi.monitor;
 
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
+import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.whiteboard.Registration;
 import org.junit.Test;
 
@@ -31,8 +30,8 @@ public class CompositeIOMonitorTest {
 
     @Test
     public void testComposition() {
-        ImmutableList<IOMonitorAssertion> ioMonitors =
-                ImmutableList.of(new IOMonitorAssertion(), new IOMonitorAssertion());
+        List<IOMonitorAssertion> ioMonitors =
+                List.of(new IOMonitorAssertion(), new IOMonitorAssertion());
         IOMonitor ioMonitor = new CompositeIOMonitor(ioMonitors);
 
         ioMonitor.beforeSegmentRead(FILE, 0, 0, 0);
@@ -50,8 +49,8 @@ public class CompositeIOMonitorTest {
 
     @Test
     public void testUnregisterComposition() {
-        ImmutableList<IOMonitorAssertion> ioMonitors =
-                ImmutableList.of(new IOMonitorAssertion(), new IOMonitorAssertion());
+        List<IOMonitorAssertion> ioMonitors =
+                List.of(new IOMonitorAssertion(), new IOMonitorAssertion());
 
         CompositeIOMonitor ioMonitor = new CompositeIOMonitor();
         ioMonitor.registerIOMonitor(ioMonitors.get(0));
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/BreadthFirstTraceTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/BreadthFirstTraceTest.java
index b64deaf958..e46f023509 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/BreadthFirstTraceTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/BreadthFirstTraceTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
@@ -46,7 +45,7 @@ public class BreadthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new BreadthFirstTrace(4, "/", trace::add).run(createTree(0));
         assertEquals(1, trace.size());
-        assertEquals(ImmutableList.of("0", "1"), trace.get(0));
+        assertEquals(List.of("0", "1"), trace.get(0));
     }
 
     @Test
@@ -54,8 +53,8 @@ public class BreadthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new BreadthFirstTrace(4, "/", trace::add).run(createTree(1));
         assertEquals(2, trace.size());
-        assertEquals(ImmutableList.of("0", "1"), trace.get(0));
-        assertEquals(ImmutableList.of("1", "2"), trace.get(1));
+        assertEquals(List.of("0", "1"), trace.get(0));
+        assertEquals(List.of("1", "2"), trace.get(1));
     }
 
     @Test
@@ -63,9 +62,9 @@ public class BreadthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new BreadthFirstTrace(4, "/", trace::add).run(createTree(2));
         assertEquals(3, trace.size());
-        assertEquals(ImmutableList.of("0", "1"), trace.get(0));
-        assertEquals(ImmutableList.of("1", "2"), trace.get(1));
-        assertEquals(ImmutableList.of("2", "3"), trace.get(2));
+        assertEquals(List.of("0", "1"), trace.get(0));
+        assertEquals(List.of("1", "2"), trace.get(1));
+        assertEquals(List.of("2", "3"), trace.get(2));
     }
 
     @Test
@@ -73,9 +72,9 @@ public class BreadthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new BreadthFirstTrace(2, "/", trace::add).run(createTree(3));
         assertEquals(3, trace.size());
-        assertEquals(ImmutableList.of("0", "1"), trace.get(0));
-        assertEquals(ImmutableList.of("1", "2"), trace.get(1));
-        assertEquals(ImmutableList.of("2", "3"), trace.get(2));
+        assertEquals(List.of("0", "1"), trace.get(0));
+        assertEquals(List.of("1", "2"), trace.get(1));
+        assertEquals(List.of("2", "3"), trace.get(2));
     }
 
 }
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/DepthFirstTraceTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/DepthFirstTraceTest.java
index 5f3ef1902a..079b4d5413 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/DepthFirstTraceTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/DepthFirstTraceTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
@@ -46,7 +45,7 @@ public class DepthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new DepthFirstTrace(4, "/", trace::add).run(createTree(0));
         assertEquals(1, trace.size());
-        assertEquals(ImmutableList.of("0", "1", "/"), trace.get(0));
+        assertEquals(List.of("0", "1", "/"), trace.get(0));
     }
 
     @Test
@@ -54,8 +53,8 @@ public class DepthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new DepthFirstTrace(4, "/", trace::add).run(createTree(1));
         assertEquals(2, trace.size());
-        assertEquals(ImmutableList.of("0", "1", "/"), trace.get(0));
-        assertEquals(ImmutableList.of("1", "2", "/node-0"), trace.get(1));
+        assertEquals(List.of("0", "1", "/"), trace.get(0));
+        assertEquals(List.of("1", "2", "/node-0"), trace.get(1));
     }
 
     @Test
@@ -63,9 +62,9 @@ public class DepthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new DepthFirstTrace(4, "/", trace::add).run(createTree(2));
         assertEquals(3, trace.size());
-        assertEquals(ImmutableList.of("0", "1", "/"), trace.get(0));
-        assertEquals(ImmutableList.of("1", "2", "/node-0"), trace.get(1));
-        assertEquals(ImmutableList.of("2", "3", "/node-0/node-1"), trace.get(2));
+        assertEquals(List.of("0", "1", "/"), trace.get(0));
+        assertEquals(List.of("1", "2", "/node-0"), trace.get(1));
+        assertEquals(List.of("2", "3", "/node-0/node-1"), trace.get(2));
     }
 
     @Test
@@ -73,9 +72,9 @@ public class DepthFirstTraceTest {
         List<List<String>> trace = new ArrayList<>();
         new DepthFirstTrace(2, "/", trace::add).run(createTree(3));
         assertEquals(3, trace.size());
-        assertEquals(ImmutableList.of("0", "1", "/"), trace.get(0));
-        assertEquals(ImmutableList.of("1", "2", "/node-0"), trace.get(1));
-        assertEquals(ImmutableList.of("2", "3", "/node-0/node-1"), trace.get(2));
+        assertEquals(List.of("0", "1", "/"), trace.get(0));
+        assertEquals(List.of("1", "2", "/node-0"), trace.get(1));
+        assertEquals(List.of("2", "3", "/node-0/node-1"), trace.get(2));
     }
 
 }
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/IOTracerTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/IOTracerTest.java
index c088d724e6..e5b05ec0ab 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/IOTracerTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/IOTracerTest.java
@@ -39,7 +39,6 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.segment.SegmentNodeBuilder;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
@@ -176,7 +175,7 @@ public class IOTracerTest extends IOMonitorAdapter {
             Function<IOMonitor, FileStore> factory = this::createFileStore;
 
             IOTracer ioTracer = newIOTracer(factory, out, RandomAccessTrace.CONTEXT_SPEC);
-            ImmutableList<String> paths = ImmutableList.of("/1a", "/1b", "/foo");
+            List<String> paths = List.of("/1a", "/1b", "/foo");
             ioTracer.collectTrace(
                     new RandomAccessTrace(paths, 0, 10, ioTracer::setContext));
 
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/RandomTraceTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/RandomTraceTest.java
index e2e6b04ed6..170c78c7a6 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/RandomTraceTest.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/tool/iotrace/RandomTraceTest.java
@@ -26,7 +26,6 @@ import static org.junit.Assert.assertTrue;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
@@ -61,16 +60,16 @@ public class RandomTraceTest {
     @Test
     public void testTraverseNonExistingPath() {
         List<List<String>> trace = new ArrayList<>();
-        new RandomAccessTrace(ImmutableList.of("/not/here"), 0, 1, trace::add)
+        new RandomAccessTrace(List.of("/not/here"), 0, 1, trace::add)
             .run(createTree(emptyList()));
         assertEquals(1, trace.size());
-        assertEquals(ImmutableList.of("/not/here"), trace.get(0));
+        assertEquals(List.of("/not/here"), trace.get(0));
     }
 
     @Test
     public void testTraverse() {
         List<List<String>> trace = new ArrayList<>();
-        ImmutableList<String> paths = ImmutableList.of("/a/b/c", "/d/e/f");
+        List<String> paths = List.of("/a/b/c", "/d/e/f");
         new RandomAccessTrace(paths, 0, 2, trace::add)
                 .run(createTree(paths));
         assertEquals(2, trace.size());
diff --git a/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexIT.java b/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexIT.java
index a1a57ba78a..442093b54c 100644
--- a/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexIT.java
+++ b/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexIT.java
@@ -20,8 +20,8 @@ import javax.jcr.query.Query;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
@@ -322,7 +322,7 @@ public class SolrIndexIT extends AbstractQueryTest {
         Tree one = t.addChild("one");
         one.setProperty("t", "美女衬衫");
         root.commit();
-        assertQuery("//*[jcr:contains(., '美女')]", "xpath", ImmutableList.of(one.getPath()));
+        assertQuery("//*[jcr:contains(., '美女')]", "xpath", List.of(one.getPath()));
     }
 
     @Test
@@ -364,13 +364,13 @@ public class SolrIndexIT extends AbstractQueryTest {
         stmt.append("/jcr:root//*[jcr:contains(., '").append(h);
         stmt.append("')]");
         assertQuery(stmt.toString(), "xpath",
-                ImmutableList.of("/test/a", "/test/b"));
+                List.of("/test/a", "/test/b"));
 
         // query 'world'
         stmt = new StringBuffer();
         stmt.append("/jcr:root//*[jcr:contains(., '").append(w);
         stmt.append("')]");
-        assertQuery(stmt.toString(), "xpath", ImmutableList.of("/test/a"));
+        assertQuery(stmt.toString(), "xpath", List.of("/test/a"));
 
     }
 
@@ -384,9 +384,9 @@ public class SolrIndexIT extends AbstractQueryTest {
         root.commit();
 
         assertQuery("/jcr:root//*[jcr:contains(., 'hello-wor*')]", "xpath",
-                ImmutableList.of("/test/a", "/test/b"));
+                List.of("/test/a", "/test/b"));
         assertQuery("/jcr:root//*[jcr:contains(., '*hello-wor*')]", "xpath",
-                ImmutableList.of("/test/a", "/test/b"));
+                List.of("/test/a", "/test/b"));
 
     }
 
@@ -398,7 +398,7 @@ public class SolrIndexIT extends AbstractQueryTest {
 
         assertQuery(
                 "/jcr:root//*[jcr:contains(@dc:format, 'type:appli*')]",
-                "xpath", ImmutableList.of("/test/a"));
+                "xpath", List.of("/test/a"));
 
     }
 
@@ -411,19 +411,19 @@ public class SolrIndexIT extends AbstractQueryTest {
 
         assertQuery(
             "/jcr:root//*[jcr:contains(., 'lazy AND brown')]",
-            "xpath", ImmutableList.of("/test/a"));
+            "xpath", List.of("/test/a"));
 
         assertQuery(
             "/jcr:root//*[jcr:contains(., 'lazy OR eat')]",
-            "xpath", ImmutableList.of("/test/a", "/test/b"));
+            "xpath", List.of("/test/a", "/test/b"));
 
         assertQuery(
             "/jcr:root//*[jcr:contains(., 'lazy AND bones')]",
-            "xpath", ImmutableList.of("/test/b"));
+            "xpath", List.of("/test/b"));
 
         assertQuery(
             "/jcr:root//*[jcr:contains(., 'lazy OR dog')]",
-            "xpath", ImmutableList.of("/test/a", "/test/b"));
+            "xpath", List.of("/test/a", "/test/b"));
     }
 
     @Test
@@ -433,7 +433,7 @@ public class SolrIndexIT extends AbstractQueryTest {
         test.addChild("a").setProperty("name", "/parent/child/node");
         root.commit();
 
-        assertQuery("//*[jcr:contains(., '/parent/child')]", "xpath", ImmutableList.of("/test/a"));
+        assertQuery("//*[jcr:contains(., '/parent/child')]", "xpath", List.of("/test/a"));
 
     }
 
@@ -445,7 +445,7 @@ public class SolrIndexIT extends AbstractQueryTest {
         a.setProperty("name", "/segment1/segment2/segment3");
         root.commit();
 
-        assertQuery("//*[jcr:contains(., '/segment1/segment2')]", "xpath", ImmutableList.of("/test/a"));
+        assertQuery("//*[jcr:contains(., '/segment1/segment2')]", "xpath", List.of("/test/a"));
 
     }
 
@@ -470,7 +470,7 @@ public class SolrIndexIT extends AbstractQueryTest {
         root.commit();
 
         assertQuery("//*[jcr:contains(., 'media') and (@p = 'dam/smartcollection' or @p = 'dam/collection') ]", "xpath",
-                ImmutableList.of(one.getPath(), two.getPath()));
+                List.of(one.getPath(), two.getPath()));
     }
 
     @Test
diff --git a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreServiceTest.java b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreServiceTest.java
index d52f8c07e5..aab0f42e48 100644
--- a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreServiceTest.java
+++ b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreServiceTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.composite;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import java.util.List;
 import java.util.Map;
 
@@ -72,8 +71,8 @@ public class CompositeNodeStoreServiceTest {
 		nodeStoreLibs.merge(libsRoot, EmptyHook.INSTANCE, CommitInfo.EMPTY);
 
 		// Define read-only mounts
-		registerActivateMountInfoConfig("libs", ImmutableList.of("/libs"));
-		registerActivateMountInfoConfig("apps", ImmutableList.of("/apps"));
+		registerActivateMountInfoConfig("libs", List.of("/libs"));
+		registerActivateMountInfoConfig("apps", List.of("/apps"));
 
         registerMountInfoProviderService("libs", "apps");
         
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIteratorTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIteratorTest.java
index 55731e41ab..3d16e380f6 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIteratorTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIteratorTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.document;
 
 import java.util.ArrayList;
@@ -24,10 +23,10 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import com.mongodb.ReadPreference;
 
 import org.apache.jackrabbit.oak.api.Blob;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.blob.ReferencedBlob;
 import org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats;
 import org.apache.jackrabbit.oak.plugins.document.mongo.MongoTestUtils;
@@ -133,7 +132,7 @@ public class BlobReferenceIteratorTest {
             store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);
         }
 
-        List<ReferencedBlob> collectedBlobs = ImmutableList.copyOf(store.getReferencedBlobsIterator());
+        List<ReferencedBlob> collectedBlobs = CollectionUtils.toList(store.getReferencedBlobsIterator());
         assertEquals(blobs.size(), collectedBlobs.size());
         assertEquals(new HashSet<>(blobs), new HashSet<>(collectedBlobs));
     }
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
index 7dafb539bb..9a95ae5541 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static java.util.Collections.emptyList;
 import static java.util.Collections.synchronizedList;
 import static java.util.concurrent.TimeUnit.SECONDS;
@@ -3920,28 +3919,28 @@ public class DocumentNodeStoreTest {
         final long UL = Long.MAX_VALUE; // unknown
         // childNodeCount = none
         getChildNodeCountTest(0,
-                of(0L, 1L),
-                of(0L, 0L)
+                List.of(0L, 1L),
+                List.of(0L, 0L)
         );
         // childNodeCount = less than initial fetch size 42
         getChildNodeCountTest(42,
-                of( 0L,  1L, 41L, 42L, 43L, 100L),
-                of(42L, 42L, 42L, 42L, 42L, 42L)
+                List.of( 0L,  1L, 41L, 42L, 43L, 100L),
+                List.of(42L, 42L, 42L, 42L, 42L, 42L)
         );
         // childNodeCount = initial fetch size (100)
         getChildNodeCountTest(100,
-                of(  0L,   1L,  99L, 100L, 101L, 200L),
-                of(100L, 100L, 100L, 100L, 100L, 100L)
+                List.of(  0L,   1L,  99L, 100L, 101L, 200L),
+                List.of(100L, 100L, 100L, 100L, 100L, 100L)
         );
         // childNodeCount = initial fetch size + 1 (100 + 1)
         getChildNodeCountTest(101,
-                of(0L, 1L, 99L, 100L, 101L, 200L),
-                of(UL, UL,  UL,   UL, 101L, 101L)
+                List.of(0L, 1L, 99L, 100L, 101L, 200L),
+                List.of(UL, UL,  UL,   UL, 101L, 101L)
         );
         // childNodeCount = first two fetches (100 + 200)
         getChildNodeCountTest(300,
-                of(0L, 1L, 99L, 100L, 101L, 200L, 299L, 300L, 301L, 400L),
-                of(UL, UL,  UL,   UL, 300L, 300L, 300L, 300L, 300L, 300L)
+                List.of(0L, 1L, 99L, 100L, 101L, 200L, 299L, 300L, 301L, 400L),
+                List.of(UL, UL,  UL,   UL, 300L, 300L, 300L, 300L, 300L, 300L)
         );
     }
 
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
index 8b8e72b5da..9cfe93c690 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
@@ -26,7 +26,6 @@ import java.util.Random;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -49,7 +48,6 @@ import org.junit.Test;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
 import static org.apache.jackrabbit.oak.plugins.document.MongoBlobGCTest.randomStream;
 import static org.apache.jackrabbit.oak.plugins.document.NodeDocument.DOC_SIZE_THRESHOLD;
@@ -353,7 +351,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
         }
         ns.runBackgroundOperations();
         NodeDocument doc = store.find(NODES, Utils.getIdFromPath("/test/foo"));
-        List<NodeDocument> prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(1, prevDocs.size());
         assertEquals(SplitDocType.DEFAULT_LEAF, prevDocs.get(0).getSplitDocType());
     }
@@ -376,7 +374,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
         }
         ns.runBackgroundOperations();
         NodeDocument doc = store.find(NODES, Utils.getIdFromPath("/test/foo"));
-        List<NodeDocument> prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(1, prevDocs.size());
         assertEquals(SplitDocType.COMMIT_ROOT_ONLY, prevDocs.get(0).getSplitDocType());
     }
@@ -398,7 +396,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
         }
         ns.runBackgroundOperations();
         NodeDocument doc = store.find(NODES, Utils.getIdFromPath("/test/foo"));
-        List<NodeDocument> prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(1, prevDocs.size());
 
         //Check for hasBinary
@@ -451,7 +449,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
         assertNotNull(doc);
         assertEquals(2, doc.getPreviousRanges().size());
 
-        List<NodeDocument> prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         //1 intermediate and 11 previous doc
         assertEquals(1 + 11, prevDocs.size());
         assertTrue(prevDocs.stream().anyMatch(input -> input.getSplitDocType() == SplitDocType.INTERMEDIATE));
@@ -916,7 +914,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
 
         NodeDocument foo = store.find(NODES, Utils.getIdFromPath("/foo"));
         assertNotNull(foo);
-        List<NodeDocument> prevDocs = copyOf(foo.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(foo.getAllPreviousDocs());
         // all but most recent value are moved to individual previous docs
         assertEquals(9, prevDocs.size());
     }
@@ -950,7 +948,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
         // now the old binary value must be moved to a previous document
         foo = store.find(NODES, Utils.getIdFromPath("/foo"));
         assertNotNull(foo);
-        List<NodeDocument> prevDocs = copyOf(foo.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(foo.getAllPreviousDocs());
         assertEquals(1, prevDocs.size());
     }
 
@@ -973,7 +971,7 @@ public class DocumentSplitTest extends BaseDocumentMKTest {
 
         NodeDocument foo = store.find(NODES, Utils.getIdFromPath("/foo"));
         assertNotNull(foo);
-        List<NodeDocument> prevDocs = copyOf(foo.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(foo.getAllPreviousDocs());
         // must not create split documents for small binaries less 4k
         assertEquals(0, prevDocs.size());
     }
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsTest.java
index 8a3071fbd4..6a7ad6ce40 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.document;
 
 import java.lang.management.ManagementFactory;
+import java.util.List;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
@@ -35,7 +35,6 @@ import org.junit.After;
 import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
 import static org.apache.jackrabbit.oak.plugins.document.DocumentStoreStats.JOURNAL_CREATE;
@@ -116,11 +115,11 @@ public class DocumentStoreStatsTest {
 
     @Test
     public void doneCreate_Journal() throws Exception{
-        stats.doneCreate(100, Collection.JOURNAL, of("a", "b"), true);
+        stats.doneCreate(100, Collection.JOURNAL, List.of("a", "b"), true);
         assertEquals(2, getMeter(DocumentStoreStats.JOURNAL_CREATE).getCount());
         assertEquals(100, getTimer(DocumentStoreStats.JOURNAL_CREATE_TIMER).getSnapshot().getMax());
 
-        stats.doneCreate(100, JOURNAL, of("c", "d"), false);
+        stats.doneCreate(100, JOURNAL, List.of("c", "d"), false);
         assertEquals(4, getMeter(JOURNAL_CREATE).getCount());
         assertEquals(100, getTimer(JOURNAL_CREATE_TIMER).getSnapshot().getMax());
     }
@@ -129,24 +128,24 @@ public class DocumentStoreStatsTest {
     public void doneCreate_Nodes() {
 
         // empty list of ids
-        stats.doneCreate(100, NODES, of(), true);
+        stats.doneCreate(100, NODES, List.of(), true);
         assertEquals(0, getMeter(NODES_CREATE).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(0, getTimer(NODES_CREATE_TIMER).getSnapshot().getMax());
 
-        stats.doneCreate(100, NODES, of("a", "b"), true);
+        stats.doneCreate(100, NODES, List.of("a", "b"), true);
         assertEquals(2, getMeter(NODES_CREATE).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(50, getTimer(NODES_CREATE_TIMER).getSnapshot().getMax());
 
         // adding an Id with previous doc
-        stats.doneCreate(200, NODES, of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"), true);
+        stats.doneCreate(200, NODES, List.of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"), true);
         assertEquals(3, getMeter(NODES_CREATE).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(200, getTimer(NODES_CREATE_TIMER).getSnapshot().getMax());
 
         // if insert is not successful
-        stats.doneCreate(200, NODES, of("c"), false);
+        stats.doneCreate(200, NODES, List.of("c"), false);
         assertEquals(3, getMeter(NODES_CREATE).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(200, getTimer(NODES_CREATE_TIMER).getSnapshot().getMax());
@@ -160,24 +159,24 @@ public class DocumentStoreStatsTest {
     public void doneCreateOrUpdate() {
 
         // empty list of ids
-        stats.doneCreateOrUpdate(100, NODES, of());
+        stats.doneCreateOrUpdate(100, NODES, List.of());
         assertEquals(0, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
 
-        stats.doneCreateOrUpdate(100, NODES, of("a", "b"));
+        stats.doneCreateOrUpdate(100, NODES, List.of("a", "b"));
         assertEquals(2, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(50, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
 
         // adding an Id with previous Doc
-        stats.doneCreateOrUpdate(200, NODES, of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"));
+        stats.doneCreateOrUpdate(200, NODES, List.of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"));
         assertEquals(3, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(200, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
 
         // insert is done for journal collection
-        stats.doneCreateOrUpdate(200, JOURNAL, of("c"));
+        stats.doneCreateOrUpdate(200, JOURNAL, List.of("c"));
         assertEquals(3, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT).getCount());
         assertEquals(200, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
@@ -199,21 +198,21 @@ public class DocumentStoreStatsTest {
     public void doneBulkFindAndModify() {
 
         // no node had been updated i.e. empty list of Ids
-        stats.doneFindAndModify(100, NODES, of(), true, 0);
+        stats.doneFindAndModify(100, NODES, List.of(), true, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
         assertEquals(0, getMeter(NODES_UPDATE).getCount());
         assertEquals(0, getTimer(NODES_UPDATE_TIMER).getSnapshot().getMax());
 
         // 2 nodes had been updated
-        stats.doneFindAndModify(100, NODES, of("foo", "bar"), true, 0);
+        stats.doneFindAndModify(100, NODES, List.of("foo", "bar"), true, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
         assertEquals(2, getMeter(NODES_UPDATE).getCount());
         assertEquals(50, getTimer(NODES_UPDATE_TIMER).getSnapshot().getMax());
 
         // fails to update 2 nodes without retrying
-        stats.doneFindAndModify(100, NODES, of("foo", "bar"), false, 0);
+        stats.doneFindAndModify(100, NODES, List.of("foo", "bar"), false, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
         assertEquals(2, getMeter(NODES_UPDATE).getCount());
@@ -222,7 +221,7 @@ public class DocumentStoreStatsTest {
         assertEquals(1, getMeter(NODES_UPDATE_FAILURE).getCount());
 
         // update is done on Journal collection
-        stats.doneFindAndModify(100, JOURNAL, of("foo", "bar"), true, 0);
+        stats.doneFindAndModify(100, JOURNAL, List.of("foo", "bar"), true, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_TIMER).getSnapshot().getMax());
         assertEquals(2, getMeter(NODES_UPDATE).getCount());
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FormatVersionTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FormatVersionTest.java
index dcf2ea492e..e94038e934 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FormatVersionTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FormatVersionTest.java
@@ -19,8 +19,6 @@ package org.apache.jackrabbit.oak.plugins.document;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
 import org.junit.Test;
 
@@ -102,7 +100,7 @@ public class FormatVersionTest {
         // must not write dummy version
         assertFalse(V0.writeTo(store));
         // upgrade
-        for (FormatVersion v : ImmutableList.of(V1_0, V1_2, V1_4, V1_6, V1_8)) {
+        for (FormatVersion v : List.of(V1_0, V1_2, V1_4, V1_6, V1_8)) {
             assertTrue(v.writeTo(store));
             assertSame(v, FormatVersion.versionOf(store));
         }
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
index 274769ecff..b5fbbea014 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
@@ -36,8 +36,6 @@ import ch.qos.logback.classic.Level;
 import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.guava.common.base.Stopwatch;
 import org.apache.jackrabbit.guava.common.base.Strings;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.guava.common.collect.Sets;
 import org.apache.jackrabbit.guava.common.io.Closeables;
 import com.mongodb.BasicDBObject;
@@ -320,8 +318,8 @@ public class MongoBlobGCTest extends AbstractMongoConnectionTest {
 
         GarbageCollectableBlobStore store = (GarbageCollectableBlobStore)
                                                 mk.getNodeStore().getBlobStore();
-        long count = store.countDeleteChunks(ImmutableList.of(existing.get(rand.nextInt(existing.size()))), 0);
-    
+        long count = store.countDeleteChunks(List.of(existing.get(rand.nextInt(existing.size()))), 0);
+
         ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(10);
         MarkSweepGarbageCollector gcObj = init(86400, executor);
         long candidates = gcObj.checkConsistency();
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ThrottlingStatsCollectorImplTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ThrottlingStatsCollectorImplTest.java
index 6bd4c02838..ea7a75b17d 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ThrottlingStatsCollectorImplTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ThrottlingStatsCollectorImplTest.java
@@ -25,9 +25,9 @@ import org.apache.jackrabbit.oak.plugins.metric.MetricStatisticsProvider;
 import org.junit.After;
 import org.junit.Test;
 
+import java.util.List;
 import java.util.concurrent.ScheduledExecutorService;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static java.lang.management.ManagementFactory.getPlatformMBeanServer;
 import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor;
 import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL;
@@ -65,16 +65,16 @@ public class ThrottlingStatsCollectorImplTest {
     @Test
     public void doneCreateJournal() {
 
-        stats.doneCreate(100, JOURNAL, of("a", "b"), true);
+        stats.doneCreate(100, JOURNAL, List.of("a", "b"), true);
         assertEquals(2, getMeter(JOURNAL_CREATE_THROTTLING).getCount());
         assertEquals(100, getTimer(JOURNAL_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
 
-        stats.doneCreate(200, JOURNAL, of("c", "d"), true);
+        stats.doneCreate(200, JOURNAL, List.of("c", "d"), true);
         assertEquals(4, getMeter(JOURNAL_CREATE_THROTTLING).getCount());
         assertEquals(200, getTimer(JOURNAL_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
 
         // journal metrics updated even if insert is not successful
-        stats.doneCreate(200, JOURNAL, of("e", "f"), false);
+        stats.doneCreate(200, JOURNAL, List.of("e", "f"), false);
         assertEquals(6, getMeter(JOURNAL_CREATE_THROTTLING).getCount());
         assertEquals(200, getTimer(JOURNAL_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
 
@@ -88,24 +88,24 @@ public class ThrottlingStatsCollectorImplTest {
     public void doneCreateNodes() {
 
         // empty list of ids
-        stats.doneCreate(100, NODES, of(), true);
+        stats.doneCreate(100, NODES, List.of(), true);
         assertEquals(0, getMeter(NODES_CREATE_THROTTLING).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(0, getTimer(NODES_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
 
-        stats.doneCreate(100, NODES, of("a", "b"), true);
+        stats.doneCreate(100, NODES, List.of("a", "b"), true);
         assertEquals(2, getMeter(NODES_CREATE_THROTTLING).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(50, getTimer(NODES_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
 
         // adding an Id with previous Doc
-        stats.doneCreate(200, NODES, of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"), true);
+        stats.doneCreate(200, NODES, List.of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"), true);
         assertEquals(3, getMeter(NODES_CREATE_THROTTLING).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(200, getTimer(NODES_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
 
         // insert is not successful
-        stats.doneCreate(200, NODES, of("c"), false);
+        stats.doneCreate(200, NODES, List.of("c"), false);
         assertEquals(3, getMeter(NODES_CREATE_THROTTLING).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(200, getTimer(NODES_CREATE_THROTTLING_TIMER).getSnapshot().getMax());
@@ -119,24 +119,24 @@ public class ThrottlingStatsCollectorImplTest {
     public void doneCreateOrUpdate() {
 
         // empty list of ids
-        stats.doneCreateOrUpdate(100, NODES, of());
+        stats.doneCreateOrUpdate(100, NODES, List.of());
         assertEquals(0, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
 
-        stats.doneCreateOrUpdate(100, NODES, of("a", "b"));
+        stats.doneCreateOrUpdate(100, NODES, List.of("a", "b"));
         assertEquals(2, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(0, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(50, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
 
         // adding an Id with previous Doc
-        stats.doneCreateOrUpdate(200, NODES, of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"));
+        stats.doneCreateOrUpdate(200, NODES, List.of("15:p/a/b/c/d/e/f/g/h/i/j/k/l/m/r182f83543dd-0-0/3"));
         assertEquals(3, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(200, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
 
         // insert is done for journal collection
-        stats.doneCreateOrUpdate(200, JOURNAL, of("c"));
+        stats.doneCreateOrUpdate(200, JOURNAL, List.of("c"));
         assertEquals(3, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(1, getMeter(NODES_CREATE_SPLIT_THROTTLING).getCount());
         assertEquals(200, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
@@ -178,7 +178,7 @@ public class ThrottlingStatsCollectorImplTest {
     public void doneBulkFindAndModify() {
 
         // no node had been updated i.e. empty list of Ids
-        stats.doneFindAndModify(100, NODES, of(), true, 0);
+        stats.doneFindAndModify(100, NODES, List.of(), true, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
         assertEquals(0, getMeter(NODES_UPDATE_THROTTLING).getCount());
@@ -186,14 +186,14 @@ public class ThrottlingStatsCollectorImplTest {
         assertEquals(0, getMeter(NODES_UPDATE_RETRY_COUNT_THROTTLING).getCount());
 
         // 2 nodes had been updated
-        stats.doneFindAndModify(100, NODES, of("foo", "bar"), true, 0);
+        stats.doneFindAndModify(100, NODES, List.of("foo", "bar"), true, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
         assertEquals(2, getMeter(NODES_UPDATE_THROTTLING).getCount());
         assertEquals(50, getTimer(NODES_UPDATE_THROTTLING_TIMER).getSnapshot().getMax());
 
         // fails to update 2 nodes without retrying
-        stats.doneFindAndModify(100, NODES, of("foo", "bar"), false, 0);
+        stats.doneFindAndModify(100, NODES, List.of("foo", "bar"), false, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
         assertEquals(2, getMeter(NODES_UPDATE_THROTTLING).getCount());
@@ -202,14 +202,14 @@ public class ThrottlingStatsCollectorImplTest {
         assertEquals(1, getMeter(NODES_UPDATE_FAILURE_THROTTLING).getCount());
 
         // entry updated after 3 retries
-        stats.doneFindAndModify(100, NODES, of("foo", "bar"), true, 3);
+        stats.doneFindAndModify(100, NODES, List.of("foo", "bar"), true, 3);
         assertEquals(4, getMeter(NODES_UPDATE_THROTTLING).getCount());
         assertEquals(50, getTimer(NODES_UPDATE_THROTTLING_TIMER).getSnapshot().getMax());
         assertEquals(3, getMeter(NODES_UPDATE_RETRY_COUNT_THROTTLING).getCount());
         assertEquals(1, getMeter(NODES_UPDATE_FAILURE_THROTTLING).getCount());
 
         // update is done on Journal collection
-        stats.doneFindAndModify(100, JOURNAL, of("foo", "bar"), true, 0);
+        stats.doneFindAndModify(100, JOURNAL, List.of("foo", "bar"), true, 0);
         assertEquals(0, getMeter(NODES_CREATE_UPSERT_THROTTLING).getCount());
         assertEquals(0, getTimer(NODES_CREATE_UPSERT_THROTTLING_TIMER).getSnapshot().getMax());
         assertEquals(4, getMeter(NODES_UPDATE_THROTTLING).getCount());
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
index 9fc0a3a8c6..a6f1020b67 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
@@ -103,9 +103,7 @@ import static org.junit.Assume.assumeTrue;
 
 import org.apache.jackrabbit.guava.common.cache.Cache;
 import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.guava.common.collect.Iterators;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 import org.apache.jackrabbit.guava.common.collect.Queues;
 import com.mongodb.ReadPreference;
 
@@ -3070,11 +3068,11 @@ public class VersionGarbageCollectorIT {
         store1.runBackgroundOperations();
 
         List<NodeDocument> previousDocTestFoo =
-                ImmutableList.copyOf(getDoc("/test/" + subNodeName).getAllPreviousDocs());
+                CollectionUtils.toList(getDoc("/test/" + subNodeName).getAllPreviousDocs());
         List<NodeDocument> previousDocTestFoo2 =
-                ImmutableList.copyOf(getDoc("/test2/" + subNodeName).getAllPreviousDocs());
+                CollectionUtils.toList(getDoc("/test2/" + subNodeName).getAllPreviousDocs());
         List<NodeDocument> previousDocRoot =
-                ImmutableList.copyOf(getDoc("/").getAllPreviousDocs());
+                CollectionUtils.toList(getDoc("/").getAllPreviousDocs());
 
         assertEquals(1, previousDocTestFoo.size());
         assertEquals(1, previousDocTestFoo2.size());
@@ -3096,7 +3094,7 @@ public class VersionGarbageCollectorIT {
 
         //Following would not work for Mongo as the delete happened on the server side
         //And entries from cache are not evicted
-        //assertTrue(ImmutableList.copyOf(getDoc("/test2/foo").getAllPreviousDocs()).isEmpty());
+        //assertTrue(List.copyOf(getDoc("/test2/foo").getAllPreviousDocs()).isEmpty());
     }
 
     /**
@@ -3813,7 +3811,7 @@ public class VersionGarbageCollectorIT {
 
         NodeDocument doc = getDoc("/foo");
         assertNotNull(doc);
-        List<NodeDocument> prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(1, prevDocs.size());
         assertEquals(SplitDocType.DEFAULT_NO_BRANCH, prevDocs.get(0).getSplitDocType());
 
@@ -3824,7 +3822,7 @@ public class VersionGarbageCollectorIT {
 
         doc = getDoc("/foo");
         assertNotNull(doc);
-        prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(0, prevDocs.size());
 
         assertEquals(value, store1.getRoot().getChildNode("foo").getString("prop"));
@@ -3851,7 +3849,7 @@ public class VersionGarbageCollectorIT {
 
         // now /foo must have previous docs
         NodeDocument doc = getDoc("/foo");
-        List<NodeDocument> prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        List<NodeDocument> prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(1, prevDocs.size());
         assertEquals(SplitDocType.DEFAULT_NO_BRANCH, prevDocs.get(0).getSplitDocType());
 
@@ -3877,7 +3875,7 @@ public class VersionGarbageCollectorIT {
 
         doc = getDoc("/foo");
         assertNotNull(doc);
-        prevDocs = ImmutableList.copyOf(doc.getAllPreviousDocs());
+        prevDocs = CollectionUtils.toList(doc.getAllPreviousDocs());
         assertEquals(0, prevDocs.size());
         // check value
         assertEquals(value, store1.getRoot().getChildNode("foo").getString("prop"));
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java
index 06dd7dcec3..9dc5f19cf2 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java
@@ -47,9 +47,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.event.Level;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-import org.apache.jackrabbit.guava.common.collect.Lists;
-
 /**
  * Tests the RDBBlobStore implementation.
  */
@@ -199,7 +196,7 @@ public class RDBBlobStoreTest extends AbstractBlobStoreTest {
         RDBBlobStoreFriend.storeBlock(blobStore, digest, 0, data);
         // Metadata row should not have been touched
         Assert.assertFalse("entry was cleaned although it shouldn't have",
-                blobStore.deleteChunks(ImmutableList.of(id), beforeUpdateTs));
+                blobStore.deleteChunks(List.of(id), beforeUpdateTs));
         // Actual data row should still be present
         Assert.assertNotNull(RDBBlobStoreFriend.readBlockFromBackend(blobStore, digest));
     }
@@ -228,7 +225,7 @@ public class RDBBlobStoreTest extends AbstractBlobStoreTest {
         byte[] digest2 = getDigest(data2);
         RDBBlobStoreFriend.storeBlock(blobStore, digest2, 0, data2);
 
-        Assert.assertEquals("meta entry was not removed", 1, blobStore.countDeleteChunks(ImmutableList.of(id1), now));
+        Assert.assertEquals("meta entry was not removed", 1, blobStore.countDeleteChunks(List.of(id1), now));
         Assert.assertFalse("data entry was not removed", RDBBlobStoreFriend.isDataEntryPresent(blobStore, digest1));
     }
 
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundledDocumentDifferTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundledDocumentDifferTest.java
index a833ad94cb..e1a5678017 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundledDocumentDifferTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundledDocumentDifferTest.java
@@ -20,7 +20,7 @@
 package org.apache.jackrabbit.oak.plugins.document.bundlor;
 
 import java.util.Collections;
-
+import java.util.List;
 
 import org.apache.jackrabbit.guava.common.collect.ArrayListMultimap;
 import org.apache.jackrabbit.guava.common.collect.ListMultimap;
@@ -47,7 +47,6 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.SYS_PROP_DISABLE_JOURNAL;
 import static org.apache.jackrabbit.oak.plugins.document.TestUtils.childBuilder;
 import static org.apache.jackrabbit.oak.plugins.document.TestUtils.createChild;
@@ -185,7 +184,7 @@ public class BundledDocumentDifferTest {
     @Test
     public void jsopDiff() throws Exception{
         JsopWriter w = new JsopBuilder();
-        differ.diffChildren(of("a", "b"), of("b", "c"), w);
+        differ.diffChildren(List.of("a", "b"), List.of("b", "c"), w);
 
         //removed a
         //changed b
@@ -246,7 +245,7 @@ public class BundledDocumentDifferTest {
     }
 
     private SecondaryStoreCache configureSecondary(){
-        SecondaryStoreBuilder builder = createBuilder(new PathFilter(of("/"), Collections.<String>emptyList()));
+        SecondaryStoreBuilder builder = createBuilder(new PathFilter(List.of("/"), Collections.emptyList()));
         builder.metaPropNames(DocumentNodeStore.META_PROP_NAMES);
         SecondaryStoreCache cache = builder.buildCache();
         SecondaryStoreObserver observer = builder.buildObserver(cache);
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlingTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlingTest.java
index 9e0f958c53..63ab8c5e90 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlingTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlingTest.java
@@ -26,13 +26,13 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.jackrabbit.guava.common.collect.Iterables;
-import org.apache.jackrabbit.guava.common.collect.Lists;
 
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.document.Collection;
 import org.apache.jackrabbit.oak.plugins.document.Document;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMKBuilderProvider;
@@ -67,7 +67,6 @@ import org.junit.Test;
 
 import static java.lang.String.format;
 import static java.util.Objects.requireNonNull;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.commons.io.FileUtils.ONE_MB;
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
@@ -1047,7 +1046,7 @@ public class DocumentBundlingTest {
     }
 
     private static List<String> childNames(NodeState state, String path){
-        return copyOf(getNode(state, path).getChildNodeNames());
+        return CollectionUtils.toList(getNode(state, path).getChildNodeNames());
     }
 
     static NodeBuilder newNode(String typeName){
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java
... 408 lines suppressed ...