You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by md...@apache.org on 2022/06/15 17:49:05 UTC

[solr] branch main updated: SOLR-15528: guava collections replaced with JDK equiv (#903)

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

mdrob pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 56842452026 SOLR-15528: guava collections replaced with JDK equiv (#903)
56842452026 is described below

commit 56842452026fb5f61fbe439a2f86adc08297c69c
Author: Mike Drob <md...@apache.org>
AuthorDate: Wed Jun 15 12:48:58 2022 -0500

    SOLR-15528: guava collections replaced with JDK equiv (#903)
---
 solr/core/src/java/org/apache/solr/api/ApiBag.java |  8 +++-----
 .../src/java/org/apache/solr/api/V2HttpCall.java   |  4 +---
 .../apache/solr/cloud/OverseerTaskProcessor.java   |  3 +--
 .../apache/solr/cloud/overseer/SliceMutator.java   |  4 +---
 .../src/java/org/apache/solr/core/InitParams.java  |  3 +--
 .../org/apache/solr/core/SolrResourceLoader.java   |  3 +--
 .../solr/core/TransientSolrCoreCacheFactory.java   |  6 +++---
 .../apache/solr/handler/RequestHandlerBase.java    |  5 +++--
 .../solr/handler/admin/CollectionsHandler.java     |  9 +++-----
 .../java/org/apache/solr/schema/IndexSchema.java   |  5 ++---
 .../org/apache/solr/security/BasicAuthPlugin.java  |  3 +--
 .../java/org/apache/solr/security/Permission.java  |  6 ++----
 .../security/Sha256AuthenticationProvider.java     |  4 ++--
 .../src/java/org/apache/solr/util/ExportTool.java  |  3 +--
 .../providers/AbstractSSLCredentialProvider.java   |  7 +++----
 .../providers/EnvSSLCredentialProvider.java        |  6 ++----
 .../test/org/apache/solr/TestCrossCoreJoin.java    |  4 ++--
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   | 11 +++++-----
 .../test/org/apache/solr/cloud/TestLockTree.java   |  7 +++----
 .../providers/EnvSSLCredentialProviderTest.java    |  3 +--
 .../solrj/impl/CloudSolrClientCacheTest.java       |  3 +--
 .../solr/common/cloud/TestPerReplicaStates.java    | 24 ++++++++--------------
 .../org/apache/solr/common/util/TestPathTrie.java  |  5 ++---
 .../solr/common/util/TestValidatingJsonMap.java    |  6 +++---
 24 files changed, 56 insertions(+), 86 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/api/ApiBag.java b/solr/core/src/java/org/apache/solr/api/ApiBag.java
index 5a790e91895..15ed546add7 100644
--- a/solr/core/src/java/org/apache/solr/api/ApiBag.java
+++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java
@@ -24,7 +24,6 @@ import static org.apache.solr.common.util.ValidatingJsonMap.ENUM_OF;
 import static org.apache.solr.common.util.ValidatingJsonMap.NOT_NULL;
 
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
@@ -183,7 +182,7 @@ public class ApiBag {
       PathTrie<Api> registry = apis.get(method);
 
       if (registry == null)
-        apis.put(method, registry = new CommandAggregatingPathTrie(ImmutableSet.of("_introspect")));
+        apis.put(method, registry = new CommandAggregatingPathTrie(Set.of("_introspect")));
       ValidatingJsonMap url = spec.getMap("url", NOT_NULL);
       ValidatingJsonMap params = url.getMap("params", null);
       if (params != null) {
@@ -200,8 +199,7 @@ public class ApiBag {
           if (!wildCardNames.contains(o.toString()))
             throw new RuntimeException("" + o + " is not a valid part name");
           ValidatingJsonMap pathMeta = parts.getMap(o.toString(), NOT_NULL);
-          pathMeta.get(
-              "type", ENUM_OF, ImmutableSet.of("enum", "string", "int", "number", "boolean"));
+          pathMeta.get("type", ENUM_OF, Set.of("enum", "string", "int", "number", "boolean"));
         }
       }
       verifyCommands(api.getSpec());
@@ -370,7 +368,7 @@ public class ApiBag {
   public static final SpecProvider EMPTY_SPEC = () -> ValidatingJsonMap.EMPTY;
   public static final String HANDLER_NAME = "handlerName";
   public static final Set<String> KNOWN_TYPES =
-      ImmutableSet.of("string", "boolean", "list", "int", "double", "object");
+      Set.of("string", "boolean", "list", "int", "double", "object");
 
   public PathTrie<Api> getRegistry(String method) {
     return apis.get(method);
diff --git a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
index 8d1a2e7a0fd..2b623ac89ca 100644
--- a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
+++ b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
@@ -20,7 +20,6 @@ package org.apache.solr.api;
 import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP;
 import static org.apache.solr.servlet.SolrDispatchFilter.Action.*;
 
-import com.google.common.collect.ImmutableSet;
 import io.opentracing.Span;
 import io.opentracing.tag.Tags;
 import java.lang.invoke.MethodHandles;
@@ -61,8 +60,7 @@ public class V2HttpCall extends HttpSolrCall {
   private List<String> pathSegments;
   private String prefix;
   HashMap<String, String> parts = new HashMap<>();
-  static final Set<String> knownPrefixes =
-      ImmutableSet.of("cluster", "node", "collections", "cores", "c");
+  static final Set<String> knownPrefixes = Set.of("cluster", "node", "collections", "cores", "c");
 
   public V2HttpCall(
       SolrDispatchFilter solrDispatchFilter,
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
index e6d6c633dab..443bcc728aa 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
@@ -20,7 +20,6 @@ import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
 import static org.apache.solr.common.params.CommonParams.ID;
 
 import com.codahale.metrics.Timer;
-import com.google.common.collect.ImmutableSet;
 import java.io.Closeable;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
@@ -124,7 +123,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
 
         @Override
         public String toString() {
-          return StrUtils.join(ImmutableSet.of(runningTasks, blockedTasks.keySet()), ',');
+          return StrUtils.join(Set.of(runningTasks, blockedTasks.keySet()), ',');
         }
       };
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java
index 82b367b3104..adbdfe7f087 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java
@@ -18,7 +18,6 @@ package org.apache.solr.cloud.overseer;
 
 import static org.apache.solr.cloud.overseer.CollectionMutator.checkCollectionKeyExistence;
 
-import com.google.common.collect.ImmutableSet;
 import java.lang.invoke.MethodHandles;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -51,8 +50,7 @@ public class SliceMutator {
   public static final String PREFERRED_LEADER_PROP =
       CollectionAdminParams.PROPERTY_PREFIX + "preferredleader";
 
-  public static final Set<String> SLICE_UNIQUE_BOOLEAN_PROPERTIES =
-      ImmutableSet.of(PREFERRED_LEADER_PROP);
+  public static final Set<String> SLICE_UNIQUE_BOOLEAN_PROPERTIES = Set.of(PREFERRED_LEADER_PROP);
 
   protected final SolrCloudManager cloudManager;
   protected final DistribStateManager stateManager;
diff --git a/solr/core/src/java/org/apache/solr/core/InitParams.java b/solr/core/src/java/org/apache/solr/core/InitParams.java
index 1072de1ce9c..1df9d3b6299 100644
--- a/solr/core/src/java/org/apache/solr/core/InitParams.java
+++ b/solr/core/src/java/org/apache/solr/core/InitParams.java
@@ -22,7 +22,6 @@ import static org.apache.solr.core.PluginInfo.APPENDS;
 import static org.apache.solr.core.PluginInfo.DEFAULTS;
 import static org.apache.solr.core.PluginInfo.INVARIANTS;
 
-import com.google.common.collect.ImmutableSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -39,7 +38,7 @@ public class InitParams {
   public final NamedList<?> invariants;
   public final NamedList<?> appends;
   private final PluginInfo pluginInfo;
-  private final Set<String> KNOWN_KEYS = ImmutableSet.of(DEFAULTS, INVARIANTS, APPENDS);
+  private static final Set<String> KNOWN_KEYS = Set.of(DEFAULTS, INVARIANTS, APPENDS);
 
   public InitParams(PluginInfo p) {
     this.pluginInfo = p;
diff --git a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
index ac7db098273..3ff0c28bcc4 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
@@ -17,7 +17,6 @@
 package org.apache.solr.core;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableSet;
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
@@ -838,7 +837,7 @@ public class SolrResourceLoader
 
   /** If these components are trying to load classes, use schema classloader */
   private static final Set<Class<?>> schemaResourceLoaderComponents =
-      ImmutableSet.of(
+      Set.of(
           CharFilterFactory.class,
           TokenFilterFactory.class,
           TokenizerFactory.class,
diff --git a/solr/core/src/java/org/apache/solr/core/TransientSolrCoreCacheFactory.java b/solr/core/src/java/org/apache/solr/core/TransientSolrCoreCacheFactory.java
index e3ce7ee7411..41dcc053a1d 100644
--- a/solr/core/src/java/org/apache/solr/core/TransientSolrCoreCacheFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/TransientSolrCoreCacheFactory.java
@@ -16,9 +16,9 @@
  */
 package org.apache.solr.core;
 
-import com.google.common.collect.ImmutableMap;
 import java.lang.invoke.MethodHandles;
 import java.util.Collections;
+import java.util.Map;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.util.plugin.PluginInfoInitialized;
 import org.slf4j.Logger;
@@ -80,13 +80,13 @@ public abstract class TransientSolrCoreCacheFactory {
   public static final PluginInfo DEFAULT_TRANSIENT_SOLR_CACHE_INFO =
       new PluginInfo(
           "transientSolrCoreCacheFactory",
-          ImmutableMap.of(
+          Map.of(
               "class",
               TransientSolrCoreCacheFactoryDefault.class.getName(),
               "name",
               TransientSolrCoreCacheFactory.class.getName()),
           null,
-          Collections.<PluginInfo>emptyList());
+          Collections.emptyList());
 
   // Need this because the plugin framework doesn't require a PluginINfo in the init method, don't
   // see a way to pass additional parameters and we need this when we create the transient core
diff --git a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
index f2ed4de9ef4..c43974738a2 100644
--- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
+++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
@@ -21,9 +21,9 @@ import static org.apache.solr.core.RequestParams.USEPARAM;
 import com.codahale.metrics.Counter;
 import com.codahale.metrics.Meter;
 import com.codahale.metrics.Timer;
-import com.google.common.collect.ImmutableList;
 import java.lang.invoke.MethodHandles;
 import java.util.Collection;
+import java.util.Collections;
 import org.apache.solr.api.Api;
 import org.apache.solr.api.ApiBag;
 import org.apache.solr.api.ApiSupport;
@@ -324,6 +324,7 @@ public abstract class RequestHandlerBase
 
   @Override
   public Collection<Api> getApis() {
-    return ImmutableList.of(new ApiBag.ReqHandlerToApi(this, ApiBag.constructSpec(pluginInfo)));
+    return Collections.singleton(
+        new ApiBag.ReqHandlerToApi(this, ApiBag.constructSpec(pluginInfo)));
   }
 }
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
index cab32779b7c..dfab883f3d0 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
@@ -37,8 +37,6 @@ import static org.apache.solr.common.params.CoreAdminParams.*;
 import static org.apache.solr.common.params.ShardParams._ROUTE_;
 import static org.apache.solr.common.util.StrUtils.formatString;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.net.URI;
@@ -182,8 +180,7 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     Object defVal =
         new ClusterProperties(coreContainer.getZkController().getZkStateReader().getZkClient())
             .getClusterProperty(
-                ImmutableList.of(
-                    CollectionAdminParams.DEFAULTS, CollectionAdminParams.COLLECTION, prop),
+                List.of(CollectionAdminParams.DEFAULTS, CollectionAdminParams.COLLECTION, prop),
                 null);
     if (defVal != null) props.put(prop, String.valueOf(defVal));
   }
@@ -275,7 +272,7 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     }
   }
 
-  static final Set<String> KNOWN_ROLES = ImmutableSet.of("overseer");
+  static final Set<String> KNOWN_ROLES = Set.of("overseer");
 
   public static long DEFAULT_COLLECTION_OP_TIMEOUT = 180 * 1000;
 
@@ -511,7 +508,7 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
             createSysConfigSet(h.coreContainer);
           }
           if (shardsParam == null) h.copyFromClusterProp(props, NUM_SLICES);
-          for (String prop : ImmutableSet.of(NRT_REPLICAS, PULL_REPLICAS, TLOG_REPLICAS))
+          for (String prop : Set.of(NRT_REPLICAS, PULL_REPLICAS, TLOG_REPLICAS))
             h.copyFromClusterProp(props, prop);
           copyPropertiesWithPrefix(req.getParams(), props, PROPERTY_PREFIX);
           return copyPropertiesWithPrefix(req.getParams(), props, "router.");
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index ebe3d0271fa..031ea364783 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -20,7 +20,6 @@ import static java.util.Arrays.asList;
 import static java.util.Collections.singletonList;
 import static java.util.Collections.singletonMap;
 
-import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.io.Writer;
 import java.lang.invoke.MethodHandles;
@@ -137,8 +136,8 @@ public class IndexSchema {
     return dynamicFields;
   }
 
-  private static final Set<String> FIELDTYPE_KEYS = ImmutableSet.of("fieldtype", "fieldType");
-  private static final Set<String> FIELD_KEYS = ImmutableSet.of("dynamicField", "field");
+  private static final Set<String> FIELDTYPE_KEYS = Set.of("fieldtype", "fieldType");
+  private static final Set<String> FIELD_KEYS = Set.of("dynamicField", "field");
 
   protected Cache<String, SchemaField> dynamicFieldCache =
       new ConcurrentLRUCache<>(10000, 8000, 9000, 100, false, false, null);
diff --git a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
index 9e8ce1a6f2f..46b42a04798 100644
--- a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.security;
 
-import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
@@ -274,7 +273,7 @@ public class BasicAuthPlugin extends AuthenticationPlugin
   public static final String PROPERTY_REALM = "realm";
   public static final String FORWARD_CREDENTIALS = "forwardCredentials";
   private static final Set<String> PROPS =
-      ImmutableSet.of(PROPERTY_BLOCK_UNKNOWN, PROPERTY_REALM, FORWARD_CREDENTIALS);
+      Set.of(PROPERTY_BLOCK_UNKNOWN, PROPERTY_REALM, FORWARD_CREDENTIALS);
 
   /**
    * Check if the request is an AJAX request, i.e. from the Admin UI or other SPA front
diff --git a/solr/core/src/java/org/apache/solr/security/Permission.java b/solr/core/src/java/org/apache/solr/security/Permission.java
index a634aea0481..982772ad7bf 100644
--- a/solr/core/src/java/org/apache/solr/security/Permission.java
+++ b/solr/core/src/java/org/apache/solr/security/Permission.java
@@ -21,7 +21,6 @@ import static java.util.Collections.singleton;
 import static java.util.Collections.singletonList;
 import static org.apache.solr.common.params.CommonParams.NAME;
 
-import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -161,7 +160,6 @@ class Permission {
   }
 
   static final Set<String> knownKeys =
-      ImmutableSet.of("collection", "role", "params", "path", "method", NAME, "index");
-  public static final Set<String> HTTP_METHODS =
-      ImmutableSet.of("GET", "POST", "DELETE", "PUT", "HEAD");
+      Set.of("collection", "role", "params", "path", "method", NAME, "index");
+  public static final Set<String> HTTP_METHODS = Set.of("GET", "POST", "DELETE", "PUT", "HEAD");
 }
diff --git a/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java b/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
index 9a2fba3101b..ba7dd6e2968 100644
--- a/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
+++ b/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
@@ -18,7 +18,6 @@ package org.apache.solr.security;
 
 import static org.apache.solr.handler.admin.SecurityConfHandler.getMapValue;
 
-import com.google.common.collect.ImmutableSet;
 import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
@@ -176,5 +175,6 @@ public class Sha256AuthenticationProvider
     return Utils.getSpec("cluster.security.BasicAuth.Commands").getSpec();
   }
 
-  static final Set<String> supported_ops = ImmutableSet.of("set-user", "delete-user");
+  // TODO make private?
+  static final Set<String> supported_ops = Set.of("set-user", "delete-user");
 }
diff --git a/solr/core/src/java/org/apache/solr/util/ExportTool.java b/solr/core/src/java/org/apache/solr/util/ExportTool.java
index 7c5f5b9deb8..35ad4b80b84 100644
--- a/solr/core/src/java/org/apache/solr/util/ExportTool.java
+++ b/solr/core/src/java/org/apache/solr/util/ExportTool.java
@@ -23,7 +23,6 @@ import static org.apache.solr.common.params.CommonParams.Q;
 import static org.apache.solr.common.params.CommonParams.SORT;
 import static org.apache.solr.common.util.JavaBinCodec.SOLRINPUTDOC;
 
-import com.google.common.collect.ImmutableSet;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -173,7 +172,7 @@ public class ExportTool extends SolrCLI.ToolBase {
     }
   }
 
-  static Set<String> formats = ImmutableSet.of(JAVABIN, "jsonl");
+  static Set<String> formats = Set.of(JAVABIN, "jsonl");
 
   @Override
   protected void runImpl(CommandLine cli) throws Exception {
diff --git a/solr/core/src/java/org/apache/solr/util/configuration/providers/AbstractSSLCredentialProvider.java b/solr/core/src/java/org/apache/solr/util/configuration/providers/AbstractSSLCredentialProvider.java
index d6ddbc72515..1c135dc28c7 100644
--- a/solr/core/src/java/org/apache/solr/util/configuration/providers/AbstractSSLCredentialProvider.java
+++ b/solr/core/src/java/org/apache/solr/util/configuration/providers/AbstractSSLCredentialProvider.java
@@ -22,16 +22,15 @@ import static org.apache.solr.util.configuration.SSLCredentialProvider.Credentia
 import static org.apache.solr.util.configuration.SSLCredentialProvider.CredentialType.SSL_KEY_STORE_PASSWORD;
 import static org.apache.solr.util.configuration.SSLCredentialProvider.CredentialType.SSL_TRUST_STORE_PASSWORD;
 
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
 import java.util.EnumMap;
+import java.util.Map;
 import org.apache.solr.util.configuration.SSLCredentialProvider;
 
 /** Abstract provider with default implementation */
 public abstract class AbstractSSLCredentialProvider implements SSLCredentialProvider {
   public static final EnumMap<CredentialType, String> DEFAULT_CREDENTIAL_KEY_MAP =
-      Maps.newEnumMap(
-          ImmutableMap.of(
+      new EnumMap<>(
+          Map.of(
               SSL_KEY_STORE_PASSWORD, "solr.jetty.keystore.password",
               SSL_TRUST_STORE_PASSWORD, "solr.jetty.truststore.password",
               SSL_CLIENT_KEY_STORE_PASSWORD, "javax.net.ssl.keyStorePassword",
diff --git a/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java b/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java
index ccba6c61299..f1cb48436e2 100644
--- a/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java
+++ b/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java
@@ -23,8 +23,6 @@ import static org.apache.solr.util.configuration.SSLCredentialProvider.Credentia
 import static org.apache.solr.util.configuration.SSLCredentialProvider.CredentialType.SSL_TRUST_STORE_PASSWORD;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
 import java.util.EnumMap;
 import java.util.Map;
 
@@ -47,8 +45,8 @@ public class EnvSSLCredentialProvider extends AbstractSSLCredentialProvider {
   }
 
   protected EnumMap<CredentialType, String> getCredentialKeyMap() {
-    return Maps.newEnumMap(
-        ImmutableMap.of(
+    return new EnumMap<>(
+        Map.of(
             SSL_KEY_STORE_PASSWORD, EnvVars.SOLR_SSL_KEY_STORE_PASSWORD,
             SSL_TRUST_STORE_PASSWORD, EnvVars.SOLR_SSL_TRUST_STORE_PASSWORD,
             SSL_CLIENT_KEY_STORE_PASSWORD, EnvVars.SOLR_SSL_CLIENT_KEY_STORE_PASSWORD,
diff --git a/solr/core/src/test/org/apache/solr/TestCrossCoreJoin.java b/solr/core/src/test/org/apache/solr/TestCrossCoreJoin.java
index e819cf63de1..5db101a1a38 100644
--- a/solr/core/src/test/org/apache/solr/TestCrossCoreJoin.java
+++ b/solr/core/src/test/org/apache/solr/TestCrossCoreJoin.java
@@ -16,9 +16,9 @@
  */
 package org.apache.solr;
 
-import com.google.common.collect.ImmutableMap;
 import java.io.StringWriter;
 import java.util.Collections;
+import java.util.Map;
 import org.apache.solr.common.SolrException.ErrorCode;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.core.CoreContainer;
@@ -50,7 +50,7 @@ public class TestCrossCoreJoin extends SolrTestCaseJ4 {
     initCore("solrconfig.xml", "schema12.xml", TEST_HOME(), "collection1");
     final CoreContainer coreContainer = h.getCoreContainer();
 
-    fromCore = coreContainer.create("fromCore", ImmutableMap.of("configSet", "minimal"));
+    fromCore = coreContainer.create("fromCore", Map.of("configSet", "minimal"));
 
     assertU(
         add(
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
index 740f234e88b..e4b00b88be1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
@@ -21,7 +21,6 @@ import static org.apache.solr.common.params.CommonParams.NAME;
 import static org.apache.solr.core.ConfigSetProperties.DEFAULT_FILENAME;
 import static org.junit.matchers.JUnitMatchers.containsString;
 
-import com.google.common.collect.ImmutableMap;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -181,14 +180,14 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
         "baseConfigSet2",
         "configSet2",
         null,
-        ImmutableMap.<String, String>of("immutable", "true", "key1", "value1"),
+        Map.of("immutable", "true", "key1", "value1"),
         "solr");
 
     // old, no new
     verifyCreate(
         "baseConfigSet3",
         "configSet3",
-        ImmutableMap.<String, String>of("immutable", "false", "key2", "value2"),
+        Map.of("immutable", "false", "key2", "value2"),
         null,
         "solr");
 
@@ -196,8 +195,8 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
     verifyCreate(
         "baseConfigSet4",
         "configSet4",
-        ImmutableMap.<String, String>of("immutable", "true", "onlyOld", "onlyOldValue"),
-        ImmutableMap.<String, String>of("immutable", "false", "onlyNew", "onlyNewValue"),
+        Map.of("immutable", "true", "onlyOld", "onlyOldValue"),
+        Map.of("immutable", "false", "onlyNew", "onlyNewValue"),
         "solr");
   }
 
@@ -1717,7 +1716,7 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
     FileUtils.copyDirectory(configDir, tmpConfigDir);
     FileUtils.write(
         new File(tmpConfigDir, "configsetprops.json"),
-        getConfigSetProps(ImmutableMap.<String, String>of("immutable", "true")),
+        getConfigSetProps(Map.of("immutable", "true")),
         UTF_8);
     getConfigSetService().uploadConfig("configSet", tmpConfigDir.toPath());
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java b/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java
index e855011ca63..0a9d2bb5d16 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java
@@ -22,7 +22,6 @@ import static org.apache.solr.common.params.CollectionParams.CollectionAction.DE
 import static org.apache.solr.common.params.CollectionParams.CollectionAction.MODIFYCOLLECTION;
 import static org.apache.solr.common.params.CollectionParams.CollectionAction.SPLITSHARD;
 
-import com.google.common.collect.ImmutableSet;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -72,9 +71,9 @@ public class TestLockTree extends SolrTestCaseJ4 {
 
     List<Set<String>> orderOfExecution =
         Arrays.asList(
-            ImmutableSet.of("coll1/shard1/core_node2", "coll2/shard2"),
-            ImmutableSet.of("coll1", "coll2"),
-            ImmutableSet.of("coll1/shard1", "coll2/shard1"));
+            Set.of("coll1/shard1/core_node2", "coll2/shard2"),
+            Set.of("coll1", "coll2"),
+            Set.of("coll1/shard1", "coll2/shard1"));
     lockTree = new LockTree();
     for (int counter = 0; counter < orderOfExecution.size(); counter++) {
       LockTree.Session session = lockTree.getSession();
diff --git a/solr/core/src/test/org/apache/solr/util/configuration/providers/EnvSSLCredentialProviderTest.java b/solr/core/src/test/org/apache/solr/util/configuration/providers/EnvSSLCredentialProviderTest.java
index dfb0d3573f0..1b663baad2d 100644
--- a/solr/core/src/test/org/apache/solr/util/configuration/providers/EnvSSLCredentialProviderTest.java
+++ b/solr/core/src/test/org/apache/solr/util/configuration/providers/EnvSSLCredentialProviderTest.java
@@ -21,7 +21,6 @@ import static org.apache.solr.util.configuration.providers.AbstractSSLCredential
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertThat;
 
-import com.google.common.collect.ImmutableMap;
 import java.util.Map;
 import org.apache.solr.util.configuration.SSLCredentialProvider;
 import org.junit.Test;
@@ -33,7 +32,7 @@ public class EnvSSLCredentialProviderTest {
   public void testGetCredentials() {
     int cnt = 0;
     Map<String, String> envvars =
-        ImmutableMap.of(
+        Map.of(
             EnvSSLCredentialProvider.EnvVars.SOLR_SSL_KEY_STORE_PASSWORD, "pw" + ++cnt,
             EnvSSLCredentialProvider.EnvVars.SOLR_SSL_TRUST_STORE_PASSWORD, "pw" + ++cnt,
             EnvSSLCredentialProvider.EnvVars.SOLR_SSL_CLIENT_KEY_STORE_PASSWORD, "pw" + ++cnt,
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
index 35c404d33a3..b8f82de9de7 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
@@ -20,7 +20,6 @@ package org.apache.solr.client.solrj.impl;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.mockito.Mockito.*;
 
-import com.google.common.collect.ImmutableSet;
 import java.net.ConnectException;
 import java.net.SocketException;
 import java.util.Collections;
@@ -83,7 +82,7 @@ public class CloudSolrClientCacheTest extends SolrTestCaseJ4 {
             new CloudSolrClientBuilder(clusterStateProvider)
                 .withLBHttpSolrClient(mockLbclient)
                 .build()) {
-      livenodes.addAll(ImmutableSet.of("192.168.1.108:7574_solr", "192.168.1.108:8983_solr"));
+      livenodes.addAll(Set.of("192.168.1.108:7574_solr", "192.168.1.108:8983_solr"));
       ClusterState cs =
           ClusterState.createFromJson(1, coll1State.getBytes(UTF_8), Collections.emptySet());
       refs.put(collName, new Ref(collName));
diff --git a/solr/solrj/src/test/org/apache/solr/common/cloud/TestPerReplicaStates.java b/solr/solrj/src/test/org/apache/solr/common/cloud/TestPerReplicaStates.java
index 942002dd764..387714ff03c 100644
--- a/solr/solrj/src/test/org/apache/solr/common/cloud/TestPerReplicaStates.java
+++ b/solr/solrj/src/test/org/apache/solr/common/cloud/TestPerReplicaStates.java
@@ -17,8 +17,7 @@
 
 package org.apache.solr.common.cloud;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
+import java.util.List;
 import java.util.Set;
 import org.apache.solr.cloud.SolrCloudTestCase;
 import org.apache.solr.common.cloud.Replica.State;
@@ -50,20 +49,18 @@ public class TestPerReplicaStates extends SolrCloudTestCase {
   public void testEntries() {
     PerReplicaStates entries =
         new PerReplicaStates(
-            "state.json", 0, ImmutableList.of("R1:2:A", "R1:1:A:L", "R1:0:D", "R2:0:D", "R3:0:A"));
+            "state.json", 0, List.of("R1:2:A", "R1:1:A:L", "R1:0:D", "R2:0:D", "R3:0:A"));
     assertEquals(2, entries.get("R1").version);
     entries =
         new PerReplicaStates(
-            "state.json", 0, ImmutableList.of("R1:1:A:L", "R1:2:A", "R2:0:D", "R3:0:A", "R1:0:D"));
+            "state.json", 0, List.of("R1:1:A:L", "R1:2:A", "R2:0:D", "R3:0:A", "R1:0:D"));
     assertEquals(2, entries.get("R1").version);
     assertEquals(2, entries.get("R1").getDuplicates().size());
     Set<String> modified =
         PerReplicaStates.findModifiedReplicas(
             entries,
             new PerReplicaStates(
-                "state.json",
-                0,
-                ImmutableList.of("R1:1:A:L", "R1:2:A", "R2:0:D", "R3:1:A", "R1:0:D")));
+                "state.json", 0, List.of("R1:1:A:L", "R1:2:A", "R2:0:D", "R3:1:A", "R1:0:D")));
     assertEquals(1, modified.size());
     assertTrue(modified.contains("R3"));
     modified =
@@ -72,7 +69,7 @@ public class TestPerReplicaStates extends SolrCloudTestCase {
             new PerReplicaStates(
                 "state.json",
                 0,
-                ImmutableList.of("R1:1:A:L", "R1:2:A", "R2:0:D", "R3:1:A", "R1:0:D", "R4:0:A")));
+                List.of("R1:1:A:L", "R1:2:A", "R2:0:D", "R3:1:A", "R1:0:D", "R4:0:A")));
     assertEquals(2, modified.size());
     assertTrue(modified.contains("R3"));
     assertTrue(modified.contains("R4"));
@@ -80,9 +77,7 @@ public class TestPerReplicaStates extends SolrCloudTestCase {
         PerReplicaStates.findModifiedReplicas(
             entries,
             new PerReplicaStates(
-                "state.json",
-                0,
-                ImmutableList.of("R1:1:A:L", "R1:2:A", "R3:1:A", "R1:0:D", "R4:0:A")));
+                "state.json", 0, List.of("R1:1:A:L", "R1:2:A", "R3:1:A", "R1:0:D", "R4:0:A")));
     assertEquals(3, modified.size());
     assertTrue(modified.contains("R3"));
     assertTrue(modified.contains("R4"));
@@ -93,8 +88,7 @@ public class TestPerReplicaStates extends SolrCloudTestCase {
     String root = "/testReplicaStateOperations";
     cluster.getZkClient().create(root, null, CreateMode.PERSISTENT, true);
 
-    ImmutableList<String> states =
-        ImmutableList.of("R1:2:A", "R1:1:A:L", "R1:0:D", "R3:0:A", "R4:13:A");
+    List<String> states = List.of("R1:2:A", "R1:1:A:L", "R1:0:D", "R3:0:A", "R4:13:A");
 
     for (String state : states) {
       cluster.getZkClient().create(root + "/" + state, null, CreateMode.PERSISTENT, true);
@@ -132,13 +126,13 @@ public class TestPerReplicaStates extends SolrCloudTestCase {
     rs = PerReplicaStates.fetch(root, zkStateReader.getZkClient(), null);
     assertEquals(3, rs.states.size());
 
-    ops = PerReplicaStatesOps.flipLeader(ImmutableSet.of("R4", "R3", "R1"), "R4", rs);
+    ops = PerReplicaStatesOps.flipLeader(Set.of("R4", "R3", "R1"), "R4", rs);
     assertEquals(2, ops.ops.size());
     assertEquals(PerReplicaStates.Operation.Type.ADD, ops.ops.get(0).typ);
     assertEquals(PerReplicaStates.Operation.Type.DELETE, ops.ops.get(1).typ);
     ops.persist(root, cluster.getZkClient());
     rs = PerReplicaStates.fetch(root, zkStateReader.getZkClient(), null);
-    ops = PerReplicaStatesOps.flipLeader(ImmutableSet.of("R4", "R3", "R1"), "R3", rs);
+    ops = PerReplicaStatesOps.flipLeader(Set.of("R4", "R3", "R1"), "R3", rs);
     assertEquals(4, ops.ops.size());
     ops.persist(root, cluster.getZkClient());
     rs = PerReplicaStates.fetch(root, zkStateReader.getZkClient(), null);
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java b/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java
index 86a7ecf9e9f..3d285b6375f 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java
@@ -21,7 +21,6 @@ import static java.util.Collections.emptyMap;
 import static java.util.Collections.singletonMap;
 import static org.apache.solr.api.ApiBag.HANDLER_NAME;
 
-import com.google.common.collect.ImmutableSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Set;
@@ -30,7 +29,7 @@ import org.apache.solr.SolrTestCaseJ4;
 public class TestPathTrie extends SolrTestCaseJ4 {
 
   public void testPathTrie() {
-    PathTrie<String> pathTrie = new PathTrie<>(ImmutableSet.of("_introspect"));
+    PathTrie<String> pathTrie = new PathTrie<>(Set.of("_introspect"));
     pathTrie.insert("/", emptyMap(), "R");
     pathTrie.insert("/aa", emptyMap(), "d");
     pathTrie.insert("/aa/bb/{cc}/dd", emptyMap(), "a");
@@ -54,7 +53,7 @@ public class TestPathTrie extends SolrTestCaseJ4 {
     pathTrie.lookup("/aa", templateValues, subPaths);
     assertEquals(3, subPaths.size());
 
-    pathTrie = new PathTrie<>(ImmutableSet.of("_introspect"));
+    pathTrie = new PathTrie<>(Set.of("_introspect"));
     pathTrie.insert("/aa/bb/{cc}/tt/*", emptyMap(), "W");
 
     templateValues.clear();
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestValidatingJsonMap.java b/solr/solrj/src/test/org/apache/solr/common/util/TestValidatingJsonMap.java
index 759e5638bdd..b70d28f73af 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestValidatingJsonMap.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestValidatingJsonMap.java
@@ -20,10 +20,10 @@ package org.apache.solr.common.util;
 import static org.apache.solr.common.util.ValidatingJsonMap.ENUM_OF;
 import static org.apache.solr.common.util.ValidatingJsonMap.NOT_NULL;
 
-import com.google.common.collect.ImmutableSet;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import org.apache.solr.SolrTestCaseJ4;
 
 public class TestValidatingJsonMap extends SolrTestCaseJ4 {
@@ -46,9 +46,9 @@ public class TestValidatingJsonMap extends SolrTestCaseJ4 {
     assertEquals(Boolean.FALSE, m.getBool("b", Boolean.TRUE));
     assertEquals(Integer.valueOf(10), m.getInt("i", 0));
 
-    expectThrows(RuntimeException.class, () -> m.getList("l", ENUM_OF, ImmutableSet.of("X", "Z")));
+    expectThrows(RuntimeException.class, () -> m.getList("l", ENUM_OF, Set.of("X", "Z")));
 
-    List<?> l = m.getList("l", ENUM_OF, ImmutableSet.of("X", "Y", "Z"));
+    List<?> l = m.getList("l", ENUM_OF, Set.of("X", "Y", "Z"));
     assertEquals(2, l.size());
     m.getList("l", NOT_NULL);
     assertNotNull(m.getMap("c"));