You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2026/02/16 10:33:35 UTC

(sling-org-apache-sling-caconfig-impl) branch feature/SLING-13118-update-test-deps created (now 3859000)

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

sseifert pushed a change to branch feature/SLING-13118-update-test-deps
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-caconfig-impl.git


      at 3859000  SLING-13118 update test dependencies, eliminate usage of guava in test code additionally, switch to non-deprecated String-related signatures from commons lang (also in main code)

This branch includes the following new commits:

     new 3859000  SLING-13118 update test dependencies, eliminate usage of guava in test code additionally, switch to non-deprecated String-related signatures from commons lang (also in main code)

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.



(sling-org-apache-sling-caconfig-impl) 01/01: SLING-13118 update test dependencies, eliminate usage of guava in test code additionally, switch to non-deprecated String-related signatures from commons lang (also in main code)

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

sseifert pushed a commit to branch feature/SLING-13118-update-test-deps
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-caconfig-impl.git

commit 3859000356340606097f907ea7d5c65b9290c6e3
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Mon Feb 16 11:33:21 2026 +0100

    SLING-13118 update test dependencies, eliminate usage of guava in test code
    additionally, switch to non-deprecated String-related signatures from commons lang (also in main code)
---
 pom.xml                                            |   6 +-
 .../caconfig/impl/ConfigurationBuilderImpl.java    |   3 +-
 .../DefaultConfigurationPersistenceStrategy.java   |   4 +-
 .../impl/metadata/AnnotationClassParser.java       |   8 +-
 .../ConfigurationOverrideMultiplexerImpl.java      |   5 +-
 .../impl/override/OverrideStringParser.java        |  13 +--
 ...ystemPropertyConfigurationOverrideProvider.java |   3 +-
 .../management/impl/ConfigurationDataImpl.java     |   7 +-
 .../management/impl/ConfigurationManagerImpl.java  |   5 +-
 .../caconfig/management/impl/ValueInfoImpl.java    |   6 +-
 .../console/ConfigurationWebConsolePlugin.java     |   5 +-
 ...aultConfigurationResourceResolvingStrategy.java |   5 +-
 .../resource/impl/util/ConfigNameUtil.java         |   5 +-
 .../impl/util/PathParentExpandIterator.java        |   4 +-
 .../sling/caconfig/example/SimpleSlingModel.java   |   5 +-
 .../ConfigurationBindingsValueProviderTest.java    |  23 ++---
 ...tionInheritanceStrategyMultiplexerImplTest.java |   5 +-
 .../impl/ConfigurationResolverAdaptableTest.java   |  14 +--
 .../ConfigurationResolverAnnotationClassTest.java  |   9 +-
 ...onfigurationResolverCustomPersistence2Test.java |   6 +-
 ...onfigurationResolverCustomPersistence3Test.java |   6 +-
 ...ConfigurationResolverCustomPersistenceTest.java |   6 +-
 .../impl/ConfigurationResolverValueMapTest.java    |  14 +--
 .../impl/DummyConfigurationMetadataProvider.java   |   9 +-
 ...efaultConfigurationInheritanceStrategyTest.java |  10 +-
 ...efaultConfigurationPersistenceStrategyTest.java |  58 ++++++-----
 .../impl/metadata/AnnotationClassParserTest.java   |  19 ++--
 ...urationMetadataProviderMultiplexerImplTest.java |  10 +-
 .../ConfigurationOverrideMultiplexerImplTest.java  |  21 ++--
 .../DummyConfigurationOverrideProvider.java        |   4 +-
 .../caconfig/impl/override/OverrideItemTest.java   |   3 +-
 .../impl/override/OverrideStringParserTest.java    |  31 +++---
 .../impl/ConfigurationCollectionDataImplTest.java  |  12 +--
 .../management/impl/ConfigurationDataImplTest.java |  15 +--
 .../ConfigurationManagementSettingsImplTest.java   |  28 +++---
 ...igurationManagerImplCustomPersistence2Test.java |   4 +-
 ...igurationManagerImplCustomPersistence3Test.java |   4 +-
 ...figurationManagerImplCustomPersistenceTest.java |   4 +-
 .../ConfigurationManagerImplNoDefaultTest.java     |  13 ++-
 .../impl/ConfigurationManagerImplTest.java         | 109 ++++++++++-----------
 ...tionPersistenceStrategyMultiplexerImplTest.java |  21 ++--
 .../CustomConfigurationPersistenceStrategy.java    |   4 +-
 .../CustomConfigurationPersistenceStrategy2.java   |   4 +-
 .../CustomConfigurationPersistenceStrategy3.java   |   4 +-
 .../impl/console/CAConfigInventoryPrinterTest.java |  21 ++--
 .../ConfigurationResourceResolverImplTest.java     |   7 +-
 ...sourceResolvingStrategyMultiplexerImplTest.java |  45 +++------
 ...tionResourceResolvingStrategyHierarchyTest.java |   3 +-
 .../impl/def/DefaultContextPathStrategyTest.java   |  10 +-
 .../resource/impl/util/ConfigNameUtilTest.java     |  10 +-
 .../caconfig/resource/impl/util/MapUtilTest.java   |   9 +-
 .../util/PathEliminateDuplicatesIteratorTest.java  |   8 +-
 .../impl/util/PathParentExpandIteratorTest.java    |   8 +-
 .../ResourceEliminateDuplicatesIteratorTest.java   |   3 +-
 .../util/ResourcePathCollatingIteratorTest.java    |  25 +++--
 55 files changed, 330 insertions(+), 373 deletions(-)

diff --git a/pom.xml b/pom.xml
index ebbfd1d..80499a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,7 +175,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
-            <version>3.2.2</version>
+            <version>3.6.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -187,7 +187,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.hamcrest</artifactId>
-            <version>1.0.2</version>
+            <version>1.1.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -198,7 +198,7 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>4.1.0</version>
+            <version>5.21.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java b/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
index 0eed14c..9181ea0 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
@@ -31,6 +31,7 @@ import org.apache.commons.collections4.ResettableListIterator;
 import org.apache.commons.collections4.Transformer;
 import org.apache.commons.collections4.iterators.ListIteratorWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.ValueMap;
