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/30 15:05:17 UTC

(jackrabbit-oak) 01/01: OAK-11332: Remove usage of Guava ImmutableList (copyOf)

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

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

commit e7dc580b6c3a96858708174b04bf31d4617775b4
Author: Julian Reschke <re...@apache.org>
AuthorDate: Mon Dec 30 16:04:58 2024 +0100

    OAK-11332: Remove usage of Guava ImmutableList (copyOf)
---
 .../GetPrivilegeCollectionIncludeNamesTest.java           |  5 ++---
 .../principalbased/PermissionEvaluationTest.java          |  3 +--
 .../principalbased/PrinicipalBasedReadTest.java           |  5 ++---
 .../jackrabbit/oak/spi/whiteboard/WhiteboardUtils.java    |  6 ++----
 .../oak/plugins/index/CompositeIndexEditorProvider.java   |  4 +---
 .../apache/jackrabbit/oak/plugins/index/IndexUtils.java   |  4 ++--
 .../oak/plugins/index/inventory/IndexPrinter.java         |  4 ++--
 .../oak/plugins/version/ReadWriteVersionManager.java      |  3 +--
 .../oak/plugins/index/lucene/IndexAugmentorFactory.java   |  5 ++---
 .../oak/plugins/index/lucene/hybrid/NRTIndex.java         |  4 +---
 .../oak/spi/query/CompositeQueryIndexProvider.java        |  6 ++----
 .../indexer/document/flatfile/SimpleFlatFileUtil.java     |  4 ++--
 .../indexer/document/flatfile/SimpleNodeStateHolder.java  |  6 +++---
 .../indexer/document/flatfile/StateInBytesHolder.java     |  6 +++---
 .../jackrabbit/oak/plugins/index/search/Aggregate.java    |  5 ++---
 .../oak/plugins/index/search/PropertyDefinition.java      |  4 ++--
 .../oak/spi/security/CompositeConfiguration.java          | 15 ++++++++-------
 .../authentication/token/CompositeTokenProvider.java      |  4 +---
 .../authorization/accesscontrol/ImmutableACL.java         |  3 +--
 .../java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java  |  5 ++---
 .../jackrabbit/oak/plugins/document/NodeDocument.java     | 10 ++++------
 .../oak/plugins/document/bundlor/BundlorUtils.java        |  4 ++--
 .../oak/plugins/document/bundlor/DocumentBundlor.java     |  3 +--
 .../jackrabbit/oak/plugins/document/bundlor/Include.java  |  4 ++--
 .../plugins/document/secondary/SecondaryStoreBuilder.java |  4 +---
 .../org/apache/jackrabbit/oak/json/JsonSerializer.java    |  4 ++--
 .../apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java  |  8 ++++----
 27 files changed, 58 insertions(+), 80 deletions(-)

diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/GetPrivilegeCollectionIncludeNamesTest.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/GetPrivilegeCollectionIncludeNamesTest.java
index 3e9a471898..aa91bcf647 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/GetPrivilegeCollectionIncludeNamesTest.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/GetPrivilegeCollectionIncludeNamesTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.benchmark.authorization;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import joptsimple.internal.Strings;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeCollection;
@@ -44,7 +43,7 @@ public class GetPrivilegeCollectionIncludeNamesTest extends AbstractHasItemGetIt
         ACCESSCONTORL_MANAGER_HAS_PRIVILEGES
     } 
     
-    private static final List<String> ALL_PRIVILEGE_NAMES = ImmutableList.copyOf(PrivilegeBits.BUILT_IN.keySet());
+    private static final List<String> ALL_PRIVILEGE_NAMES = List.copyOf(PrivilegeBits.BUILT_IN.keySet());
     
     private final EvaluationType evalType;
     
