You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ep...@apache.org on 2023/05/22 21:39:08 UTC
[solr] branch main updated: Factor out ModifiableSolrParams.setShardAttributesToParams method (#1570)
This is an automated email from the ASF dual-hosted git repository.
epugh 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 ac07921b42e Factor out ModifiableSolrParams.setShardAttributesToParams method (#1570)
ac07921b42e is described below
commit ac07921b42efa20bc7f59c636076b430e0b4d460
Author: Renato Haeberli <re...@onnet.ch>
AuthorDate: Mon May 22 23:39:02 2023 +0200
Factor out ModifiableSolrParams.setShardAttributesToParams method (#1570)
---
.../solr/handler/component/SearchHandler.java | 9 +--------
.../handler/component/TaskManagementHandler.java | 10 +---------
.../org/apache/solr/common/params/CommonParams.java | 2 ++
.../solr/common/params/ModifiableSolrParams.java | 14 ++++++++++++++
.../common/params/ModifiableSolrParamsTest.java | 21 +++++++++++++++++++++
5 files changed, 39 insertions(+), 17 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
index b697eb11934..fb84bb827de 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
@@ -498,14 +498,7 @@ public class SearchHandler extends RequestHandlerBase
// TODO: map from shard to address[]
for (String shard : sreq.actualShards) {
ModifiableSolrParams params = new ModifiableSolrParams(sreq.params);
- params.remove(ShardParams.SHARDS); // not a top-level request
- params.set(DISTRIB, "false"); // not a top-level request
- params.remove("indent");
- params.remove(CommonParams.HEADER_ECHO_PARAMS);
- params.set(ShardParams.IS_SHARD, true); // a sub (shard) request
- params.set(ShardParams.SHARDS_PURPOSE, sreq.purpose);
- params.set(ShardParams.SHARD_URL, shard); // so the shard knows what was asked
- params.set(CommonParams.OMIT_HEADER, false);
+ params.setShardAttributesToParams(sreq.purpose, shard);
// Distributed request -- need to send queryID as a part of the distributed request
params.setNonNull(ShardParams.QUERY_ID, rb.queryID);
diff --git a/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java b/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java
index e759f1ac1a5..43b3cdf0e9b 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java
@@ -26,7 +26,6 @@ import java.util.Map;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.params.ShardParams;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.RequestHandlerBase;
@@ -80,14 +79,7 @@ public abstract class TaskManagementHandler extends RequestHandlerBase
String reqPath = (String) req.getContext().get(PATH);
params.set(CommonParams.QT, reqPath);
- params.remove(ShardParams.SHARDS); // not a top-level request
- params.set(DISTRIB, "false"); // not a top-level request
- params.remove("indent");
- params.remove(CommonParams.HEADER_ECHO_PARAMS);
- params.set(ShardParams.IS_SHARD, true); // a sub (shard) request
- params.set(ShardParams.SHARDS_PURPOSE, sreq.purpose);
- params.set(ShardParams.SHARD_URL, shard); // so the shard knows what was asked
- params.set(CommonParams.OMIT_HEADER, false);
+ params.setShardAttributesToParams(sreq.purpose, shard);
if (extraParams != null) {
for (Map.Entry<String, String> entry : extraParams.entrySet()) {
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
index 06b279af842..740be2e128f 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
@@ -69,6 +69,8 @@ public interface CommonParams {
int ROWS_DEFAULT = 10;
+ String INDENT = "indent";
+
// SOLR-4228 start
/** handler value for SolrPing */
String PING_HANDLER = "/admin/ping";
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/ModifiableSolrParams.java b/solr/solrj/src/java/org/apache/solr/common/params/ModifiableSolrParams.java
index 5ee078b2602..47469e2e911 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/ModifiableSolrParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/ModifiableSolrParams.java
@@ -16,6 +16,9 @@
*/
package org.apache.solr.common.params;
+import static org.apache.solr.common.params.CommonParams.DISTRIB;
+import static org.apache.solr.common.params.CommonParams.INDENT;
+
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -175,6 +178,17 @@ public class ModifiableSolrParams extends SolrParams {
// ----------------------------------------------------------------
// ----------------------------------------------------------------
+ public void setShardAttributesToParams(int purpose, String shardUrl) {
+ remove(ShardParams.SHARDS); // not a top-level request
+ set(DISTRIB, Boolean.FALSE.toString()); // not a top-level request
+ remove(INDENT);
+ remove(CommonParams.HEADER_ECHO_PARAMS);
+ set(ShardParams.IS_SHARD, true); // a sub (shard) request
+ set(ShardParams.SHARDS_PURPOSE, purpose);
+ set(ShardParams.SHARD_URL, shardUrl); // so the shard knows what was asked
+ set(CommonParams.OMIT_HEADER, false);
+ }
+
@Override
public String get(String param) {
String[] v = vals.get(param);
diff --git a/solr/solrj/src/test/org/apache/solr/common/params/ModifiableSolrParamsTest.java b/solr/solrj/src/test/org/apache/solr/common/params/ModifiableSolrParamsTest.java
index 2304b3abe06..91871062889 100644
--- a/solr/solrj/src/test/org/apache/solr/common/params/ModifiableSolrParamsTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/params/ModifiableSolrParamsTest.java
@@ -127,6 +127,27 @@ public class ModifiableSolrParamsTest extends SolrTestCase {
compareArrays("checking Hello World Universe ", helloWorldUniverse, result);
}
+ public void testSetShardAttributesToParams() {
+ var dummyShardUrl = "Shard-Url";
+ var dummyIndent = "Dummy-Indent";
+
+ modifiable.set(ShardParams.SHARDS, "dummyValue");
+ modifiable.set(CommonParams.HEADER_ECHO_PARAMS, "dummyValue");
+ modifiable.set(CommonParams.INDENT, dummyIndent);
+
+ modifiable.setShardAttributesToParams(2, dummyShardUrl);
+
+ assertEquals(Boolean.FALSE.toString(), modifiable.get(CommonParams.DISTRIB));
+ assertEquals(dummyShardUrl, modifiable.get(ShardParams.SHARD_URL));
+ assertEquals("2", modifiable.get(ShardParams.SHARDS_PURPOSE));
+ assertEquals(Boolean.FALSE.toString(), modifiable.get(CommonParams.OMIT_HEADER));
+ assertEquals(Boolean.TRUE.toString(), modifiable.get(ShardParams.IS_SHARD));
+
+ assertNull(modifiable.get(CommonParams.HEADER_ECHO_PARAMS));
+ assertNull(modifiable.get(ShardParams.SHARDS));
+ assertNull(modifiable.get(CommonParams.INDENT));
+ }
+
private void compareArrays(String prefix, String[] expected, String[] actual) {
assertEquals(prefix + "length: ", expected.length, actual.length);
for (int i = 0; i < expected.length; ++i) {