@@ -279,7 +280,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
         ConfigurationMetadata metadata = configurationMetadataProvider.getConfigurationMetadata(configName);
         if (metadata == null) {
             // probably a configuration list - remove item name from end
-            if (StringUtils.contains(configName, "/")) {
+            if (Strings.CS.contains(configName, "/")) {
                 String partialConfigName = StringUtils.substringBeforeLast(configName, "/");
                 metadata = configurationMetadataProvider.getConfigurationMetadata(partialConfigName);
             }
diff --git a/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java b/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
index 4ae2d98..11064ab 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
@@ -22,7 +22,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.ModifiableValueMap;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
@@ -269,7 +269,7 @@ public class DefaultConfigurationPersistenceStrategy implements ConfigurationPer
     }
 
     private ConfigurationPersistenceException convertPersistenceException(String message, PersistenceException ex) {
-        if (StringUtils.equals(ex.getCause().getClass().getName(), "javax.jcr.AccessDeniedException")) {
+        if (Strings.CS.equals(ex.getCause().getClass().getName(), "javax.jcr.AccessDeniedException")) {
             // detect if commit failed due to read-only access to repository
             return new ConfigurationPersistenceAccessDeniedException("No write access: " + message, ex);
         }
diff --git a/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java b/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
index 9b031fc..f9ea4a9 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
@@ -24,12 +24,14 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.SortedSet;
 import java.util.TreeSet;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.annotation.Configuration;
 import org.apache.sling.caconfig.annotation.Property;
 import org.apache.sling.caconfig.spi.metadata.ConfigurationMetadata;
@@ -153,8 +155,8 @@ public final class AnnotationClassParser {
             public int compare(PropertyMetadata<?> o1, PropertyMetadata<?> o2) {
                 int compare = Integer.compare(o1.getOrder(), o2.getOrder());
                 if (compare == 0) {
-                    String sort1 = StringUtils.defaultString(o1.getLabel(), o1.getName());
-                    String sort2 = StringUtils.defaultString(o2.getLabel(), o2.getName());
+                    String sort1 = Objects.toString(o1.getLabel(), o1.getName());
+                    String sort2 = Objects.toString(o2.getLabel(), o2.getName());
                     compare = sort1.compareTo(sort2);
                 }
                 return compare;
@@ -214,7 +216,7 @@ public final class AnnotationClassParser {
     private static Map<String, String> propsArrayToMap(String[] properties) {
         Map<String, String> props = new HashMap<>();
         for (String property : properties) {
-            int index = StringUtils.indexOf(property, "=");
+            int index = Strings.CS.indexOf(property, "=");
             if (index >= 0) {
                 String key = property.substring(0, index);
                 String value = property.substring(index + 1);
diff --git a/src/main/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImpl.java b/src/main/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImpl.java
index 6f2dc34..79cfd68 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImpl.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.SyntheticResource;
@@ -82,7 +83,7 @@ public class ConfigurationOverrideMultiplexerImpl implements ConfigurationOverri
     @Override
     public boolean isAllOverridden(@NotNull String contextPath, @NotNull String configName) {
         for (OverrideItem override : allOverrides) {
-            if (StringUtils.equals(configName, override.getConfigName()) && override.matchesPath(contextPath)) {
+            if (Strings.CS.equals(configName, override.getConfigName()) && override.matchesPath(contextPath)) {
                 if (override.isAllProperties()) {
                     return true;
                 }
@@ -101,7 +102,7 @@ public class ConfigurationOverrideMultiplexerImpl implements ConfigurationOverri
         Map<String, Object> overrideProperties = new HashMap<>(properties);
 
         for (OverrideItem override : allOverrides) {
-            if (StringUtils.equals(configName, override.getConfigName()) && override.matchesPath(contextPath)) {
+            if (Strings.CS.equals(configName, override.getConfigName()) && override.matchesPath(contextPath)) {
                 if (override.isAllProperties()) {
                     overrideProperties.clear();
                 }
diff --git a/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java b/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java
index 3340b50..14c3ff1 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java
@@ -43,6 +43,7 @@ import jakarta.json.JsonString;
 import jakarta.json.JsonValue;
 import org.apache.commons.lang3.ClassUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.spi.metadata.PropertyMetadata;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -127,8 +128,8 @@ class OverrideStringParser {
                 boolean foundMatchingItem = false;
                 for (OverrideItem existingItem : result) {
                     if (!existingItem.isAllProperties()
-                            && StringUtils.equals(item.getPath(), existingItem.getPath())
-                            && StringUtils.equals(item.getConfigName(), existingItem.getConfigName())) {
+                            && Strings.CS.equals(item.getPath(), existingItem.getPath())
+                            && Strings.CS.equals(item.getConfigName(), existingItem.getConfigName())) {
                         existingItem.getProperties().putAll(item.getProperties());
                         foundMatchingItem = true;
                         break;
@@ -153,7 +154,7 @@ class OverrideStringParser {
      * @throws JSONException when JSON parsing failed
      */
     private static JsonObject toJson(String value) {
-        if (!StringUtils.startsWith(value, "{")) {
+        if (!Strings.CS.startsWith(value, "{")) {
             return null;
         }
         try (Reader reader = new StringReader(value);
@@ -239,17 +240,17 @@ class OverrideStringParser {
      */
     private static boolean isValid(OverrideItem item, String overrideString) {
         if (item.getPath() != null
-                && (!StringUtils.startsWith(item.getPath(), "/") || StringUtils.contains(item.getPath(), ".."))) {
+                && (!Strings.CS.startsWith(item.getPath(), "/") || Strings.CS.contains(item.getPath(), ".."))) {
             log.warn("Ignore config override string - invalid path: {}", overrideString);
             return false;
         }
-        if (StringUtils.startsWith(item.getConfigName(), "/") || StringUtils.contains(item.getConfigName(), "..")) {
+        if (Strings.CS.startsWith(item.getConfigName(), "/") || Strings.CS.contains(item.getConfigName(), "..")) {
             log.warn("Ignore config override string - invalid configName: {}", overrideString);
             return false;
         }
         for (Map.Entry<String, Object> entry : item.getProperties().entrySet()) {
             String propertyName = entry.getKey();
-            if (StringUtils.isEmpty(propertyName) || StringUtils.contains(propertyName, "/")) {
+            if (StringUtils.isEmpty(propertyName) || Strings.CS.contains(propertyName, "/")) {
                 log.warn(
                         "Ignore config override string - invalid property name ({}): {}", propertyName, overrideString);
                 return false;
diff --git a/src/main/java/org/apache/sling/caconfig/impl/override/SystemPropertyConfigurationOverrideProvider.java b/src/main/java/org/apache/sling/caconfig/impl/override/SystemPropertyConfigurationOverrideProvider.java
index e8dd230..2c64753 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/override/SystemPropertyConfigurationOverrideProvider.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/override/SystemPropertyConfigurationOverrideProvider.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Properties;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.spi.ConfigurationOverrideProvider;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.service.component.annotations.Activate;
@@ -72,7 +73,7 @@ public final class SystemPropertyConfigurationOverrideProvider implements Config
                 Object keyObject = keys.nextElement();
                 if (keyObject instanceof String) {
                     String key = (String) keyObject;
-                    if (StringUtils.startsWith(key, SYSTEM_PROPERTY_PREFIX)) {
+                    if (Strings.CS.startsWith(key, SYSTEM_PROPERTY_PREFIX)) {
                         overrides.add(StringUtils.substringAfter(key, SYSTEM_PROPERTY_PREFIX) + "="
                                 + System.getProperty(key));
                     }
diff --git a/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java b/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
index cf5a0a1..7a206df 100644
--- a/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
@@ -25,12 +25,13 @@ import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.TreeSet;
 
 import org.apache.commons.collections4.IteratorUtils;
 import org.apache.commons.lang3.ClassUtils;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.ValueMap;
@@ -206,7 +207,7 @@ final class ConfigurationDataImpl implements ConfigurationData {
                         resolvedConfigurationResource != null ? resolvedConfigurationResource.getPath() : null;
                 String nestedConfigName;
                 if (configResourceCollection) {
-                    String nestedCollectionItemName = StringUtils.defaultString(getCollectionItemName(), "newItem");
+                    String nestedCollectionItemName = Objects.toString(getCollectionItemName(), "newItem");
                     nestedConfigName = configurationPersistenceStrategy.getCollectionItemConfigName(
                                     configurationPersistenceStrategy.getCollectionParentConfigName(
                                                     configName, relatedConfigPath)
@@ -291,7 +292,7 @@ final class ConfigurationDataImpl implements ConfigurationData {
             if (writebackConfigurationResource == null) {
                 return true;
             } else {
-                return !StringUtils.equals(
+                return !Strings.CS.equals(
                         writebackConfigurationResource.getPath(), resolvedConfigurationResource.getPath());
             }
         }
diff --git a/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java b/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java
index 012cc61..1e3eb60 100644
--- a/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImpl.java
@@ -32,6 +32,7 @@ import org.apache.commons.collections4.ResettableIterator;
 import org.apache.commons.collections4.Transformer;
 import org.apache.commons.collections4.iterators.ListIteratorWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.caconfig.management.ConfigurationCollectionData;
@@ -476,7 +477,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager {
 
     private ConfigurationMetadata getNestedConfigurationMetadata(
             ConfigurationMetadata configMetadata, String configName, String partialConfigName) {
-        if (StringUtils.startsWith(configName, partialConfigName + "/")) {
+        if (Strings.CS.startsWith(configName, partialConfigName + "/")) {
 
             // depending on different persistence strategies config names can be transformed differently - try all
             // combinations here
@@ -529,7 +530,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager {
                 partialConfigMetadata.getPropertyMetadata().values()) {
             if (propertyMetadata.isNestedConfiguration()) {
                 ConfigurationMetadata nestedConfigMetadata = propertyMetadata.getConfigurationMetadata();
-                if (StringUtils.equals(configName, nestedConfigMetadata.getName())) {
+                if (Strings.CS.equals(configName, nestedConfigMetadata.getName())) {
                     return nestedConfigMetadata;
                 }
             }
diff --git a/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java b/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java
index 25a066c..d57815b 100644
--- a/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java
@@ -23,7 +23,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.management.ValueInfo;
 import org.apache.sling.caconfig.management.multiplexer.ConfigurationOverrideMultiplexer;
@@ -123,13 +123,13 @@ final class ValueInfoImpl<T> implements ValueInfo<T> {
             return false;
         } else if (writebackConfigurationResource == null) {
             return true;
-        } else if (!StringUtils.equals(
+        } else if (!Strings.CS.equals(
                 resolvedConfigurationResource.getPath(), writebackConfigurationResource.getPath())) {
             return true;
         } else {
             Resource inheritanceSource = getResourceFromInheritanceChain();
             if (inheritanceSource != null) {
-                return !StringUtils.equals(resolvedConfigurationResource.getPath(), inheritanceSource.getPath());
+                return !Strings.CS.equals(resolvedConfigurationResource.getPath(), inheritanceSource.getPath());
             } else {
                 return false;
             }
diff --git a/src/main/java/org/apache/sling/caconfig/management/impl/console/ConfigurationWebConsolePlugin.java b/src/main/java/org/apache/sling/caconfig/management/impl/console/ConfigurationWebConsolePlugin.java
index 63bd8ed..fd3842c 100644
--- a/src/main/java/org/apache/sling/caconfig/management/impl/console/ConfigurationWebConsolePlugin.java
+++ b/src/main/java/org/apache/sling/caconfig/management/impl/console/ConfigurationWebConsolePlugin.java
@@ -33,6 +33,7 @@ import java.util.Iterator;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.felix.webconsole.AbstractWebConsolePlugin;
 import org.apache.felix.webconsole.WebConsoleConstants;
 import org.apache.sling.api.resource.LoginException;
@@ -312,7 +313,7 @@ public class ConfigurationWebConsolePlugin extends AbstractWebConsolePlugin {
         pw.print("<option value=''>(please select)</option>");
         for (String option : options) {
             pw.print("<option");
-            if (StringUtils.equals(option, value)) {
+            if (Strings.CS.equals(option, value)) {
                 pw.print(" selected");
             }
             pw.print(">");
@@ -362,7 +363,7 @@ public class ConfigurationWebConsolePlugin extends AbstractWebConsolePlugin {
                 for (int i = 0; i < Array.getLength(value); i++) {
                     Object itemValue = Array.get(value, i);
                     pw.print(Encode.forHtmlContent(
-                            ObjectUtils.defaultIfNull(itemValue, "").toString()));
+                            ObjectUtils.getIfNull(itemValue, "").toString()));
                     pw.println("<br>");
                 }
             } else {
diff --git a/src/main/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java b/src/main/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
index ee60b04..7a3249a 100644
--- a/src/main/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
+++ b/src/main/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
@@ -37,6 +37,7 @@ import org.apache.commons.collections4.iterators.ArrayIterator;
 import org.apache.commons.collections4.iterators.FilterIterator;
 import org.apache.commons.collections4.iterators.IteratorChain;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
@@ -276,7 +277,7 @@ public class DefaultConfigurationResourceResolvingStrategy implements Configurat
 
     private boolean isFallbackConfigPath(final String ref) {
         for (final String path : this.config.fallbackPaths()) {
-            if (StringUtils.equals(ref, path) || StringUtils.startsWith(ref, path + "/")) {
+            if (Strings.CS.equals(ref, path) || Strings.CS.startsWith(ref, path + "/")) {
                 return true;
             }
         }
@@ -495,7 +496,7 @@ public class DefaultConfigurationResourceResolvingStrategy implements Configurat
 
     private boolean isValidResourceCollectionItem(Resource resource) {
         // do not include jcr:content nodes in resource collection list
-        return !StringUtils.equals(resource.getName(), "jcr:content");
+        return !Strings.CS.equals(resource.getName(), "jcr:content");
     }
 
     @Override
diff --git a/src/main/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtil.java b/src/main/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtil.java
index 9c5ea42..6a826af 100644
--- a/src/main/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtil.java
+++ b/src/main/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtil.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 
 /**
  * Helper methods for configuration names.
@@ -39,8 +40,8 @@ public final class ConfigNameUtil {
      */
     public static boolean isValid(final String configName) {
         return !StringUtils.isBlank(configName)
-                && !StringUtils.startsWith(configName, "/")
-                && !StringUtils.contains(configName, "../");
+                && !Strings.CS.startsWith(configName, "/")
+                && !Strings.CS.contains(configName, "../");
     }
 
     /**
diff --git a/src/main/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIterator.java b/src/main/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIterator.java
index 749d865..a7ed25b 100644
--- a/src/main/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIterator.java
+++ b/src/main/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIterator.java
@@ -22,7 +22,7 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Queue;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.api.resource.ResourceUtil;
 
 /**
@@ -57,7 +57,7 @@ public class PathParentExpandIterator implements Iterator<String> {
     private void expandPaths(String path) {
         expandedPaths.add(path);
         String parentPath = ResourceUtil.getParent(path);
-        if (parentPath != null && !StringUtils.equals(parentPath, rootPath)) {
+        if (parentPath != null && !Strings.CS.equals(parentPath, rootPath)) {
             expandPaths(parentPath);
         }
     }
diff --git a/src/test/java/org/apache/sling/caconfig/example/SimpleSlingModel.java b/src/test/java/org/apache/sling/caconfig/example/SimpleSlingModel.java
index 5be9d08..3e52b73 100644
--- a/src/test/java/org/apache/sling/caconfig/example/SimpleSlingModel.java
+++ b/src/test/java/org/apache/sling/caconfig/example/SimpleSlingModel.java
@@ -20,6 +20,7 @@ package org.apache.sling.caconfig.example;
 
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.injectorspecific.InjectionStrategy;
 import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;
 
 @Model(adaptables = Resource.class)
@@ -28,9 +29,9 @@ public interface SimpleSlingModel {
     @ValueMapValue(name = "stringParam")
     String getStringParam();
 
-    @ValueMapValue(name = "intParam", optional = true)
+    @ValueMapValue(name = "intParam", injectionStrategy = InjectionStrategy.OPTIONAL)
     int getIntParam();
 
-    @ValueMapValue(name = "boolParam", optional = true)
+    @ValueMapValue(name = "boolParam", injectionStrategy = InjectionStrategy.OPTIONAL)
     boolean getBoolParam();
 }
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java
index 470b301..6ba851f 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java
@@ -20,12 +20,12 @@ package org.apache.sling.caconfig.impl;
 
 import javax.script.Bindings;
 
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.SortedSet;
+import java.util.TreeSet;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSortedSet;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
@@ -44,6 +44,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
+import org.mockito.Mock.Strictness;
 import org.mockito.junit.MockitoJUnitRunner;
 
 import static org.junit.Assert.assertEquals;
@@ -58,20 +59,20 @@ import static org.mockito.Mockito.when;
 @SuppressWarnings("unchecked")
 public class ConfigurationBindingsValueProviderTest {
 
-    private static final ValueMap VALUEMAP = new ValueMapDecorator(ImmutableMap.<String, Object>of("param1", "value1"));
+    private static final ValueMap VALUEMAP = new ValueMapDecorator(Map.<String, Object>of("param1", "value1"));
 
-    private static final SortedSet<String> CONFIG_NAMES = ImmutableSortedSet.of("name1", "name.2");
+    private static final SortedSet<String> CONFIG_NAMES = new TreeSet<>(Set.of("name1", "name.2"));
 
     @Rule
     public SlingContext context = new SlingContext();
 
-    @Mock(lenient = true)
+    @Mock(strictness = Strictness.LENIENT)
     private SlingHttpServletRequest request;
 
     @Mock
     private Resource resource;
 
-    @Mock(lenient = true)
+    @Mock(strictness = Strictness.LENIENT)
     private Bindings bindings;
 
     @Mock
@@ -102,12 +103,12 @@ public class ConfigurationBindingsValueProviderTest {
         when(resource.adaptTo(ConfigurationBuilder.class)).thenReturn(configBuilder);
         when(configBuilder.name(anyString())).thenReturn(configBuilder);
         when(configBuilder.asValueMap()).thenReturn(VALUEMAP);
-        when(configBuilder.asValueMapCollection()).thenReturn(ImmutableList.of(VALUEMAP));
+        when(configBuilder.asValueMapCollection()).thenReturn(List.of(VALUEMAP));
 
         when(configMetadataProvider.getConfigurationMetadata("name1"))
-                .thenReturn(new ConfigurationMetadata("name1", ImmutableList.<PropertyMetadata<?>>of(), false));
+                .thenReturn(new ConfigurationMetadata("name1", List.<PropertyMetadata<?>>of(), false));
         when(configMetadataProvider.getConfigurationMetadata("name.2"))
-                .thenReturn(new ConfigurationMetadata("name.2", ImmutableList.<PropertyMetadata<?>>of(), true));
+                .thenReturn(new ConfigurationMetadata("name.2", List.<PropertyMetadata<?>>of(), true));
     }
 
     @Test
@@ -135,7 +136,7 @@ public class ConfigurationBindingsValueProviderTest {
         Map<String, ValueMap> configMap = configMapCaptor.getValue();
         assertEquals(CONFIG_NAMES, configMap.keySet());
         assertEquals(VALUEMAP, configMap.get("name1"));
-        assertEquals(ImmutableList.of(VALUEMAP), configMap.get("name.2"));
+        assertEquals(List.of(VALUEMAP), configMap.get("name.2"));
     }
 
     @Test
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationInheritanceStrategyMultiplexerImplTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationInheritanceStrategyMultiplexerImplTest.java
index d500bc0..dd796e2 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationInheritanceStrategyMultiplexerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationInheritanceStrategyMultiplexerImplTest.java
@@ -18,9 +18,10 @@
  */
 package org.apache.sling.caconfig.impl;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.spi.ConfigurationInheritanceStrategy;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
@@ -59,7 +60,7 @@ public class ConfigurationInheritanceStrategyMultiplexerImplTest {
 
     @Before
     public void setUp() {
-        resources = ImmutableList.of(resource1, resource2).iterator();
+        resources = new ArrayList<>(List.of(resource1, resource2)).iterator();
         underTest = context.registerInjectActivateService(new ConfigurationInheritanceStrategyMultiplexerImpl());
     }
 
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAdaptableTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAdaptableTest.java
index 18d17eb..884566d 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAdaptableTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAdaptableTest.java
@@ -21,9 +21,8 @@ package org.apache.sling.caconfig.impl;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.ConfigurationBuilder;
 import org.apache.sling.caconfig.ConfigurationResolveException;
@@ -118,9 +117,7 @@ public class ConfigurationResolverAdaptableTest {
         context.registerService(
                 ConfigurationMetadataProvider.class,
                 new DummyConfigurationMetadataProvider(
-                        "sampleName",
-                        ImmutableMap.<String, Object>of("stringParam", "defValue1", "intParam", 999),
-                        false));
+                        "sampleName", Map.<String, Object>of("stringParam", "defValue1", "intParam", 999), false));
 
         context.build().resource("/conf/content/site1/sling:configs/sampleName", "boolParam", true);
 
@@ -134,8 +131,7 @@ public class ConfigurationResolverAdaptableTest {
     public void testConfigCollectionWithDefaultValues() {
         context.registerService(
                 ConfigurationMetadataProvider.class,
-                new DummyConfigurationMetadataProvider(
-                        "sampleList", ImmutableMap.<String, Object>of("intParam", 999), true));
+                new DummyConfigurationMetadataProvider("sampleList", Map.<String, Object>of("intParam", 999), true));
 
         context.build()
                 .resource("/conf/content/site1/sling:configs/sampleList")
@@ -144,8 +140,8 @@ public class ConfigurationResolverAdaptableTest {
                 .resource("2", "stringParam", "configValue1.2")
                 .resource("3", "stringParam", "configValue1.3");
 
-        List<SimpleSlingModel> propsList = ImmutableList.copyOf(
-                underTest.get(site1Page1).name("sampleList").asAdaptableCollection(SimpleSlingModel.class));
+        List<SimpleSlingModel> propsList =
+                List.copyOf(underTest.get(site1Page1).name("sampleList").asAdaptableCollection(SimpleSlingModel.class));
 
         assertEquals("configValue1.1", propsList.get(0).getStringParam());
         assertEquals(999, propsList.get(0).getIntParam());
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
index 8f99233..a5e156c 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.ConfigurationBuilder;
 import org.apache.sling.caconfig.ConfigurationResolveException;
@@ -211,8 +210,7 @@ public class ConfigurationResolverAnnotationClassTest {
                 .siblingsMode()
                 .resource("1", "stringParam", "value21");
 
-        List<ListNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
+        List<ListNestedConfig> cfgList = List.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
@@ -266,7 +264,7 @@ public class ConfigurationResolverAnnotationClassTest {
                 .resource("1", "stringParam", "value21");
 
         List<ListDoubleNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
+                List.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
@@ -316,8 +314,7 @@ public class ConfigurationResolverAnnotationClassTest {
                         PROPERTY_CONFIG_PROPERTY_INHERIT,
                         true);
 
-        List<ListConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListConfig.class));
+        List<ListConfig> cfgList = List.copyOf(underTest.get(site1Page1).asCollection(ListConfig.class));
 
         assertEquals(3, cfgList.size());
         assertEquals("configValue2.2", cfgList.get(0).stringParam());
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence2Test.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence2Test.java
index 4c3bba1..d475c8b 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence2Test.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence2Test.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.ConfigurationResolveException;
 import org.apache.sling.caconfig.ConfigurationResolver;
@@ -177,8 +176,7 @@ public class ConfigurationResolverCustomPersistence2Test {
                 .siblingsMode()
                 .resource("1", "stringParam", "value21");
 
-        List<ListNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
+        List<ListNestedConfig> cfgList = List.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
@@ -231,7 +229,7 @@ public class ConfigurationResolverCustomPersistence2Test {
                 .resource("1", "stringParam", "value21");
 
         List<ListDoubleNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
+                List.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence3Test.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence3Test.java
index d844374..7a3b889 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence3Test.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistence3Test.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.ConfigurationResolveException;
 import org.apache.sling.caconfig.ConfigurationResolver;
@@ -176,8 +175,7 @@ public class ConfigurationResolverCustomPersistence3Test {
                 .siblingsMode()
                 .resource("1", "stringParam", "value21");
 
-        List<ListNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
+        List<ListNestedConfig> cfgList = List.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
@@ -229,7 +227,7 @@ public class ConfigurationResolverCustomPersistence3Test {
                 .resource("1", "stringParam", "value21");
 
         List<ListDoubleNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
+                List.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistenceTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistenceTest.java
index 729f59f..d135f90 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistenceTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverCustomPersistenceTest.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.ConfigurationResolveException;
 import org.apache.sling.caconfig.ConfigurationResolver;
@@ -176,8 +175,7 @@ public class ConfigurationResolverCustomPersistenceTest {
                 .siblingsMode()
                 .resource("1/jcr:content", "stringParam", "value21");
 
-        List<ListNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
+        List<ListNestedConfig> cfgList = List.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
@@ -229,7 +227,7 @@ public class ConfigurationResolverCustomPersistenceTest {
                 .resource("1/jcr:content", "stringParam", "value21");
 
         List<ListDoubleNestedConfig> cfgList =
-                ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
+                List.copyOf(underTest.get(site1Page1).asCollection(ListDoubleNestedConfig.class));
 
         assertEquals(3, cfgList.size());
 
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java
index c94e882..a54d881 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java
@@ -21,9 +21,8 @@ package org.apache.sling.caconfig.impl;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.caconfig.ConfigurationResolveException;
@@ -130,9 +129,7 @@ public class ConfigurationResolverValueMapTest {
         context.registerService(
                 ConfigurationMetadataProvider.class,
                 new DummyConfigurationMetadataProvider(
-                        "sampleName",
-                        ImmutableMap.<String, Object>of("stringParam", "defValue1", "intParam", 999),
-                        false));
+                        "sampleName", Map.<String, Object>of("stringParam", "defValue1", "intParam", 999), false));
 
         context.build().resource("/conf/content/site1/sling:configs/sampleName", "boolParam", true);
 
@@ -149,8 +146,7 @@ public class ConfigurationResolverValueMapTest {
     public void testConfigCollectionWithDefaultValues() {
         context.registerService(
                 ConfigurationMetadataProvider.class,
-                new DummyConfigurationMetadataProvider(
-                        "sampleList", ImmutableMap.<String, Object>of("intParam", 999), true));
+                new DummyConfigurationMetadataProvider("sampleList", Map.<String, Object>of("intParam", 999), true));
 
         context.build()
                 .resource("/conf/content/site1/sling:configs/sampleList")
@@ -159,8 +155,8 @@ public class ConfigurationResolverValueMapTest {
                 .resource("2", "stringParam", "configValue1.2")
                 .resource("3", "stringParam", "configValue1.3");
 
-        List<ValueMap> propsList = ImmutableList.copyOf(
-                underTest.get(site1Page1).name("sampleList").asValueMapCollection());
+        List<ValueMap> propsList =
+                List.copyOf(underTest.get(site1Page1).name("sampleList").asValueMapCollection());
 
         assertEquals("configValue1.1", propsList.get(0).get("stringParam", String.class));
         assertEquals(999, (int) propsList.get(0).get("intParam", 0));
diff --git a/src/test/java/org/apache/sling/caconfig/impl/DummyConfigurationMetadataProvider.java b/src/test/java/org/apache/sling/caconfig/impl/DummyConfigurationMetadataProvider.java
index cd13fee..5e757e6 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/DummyConfigurationMetadataProvider.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/DummyConfigurationMetadataProvider.java
@@ -21,10 +21,11 @@ package org.apache.sling.caconfig.impl;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.SortedSet;
+import java.util.TreeSet;
 
-import com.google.common.collect.ImmutableSortedSet;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.spi.ConfigurationMetadataProvider;
 import org.apache.sling.caconfig.spi.metadata.ConfigurationMetadata;
 import org.apache.sling.caconfig.spi.metadata.PropertyMetadata;
@@ -45,12 +46,12 @@ class DummyConfigurationMetadataProvider implements ConfigurationMetadataProvide
 
     @Override
     public @NotNull SortedSet<String> getConfigurationNames() {
-        return ImmutableSortedSet.of(configName);
+        return new TreeSet<>(Set.of(configName));
     }
 
     @Override
     public ConfigurationMetadata getConfigurationMetadata(String configName) {
-        if (!StringUtils.equals(this.configName, configName)) {
+        if (!Strings.CS.equals(this.configName, configName)) {
             return null;
         }
         List<PropertyMetadata<?>> properties = new ArrayList<>();
diff --git a/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationInheritanceStrategyTest.java b/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationInheritanceStrategyTest.java
index eae53bb..6405269 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationInheritanceStrategyTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationInheritanceStrategyTest.java
@@ -19,8 +19,8 @@
 package org.apache.sling.caconfig.impl.def;
 
 import java.util.Iterator;
+import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.caconfig.spi.ConfigurationInheritanceStrategy;
@@ -46,7 +46,7 @@ public class DefaultConfigurationInheritanceStrategyTest {
     public void testWithoutPropertyMerging() {
         underTest = context.registerInjectActivateService(new DefaultConfigurationInheritanceStrategy());
 
-        Iterator<Resource> resources = ImmutableList.of(
+        Iterator<Resource> resources = List.of(
                         context.create().resource("/conf/resource1", "prop1", "value1a", "prop2", "value2a"),
                         context.create().resource("/conf/resource2", "prop2", "value2b", "prop3", "value3b"),
                         context.create().resource("/conf/resource3", "prop4", "value4b"))
@@ -67,7 +67,7 @@ public class DefaultConfigurationInheritanceStrategyTest {
                 new DefaultConfigurationInheritanceStrategy(),
                 "configPropertyInheritancePropertyNames",
                 PROPERTY_CONFIG_PROPERTY_INHERIT_CUSTOM);
-        Iterator<Resource> resources = ImmutableList.of(
+        Iterator<Resource> resources = List.of(
                         context.create()
                                 .resource(
                                         "/conf/resource1",
@@ -102,7 +102,7 @@ public class DefaultConfigurationInheritanceStrategyTest {
     public void testWithPartialPropertyMerging() {
         underTest = context.registerInjectActivateService(new DefaultConfigurationInheritanceStrategy());
 
-        Iterator<Resource> resources = ImmutableList.of(
+        Iterator<Resource> resources = List.of(
                         context.create()
                                 .resource(
                                         "/conf/resource1",
@@ -130,7 +130,7 @@ public class DefaultConfigurationInheritanceStrategyTest {
         underTest =
                 context.registerInjectActivateService(new DefaultConfigurationInheritanceStrategy(), "enabled", false);
 
-        Iterator<Resource> resources = ImmutableList.of(
+        Iterator<Resource> resources = List.of(
                         context.create()
                                 .resource(
                                         "/conf/resource1",
diff --git a/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java b/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
index 1c31581..e683939 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
@@ -18,8 +18,10 @@
  */
 package org.apache.sling.caconfig.impl.def;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections4.IterableUtils;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.caconfig.management.impl.ConfigurationManagementSettingsImpl;
@@ -93,7 +95,7 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertTrue(underTest.persistConfiguration(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1", "prop2", 5))));
+                new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1", "prop2", 5))));
         context.resourceResolver().commit();
 
         ValueMap props = context.resourceResolver().getResource("/conf/test").getValueMap();
@@ -102,9 +104,7 @@ public class DefaultConfigurationPersistenceStrategyTest {
 
         // remove config data
         assertTrue(underTest.persistConfiguration(
-                context.resourceResolver(),
-                "/conf/test",
-                new ConfigurationPersistData(ImmutableMap.<String, Object>of())));
+                context.resourceResolver(), "/conf/test", new ConfigurationPersistData(Map.<String, Object>of())));
         context.resourceResolver().commit();
 
         props = context.resourceResolver().getResource("/conf/test").getValueMap();
@@ -124,12 +124,12 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1"))
+                new ConfigurationCollectionPersistData(List.of(
+                                new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1"))
                                         .collectionItemName("item1"),
-                                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop2", 5))
+                                new ConfigurationPersistData(Map.<String, Object>of("prop2", 5))
                                         .collectionItemName("item2")))
-                        .properties(ImmutableMap.<String, Object>of("prop1", "abc", "sling:resourceType", "/a/b/c"))));
+                        .properties(Map.<String, Object>of("prop1", "abc", "sling:resourceType", "/a/b/c"))));
         context.resourceResolver().commit();
 
         Resource resource = context.resourceResolver().getResource("/conf/test");
@@ -143,11 +143,11 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationCollectionPersistData(ImmutableList.<ConfigurationPersistData>of())));
+                new ConfigurationCollectionPersistData(List.<ConfigurationPersistData>of())));
         context.resourceResolver().commit();
 
         resource = context.resourceResolver().getResource("/conf/test");
-        assertEquals(0, ImmutableList.copyOf(resource.getChildren()).size());
+        assertEquals(0, IterableUtils.toList(resource.getChildren()).size());
 
         underTest.deleteConfiguration(context.resourceResolver(), "/conf/test");
         assertNull(context.resourceResolver().getResource("/conf/test"));
@@ -162,26 +162,26 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1"))
+                new ConfigurationCollectionPersistData(List.of(
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1"))
                                 .collectionItemName("item1"),
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value2"))
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value2"))
                                 .collectionItemName("item2")))));
 
         // store nested items
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test/item1/subList",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value11"))
+                new ConfigurationCollectionPersistData(List.of(
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value11"))
                                 .collectionItemName("sub1"),
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value12"))
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value12"))
                                 .collectionItemName("sub2")))));
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test/item2/subList",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value21"))
+                new ConfigurationCollectionPersistData(
+                        List.of(new ConfigurationPersistData(Map.<String, Object>of("prop1", "value21"))
                                 .collectionItemName("sub1")))));
 
         context.resourceResolver().commit();
@@ -202,12 +202,12 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value2-new"))
+                new ConfigurationCollectionPersistData(List.of(
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value2-new"))
                                 .collectionItemName("item2"),
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1-new"))
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1-new"))
                                 .collectionItemName("item1"),
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value3-new"))
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value3-new"))
                                 .collectionItemName("item3")))));
         context.resourceResolver().commit();
 
@@ -230,11 +230,11 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationCollectionPersistData(ImmutableList.<ConfigurationPersistData>of())));
+                new ConfigurationCollectionPersistData(List.<ConfigurationPersistData>of())));
         context.resourceResolver().commit();
 
         resource = context.resourceResolver().getResource("/conf/test");
-        assertEquals(0, ImmutableList.copyOf(resource.getChildren()).size());
+        assertEquals(0, IterableUtils.toList(resource.getChildren()).size());
 
         underTest.deleteConfiguration(context.resourceResolver(), "/conf/test");
         assertNull(context.resourceResolver().getResource("/conf/test"));
@@ -250,13 +250,11 @@ public class DefaultConfigurationPersistenceStrategyTest {
         assertNull(underTest.getResourcePath(resource.getPath()));
 
         assertFalse(underTest.persistConfiguration(
-                context.resourceResolver(),
-                "/conf/test",
-                new ConfigurationPersistData(ImmutableMap.<String, Object>of())));
+                context.resourceResolver(), "/conf/test", new ConfigurationPersistData(Map.<String, Object>of())));
         assertFalse(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/test",
-                new ConfigurationCollectionPersistData(ImmutableList.<ConfigurationPersistData>of())));
+                new ConfigurationCollectionPersistData(List.<ConfigurationPersistData>of())));
         assertFalse(underTest.deleteConfiguration(context.resourceResolver(), "/conf/test"));
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java b/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java
index 4d671bb..99d727c 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParserTest.java
@@ -20,10 +20,9 @@ package org.apache.sling.caconfig.impl.metadata;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.example.AllTypesConfig;
 import org.apache.sling.caconfig.example.ListConfig;
 import org.apache.sling.caconfig.example.MetadataSimpleConfig;
@@ -82,17 +81,17 @@ public class AnnotationClassParserTest {
         assertEquals("simpleConfig", metadata.getName());
         assertEquals("Simple configuration", metadata.getLabel());
         assertEquals("This is a configuration example with additional metadata.", metadata.getDescription());
-        assertEquals(ImmutableMap.of("param1", "value1", "param2", "123"), metadata.getProperties());
+        assertEquals(Map.of("param1", "value1", "param2", "123"), metadata.getProperties());
         assertFalse(metadata.isCollection());
 
         List<PropertyMetadata<?>> propertyMetadataList =
-                ImmutableList.copyOf(metadata.getPropertyMetadata().values());
+                List.copyOf(metadata.getPropertyMetadata().values());
         assertEquals(3, propertyMetadataList.size());
 
         PropertyMetadata<?> stringParam = propertyMetadataList.get(0);
         assertEquals("String Param", stringParam.getLabel());
         assertEquals("Enter strings here.", stringParam.getDescription());
-        assertEquals(ImmutableMap.of("p1", "v1"), stringParam.getProperties());
+        assertEquals(Map.of("p1", "v1"), stringParam.getProperties());
         assertNull(stringParam.getDefaultValue());
 
         PropertyMetadata<?> intParam = propertyMetadataList.get(1);
@@ -138,21 +137,21 @@ public class AnnotationClassParserTest {
         assertEquals(4, propertyMetadataList.size());
 
         for (PropertyMetadata<?> propertyMetadata : propertyMetadataList) {
-            if (StringUtils.equals(propertyMetadata.getName(), "stringParam")) {
+            if (Strings.CS.equals(propertyMetadata.getName(), "stringParam")) {
                 assertEquals(String.class, propertyMetadata.getType());
-            } else if (StringUtils.equals(propertyMetadata.getName(), "subConfig")) {
+            } else if (Strings.CS.equals(propertyMetadata.getName(), "subConfig")) {
                 assertEquals(ConfigurationMetadata.class, propertyMetadata.getType());
 
                 ConfigurationMetadata subConfigMetadata = propertyMetadata.getConfigurationMetadata();
                 assertEquals("subConfig", subConfigMetadata.getName());
                 assertEquals(3, subConfigMetadata.getPropertyMetadata().size());
-            } else if (StringUtils.equals(propertyMetadata.getName(), "subListConfig")) {
+            } else if (Strings.CS.equals(propertyMetadata.getName(), "subListConfig")) {
                 assertEquals(ConfigurationMetadata[].class, propertyMetadata.getType());
 
                 ConfigurationMetadata subListConfigMetadata = propertyMetadata.getConfigurationMetadata();
                 assertEquals("subListConfig", subListConfigMetadata.getName());
                 assertEquals(2, subListConfigMetadata.getPropertyMetadata().size());
-            } else if (StringUtils.equals(propertyMetadata.getName(), "subConfigWithoutAnnotation")) {
+            } else if (Strings.CS.equals(propertyMetadata.getName(), "subConfigWithoutAnnotation")) {
                 assertEquals(ConfigurationMetadata.class, propertyMetadata.getType());
 
                 ConfigurationMetadata subConfigWithoutAnnotationMetadata = propertyMetadata.getConfigurationMetadata();
diff --git a/src/test/java/org/apache/sling/caconfig/impl/metadata/ConfigurationMetadataProviderMultiplexerImplTest.java b/src/test/java/org/apache/sling/caconfig/impl/metadata/ConfigurationMetadataProviderMultiplexerImplTest.java
index 76fb8ee..e83b663 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/metadata/ConfigurationMetadataProviderMultiplexerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/metadata/ConfigurationMetadataProviderMultiplexerImplTest.java
@@ -19,12 +19,12 @@
 package org.apache.sling.caconfig.impl.metadata;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSortedSet;
 import org.apache.sling.caconfig.impl.def.DefaultConfigurationPersistenceStrategy;
 import org.apache.sling.caconfig.management.impl.ConfigurationManagementSettingsImpl;
 import org.apache.sling.caconfig.management.impl.ConfigurationPersistenceStrategyMultiplexerImpl;
@@ -70,7 +70,7 @@ public class ConfigurationMetadataProviderMultiplexerImplTest {
         registerConfigurationMetadataProvider("test1", "test2");
 
         SortedSet<String> configNames = underTest.getConfigurationNames();
-        assertEquals(ImmutableSortedSet.of("test1", "test2"), configNames);
+        assertEquals(new TreeSet<>(Set.of("test1", "test2")), configNames);
 
         ConfigurationMetadata configMetadata = underTest.getConfigurationMetadata("test1");
         assertEquals("test1", configMetadata.getName());
@@ -85,7 +85,7 @@ public class ConfigurationMetadataProviderMultiplexerImplTest {
         registerConfigurationMetadataProvider("test2");
 
         SortedSet<String> configNames = underTest.getConfigurationNames();
-        assertEquals(ImmutableSortedSet.of("test1", "test2"), configNames);
+        assertEquals(new TreeSet<>(Set.of("test1", "test2")), configNames);
 
         ConfigurationMetadata configMetadata = underTest.getConfigurationMetadata("test1");
         assertEquals("test1", configMetadata.getName());
@@ -97,7 +97,7 @@ public class ConfigurationMetadataProviderMultiplexerImplTest {
     private void registerConfigurationMetadataProvider(String... names) {
         final Map<String, ConfigurationMetadata> metadata = new HashMap<>();
         for (String name : names) {
-            metadata.put(name, new ConfigurationMetadata(name, ImmutableList.<PropertyMetadata<?>>of(), false));
+            metadata.put(name, new ConfigurationMetadata(name, List.<PropertyMetadata<?>>of(), false));
         }
         context.registerService(ConfigurationMetadataProvider.class, new ConfigurationMetadataProvider() {
             @Override
diff --git a/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java b/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java
index bb7be8f..ea11444 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java
@@ -20,7 +20,6 @@ package org.apache.sling.caconfig.impl.override;
 
 import java.util.Map;
 
-import com.google.common.collect.ImmutableMap;
 import org.apache.sling.caconfig.spi.ConfigurationOverrideProvider;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.junit.Before;
@@ -45,7 +44,7 @@ public class ConfigurationOverrideMultiplexerImplTest {
 
     @Test
     public void testWithNoProviders() {
-        assertOverride("/a/b", "test", ImmutableMap.<String, Object>of("param1", "initialValue"), null);
+        assertOverride("/a/b", "test", Map.<String, Object>of("param1", "initialValue"), null);
     }
 
     @Test
@@ -70,28 +69,28 @@ public class ConfigurationOverrideMultiplexerImplTest {
         assertOverride(
                 "/a",
                 "test",
-                ImmutableMap.<String, Object>of("param1", "initialValue"),
-                ImmutableMap.<String, Object>of("param1", "initialValue", "globalParam1", "globalValue1a"));
+                Map.<String, Object>of("param1", "initialValue"),
+                Map.<String, Object>of("param1", "initialValue", "globalParam1", "globalValue1a"));
 
         assertOverride(
                 "/a/b",
                 "test",
-                ImmutableMap.<String, Object>of("param1", "initialValue"),
-                ImmutableMap.<String, Object>of("param1", "value1", "globalParam1", "globalValue1a"));
+                Map.<String, Object>of("param1", "initialValue"),
+                Map.<String, Object>of("param1", "value1", "globalParam1", "globalValue1a"));
 
         assertOverride(
                 "/a/b/c",
                 "test",
-                ImmutableMap.<String, Object>of("param1", "initialValue"),
-                ImmutableMap.<String, Object>of("param1", "value2"));
+                Map.<String, Object>of("param1", "initialValue"),
+                Map.<String, Object>of("param1", "value2"));
 
         assertOverride(
                 "/a/b/c/d",
                 "test",
-                ImmutableMap.<String, Object>of("param1", "initialValue"),
-                ImmutableMap.<String, Object>of("param1", "value2"));
+                Map.<String, Object>of("param1", "initialValue"),
+                Map.<String, Object>of("param1", "value2"));
 
-        assertOverride("/a/b", "test2", ImmutableMap.<String, Object>of("param1", "initialValue"), null);
+        assertOverride("/a/b", "test2", Map.<String, Object>of("param1", "initialValue"), null);
     }
 
     private void assertOverride(String path, String configName, Map<String, Object> input, Map<String, Object> output) {
diff --git a/src/test/java/org/apache/sling/caconfig/impl/override/DummyConfigurationOverrideProvider.java b/src/test/java/org/apache/sling/caconfig/impl/override/DummyConfigurationOverrideProvider.java
index 3764fa6..341499c 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/override/DummyConfigurationOverrideProvider.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/override/DummyConfigurationOverrideProvider.java
@@ -18,10 +18,10 @@
  */
 package org.apache.sling.caconfig.impl.override;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.caconfig.spi.ConfigurationOverrideProvider;
 import org.jetbrains.annotations.NotNull;
 
@@ -30,7 +30,7 @@ public class DummyConfigurationOverrideProvider implements ConfigurationOverride
     private final List<String> overrideStrings;
 
     public DummyConfigurationOverrideProvider(String... overrideStrings) {
-        this.overrideStrings = ImmutableList.copyOf(overrideStrings);
+        this.overrideStrings = Arrays.asList(overrideStrings);
     }
 
     @Override
diff --git a/src/test/java/org/apache/sling/caconfig/impl/override/OverrideItemTest.java b/src/test/java/org/apache/sling/caconfig/impl/override/OverrideItemTest.java
index d2f908f..d5746fb 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/override/OverrideItemTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/override/OverrideItemTest.java
@@ -20,7 +20,6 @@ package org.apache.sling.caconfig.impl.override;
 
 import java.util.Map;
 
-import com.google.common.collect.ImmutableMap;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -35,7 +34,7 @@ public class OverrideItemTest {
 
     @Before
     public void setUp() {
-        props = ImmutableMap.<String, Object>of("p1", "abc", "p2", 55);
+        props = Map.<String, Object>of("p1", "abc", "p2", 55);
         underTest = new OverrideItem("/a/b", "c/d", props, true);
     }
 
diff --git a/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java b/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java
index 6bddca6..fae38f7 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java
@@ -18,11 +18,10 @@
  */
 package org.apache.sling.caconfig.impl.override;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 import org.junit.Test;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -33,22 +32,16 @@ import static org.junit.Assert.assertTrue;
 
 public class OverrideStringParserTest {
 
-    private static final Map<String, Object> BASICTYPES_MAP = ImmutableMap.<String, Object>builder()
-            .put("param1", "value1")
-            .put("param2", "value2")
-            .put("param3", 555L)
-            .put("param4", 1.23d)
-            .put("param5", true)
-            .build();
-
-    private static final Map<String, Object> BASICTYPES_ARRAY_MAP = ImmutableMap.<String, Object>builder()
-            .put("param1", new String[] {"v1a", "v1b"})
-            .put("param2", new String[] {"v2a", "v2b"})
-            .put("param3", new Long[] {555L, 666L})
-            .put("param4", new Double[] {1.23d, 2.34d})
-            .put("param5", new Boolean[] {true, false})
-            .put("param6", new String[0])
-            .build();
+    private static final Map<String, Object> BASICTYPES_MAP =
+            Map.of("param1", "value1", "param2", "value2", "param3", 555L, "param4", 1.23d, "param5", true);
+
+    private static final Map<String, Object> BASICTYPES_ARRAY_MAP = Map.of(
+            "param1", new String[] {"v1a", "v1b"},
+            "param2", new String[] {"v2a", "v2b"},
+            "param3", new Long[] {555L, 666L},
+            "param4", new Double[] {1.23d, 2.34d},
+            "param5", new Boolean[] {true, false},
+            "param6", new String[0]);
 
     @Test
     public void testEmptyList() {
@@ -217,6 +210,6 @@ public class OverrideStringParserTest {
     }
 
     private List<OverrideItem> parse(String... values) {
-        return ImmutableList.copyOf(OverrideStringParser.parse(ImmutableList.copyOf(values)));
+        return List.copyOf(OverrideStringParser.parse(Arrays.asList(values)));
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java
index 7573495..0024933 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java
@@ -19,10 +19,9 @@
 package org.apache.sling.caconfig.management.impl;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 import org.apache.sling.caconfig.management.ConfigurationCollectionData;
 import org.apache.sling.caconfig.management.ConfigurationData;
 import org.apache.sling.caconfig.management.ConfigurationManagementSettings;
@@ -58,27 +57,26 @@ public class ConfigurationCollectionDataImplTest {
 
     @Test
     public void testProperties() {
-        Map<String, Object> props = ImmutableMap.<String, Object>of("jcr:primaryType", "test", "prop1", "value1");
+        Map<String, Object> props = Map.<String, Object>of("jcr:primaryType", "test", "prop1", "value1");
         ConfigurationCollectionData underTest =
                 new ConfigurationCollectionDataImpl("name1", items, "/path1", props, configurationManagementSettings);
 
         assertEquals("name1", underTest.getConfigName());
         assertSame(items, underTest.getItems());
         assertEquals("/path1", underTest.getResourcePath());
-        assertEquals(ImmutableMap.<String, Object>of("prop1", "value1"), underTest.getProperties());
+        assertEquals(Map.<String, Object>of("prop1", "value1"), underTest.getProperties());
     }
 
     @Test
     public void testEmpty() {
         ConfigurationCollectionData underTest = new ConfigurationCollectionDataImpl(
-                "name1", ImmutableList.<ConfigurationData>of(), "/path1", null, configurationManagementSettings);
+                "name1", List.<ConfigurationData>of(), "/path1", null, configurationManagementSettings);
 
         assertEquals("name1", underTest.getConfigName());
         assertTrue(underTest.getItems().isEmpty());
         assertEquals("/path1", underTest.getResourcePath());
         assertEquals(
-                ImmutableMap.<String, Object>of(
-                        ConfigurationResourceNameConstants.PROPERTY_CONFIG_COLLECTION_INHERIT, true),
+                Map.<String, Object>of(ConfigurationResourceNameConstants.PROPERTY_CONFIG_COLLECTION_INHERIT, true),
                 underTest.getProperties());
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImplTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImplTest.java
index 2939522..a7c6bf9 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImplTest.java
@@ -18,8 +18,9 @@
  */
 package org.apache.sling.caconfig.management.impl;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.caconfig.impl.def.DefaultConfigurationPersistenceStrategy;
@@ -76,7 +77,7 @@ public class ConfigurationDataImplTest {
         configResource = context.create().resource("/conf/test", "prop1", "value1", "prop4", true);
         configMetadata = new ConfigurationMetadata(
                 "testName",
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5),
@@ -104,7 +105,7 @@ public class ConfigurationDataImplTest {
         assertEquals("item1", underTest.getCollectionItemName());
 
         assertEquals(configResource.getPath(), underTest.getResourcePath());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "propIntArray"), underTest.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4", "propIntArray"), underTest.getPropertyNames());
 
         ValueMap values = underTest.getValues();
         assertEquals("value1", values.get("prop1", String.class));
@@ -157,7 +158,7 @@ public class ConfigurationDataImplTest {
         assertEquals("test", underTest.getConfigName());
         assertNull(underTest.getCollectionItemName());
 
-        assertEquals(ImmutableSet.of("prop1", "prop4"), underTest.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop4"), underTest.getPropertyNames());
 
         ValueMap values = underTest.getValues();
         assertEquals("value1", values.get("prop1", String.class));
@@ -193,7 +194,7 @@ public class ConfigurationDataImplTest {
         assertEquals("test", underTest.getConfigName());
         assertNull(underTest.getCollectionItemName());
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "propIntArray"), underTest.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "propIntArray"), underTest.getPropertyNames());
 
         ValueMap values = underTest.getValues();
         assertTrue(values.isEmpty());
@@ -232,7 +233,7 @@ public class ConfigurationDataImplTest {
                 false,
                 null);
 
-        assertEquals(ImmutableSet.of("prop1", "prop4"), underTest.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop4"), underTest.getPropertyNames());
 
         assertNull(underTest.getValues().get("jcr:primaryType"));
         assertNull(underTest.getEffectiveValues().get("jcr:primaryType"));
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagementSettingsImplTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagementSettingsImplTest.java
index 6af28ed..86a0789 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagementSettingsImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagementSettingsImplTest.java
@@ -18,8 +18,9 @@
  */
 package org.apache.sling.caconfig.management.impl;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.sling.caconfig.management.ConfigurationManagementSettings;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.junit.Rule;
@@ -37,14 +38,13 @@ public class ConfigurationManagementSettingsImplTest {
         ConfigurationManagementSettings underTest =
                 context.registerInjectActivateService(new ConfigurationManagementSettingsImpl());
 
-        assertEquals(ImmutableSet.<String>of(), underTest.getIgnoredPropertyNames(ImmutableSet.<String>of()));
-        assertEquals(
-                ImmutableSet.<String>of(), underTest.getIgnoredPropertyNames(ImmutableSet.<String>of("abc", "def")));
+        assertEquals(Set.<String>of(), underTest.getIgnoredPropertyNames(Set.<String>of()));
+        assertEquals(Set.<String>of(), underTest.getIgnoredPropertyNames(Set.<String>of("abc", "def")));
         assertEquals(
-                ImmutableSet.<String>of("jcr:xyz", "jcr:def"),
-                underTest.getIgnoredPropertyNames(ImmutableSet.<String>of("abc", "jcr:xyz", "jcr:def")));
+                Set.<String>of("jcr:xyz", "jcr:def"),
+                underTest.getIgnoredPropertyNames(Set.<String>of("abc", "jcr:xyz", "jcr:def")));
 
-        assertEquals(ImmutableList.of("."), underTest.getConfigCollectionPropertiesResourceNames());
+        assertEquals(List.of("."), underTest.getConfigCollectionPropertiesResourceNames());
     }
 
     @Test
@@ -56,14 +56,12 @@ public class ConfigurationManagementSettingsImplTest {
                 "configCollectionPropertiesResourceNames",
                 new String[] {"a", "b"});
 
-        assertEquals(ImmutableSet.<String>of(), underTest.getIgnoredPropertyNames(ImmutableSet.<String>of()));
-        assertEquals(
-                ImmutableSet.<String>of("abc", "def"),
-                underTest.getIgnoredPropertyNames(ImmutableSet.<String>of("abc", "def")));
+        assertEquals(Set.<String>of(), underTest.getIgnoredPropertyNames(Set.<String>of()));
+        assertEquals(Set.<String>of("abc", "def"), underTest.getIgnoredPropertyNames(Set.<String>of("abc", "def")));
         assertEquals(
-                ImmutableSet.<String>of("abc", "jcr:def"),
-                underTest.getIgnoredPropertyNames(ImmutableSet.<String>of("abc", "jcr:xyz", "jcr:def")));
+                Set.<String>of("abc", "jcr:def"),
+                underTest.getIgnoredPropertyNames(Set.<String>of("abc", "jcr:xyz", "jcr:def")));
 
-        assertEquals(ImmutableList.of("a", "b"), underTest.getConfigCollectionPropertiesResourceNames());
+        assertEquals(List.of("a", "b"), underTest.getConfigCollectionPropertiesResourceNames());
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java
index 326d929..ccc9239 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java
@@ -21,7 +21,7 @@ package org.apache.sling.caconfig.management.impl;
 import java.util.Dictionary;
 import java.util.Hashtable;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy2;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -106,7 +106,7 @@ public class ConfigurationManagerImplCustomPersistence2Test extends Configuratio
     }
 
     private String replaceBucketName(String path) {
-        return StringUtils.replace(path, "/sling:configs/", "/settings/");
+        return Strings.CS.replace(path, "/sling:configs/", "/settings/");
     }
 
     @Override
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence3Test.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence3Test.java
index 8892792..3cc1187 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence3Test.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence3Test.java
@@ -21,7 +21,7 @@ package org.apache.sling.caconfig.management.impl;
 import java.util.Dictionary;
 import java.util.Hashtable;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy2;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -106,7 +106,7 @@ public class ConfigurationManagerImplCustomPersistence3Test extends Configuratio
     }
 
     private String replaceBucketName(String path) {
-        return StringUtils.replace(path, "/sling:configs/", "/settings/");
+        return Strings.CS.replace(path, "/sling:configs/", "/settings/");
     }
 
     @Override
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistenceTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistenceTest.java
index 74f4be0..0b15499 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistenceTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistenceTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.sling.caconfig.management.impl;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy2;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -72,7 +72,7 @@ public class ConfigurationManagerImplCustomPersistenceTest extends Configuration
     }
 
     private String replaceBucketName(String path) {
-        return StringUtils.replace(path, "/sling:configs/", "/settings/");
+        return Strings.CS.replace(path, "/sling:configs/", "/settings/");
     }
 
     @Override
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplNoDefaultTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplNoDefaultTest.java
index 48131f6..7eecd85 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplNoDefaultTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplNoDefaultTest.java
@@ -19,9 +19,8 @@
 package org.apache.sling.caconfig.management.impl;
 
 import java.util.List;
+import java.util.Set;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.impl.ConfigurationTestUtils;
 import org.apache.sling.caconfig.management.ConfigurationData;
@@ -76,7 +75,7 @@ public class ConfigurationManagerImplNoDefaultTest {
 
         configMetadata = new ConfigurationMetadata(
                 CONFIG_NAME,
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5)),
@@ -86,7 +85,7 @@ public class ConfigurationManagerImplNoDefaultTest {
 
         configMetadata = new ConfigurationMetadata(
                 CONFIG_COL_NAME,
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5)),
@@ -104,7 +103,7 @@ public class ConfigurationManagerImplNoDefaultTest {
         ConfigurationData configData = underTest.getConfiguration(contextResourceNoConfig, CONFIG_NAME);
         assertNotNull(configData);
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData.getEffectiveValues().get("prop3", 0));
 
@@ -123,7 +122,7 @@ public class ConfigurationManagerImplNoDefaultTest {
 
     @Test
     public void testGetCollection_NoConfigResources() {
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest
+        List<ConfigurationData> configDatas = List.copyOf(underTest
                 .getConfigurationCollection(contextResourceNoConfig, CONFIG_COL_NAME)
                 .getItems());
         assertEquals(0, configDatas.size());
@@ -134,7 +133,7 @@ public class ConfigurationManagerImplNoDefaultTest {
         when(configurationMetadataProvider.getConfigurationMetadata(CONFIG_COL_NAME))
                 .thenReturn(null);
 
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest
+        List<ConfigurationData> configDatas = List.copyOf(underTest
                 .getConfigurationCollection(contextResourceNoConfig, CONFIG_COL_NAME)
                 .getItems());
         assertEquals(0, configDatas.size());
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
index 74436d5..354a652 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
@@ -19,11 +19,10 @@
 package org.apache.sling.caconfig.management.impl;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedSet;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
@@ -217,7 +216,7 @@ public class ConfigurationManagerImplTest {
         // config metadata singleton config
         ConfigurationMetadata configMetadata = new ConfigurationMetadata(
                 CONFIG_NAME,
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5)),
@@ -228,7 +227,7 @@ public class ConfigurationManagerImplTest {
         // config metadata config collection
         ConfigurationMetadata configColMetadata = new ConfigurationMetadata(
                 CONFIG_COL_NAME,
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5)),
@@ -254,11 +253,11 @@ public class ConfigurationManagerImplTest {
          */
         ConfigurationMetadata propSubLevel2Metadata = new ConfigurationMetadata(
                 "propSubLevel2",
-                ImmutableList.<PropertyMetadata<?>>of(new PropertyMetadata<>("prop1", "defValueLevel2")),
+                List.<PropertyMetadata<?>>of(new PropertyMetadata<>("prop1", "defValueLevel2")),
                 false);
         ConfigurationMetadata propSubMetadata = new ConfigurationMetadata(
                 "propSub",
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5),
@@ -267,14 +266,14 @@ public class ConfigurationManagerImplTest {
                 false);
         ConfigurationMetadata propSubListMetadata = new ConfigurationMetadata(
                 "propSubList",
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValueSubList"),
                         new PropertyMetadata<>("propSub", ConfigurationMetadata.class)
                                 .configurationMetadata(propSubMetadata)),
                 true);
         ConfigurationMetadata configNestedMetadata = new ConfigurationMetadata(
                 CONFIG_NESTED_NAME,
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("propSub", ConfigurationMetadata.class)
                                 .configurationMetadata(propSubMetadata),
@@ -285,7 +284,7 @@ public class ConfigurationManagerImplTest {
                 .thenReturn(configNestedMetadata);
 
         when(configurationMetadataProvider.getConfigurationNames())
-                .thenReturn(ImmutableSortedSet.of(CONFIG_NAME, CONFIG_COL_NAME, CONFIG_NESTED_NAME));
+                .thenReturn(new TreeSet<>(Set.of(CONFIG_NAME, CONFIG_COL_NAME, CONFIG_NESTED_NAME)));
     }
 
     protected void provideCustomOsgiConfig() throws Exception {
@@ -326,7 +325,7 @@ public class ConfigurationManagerImplTest {
         assertNotNull(configData);
         assertFalse(configData.isInherited());
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4"), configData.getPropertyNames());
         assertEquals("value1", configData.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData.getEffectiveValues().get("prop3", 0));
 
@@ -342,7 +341,7 @@ public class ConfigurationManagerImplTest {
         assertNotNull(configData);
         assertTrue(configData.isInherited());
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
         assertEquals("value1", configData.getEffectiveValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData.getEffectiveValues().get("prop3", 0));
@@ -362,9 +361,7 @@ public class ConfigurationManagerImplTest {
         assertNotNull(configData);
         assertFalse(configData.isInherited());
 
-        assertTrue(configData
-                .getPropertyNames()
-                .containsAll(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "prop5")));
+        assertTrue(configData.getPropertyNames().containsAll(Set.of("prop1", "prop2", "prop3", "prop4", "prop5")));
         assertNull(configData.getValues().get("prop1", String.class));
         assertNull(configData.getValues().get("prop2", String.class));
         assertNull(configData.getValues().get("prop3", Integer.class));
@@ -404,7 +401,7 @@ public class ConfigurationManagerImplTest {
         assertFalse(configData.isInherited());
         assertTrue(configData.isOverridden());
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
         assertEquals("value1", configData.getValues().get("prop1", String.class));
         assertEquals("override1", configData.getEffectiveValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData.getEffectiveValues().get("prop3", 0));
@@ -434,7 +431,7 @@ public class ConfigurationManagerImplTest {
         assertFalse(configData.isInherited());
         assertTrue(configData.isOverridden());
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
         assertEquals("override1", configData.getEffectiveValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData.getEffectiveValues().get("prop3", 0));
@@ -451,7 +448,7 @@ public class ConfigurationManagerImplTest {
         assertNotNull(configData);
         assertFalse(configData.isInherited());
 
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData.getEffectiveValues().get("prop3", 0));
 
@@ -468,7 +465,7 @@ public class ConfigurationManagerImplTest {
         assertNotNull(configData);
         assertFalse(configData.isInherited());
 
-        assertEquals(ImmutableSet.of("prop1", "prop4"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop4"), configData.getPropertyNames());
         assertEquals("value1", configData.getValues().get("prop1", String.class));
         assertEquals((Integer) 0, configData.getEffectiveValues().get("prop3", 0));
 
@@ -489,13 +486,13 @@ public class ConfigurationManagerImplTest {
     public void testGetConfigurationCollection() {
         ConfigurationCollectionData configCollectionData =
                 underTest.getConfigurationCollection(contextResource, CONFIG_COL_NAME);
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(configCollectionData.getItems());
+        List<ConfigurationData> configDatas = List.copyOf(configCollectionData.getItems());
         assertEquals(2, configDatas.size());
 
         ConfigurationData configData1 = configDatas.get(0);
         assertFalse(configData1.isInherited());
         assertEquals("1", configData1.getCollectionItemName());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
         assertEquals("value1", configData1.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData1.getEffectiveValues().get("prop3", 0));
 
@@ -505,7 +502,7 @@ public class ConfigurationManagerImplTest {
         ConfigurationData configData2 = configDatas.get(1);
         assertFalse(configData2.isInherited());
         assertEquals("2", configData2.getCollectionItemName());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData2.getEffectiveValues().get("prop3", 0));
 
@@ -521,12 +518,12 @@ public class ConfigurationManagerImplTest {
     public void testGetConfigurationCollection_WithResourceCollectionInheritance() {
         ConfigurationCollectionData configCollectionData =
                 underTest.getConfigurationCollection(contextResourceLevel2, CONFIG_COL_NAME);
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(configCollectionData.getItems());
+        List<ConfigurationData> configDatas = List.copyOf(configCollectionData.getItems());
         assertEquals(2, configDatas.size());
 
         ConfigurationData configData1 = configDatas.get(0);
         assertFalse(configData1.isInherited());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
         assertEquals("value1_level2", configData1.getValues().get("prop1", String.class));
         assertEquals("value1_level2", configData1.getEffectiveValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData1.getEffectiveValues().get("prop3", 0));
@@ -540,7 +537,7 @@ public class ConfigurationManagerImplTest {
 
         ConfigurationData configData2 = configDatas.get(1);
         assertTrue(configData2.isInherited());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData2.getEffectiveValues().get("prop3", 0));
 
@@ -560,18 +557,14 @@ public class ConfigurationManagerImplTest {
     public void testGetConfigurationCollection_WithResourceCollectionAndPropertyInheritance() {
         ConfigurationCollectionData configCollectionData =
                 underTest.getConfigurationCollection(contextResourceLevel3, CONFIG_COL_NAME);
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(configCollectionData.getItems());
+        List<ConfigurationData> configDatas = List.copyOf(configCollectionData.getItems());
         assertEquals(2, configDatas.size());
 
         ConfigurationData configData1 = configDatas.get(0);
         assertFalse(configData1.isInherited());
-        assertTrue(configData1
-                .getPropertyNames()
-                .containsAll(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "prop5")));
+        assertTrue(configData1.getPropertyNames().containsAll(Set.of("prop1", "prop2", "prop3", "prop4", "prop5")));
 
-        assertTrue(configData1
-                .getPropertyNames()
-                .containsAll(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "prop5")));
+        assertTrue(configData1.getPropertyNames().containsAll(Set.of("prop1", "prop2", "prop3", "prop4", "prop5")));
         assertNull(configData1.getValues().get("prop1", String.class));
         assertNull(configData1.getValues().get("prop2", String.class));
         assertNull(configData1.getValues().get("prop3", Integer.class));
@@ -602,7 +595,7 @@ public class ConfigurationManagerImplTest {
 
         ConfigurationData configData2 = configDatas.get(1);
         assertFalse(configData1.isInherited());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData2.getEffectiveValues().get("prop3", 0));
 
@@ -625,7 +618,7 @@ public class ConfigurationManagerImplTest {
                 ConfigurationOverrideProvider.class,
                 new DummyConfigurationOverrideProvider("[/content]" + CONFIG_COL_NAME + "/prop1=\"override1\""));
 
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest
+        List<ConfigurationData> configDatas = List.copyOf(underTest
                 .getConfigurationCollection(contextResource, CONFIG_COL_NAME)
                 .getItems());
         assertEquals(2, configDatas.size());
@@ -633,7 +626,7 @@ public class ConfigurationManagerImplTest {
         ConfigurationData configData1 = configDatas.get(0);
         assertFalse(configData1.isInherited());
         assertFalse(configData1.isOverridden());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
         assertEquals("value1", configData1.getValues().get("prop1", String.class));
         assertEquals("override1", configData1.getEffectiveValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData1.getEffectiveValues().get("prop3", 0));
@@ -646,7 +639,7 @@ public class ConfigurationManagerImplTest {
         ConfigurationData configData2 = configDatas.get(1);
         assertFalse(configData2.isInherited());
         assertFalse(configData2.isOverridden());
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals("override1", configData2.getEffectiveValues().get("prop1", String.class));
         assertEquals((Integer) 5, configData2.getEffectiveValues().get("prop3", 0));
@@ -659,7 +652,7 @@ public class ConfigurationManagerImplTest {
 
     @Test
     public void testGetConfigurationCollection_NoConfigResources() {
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest
+        List<ConfigurationData> configDatas = List.copyOf(underTest
                 .getConfigurationCollection(contextResourceNoConfig, CONFIG_COL_NAME)
                 .getItems());
         assertEquals(0, configDatas.size());
@@ -670,14 +663,14 @@ public class ConfigurationManagerImplTest {
         when(configurationMetadataProvider.getConfigurationMetadata(CONFIG_COL_NAME))
                 .thenReturn(null);
 
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest
+        List<ConfigurationData> configDatas = List.copyOf(underTest
                 .getConfigurationCollection(contextResource, CONFIG_COL_NAME)
                 .getItems());
         assertEquals(2, configDatas.size());
 
         ConfigurationData configData1 = configDatas.get(0);
         assertFalse(configData1.isInherited());
-        assertEquals(ImmutableSet.of("prop1"), configData1.getPropertyNames());
+        assertEquals(Set.of("prop1"), configData1.getPropertyNames());
         assertEquals("value1", configData1.getValues().get("prop1", String.class));
         assertEquals((Integer) 0, configData1.getEffectiveValues().get("prop3", 0));
 
@@ -686,7 +679,7 @@ public class ConfigurationManagerImplTest {
 
         ConfigurationData configData2 = configDatas.get(1);
         assertFalse(configData2.isInherited());
-        assertEquals(ImmutableSet.of("prop4"), configData2.getPropertyNames());
+        assertEquals(Set.of("prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer) 0, configData2.getEffectiveValues().get("prop3", 0));
 
@@ -699,7 +692,7 @@ public class ConfigurationManagerImplTest {
         when(configurationMetadataProvider.getConfigurationMetadata(CONFIG_COL_NAME))
                 .thenReturn(null);
 
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest
+        List<ConfigurationData> configDatas = List.copyOf(underTest
                 .getConfigurationCollection(contextResourceNoConfig, CONFIG_COL_NAME)
                 .getItems());
         assertEquals(0, configDatas.size());
@@ -710,7 +703,7 @@ public class ConfigurationManagerImplTest {
         underTest.persistConfiguration(
                 contextResourceNoConfig,
                 CONFIG_NAME,
-                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1")));
+                new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1")));
         context.resourceResolver().commit();
 
         String configPath = getConfigPersistPath("/conf/testNoConfig/sling:configs/" + CONFIG_NAME);
@@ -723,12 +716,12 @@ public class ConfigurationManagerImplTest {
         underTest.persistConfigurationCollection(
                 contextResourceNoConfig,
                 CONFIG_COL_NAME,
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1"))
+                new ConfigurationCollectionPersistData(List.of(
+                                new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1"))
                                         .collectionItemName("0"),
-                                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop2", 5))
+                                new ConfigurationPersistData(Map.<String, Object>of("prop2", 5))
                                         .collectionItemName("1")))
-                        .properties(ImmutableMap.<String, Object>of("sling:configCollectionInherit", true)));
+                        .properties(Map.<String, Object>of("sling:configCollectionInherit", true)));
         context.resourceResolver().commit();
 
         String configPath0 = getConfigCollectionItemPersistPath(
@@ -765,7 +758,7 @@ public class ConfigurationManagerImplTest {
     @Test
     public void testGetConfigurationConfigurationNames() {
         assertEquals(
-                ImmutableSortedSet.of(CONFIG_NAME, CONFIG_COL_NAME, CONFIG_NESTED_NAME),
+                new TreeSet<>(Set.of(CONFIG_NAME, CONFIG_COL_NAME, CONFIG_NESTED_NAME)),
                 underTest.getConfigurationNames());
     }
 
@@ -781,7 +774,7 @@ public class ConfigurationManagerImplTest {
         assertNotNull(configData);
 
         // root level
-        assertEquals(ImmutableSet.of("prop1", "propSub", "propSubList", "prop4"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "propSub", "propSubList", "prop4"), configData.getPropertyNames());
         assertEquals("value1", configData.getValues().get("prop1", String.class));
         assertEquals("value1", configData.getEffectiveValues().get("prop1", String.class));
         assertTrue(configData.getValues().get("prop4", false));
@@ -876,7 +869,7 @@ public class ConfigurationManagerImplTest {
         ConfigurationData configData = underTest.getConfiguration(contextResourceNoConfig, CONFIG_NESTED_NAME);
         assertNotNull(configData);
 
-        assertEquals(ImmutableSet.of("prop1", "propSub", "propSubList"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "propSub", "propSubList"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
         assertEquals("defValue", configData.getEffectiveValues().get("prop1", String.class));
 
@@ -929,7 +922,7 @@ public class ConfigurationManagerImplTest {
     @Test
     public void testGetConfigurationNames() {
         assertEquals(
-                ImmutableSortedSet.of(CONFIG_NAME, CONFIG_COL_NAME, CONFIG_NESTED_NAME),
+                new TreeSet<>(Set.of(CONFIG_NAME, CONFIG_COL_NAME, CONFIG_NESTED_NAME)),
                 underTest.getConfigurationNames());
     }
 
@@ -1038,7 +1031,7 @@ public class ConfigurationManagerImplTest {
         underTest.persistConfiguration(
                 contextResourceLevel2,
                 getConfigResolvePath(getConfigResolvePath(CONFIG_NESTED_NAME) + "/propSub") + "/propSubLevel2",
-                new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1_persist")));
+                new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1_persist")));
         context.resourceResolver().commit();
 
         ConfigurationData configData = underTest.getConfiguration(contextResourceLevel2, CONFIG_NESTED_NAME);
@@ -1056,12 +1049,12 @@ public class ConfigurationManagerImplTest {
         underTest.persistConfigurationCollection(
                 contextResourceLevel2,
                 getConfigResolvePath(CONFIG_NESTED_NAME) + "/propSubList",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value1_persist"))
+                new ConfigurationCollectionPersistData(List.of(
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value1_persist"))
                                 .collectionItemName("item1"),
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value2_persist"))
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value2_persist"))
                                 .collectionItemName("item2"),
-                        new ConfigurationPersistData(ImmutableMap.<String, Object>of("prop1", "value3_persist"))
+                        new ConfigurationPersistData(Map.<String, Object>of("prop1", "value3_persist"))
                                 .collectionItemName("item3"))));
         context.resourceResolver().commit();
 
@@ -1079,7 +1072,7 @@ public class ConfigurationManagerImplTest {
         underTest.deleteConfiguration(contextResource, CONFIG_NAME);
 
         ConfigurationData configData = underTest.getConfiguration(contextResource, CONFIG_NAME);
-        assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
+        assertEquals(Set.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
 
         assertNull(configData.getValues().get("prop1", String.class));
         assertEquals("defValue", configData.getEffectiveValues().get("prop1", String.class));
@@ -1095,7 +1088,7 @@ public class ConfigurationManagerImplTest {
 
         ConfigurationCollectionData configCollectionData =
                 underTest.getConfigurationCollection(contextResource, CONFIG_COL_NAME);
-        List<ConfigurationData> configDatas = ImmutableList.copyOf(configCollectionData.getItems());
+        List<ConfigurationData> configDatas = List.copyOf(configCollectionData.getItems());
         assertEquals(0, configDatas.size());
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
index d3ee001..5596f17 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
@@ -18,7 +18,8 @@
  */
 package org.apache.sling.caconfig.management.impl;
 
-import com.google.common.collect.ImmutableList;
+import java.util.List;
+
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.caconfig.impl.def.DefaultConfigurationPersistenceStrategy;
@@ -73,7 +74,7 @@ public class ConfigurationPersistenceStrategyMultiplexerImplTest {
         assertFalse(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/testCol",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
+                new ConfigurationCollectionPersistData(List.of(
                         new ConfigurationPersistData(resource1.getValueMap()).collectionItemName(resource1.getName()),
                         new ConfigurationPersistData(resource2.getValueMap())
                                 .collectionItemName(resource2.getName())))));
@@ -91,7 +92,7 @@ public class ConfigurationPersistenceStrategyMultiplexerImplTest {
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/testCol",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
+                new ConfigurationCollectionPersistData(List.of(
                         new ConfigurationPersistData(resource1.getValueMap()).collectionItemName(resource1.getName()),
                         new ConfigurationPersistData(resource2.getValueMap())
                                 .collectionItemName(resource2.getName())))));
@@ -235,20 +236,20 @@ public class ConfigurationPersistenceStrategyMultiplexerImplTest {
         assertEquals(resource1.getPath(), underTest.getCollectionParentConfigName(resource1.getPath(), null));
         assertEquals(resource2.getPath(), underTest.getCollectionItemConfigName(resource1.getPath(), null));
         assertEquals(
-                ImmutableList.of(resource2.getPath(), resource1.getPath()),
-                ImmutableList.copyOf(underTest.getAllConfigNames(resource1.getPath())));
+                List.of(resource2.getPath(), resource1.getPath()),
+                List.copyOf(underTest.getAllConfigNames(resource1.getPath())));
         assertEquals(
-                ImmutableList.of(resource1.getPath()),
-                ImmutableList.copyOf(underTest.getAllCollectionParentConfigNames(resource1.getPath())));
+                List.of(resource1.getPath()),
+                List.copyOf(underTest.getAllCollectionParentConfigNames(resource1.getPath())));
         assertEquals(
-                ImmutableList.of(resource2.getPath(), resource1.getPath()),
-                ImmutableList.copyOf(underTest.getAllCollectionItemConfigNames(resource1.getPath())));
+                List.of(resource2.getPath(), resource1.getPath()),
+                List.copyOf(underTest.getAllCollectionItemConfigNames(resource1.getPath())));
         assertTrue(underTest.persistConfiguration(
                 context.resourceResolver(), "/conf/test1", new ConfigurationPersistData(resource1.getValueMap())));
         assertTrue(underTest.persistConfigurationCollection(
                 context.resourceResolver(),
                 "/conf/testCol",
-                new ConfigurationCollectionPersistData(ImmutableList.of(
+                new ConfigurationCollectionPersistData(List.of(
                         new ConfigurationPersistData(resource1.getValueMap()).collectionItemName(resource1.getName()),
                         new ConfigurationPersistData(resource2.getValueMap())
                                 .collectionItemName(resource2.getName())))));
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java b/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java
index b2e2332..52ebe6a 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy.java
@@ -21,7 +21,7 @@ package org.apache.sling.caconfig.management.impl;
 import java.util.HashSet;
 import java.util.Map;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.api.resource.ModifiableValueMap;
 import org.apache.sling.api.resource.PersistenceException;
@@ -178,7 +178,7 @@ public class CustomConfigurationPersistenceStrategy implements ConfigurationPers
         ModifiableValueMap modValueMap = resource.adaptTo(ModifiableValueMap.class);
         // remove all existing properties that do not have jcr: namespace
         for (String propertyName : new HashSet<>(modValueMap.keySet())) {
-            if (StringUtils.startsWith(propertyName, "jcr:")) {
+            if (Strings.CS.startsWith(propertyName, "jcr:")) {
                 continue;
             }
             modValueMap.remove(propertyName);
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java b/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java
index cc352f2..43c23aa 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy2.java
@@ -22,7 +22,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.api.resource.ModifiableValueMap;
 import org.apache.sling.api.resource.PersistenceException;
@@ -212,7 +212,7 @@ public class CustomConfigurationPersistenceStrategy2 implements ConfigurationPer
         ModifiableValueMap modValueMap = resource.adaptTo(ModifiableValueMap.class);
         // remove all existing properties that do not have jcr: namespace
         for (String propertyName : new HashSet<>(modValueMap.keySet())) {
-            if (StringUtils.startsWith(propertyName, "jcr:")) {
+            if (Strings.CS.startsWith(propertyName, "jcr:")) {
                 continue;
             }
             modValueMap.remove(propertyName);
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy3.java b/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy3.java
index 696a272..b716c3e 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy3.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/CustomConfigurationPersistenceStrategy3.java
@@ -22,7 +22,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.api.resource.ModifiableValueMap;
 import org.apache.sling.api.resource.PersistenceException;
@@ -194,7 +194,7 @@ public class CustomConfigurationPersistenceStrategy3 implements ConfigurationPer
         ModifiableValueMap modValueMap = resource.adaptTo(ModifiableValueMap.class);
         // remove all existing properties that do not have jcr: namespace
         for (String propertyName : new HashSet<>(modValueMap.keySet())) {
-            if (StringUtils.startsWith(propertyName, "jcr:")) {
+            if (Strings.CS.startsWith(propertyName, "jcr:")) {
                 continue;
             }
             modValueMap.remove(propertyName);
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinterTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinterTest.java
index 328fdbd..ef697a6 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinterTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinterTest.java
@@ -20,10 +20,11 @@ package org.apache.sling.caconfig.management.impl.console;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSortedSet;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Strings;
 import org.apache.felix.inventory.Format;
 import org.apache.sling.caconfig.impl.ConfigurationTestUtils;
 import org.apache.sling.caconfig.impl.def.DefaultConfigurationInheritanceStrategy;
@@ -69,7 +70,7 @@ public class CAConfigInventoryPrinterTest {
 
         ConfigurationMetadata configMetadata = new ConfigurationMetadata(
                 SAMPLE_CONFIG_NAME,
-                ImmutableList.<PropertyMetadata<?>>of(
+                List.<PropertyMetadata<?>>of(
                         new PropertyMetadata<>("prop1", "defValue"),
                         new PropertyMetadata<>("prop2", String.class),
                         new PropertyMetadata<>("prop3", 5)),
@@ -77,9 +78,9 @@ public class CAConfigInventoryPrinterTest {
         when(configurationMetadataProvider.getConfigurationMetadata(SAMPLE_CONFIG_NAME))
                 .thenReturn(configMetadata);
         when(configurationMetadataProvider.getConfigurationNames())
-                .thenReturn(ImmutableSortedSet.of(SAMPLE_CONFIG_NAME));
+                .thenReturn(new TreeSet<>(Set.of(SAMPLE_CONFIG_NAME)));
 
-        when(configurationOverrideProvider.getOverrideStrings()).thenReturn(ImmutableList.of(SAMPLE_OVERRIDE_STRING));
+        when(configurationOverrideProvider.getOverrideStrings()).thenReturn(List.of(SAMPLE_OVERRIDE_STRING));
     }
 
     @Test
@@ -89,13 +90,13 @@ public class CAConfigInventoryPrinterTest {
         String result = sw.toString();
 
         // test existance of some strategy names
-        assertTrue(StringUtils.contains(result, DefaultConfigurationInheritanceStrategy.class.getName()));
-        assertTrue(StringUtils.contains(result, DefaultConfigurationPersistenceStrategy.class.getName()));
+        assertTrue(Strings.CS.contains(result, DefaultConfigurationInheritanceStrategy.class.getName()));
+        assertTrue(Strings.CS.contains(result, DefaultConfigurationPersistenceStrategy.class.getName()));
 
         // ensure config metadata
-        assertTrue(StringUtils.contains(result, SAMPLE_CONFIG_NAME));
+        assertTrue(Strings.CS.contains(result, SAMPLE_CONFIG_NAME));
 
         // ensure overrides strings
-        assertTrue(StringUtils.contains(result, SAMPLE_OVERRIDE_STRING));
+        assertTrue(Strings.CS.contains(result, SAMPLE_OVERRIDE_STRING));
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolverImplTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolverImplTest.java
index c3be3b2..5dbd7a7 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolverImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolverImplTest.java
@@ -18,7 +18,8 @@
  */
 package org.apache.sling.caconfig.resource.impl;
 
-import com.google.common.collect.ImmutableList;
+import java.util.List;
+
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.resource.ConfigurationResourceResolver;
 import org.apache.sling.hamcrest.ResourceCollectionMatchers;
@@ -108,7 +109,7 @@ public class ConfigurationResourceResolverImplTest {
 
     @Test
     public void testGetAllContextPaths() {
-        assertEquals(ImmutableList.of("/content/site1"), underTest.getAllContextPaths(site1Page1));
-        assertEquals(ImmutableList.of("/content/site2"), underTest.getAllContextPaths(site2Page1));
+        assertEquals(List.of("/content/site1"), underTest.getAllContextPaths(site1Page1));
+        assertEquals(List.of("/content/site2"), underTest.getAllContextPaths(site2Page1));
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolvingStrategyMultiplexerImplTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolvingStrategyMultiplexerImplTest.java
index bf9ff9a..11d1a39 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolvingStrategyMultiplexerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/ConfigurationResourceResolvingStrategyMultiplexerImplTest.java
@@ -21,11 +21,10 @@ package org.apache.sling.caconfig.resource.impl;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.stream.Collectors;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterators;
+import org.apache.commons.collections4.IteratorUtils;
+import org.apache.jackrabbit.guava.common.collect.Iterators;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.management.impl.ContextPathStrategyMultiplexerImpl;
 import org.apache.sling.caconfig.resource.impl.def.DefaultConfigurationResourceResolvingStrategy;
@@ -35,7 +34,6 @@ import org.apache.sling.hamcrest.ResourceCollectionMatchers;
 import org.apache.sling.hamcrest.ResourceMatchers;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -150,7 +148,7 @@ public class ConfigurationResourceResolvingStrategyMultiplexerImplTest {
                             @NotNull Resource resource,
                             @NotNull Collection<String> bucketNames,
                             @NotNull String configName) {
-                        return ImmutableList.copyOf(context.resourceResolver()
+                        return IteratorUtils.toList(context.resourceResolver()
                                 .getResource("/conf/site1/sling:test/feature")
                                 .listChildren());
                     }
@@ -168,14 +166,9 @@ public class ConfigurationResourceResolvingStrategyMultiplexerImplTest {
                             @NotNull Resource resource,
                             @NotNull Collection<String> bucketNames,
                             @NotNull String configName) {
-                        return Collections2.transform(
-                                getResourceCollection(resource, bucketNames, configName),
-                                new Function<Resource, Iterator<Resource>>() {
-                                    @Override
-                                    public Iterator<Resource> apply(@Nullable Resource input) {
-                                        return Iterators.singletonIterator(input);
-                                    }
-                                });
+                        return getResourceCollection(resource, bucketNames, configName).stream()
+                                .map(r -> Iterators.singletonIterator(r))
+                                .collect(Collectors.toList());
                     }
 
                     @Override
@@ -210,7 +203,7 @@ public class ConfigurationResourceResolvingStrategyMultiplexerImplTest {
                             @NotNull Resource resource,
                             @NotNull Collection<String> bucketNames,
                             @NotNull String configName) {
-                        return ImmutableList.copyOf(context.resourceResolver()
+                        return IteratorUtils.toList(context.resourceResolver()
                                 .getResource("/libs/conf/sling:test/feature")
                                 .listChildren());
                     }
@@ -228,14 +221,9 @@ public class ConfigurationResourceResolvingStrategyMultiplexerImplTest {
                             @NotNull Resource resource,
                             @NotNull Collection<String> bucketNames,
                             @NotNull String configName) {
-                        return Collections2.transform(
-                                getResourceCollection(resource, bucketNames, configName),
-                                new Function<Resource, Iterator<Resource>>() {
-                                    @Override
-                                    public Iterator<Resource> apply(@Nullable Resource input) {
-                                        return Iterators.singletonIterator(input);
-                                    }
-                                });
+                        return getResourceCollection(resource, bucketNames, configName).stream()
+                                .map(r -> Iterators.singletonIterator(r))
+                                .collect(Collectors.toList());
                     }
 
                     @Override
@@ -282,13 +270,8 @@ public class ConfigurationResourceResolvingStrategyMultiplexerImplTest {
     }
 
     private Collection<Resource> first(Collection<Iterator<Resource>> resources) {
-        return Collections2.transform(
-                underTest.getResourceCollectionInheritanceChain(site1Page1, BUCKETS, "feature"),
-                new Function<Iterator<Resource>, Resource>() {
-                    @Override
-                    public Resource apply(@Nullable Iterator<Resource> input) {
-                        return input.next();
-                    }
-                });
+        return underTest.getResourceCollectionInheritanceChain(site1Page1, BUCKETS, "feature").stream()
+                .map(input -> input.next())
+                .collect(Collectors.toList());
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategyHierarchyTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategyHierarchyTest.java
index 50e5f84..2f37d31 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategyHierarchyTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategyHierarchyTest.java
@@ -23,7 +23,6 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.management.impl.ContextPathStrategyMultiplexerImpl;
 import org.apache.sling.caconfig.resource.spi.ConfigurationResourceResolvingStrategy;
@@ -242,7 +241,7 @@ public class DefaultConfigurationResourceResolvingStrategyHierarchyTest {
                 .resource("item3");
 
         List<Iterator<Resource>> resources =
-                ImmutableList.copyOf(underTest.getResourceCollectionInheritanceChain(site1Page1, BUCKETS, "cfgCol"));
+                List.copyOf(underTest.getResourceCollectionInheritanceChain(site1Page1, BUCKETS, "cfgCol"));
         assertEquals(4, resources.size());
 
         assertThat(
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultContextPathStrategyTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultContextPathStrategyTest.java
index 517fafc..5f225af 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultContextPathStrategyTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/def/DefaultContextPathStrategyTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.sling.caconfig.resource.impl.def;
 
-import com.google.common.collect.ImmutableList;
+import org.apache.commons.collections4.IteratorUtils;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.caconfig.resource.spi.ContextPathStrategy;
 import org.apache.sling.hamcrest.ResourceIteratorMatchers;
@@ -63,7 +63,7 @@ public class DefaultContextPathStrategyTest {
                 ResourceIteratorMatchers.paths(
                         "/content/tenant1/region1/site1", "/content/tenant1/region1", "/content/tenant1"));
         assertThat(
-                ImmutableList.copyOf(toConfigRefIterator(underTest.findContextResources(site1Page1))),
+                IteratorUtils.toList(toConfigRefIterator(underTest.findContextResources(site1Page1))),
                 Matchers.contains("/conf/tenant1/region1/site1", "/conf/tenant1/region1", "/conf/tenant1"));
 
         assertThat(
@@ -71,7 +71,7 @@ public class DefaultContextPathStrategyTest {
                 ResourceIteratorMatchers.paths(
                         "/content/tenant1/region1/site2", "/content/tenant1/region1", "/content/tenant1"));
         assertThat(
-                ImmutableList.copyOf(toConfigRefIterator(underTest.findContextResources(site2Page1))),
+                IteratorUtils.toList(toConfigRefIterator(underTest.findContextResources(site2Page1))),
                 Matchers.contains("/conf/tenant1/region1/site2", "/conf/tenant1/region1", "/conf/tenant1"));
     }
 
@@ -95,14 +95,14 @@ public class DefaultContextPathStrategyTest {
                 toResourceIterator(underTest.findContextResources(site1Page1)),
                 ResourceIteratorMatchers.paths("/content/tenant1/region1"));
         assertThat(
-                ImmutableList.copyOf(toConfigRefIterator(underTest.findContextResources(site1Page1))),
+                IteratorUtils.toList(toConfigRefIterator(underTest.findContextResources(site1Page1))),
                 Matchers.contains("/conf/tenant1/region1"));
 
         assertThat(
                 toResourceIterator(underTest.findContextResources(site2Page1)),
                 ResourceIteratorMatchers.paths("/content/tenant1/region1"));
         assertThat(
-                ImmutableList.copyOf(toConfigRefIterator(underTest.findContextResources(site2Page1))),
+                IteratorUtils.toList(toConfigRefIterator(underTest.findContextResources(site2Page1))),
                 Matchers.contains("/conf/tenant1/region1"));
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtilTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtilTest.java
index 1c15280..9aa8adc 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtilTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/util/ConfigNameUtilTest.java
@@ -19,8 +19,8 @@
 package org.apache.sling.caconfig.resource.impl.util;
 
 import java.util.Collection;
+import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -36,9 +36,9 @@ public class ConfigNameUtilTest {
         assertTrue(ConfigNameUtil.isValid("a/b/c"));
         assertTrue(ConfigNameUtil.isValid("a/jcr:content/b/c"));
 
-        assertTrue(ConfigNameUtil.isValid(ImmutableList.<String>of()));
-        assertTrue(ConfigNameUtil.isValid(ImmutableList.of("a")));
-        assertTrue(ConfigNameUtil.isValid(ImmutableList.of("a", "a/b", "a/b/c")));
+        assertTrue(ConfigNameUtil.isValid(List.<String>of()));
+        assertTrue(ConfigNameUtil.isValid(List.of("a")));
+        assertTrue(ConfigNameUtil.isValid(List.of("a", "a/b", "a/b/c")));
 
         assertFalse(ConfigNameUtil.isValid((String) null));
         assertFalse(ConfigNameUtil.isValid(""));
@@ -47,7 +47,7 @@ public class ConfigNameUtilTest {
         assertFalse(ConfigNameUtil.isValid("a/b/../c"));
 
         assertFalse(ConfigNameUtil.isValid((Collection<String>) null));
-        assertFalse(ConfigNameUtil.isValid(ImmutableList.of("a", "/a")));
+        assertFalse(ConfigNameUtil.isValid(List.of("a", "/a")));
     }
 
     @Test
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/util/MapUtilTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/util/MapUtilTest.java
index ca93e77..7e64265 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/util/MapUtilTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/util/MapUtilTest.java
@@ -18,7 +18,8 @@
  */
 package org.apache.sling.caconfig.resource.impl.util;
 
-import com.google.common.collect.ImmutableMap;
+import java.util.Map;
+
 import org.junit.Test;
 
 import static org.apache.sling.caconfig.resource.impl.util.MapUtil.traceOutput;
@@ -28,15 +29,15 @@ public class MapUtilTest {
 
     @Test
     public void testTraceOutput() {
-        assertEquals("{}", traceOutput(ImmutableMap.<String, Object>of()));
+        assertEquals("{}", traceOutput(Map.<String, Object>of()));
 
         assertEquals(
                 "{prop1: 'aa', prop2: 5, prop3: true}",
-                traceOutput(ImmutableMap.<String, Object>of("prop1", "aa", "prop2", 5, "prop3", true)));
+                traceOutput(Map.<String, Object>of("prop1", "aa", "prop2", 5, "prop3", true)));
 
         assertEquals(
                 "{prop1: ['aa','bb'], prop2: [5,10], prop3: true}",
-                traceOutput(ImmutableMap.<String, Object>of(
+                traceOutput(Map.<String, Object>of(
                         "prop1", new String[] {"aa", "bb"},
                         "prop2", new Integer[] {5, 10},
                         "prop3", true)));
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathEliminateDuplicatesIteratorTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathEliminateDuplicatesIteratorTest.java
index 5aa50f1..977fd58 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathEliminateDuplicatesIteratorTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathEliminateDuplicatesIteratorTest.java
@@ -20,7 +20,7 @@ package org.apache.sling.caconfig.resource.impl.util;
 
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
+import org.apache.commons.collections4.IteratorUtils;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -29,9 +29,9 @@ public class PathEliminateDuplicatesIteratorTest {
 
     @Test
     public void testIterator() {
-        List<String> paths = ImmutableList.of("/conf/a", "/conf/a/b", "/conf/a", "/conf/a/b/c");
+        List<String> paths = List.of("/conf/a", "/conf/a/b", "/conf/a", "/conf/a/b/c");
 
-        List<String> result = ImmutableList.copyOf(new PathEliminateDuplicatesIterator(paths.iterator()));
-        assertEquals(ImmutableList.of("/conf/a", "/conf/a/b", "/conf/a/b/c"), result);
+        List<String> result = IteratorUtils.toList(new PathEliminateDuplicatesIterator(paths.iterator()));
+        assertEquals(List.of("/conf/a", "/conf/a/b", "/conf/a/b/c"), result);
     }
 }
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIteratorTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIteratorTest.java
index d0f1098..613276a 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIteratorTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/util/PathParentExpandIteratorTest.java
@@ -20,7 +20,7 @@ package org.apache.sling.caconfig.resource.impl.util;
 
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
+import org.apache.commons.collections4.IteratorUtils;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -29,11 +29,11 @@ public class PathParentExpandIteratorTest {
 
     @Test
     public void testIterator() {
-        List<String> list = ImmutableList.of("/conf/a/b/c", "/conf/a/b", "/conf/x/y/z");
+        List<String> list = List.of("/conf/a/b/c", "/conf/a/b", "/conf/x/y/z");
 
-        List<String> result = ImmutableList.copyOf(new PathParentExpandIterator("/conf", list.iterator()));
+        List<String> result = IteratorUtils.toList(new PathParentExpandIterator("/conf", list.iterator()));
         assertEquals(
-                ImmutableList.of(
+                List.of(
                         "/conf/a/b/c",
                         "/conf/a/b",
                         "/conf/a",
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourceEliminateDuplicatesIteratorTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourceEliminateDuplicatesIteratorTest.java
index b10f915..62a666b 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourceEliminateDuplicatesIteratorTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourceEliminateDuplicatesIteratorTest.java
@@ -21,7 +21,6 @@ package org.apache.sling.caconfig.resource.impl.util;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.caconfig.resource.spi.ContextResource;
@@ -44,7 +43,7 @@ public class ResourceEliminateDuplicatesIteratorTest {
         context.build().resource("/content/a").resource("/content/a/b").resource("/content/a/b/c");
 
         ResourceResolver rr = context.resourceResolver();
-        List<ContextResource> list = ImmutableList.of(
+        List<ContextResource> list = List.of(
                 new ContextResource(rr.getResource("/content/a"), "/conf/a", 0),
                 new ContextResource(rr.getResource("/content/a/b"), "/conf/a/b", 0),
                 new ContextResource(rr.getResource("/content/a"), "/conf/a", 0),
diff --git a/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourcePathCollatingIteratorTest.java b/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourcePathCollatingIteratorTest.java
index 30d7632..c9ec28a 100644
--- a/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourcePathCollatingIteratorTest.java
+++ b/src/test/java/org/apache/sling/caconfig/resource/impl/util/ResourcePathCollatingIteratorTest.java
@@ -21,7 +21,6 @@ package org.apache.sling.caconfig.resource.impl.util;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.caconfig.resource.spi.ContextResource;
@@ -51,12 +50,12 @@ public class ResourcePathCollatingIteratorTest {
                 .resource("/content/a/b/c/d");
 
         ResourceResolver rr = context.resourceResolver();
-        List<Resource> list1 = ImmutableList.of(rr.getResource("/content/a/b/c/d"), rr.getResource("/content/a"));
-        List<Resource> list2 = ImmutableList.of(
-                rr.getResource("/content/a/b/c"), rr.getResource("/content/a/b"), rr.getResource("/content/a"));
+        List<Resource> list1 = List.of(rr.getResource("/content/a/b/c/d"), rr.getResource("/content/a"));
+        List<Resource> list2 =
+                List.of(rr.getResource("/content/a/b/c"), rr.getResource("/content/a/b"), rr.getResource("/content/a"));
 
-        Iterator<Resource> result = toResourceIterator(new ResourcePathCollatingIterator(ImmutableList.of(
-                toContextResourceIterator(list1.iterator()), toContextResourceIterator(list2.iterator()))));
+        Iterator<Resource> result = toResourceIterator(new ResourcePathCollatingIterator(
+                List.of(toContextResourceIterator(list1.iterator()), toContextResourceIterator(list2.iterator()))));
         assertThat(
                 result,
                 ResourceIteratorMatchers.paths(
@@ -72,11 +71,11 @@ public class ResourcePathCollatingIteratorTest {
                 .resource("/content/a/b/c/d");
 
         ResourceResolver rr = context.resourceResolver();
-        List<ContextResource> list1 = ImmutableList.of(new ContextResource(rr.getResource("/content/a"), "/conf/z", 0));
-        List<ContextResource> list2 = ImmutableList.of(new ContextResource(rr.getResource("/content/a"), "/conf/a", 0));
+        List<ContextResource> list1 = List.of(new ContextResource(rr.getResource("/content/a"), "/conf/z", 0));
+        List<ContextResource> list2 = List.of(new ContextResource(rr.getResource("/content/a"), "/conf/a", 0));
 
         Iterator<ContextResource> result =
-                new ResourcePathCollatingIterator(ImmutableList.of(list1.iterator(), list2.iterator()));
+                new ResourcePathCollatingIterator(List.of(list1.iterator(), list2.iterator()));
         ContextResource item1 = result.next();
         ContextResource item2 = result.next();
         assertFalse(result.hasNext());
@@ -97,13 +96,11 @@ public class ResourcePathCollatingIteratorTest {
                 .resource("/content/a/b/c/d");
 
         ResourceResolver rr = context.resourceResolver();
-        List<ContextResource> list1 =
-                ImmutableList.of(new ContextResource(rr.getResource("/content/a"), "/conf/z", 500));
-        List<ContextResource> list2 =
-                ImmutableList.of(new ContextResource(rr.getResource("/content/a"), "/conf/a", 100));
+        List<ContextResource> list1 = List.of(new ContextResource(rr.getResource("/content/a"), "/conf/z", 500));
+        List<ContextResource> list2 = List.of(new ContextResource(rr.getResource("/content/a"), "/conf/a", 100));
 
         Iterator<ContextResource> result =
-                new ResourcePathCollatingIterator(ImmutableList.of(list1.iterator(), list2.iterator()));
+                new ResourcePathCollatingIterator(List.of(list1.iterator(), list2.iterator()));
         ContextResource item1 = result.next();
         ContextResource item2 = result.next();
         assertFalse(result.hasNext());