@@ -73,7 +72,7 @@ public class GetPrivilegeCollectionIncludeNamesTest extends AbstractHasItemGetIt
     @Override
     void additionalOperations(@NotNull String path, @NotNull Session s, @NotNull AccessControlManager acMgr) {
         try {
-            List<String> privNames = ImmutableList.of(getRandom(ALL_PRIVILEGE_NAMES), getRandom(ALL_PRIVILEGE_NAMES), getRandom(ALL_PRIVILEGE_NAMES), getRandom(ALL_PRIVILEGE_NAMES));
+            List<String> privNames = List.of(getRandom(ALL_PRIVILEGE_NAMES), getRandom(ALL_PRIVILEGE_NAMES), getRandom(ALL_PRIVILEGE_NAMES), getRandom(ALL_PRIVILEGE_NAMES));
             String accessControlledPath = getAccessControlledPath(path);
             if (EvaluationType.ACCESSCONTORL_MANAGER_GET_PRIVILEGE_COLLECTION == evalType) {
                 PrivilegeCollection pc = ((JackrabbitAccessControlManager) acMgr).getPrivilegeCollection(accessControlledPath);
diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PermissionEvaluationTest.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PermissionEvaluationTest.java
index f9b41678e3..e5731f83f2 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PermissionEvaluationTest.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PermissionEvaluationTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.benchmark.authorization.principalbased;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissions;
 import org.jetbrains.annotations.NotNull;
 
@@ -38,7 +37,7 @@ public class PermissionEvaluationTest extends PrinicipalBasedReadTest {
             logout = true;
         }
         try {
-            List<String> permissionNames = ImmutableList.copyOf(Permissions.PERMISSION_NAMES.values());
+            List<String> permissionNames = List.copyOf(Permissions.PERMISSION_NAMES.values());
             int access = 0;
             int noAccess = 0;
             long start = System.currentTimeMillis();
diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PrinicipalBasedReadTest.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PrinicipalBasedReadTest.java
index 4fa7ed3703..8587b57954 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PrinicipalBasedReadTest.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/principalbased/PrinicipalBasedReadTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.benchmark.authorization.principalbased;
 
-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.JackrabbitSession;
@@ -161,7 +159,8 @@ public class PrinicipalBasedReadTest extends ReadDeepTreeTest {
             }
             added = acl.addAccessControlEntry(principal, privileges);
         } else {
-            for (JackrabbitAccessControlPolicy policy : Iterables.concat(ImmutableList.copyOf(acMgr.getApplicablePolicies(principal)), ImmutableList.copyOf(acMgr.getPolicies(principal)))) {
+            for (JackrabbitAccessControlPolicy policy : Iterables.concat(Arrays.asList(acMgr.getApplicablePolicies(principal)),
+                    Arrays.asList(acMgr.getPolicies(principal)))) {
                 if (policy instanceof PrincipalAccessControlList) {
                     acl = (PrincipalAccessControlList) policy;
                     break;
diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/whiteboard/WhiteboardUtils.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/whiteboard/WhiteboardUtils.java
index 3b6eda2011..74febd396b 100644
--- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/whiteboard/WhiteboardUtils.java
+++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/whiteboard/WhiteboardUtils.java
@@ -22,6 +22,7 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
@@ -30,9 +31,6 @@ import org.apache.jackrabbit.oak.commons.jmx.JmxUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-import org.apache.jackrabbit.guava.common.collect.Iterables;
-
 import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.ScheduleExecutionInstanceTypes.DEFAULT;
 import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.ScheduleExecutionInstanceTypes.RUN_ON_LEADER;
 import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.ScheduleExecutionInstanceTypes.RUN_ON_SINGLE;
@@ -165,7 +163,7 @@ public class WhiteboardUtils {
             if (predicate == null) {
                 return tracker.getServices();
             } else {
-                return ImmutableList.copyOf(Iterables.filter(tracker.getServices(), (input) -> predicate.test(input)));
+                return tracker.getServices().stream().filter(predicate).collect(Collectors.toUnmodifiableList());
             }
         } finally {
             tracker.stop();
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/CompositeIndexEditorProvider.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/CompositeIndexEditorProvider.java
index aa2f2b4c50..a9c59e8c72 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/CompositeIndexEditorProvider.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/CompositeIndexEditorProvider.java
@@ -28,8 +28,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 /**
  * Aggregation of a list of editor providers into a single provider.
  */
@@ -50,7 +48,7 @@ public class CompositeIndexEditorProvider implements IndexEditorProvider {
             return providers.iterator().next();
         } else {
             return new CompositeIndexEditorProvider(
-                    ImmutableList.copyOf(providers));
+                    List.copyOf(providers));
         }
     }
 
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
index a35ee9fe42..62dd63b39c 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java
@@ -30,6 +30,7 @@ import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PRO
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.UNIQUE_PROPERTY_NAME;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.Map;
@@ -42,7 +43,6 @@ import java.util.stream.StreamSupport;
 
 import javax.jcr.RepositoryException;
 
-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.Tree;
@@ -131,7 +131,7 @@ public final class IndexUtils {
                                              @NotNull String[] propertyNames,
                                              @NotNull String... declaringNodeTypeNames) throws RepositoryException {
 
-        return createIndexDefinition(indexNode, indexDefName, unique, ImmutableList.copyOf(propertyNames), ImmutableList.copyOf(declaringNodeTypeNames), PropertyIndexEditorProvider.TYPE, null);
+        return createIndexDefinition(indexNode, indexDefName, unique, Arrays.asList(propertyNames), Arrays.asList(declaringNodeTypeNames), PropertyIndexEditorProvider.TYPE, null);
     }
 
     /**
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
index 2ccabd43af..e27ad0f715 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
@@ -28,11 +28,11 @@ import java.util.TimeZone;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.felix.inventory.Format;
 import org.apache.felix.inventory.InventoryPrinter;
 import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
 import org.apache.jackrabbit.oak.commons.IOUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
 import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfo;
 import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService;
@@ -76,7 +76,7 @@ public class IndexPrinter implements InventoryPrinter {
     }
 
     private void asyncLanesInfo(PrinterOutput po) {
-        List<String> asyncLanes = ImmutableList.copyOf(asyncIndexInfoService.getAsyncLanes());
+        List<String> asyncLanes = CollectionUtils.toList(asyncIndexInfoService.getAsyncLanes());
         po.startSection("Async Indexers State", true);
         po.text("Number of async indexer lanes", asyncLanes.size());
 
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
index 0e3766cf2a..f40dcddd71 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Set;
 import javax.jcr.RepositoryException;
 
-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.Root;
@@ -436,7 +435,7 @@ public class ReadWriteVersionManager extends ReadOnlyVersionManager {
 
         Validate.checkState(versionable.hasProperty(JCR_PREDECESSORS));
         PropertyState state = versionable.getProperty(JCR_PREDECESSORS);
-        List<String> predecessors = ImmutableList.copyOf(state.getValue(Type.REFERENCES));
+        List<String> predecessors = CollectionUtils.toList(state.getValue(Type.REFERENCES));
         NodeBuilder version = vHistory.child(calculateVersion(vHistory, versionable));
 
         String versionUUID = UUIDUtils.generateUUID();
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexAugmentorFactory.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexAugmentorFactory.java
index 5ae384fb64..86f76fda22 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexAugmentorFactory.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexAugmentorFactory.java
@@ -23,7 +23,6 @@ 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.LinkedListMultimap;
 import org.apache.jackrabbit.guava.common.collect.ListMultimap;
 import org.osgi.service.component.annotations.Component;
@@ -185,7 +184,7 @@ public class IndexAugmentorFactory {
 
         CompositeIndexFieldProvider(String nodeType, List<IndexFieldProvider> providers) {
             this.nodeType = nodeType;
-            this.providers = ImmutableList.copyOf(providers);
+            this.providers = List.copyOf(providers);
         }
 
         @NotNull
@@ -219,7 +218,7 @@ public class IndexAugmentorFactory {
 
         CompositeFulltextQueryTermsProvider(String nodeType, List<FulltextQueryTermsProvider> providers) {
             this.nodeType = nodeType;
-            this.providers = ImmutableList.copyOf(providers);
+            this.providers = List.copyOf(providers);
         }
 
         @Override
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
index 0791004a36..c70755d4b6 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid;
 
 import java.io.Closeable;
@@ -29,7 +28,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.commons.conditions.Validate;
 import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier;
@@ -173,7 +171,7 @@ public class NRTIndex implements Closeable {
         decrementReaderUseCount(readers);
 
         dirReader = latestReader;
-        readers = ImmutableList.copyOf(newReaders);
+        readers = List.copyOf(newReaders);
         return readers;
     }
 
diff --git a/oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/CompositeQueryIndexProvider.java b/oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/CompositeQueryIndexProvider.java
index 57e70fe08a..430bb9e3f2 100644
--- a/oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/CompositeQueryIndexProvider.java
+++ b/oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/CompositeQueryIndexProvider.java
@@ -24,8 +24,6 @@ import java.util.List;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 /**
  * This {@code QueryIndexProvider} aggregates a list of query index providers
  * into a single query index provider.
@@ -49,14 +47,14 @@ public class CompositeQueryIndexProvider implements QueryIndexProvider {
             return new QueryIndexProvider() {
                 @Override
                 public List<QueryIndex> getQueryIndexes(NodeState nodeState) {
-                    return ImmutableList.of();
+                    return List.of();
                 }
             };
         } else if (providers.size() == 1) {
             return providers.iterator().next();
         } else {
             return new CompositeQueryIndexProvider(
-                    ImmutableList.copyOf(providers));
+                    List.copyOf(providers));
         }
     }
 
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleFlatFileUtil.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleFlatFileUtil.java
index 5c54bc6548..643eeb1fd6 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleFlatFileUtil.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleFlatFileUtil.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
 
 import java.io.BufferedWriter;
@@ -29,6 +28,7 @@ import java.nio.file.Files;
 import java.util.Comparator;
 import java.util.stream.StreamSupport;
 
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeState;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
@@ -93,7 +93,7 @@ public class SimpleFlatFileUtil {
             return;
         }
         String jsonText = entryWriter.asSortedJson(e.getNodeState());
-        String line = entryWriter.toString(copyOf(elements(path)), jsonText);
+        String line = entryWriter.toString(CollectionUtils.toList(elements(path)), jsonText);
         writer.append(line);
         writer.append(LINE_SEPARATOR);
         totalLines++;
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleNodeStateHolder.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleNodeStateHolder.java
index dd0a365c5f..c3bac1cb8e 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleNodeStateHolder.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/SimpleNodeStateHolder.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.jackrabbit.oak.commons.StringUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 
-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;
 
@@ -32,7 +32,7 @@ public class SimpleNodeStateHolder implements NodeStateHolder{
     private final List<String> pathElements;
 
     public SimpleNodeStateHolder(String line) {
-        this.pathElements = copyOf(elements(getPath(line)));
+        this.pathElements = Collections.unmodifiableList(CollectionUtils.toList(elements(getPath(line))));
         this.line = line;
     }
 
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/StateInBytesHolder.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/StateInBytesHolder.java
index 3b46e85ba8..31694ce551 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/StateInBytesHolder.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/StateInBytesHolder.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
 
 import java.nio.charset.StandardCharsets;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.jackrabbit.oak.commons.StringUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
 
 class StateInBytesHolder implements NodeStateHolder {
@@ -32,7 +32,7 @@ class StateInBytesHolder implements NodeStateHolder {
     private final byte[] content;
 
     public StateInBytesHolder(String path, String line) {
-        this.pathElements = copyOf(elements(path));
+        this.pathElements = Collections.unmodifiableList(CollectionUtils.toList(elements(path)));
         this.content = line.getBytes(StandardCharsets.UTF_8);
     }
 
diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/Aggregate.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/Aggregate.java
index 09b72ebc3d..69ce99079f 100644
--- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/Aggregate.java
+++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/Aggregate.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;
@@ -28,9 +27,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Pattern;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.plugins.index.search.util.ConfigUtil;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
@@ -343,7 +342,7 @@ public class Aggregate {
         }
 
         public boolean matches(String nodePath) {
-            List<String> pathElements = ImmutableList.copyOf(PathUtils.elements(nodePath));
+            List<String> pathElements = CollectionUtils.toList(PathUtils.elements(nodePath));
             if (pathElements.size() != elements.length){
                 return false;
             }
diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/PropertyDefinition.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/PropertyDefinition.java
index 9310058a13..04eb55dd3c 100644
--- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/PropertyDefinition.java
+++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/PropertyDefinition.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.search;
 
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.toArray;
 import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
 import static org.apache.jackrabbit.oak.commons.PathUtils.isAbsolute;
@@ -32,6 +31,7 @@ import static org.apache.jackrabbit.oak.plugins.index.search.util.ConfigUtil.get
 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.index.property.ValuePattern;
 import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition.IndexingRule;
 import org.apache.jackrabbit.oak.plugins.index.search.util.FunctionIndexProcessor;
@@ -306,7 +306,7 @@ public class PropertyDefinition {
         if (FulltextIndexConstants.REGEX_ALL_PROPS.equals(path)) {
             return EMPTY_ANCESTORS;
         } else {
-            return toArray(copyOf(elements(PathUtils.getParentPath(path))), String.class);
+            return toArray(CollectionUtils.toList(elements(PathUtils.getParentPath(path))), String.class);
         }
     }
 
diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
index 64a669bb15..e0dd31f5ee 100644
--- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
+++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
@@ -18,7 +18,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.guava.common.collect.Lists;
 import org.apache.jackrabbit.guava.common.collect.ObjectArrays;
@@ -45,6 +44,7 @@ import org.osgi.annotation.versioning.ProviderType;
 import org.osgi.framework.Constants;
 
 import java.security.Principal;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -142,9 +142,9 @@ public abstract class CompositeConfiguration<T extends SecurityConfiguration> im
     @NotNull
     public List<T> getConfigurations() {
         if (configurations.isEmpty() && defaultConfig != null) {
-            return ImmutableList.of(defaultConfig);
+            return List.of(defaultConfig);
         } else {
-            return ImmutableList.copyOf(configurations);
+            return List.copyOf(configurations);
         }
     }
 
@@ -221,20 +221,21 @@ public abstract class CompositeConfiguration<T extends SecurityConfiguration> im
     public List<? extends CommitHook> getCommitHooks(@NotNull final String workspaceName) {
         Iterable<CommitHook> t = Iterables.concat(Lists.transform(getConfigurations(),
                 securityConfiguration -> securityConfiguration.getCommitHooks(workspaceName)));
-        return ImmutableList.copyOf(t);
+        return Collections.unmodifiableList(CollectionUtils.toList(t));
     }
 
     @NotNull
     @Override
     public List<? extends ValidatorProvider> getValidators(@NotNull final String workspaceName, @NotNull final Set<Principal> principals, @NotNull final MoveTracker moveTracker) {
         Iterable<ValidatorProvider> t = Iterables.concat(Lists.transform(getConfigurations(), securityConfiguration -> securityConfiguration.getValidators(workspaceName, principals, moveTracker)));
-        return ImmutableList.copyOf(t);
+        return Collections.unmodifiableList(CollectionUtils.toList(t));
     }
 
     @NotNull
     @Override
     public List<ThreeWayConflictHandler> getConflictHandlers() {
-        return ImmutableList.copyOf(Iterables.concat(Lists.transform(getConfigurations(), securityConfiguration -> securityConfiguration.getConflictHandlers())));
+        return CollectionUtils.toList(Iterables.concat(Lists.transform(getConfigurations(),
+                securityConfiguration -> securityConfiguration.getConflictHandlers())));
     }
 
     @NotNull
@@ -242,7 +243,7 @@ public abstract class CompositeConfiguration<T extends SecurityConfiguration> im
     public List<ProtectedItemImporter> getProtectedItemImporters() {
         Iterable<ProtectedItemImporter> t = Iterables.concat(Lists.transform(getConfigurations(),
                 securityConfiguration -> securityConfiguration.getProtectedItemImporters()));
-        return ImmutableList.copyOf(t);
+        return Collections.unmodifiableList(CollectionUtils.toList(t));
     }
 
     @NotNull
diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProvider.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProvider.java
index 354799349e..55b1a7c3c6 100644
--- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProvider.java
+++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenProvider.java
@@ -21,8 +21,6 @@ import java.util.List;
 import java.util.Map;
 import javax.jcr.Credentials;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
-
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -35,7 +33,7 @@ public final class CompositeTokenProvider implements TokenProvider {
     private final List<TokenProvider> providers;
 
     private CompositeTokenProvider(@NotNull List<? extends TokenProvider> providers) {
-        this.providers = ImmutableList.copyOf(providers);
+        this.providers = List.copyOf(providers);
     }
 
     @NotNull
diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java
index 3c264d2a19..d22aaf5785 100644
--- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java
+++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java
@@ -26,7 +26,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.api.security.JackrabbitAccessControlEntry;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
@@ -57,7 +56,7 @@ public class ImmutableACL extends AbstractAccessControlList {
                         @NotNull RestrictionProvider restrictionProvider,
                         @NotNull NamePathMapper namePathMapper) {
         super(oakPath, namePathMapper);
-        this.entries = ImmutableList.copyOf(entries);
+        this.entries = List.copyOf(entries);
         this.restrictionProvider = restrictionProvider;
     }
 
diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
index 8451aa1a55..36d9ec2de5 100644
--- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
+++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
@@ -25,7 +25,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.nodetype.PropertyDefinition;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
 import org.jetbrains.annotations.NotNull;
@@ -73,7 +72,7 @@ public class PropInfo {
      * @param value value of the property being imported
      */
     public PropInfo(@Nullable String name, int type, @NotNull TextValue value) {
-        this(name, type, ImmutableList.of(value), MultipleStatus.UNKNOWN);
+        this(name, type, List.of(value), MultipleStatus.UNKNOWN);
     }
 
     /**
@@ -100,7 +99,7 @@ public class PropInfo {
                     @NotNull MultipleStatus multipleStatus) {
         this.name = name;
         this.type = type;
-        this.values = ImmutableList.copyOf(values);
+        this.values = List.copyOf(values);
         this.multipleStatus = multipleStatus;
     }
 
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
index 039781089b..4eaf1367e5 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.document;
 import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 import static org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
-import static org.apache.jackrabbit.guava.common.collect.ImmutableList.copyOf;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.filter;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.mergeSorted;
 import static org.apache.jackrabbit.guava.common.collect.Iterables.transform;
@@ -55,7 +54,6 @@ import java.util.function.Predicate;
 
 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.Iterables;
 import org.apache.jackrabbit.guava.common.collect.Maps;
 import org.apache.jackrabbit.guava.common.collect.Ordering;
@@ -766,7 +764,7 @@ public final class NodeDocument extends Document {
         // if we don't have clusterIds, we can use the local changes only
         boolean fullScan = true;
         Iterable<Revision> changes = Iterables.mergeSorted(
-                ImmutableList.of(
+                List.of(
                         getLocalRevisions().keySet(),
                         getLocalCommitRoot().keySet()),
                 getLocalRevisions().comparator()
@@ -777,7 +775,7 @@ public final class NodeDocument extends Document {
             // include previous documents as well (only needed in rare cases)
             fullScan = false;
             changes = Iterables.mergeSorted(
-                    ImmutableList.of(
+                    List.of(
                             changes,
                             getChanges(REVISIONS, lower),
                             getChanges(COMMIT_ROOT, lower)
@@ -1561,7 +1559,7 @@ public final class NodeDocument extends Document {
      */
     Iterable<Revision> getAllChanges() {
         RevisionVector empty = new RevisionVector();
-        return Iterables.mergeSorted(ImmutableList.of(
+        return Iterables.mergeSorted(List.of(
                 getChanges(REVISIONS, empty),
                 getChanges(COMMIT_ROOT, empty)
         ), StableRevisionComparator.REVERSE);
@@ -1820,7 +1818,7 @@ public final class NodeDocument extends Document {
                 }
             };
         } else {
-            changes = Iterables.concat(transform(copyOf(ranges), rangeToChanges::apply));
+            changes = Iterables.concat(transform(List.copyOf(ranges), rangeToChanges::apply));
         }
         return filter(changes, input -> !readRev.isRevisionNewer(input.getKey()));
     }
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlorUtils.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlorUtils.java
index 2da4803dbe..f2d772c666 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlorUtils.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/BundlorUtils.java
@@ -27,9 +27,9 @@ import java.util.Map;
 import java.util.Set;
 import java.util.function.Predicate;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.jetbrains.annotations.NotNull;
 
@@ -86,7 +86,7 @@ public final class BundlorUtils {
         int expectedDepth = matcher.depth() + 1;
 
         for (String key : keys){
-            List<String> elements = ImmutableList.copyOf(PathUtils.elements(key));
+            List<String> elements = CollectionUtils.toList(PathUtils.elements(key));
             int depth = elements.size() - 1;
 
             if (depth == expectedDepth
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlor.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlor.java
index 30fbb25518..eb060ba1e8 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlor.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/DocumentBundlor.java
@@ -21,7 +21,6 @@ package org.apache.jackrabbit.oak.plugins.document.bundlor;
 import java.util.ArrayList;
 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.Type;
 import org.apache.jackrabbit.oak.commons.PathUtils;
@@ -95,7 +94,7 @@ public class DocumentBundlor {
 
     private DocumentBundlor(List<Include> includes) {
         checkArgument(!includes.isEmpty(), "Include list cannot be empty");
-        this.includes = ImmutableList.copyOf(includes);
+        this.includes = List.copyOf(includes);
     }
 
     public boolean isBundled(String relativePath) {
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/Include.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/Include.java
index 5fea58f80e..b007615617 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/Include.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/bundlor/Include.java
@@ -22,8 +22,8 @@ package org.apache.jackrabbit.oak.plugins.document.bundlor;
 import java.util.ArrayList;
 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 static org.apache.jackrabbit.guava.common.base.Preconditions.checkElementIndex;
 
@@ -53,7 +53,7 @@ public class Include {
     private final String pattern;
 
     public Include(String pattern){
-        List<String> pathElements = ImmutableList.copyOf(PathUtils.elements(pattern));
+        List<String> pathElements = CollectionUtils.toList(PathUtils.elements(pattern));
         List<String> elementList = new ArrayList<>(pathElements.size());
         Directive directive = Directive.NONE;
         for (int i = 0; i < pathElements.size(); i++) {
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreBuilder.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreBuilder.java
index d54c45d1c9..37d8975ec1 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreBuilder.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreBuilder.java
@@ -16,13 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.jackrabbit.oak.plugins.document.secondary;
 
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.plugins.document.NodeStateDiffer;
 import org.apache.jackrabbit.oak.spi.filter.PathFilter;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
@@ -57,7 +55,7 @@ public class SecondaryStoreBuilder {
     }
 
     public SecondaryStoreBuilder metaPropNames(List<String> metaPropNames) {
-        this.metaPropNames = ImmutableList.copyOf(metaPropNames);
+        this.metaPropNames = List.copyOf(metaPropNames);
         return this;
     }
 
diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/json/JsonSerializer.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/json/JsonSerializer.java
index cff18a5433..3b0415a93c 100644
--- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/json/JsonSerializer.java
+++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/json/JsonSerializer.java
@@ -30,10 +30,10 @@ import java.util.Collections;
 import java.util.List;
 import java.util.regex.Pattern;
 
+import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
 import org.jetbrains.annotations.NotNull;
 import javax.jcr.PropertyType;
 
-import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -188,7 +188,7 @@ public class JsonSerializer {
     private Iterable<? extends ChildNodeEntry> getChildNodeEntries(NodeState node, String basePath) {
         PropertyState order = node.getProperty(":childOrder");
         if (order != null) {
-            List<String> names = ImmutableList.copyOf(order.getValue(NAMES));
+            List<String> names = Collections.unmodifiableList(CollectionUtils.toList(order.getValue(NAMES)));
             List<ChildNodeEntry> entries = new ArrayList<>(names.size());
             for (String name : names) {
                 try {
diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
index 33548361f6..2815b6912c 100644
--- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
+++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
@@ -31,6 +31,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.HashMap;
@@ -57,8 +58,6 @@ import javax.jcr.nodetype.PropertyDefinitionTemplate;
 import javax.jcr.security.Privilege;
 
 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.commons.collections4.bidimap.DualHashBidiMap;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -772,8 +771,9 @@ public class RepositoryUpgrade {
             while (it.hasNext()) {
                 Privilege aggrPriv = it.next();
 
-                List<String> aggrNames = Lists.transform(ImmutableList.copyOf(aggrPriv.getDeclaredAggregatePrivileges()),
-                        input -> (input == null) ? null : input.getName());
+                List<String> aggrNames = Arrays.stream(aggrPriv.getDeclaredAggregatePrivileges()).
+                        map(input -> (input == null) ? null : input.getName()).collect(Collectors.toList());
+
                 if (allAggregatesRegistered(pMgr, aggrNames)) {
                     pMgr.registerPrivilege(aggrPriv.getName(), aggrPriv.isAbstract(), aggrNames.toArray(new String[aggrNames.size()]));
                     it.remove();