You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ge...@apache.org on 2022/10/11 16:00:53 UTC

[solr] branch main updated: SOLR-16392: Minor CollectionsHandler cleanup (#1065)

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

gerlowskija 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 e0a72e28f60 SOLR-16392: Minor CollectionsHandler cleanup (#1065)
e0a72e28f60 is described below

commit e0a72e28f60e5d7eb60bf7532c45a101239e0048
Author: Jason Gerlowski <ge...@apache.org>
AuthorDate: Tue Oct 11 12:00:48 2022 -0400

    SOLR-16392: Minor CollectionsHandler cleanup (#1065)
    
    This commit removes the switch-case in
    CollectionsHandler.handleRequestBody, in favor of just putting the case
    logic in the CollectionsOperation enum where needed.
    
    (Credit to Bruno R for the suggestion.)
---
 .../solr/handler/admin/CollectionsHandler.java     | 61 +++++++++++-----------
 1 file changed, 30 insertions(+), 31 deletions(-)

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 73ede1bbe33..6a6ec8076b1 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
@@ -54,6 +54,7 @@ import static org.apache.solr.common.params.CollectionAdminParams.PROPERTY_PREFI
 import static org.apache.solr.common.params.CollectionAdminParams.PROPERTY_VALUE;
 import static org.apache.solr.common.params.CollectionAdminParams.SKIP_NODE_ASSIGNMENT;
 import static org.apache.solr.common.params.CollectionParams.CollectionAction.ADDREPLICA;
+import static org.apache.solr.common.params.CollectionParams.CollectionAction.ADDREPLICAPROP;
 import static org.apache.solr.common.params.CollectionParams.CollectionAction.ADDROLE;
 import static org.apache.solr.common.params.CollectionParams.CollectionAction.ALIASPROP;
 import static org.apache.solr.common.params.CollectionParams.CollectionAction.BACKUP;
@@ -319,37 +320,9 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           "Invoked Collection Action: {} with params {}", action.toLower(), req.getParamString());
     }
 
-    switch (action) {
-      case ADDREPLICAPROP:
-        // Convert query-params to v2 acceptable format
-        final RequiredSolrParams requiredParams = req.getParams().required();
-        final AddReplicaPropertyAPI.AddReplicaPropertyRequestBody requestBody =
-            new AddReplicaPropertyAPI.AddReplicaPropertyRequestBody();
-        requestBody.value = requiredParams.get(PROPERTY_VALUE_PROP);
-        requestBody.shardUnique = req.getParams().getBool(SHARD_UNIQUE);
-        final String propName = requiredParams.get(PROPERTY_PROP);
-        final String trimmedPropName =
-            propName.startsWith(PROPERTY_PREFIX)
-                ? propName.substring(PROPERTY_PREFIX.length())
-                : propName;
-
-        final AddReplicaPropertyAPI addReplicaPropertyAPI =
-            new AddReplicaPropertyAPI(coreContainer, req, rsp);
-        final SolrJerseyResponse addReplicaPropResponse =
-            addReplicaPropertyAPI.addReplicaProperty(
-                requiredParams.get(COLLECTION_PROP),
-                requiredParams.get(SHARD_ID_PROP),
-                requiredParams.get(REPLICA_PROP),
-                trimmedPropName,
-                requestBody);
-        V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp, addReplicaPropResponse);
-        break;
-      default:
-        CollectionOperation operation = CollectionOperation.get(action);
-        invokeAction(req, rsp, cores, action, operation);
-        rsp.setHttpCaching(false);
-        break;
-    }
+    CollectionOperation operation = CollectionOperation.get(action);
+    invokeAction(req, rsp, cores, action, operation);
+    rsp.setHttpCaching(false);
   }
 
   protected CoreContainer checkErrors() {
@@ -1299,6 +1272,32 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
               .getClusterStatus(rsp.getValues());
           return null;
         }),
+    ADDREPLICAPROP_OP(
+        ADDREPLICAPROP,
+        (req, rsp, h) -> {
+          final RequiredSolrParams requiredParams = req.getParams().required();
+          final AddReplicaPropertyAPI.AddReplicaPropertyRequestBody requestBody =
+              new AddReplicaPropertyAPI.AddReplicaPropertyRequestBody();
+          requestBody.value = requiredParams.get(PROPERTY_VALUE_PROP);
+          requestBody.shardUnique = req.getParams().getBool(SHARD_UNIQUE);
+          final String propName = requiredParams.get(PROPERTY_PROP);
+          final String trimmedPropName =
+              propName.startsWith(PROPERTY_PREFIX)
+                  ? propName.substring(PROPERTY_PREFIX.length())
+                  : propName;
+
+          final AddReplicaPropertyAPI addReplicaPropertyAPI =
+              new AddReplicaPropertyAPI(h.coreContainer, req, rsp);
+          final SolrJerseyResponse addReplicaPropResponse =
+              addReplicaPropertyAPI.addReplicaProperty(
+                  requiredParams.get(COLLECTION_PROP),
+                  requiredParams.get(SHARD_ID_PROP),
+                  requiredParams.get(REPLICA_PROP),
+                  trimmedPropName,
+                  requestBody);
+          V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp, addReplicaPropResponse);
+          return null;
+        }),
     // XXX should this command support followAliases?
     DELETEREPLICAPROP_OP(
         DELETEREPLICAPROP,