You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2017/07/09 13:47:12 UTC
lucene-solr:jira/solr-6630: SOLR-6630: Deprecate implict router in
favour of manual router
Repository: lucene-solr
Updated Branches:
refs/heads/jira/solr-6630 [created] b6ee770f0
SOLR-6630: Deprecate implict router in favour of manual router
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b6ee770f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b6ee770f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b6ee770f
Branch: refs/heads/jira/solr-6630
Commit: b6ee770f0e1226441aaf94a074d3dc8163a7762e
Parents: b29951f
Author: Ishan Chattopadhyaya <is...@apache.org>
Authored: Sun Jul 9 19:16:51 2017 +0530
Committer: Ishan Chattopadhyaya <is...@apache.org>
Committed: Sun Jul 9 19:16:51 2017 +0530
----------------------------------------------------------------------
.../apache/solr/cloud/CreateCollectionCmd.java | 4 +-
.../java/org/apache/solr/cloud/RestoreCmd.java | 4 +-
.../cloud/overseer/ClusterStateMutator.java | 4 +-
.../solr/cloud/overseer/CollectionMutator.java | 8 +-
.../solr/handler/admin/CollectionsHandler.java | 6 +-
.../AbstractCloudBackupRestoreTestCase.java | 16 ++--
.../test/org/apache/solr/cloud/AssignTest.java | 4 +-
.../cloud/CollectionTooManyReplicasTest.java | 4 +-
.../CollectionsAPIAsyncDistributedZkTest.java | 2 +-
.../solr/cloud/CollectionsAPISolrJTest.java | 8 +-
.../apache/solr/cloud/CustomCollectionTest.java | 14 +--
.../DeleteLastCustomShardedReplicaTest.java | 2 +-
.../org/apache/solr/cloud/DeleteShardTest.java | 2 +-
.../cloud/FullSolrCloudDistribCmdsTest.java | 14 +--
.../apache/solr/cloud/TestCollectionAPI.java | 6 +-
.../solr/cloud/autoscaling/TestPolicyCloud.java | 4 +-
.../cloud/overseer/TestClusterStateMutator.java | 6 +-
.../org/apache/solr/cloud/rule/RulesTest.java | 8 +-
.../solr/search/stats/TestDistribIDF.java | 10 +-
.../solr/client/solrj/impl/CloudSolrClient.java | 4 +-
.../solrj/request/CollectionAdminRequest.java | 16 ++--
.../org/apache/solr/common/cloud/DocRouter.java | 2 +-
.../solr/common/cloud/ImplicitDocRouter.java | 98 -------------------
.../solr/common/cloud/ManualDocRouter.java | 99 ++++++++++++++++++++
...ollectionAdminRequestRequiredParamsTest.java | 4 +-
.../request/TestCollectionAdminRequest.java | 6 +-
26 files changed, 178 insertions(+), 177 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java b/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java
index b136335..d685dd0 100644
--- a/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java
@@ -36,7 +36,7 @@ import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocRouter;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkConfigManager;
@@ -107,7 +107,7 @@ public class CreateCollectionCmd implements Cmd {
Integer numSlices = message.getInt(NUM_SLICES, null);
String router = message.getStr("router.name", DocRouter.DEFAULT_NAME);
List<String> shardNames = new ArrayList<>();
- if(ImplicitDocRouter.NAME.equals(router)){
+ if(ManualDocRouter.NAME.equals(router)){
ClusterStateMutator.getShardNames(shardNames, message.getStr("shards", null));
numSlices = shardNames.size();
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/java/org/apache/solr/cloud/RestoreCmd.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/RestoreCmd.java b/solr/core/src/java/org/apache/solr/cloud/RestoreCmd.java
index fa493c7..461c765 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RestoreCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RestoreCmd.java
@@ -39,7 +39,7 @@ import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
@@ -172,7 +172,7 @@ public class RestoreCmd implements OverseerCollectionMessageHandler.Cmd {
}
Set<String> sliceNames = backupCollectionState.getActiveSlicesMap().keySet();
- if (backupCollectionState.getRouter() instanceof ImplicitDocRouter) {
+ if (backupCollectionState.getRouter() instanceof ManualDocRouter) {
propMap.put(SHARDS_PROP, StrUtils.join(sliceNames, ','));
} else {
propMap.put(NUM_SLICES, sliceNames.size());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
index 9002c19..004cc17 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
@@ -29,7 +29,7 @@ import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.DocRouter;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
@@ -68,7 +68,7 @@ public class ClusterStateMutator {
} else {
List<String> shardNames = new ArrayList<>();
- if (router instanceof ImplicitDocRouter) {
+ if (router instanceof ManualDocRouter) {
getShardNames(shardNames, message.getStr("shards", DocRouter.DEFAULT_NAME));
} else {
int numShards = message.getInt(ZkStateReader.NUM_SHARDS_PROP, -1);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
index 59629de..4d3ed7c 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
@@ -25,7 +25,7 @@ import java.util.Map;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
@@ -122,12 +122,12 @@ public class CollectionMutator {
if (collection == null) {
// when updateSlice is called on a collection that doesn't exist, it's currently when a core is publishing itself
- // without explicitly creating a collection. In this current case, we assume custom sharding with an "implicit" router.
+ // without explicitly creating a collection. In this current case, we assume custom sharding with a "manual" router.
slices = new LinkedHashMap<>(1);
slices.put(slice.getName(), slice);
Map<String, Object> props = new HashMap<>(1);
- props.put(DocCollection.DOC_ROUTER, Utils.makeMap(NAME, ImplicitDocRouter.NAME));
- newCollection = new DocCollection(collectionName, slices, props, new ImplicitDocRouter());
+ props.put(DocCollection.DOC_ROUTER, Utils.makeMap(NAME, ManualDocRouter.NAME));
+ newCollection = new DocCollection(collectionName, slices, props, new ManualDocRouter());
} else {
slices = new LinkedHashMap<>(collection.getSlicesMap()); // make a shallow copy
slices.put(slice.getName(), slice);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
----------------------------------------------------------------------
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 256400e..1b72c92 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
@@ -56,7 +56,7 @@ import org.apache.solr.common.cloud.Aliases;
import org.apache.solr.common.cloud.ClusterProperties;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Replica.State;
import org.apache.solr.common.cloud.Slice;
@@ -518,8 +518,8 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
SHARD_ID_PROP);
ClusterState clusterState = h.coreContainer.getZkController().getClusterState();
final String newShardName = SolrIdentifierValidator.validateShardName(req.getParams().get(SHARD_ID_PROP));
- if (!ImplicitDocRouter.NAME.equals(((Map) clusterState.getCollection(req.getParams().get(COLLECTION_PROP)).get(DOC_ROUTER)).get(NAME)))
- throw new SolrException(ErrorCode.BAD_REQUEST, "shards can be added only to 'implicit' collections");
+ if (!ManualDocRouter.NAME.equals(((Map) clusterState.getCollection(req.getParams().get(COLLECTION_PROP)).get(DOC_ROUTER)).get(NAME)))
+ throw new SolrException(ErrorCode.BAD_REQUEST, "shards can be added only to collections using 'manual' router");
req.getParams().getAll(map,
REPLICATION_FACTOR,
CREATE_NODE_SET);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/AbstractCloudBackupRestoreTestCase.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/AbstractCloudBackupRestoreTestCase.java b/solr/core/src/test/org/apache/solr/cloud/AbstractCloudBackupRestoreTestCase.java
index 526a8df..f2964e0 100644
--- a/solr/core/src/test/org/apache/solr/cloud/AbstractCloudBackupRestoreTestCase.java
+++ b/solr/core/src/test/org/apache/solr/cloud/AbstractCloudBackupRestoreTestCase.java
@@ -40,7 +40,7 @@ import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.params.CollectionAdminParams;
import org.apache.solr.common.params.CoreAdminParams;
@@ -82,15 +82,15 @@ public abstract class AbstractCloudBackupRestoreTestCase extends SolrCloudTestCa
@Test
public void test() throws Exception {
- boolean isImplicit = random().nextBoolean();
- boolean doSplitShardOperation = !isImplicit && random().nextBoolean();
+ boolean isManual = random().nextBoolean();
+ boolean doSplitShardOperation = !isManual && random().nextBoolean();
int replFactor = TestUtil.nextInt(random(), 1, 2);
int numTlogReplicas = TestUtil.nextInt(random(), 0, 1);
int numPullReplicas = TestUtil.nextInt(random(), 0, 1);
- CollectionAdminRequest.Create create = isImplicit ?
+ CollectionAdminRequest.Create create = isManual ?
// NOTE: use shard list with same # of shards as NUM_SHARDS; we assume this later
- CollectionAdminRequest.createCollectionWithImplicitRouter(getCollectionName(), "conf1", "shard1,shard2", replFactor, numTlogReplicas, numPullReplicas) :
+ CollectionAdminRequest.createCollectionWithManualRouter(getCollectionName(), "conf1", "shard1,shard2", replFactor, numTlogReplicas, numPullReplicas) :
CollectionAdminRequest.createCollection(getCollectionName(), "conf1", NUM_SHARDS, replFactor, numTlogReplicas, numPullReplicas);
if (NUM_SHARDS * (replFactor + numTlogReplicas + numPullReplicas) > cluster.getJettySolrRunners().size() || random().nextBoolean()) {
@@ -105,7 +105,7 @@ public abstract class AbstractCloudBackupRestoreTestCase extends SolrCloudTestCa
Properties coreProps = new Properties();
coreProps.put("customKey", "customValue");//just to assert it survives the restoration
create.setProperties(coreProps);
- if (isImplicit) { //implicit router
+ if (isManual) { // manual router
create.setRouterField("shard_s");
} else {//composite id router
if (random().nextBoolean()) {
@@ -202,7 +202,7 @@ public abstract class AbstractCloudBackupRestoreTestCase extends SolrCloudTestCa
for (int i=0; i<numDocs; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i);
- doc.addField("shard_s", "shard" + (1 + random.nextInt(NUM_SHARDS))); // for implicit router
+ doc.addField("shard_s", "shard" + (1 + random.nextInt(NUM_SHARDS))); // for manual router
docs.add(doc);
}
CloudSolrClient client = cluster.getSolrClient();
@@ -285,7 +285,7 @@ public abstract class AbstractCloudBackupRestoreTestCase extends SolrCloudTestCa
assertEquals(origShardToDocCount, getShardToDocCountMap(client, restoreCollection));
//Re-index same docs (should be identical docs given same random seed) and test we have the same result. Helps
// test we reconstituted the hash ranges / doc router.
- if (!(restoreCollection.getRouter() instanceof ImplicitDocRouter) && random().nextBoolean()) {
+ if (!(restoreCollection.getRouter() instanceof ManualDocRouter) && random().nextBoolean()) {
indexDocs(restoreCollectionName);
assertEquals(origShardToDocCount, getShardToDocCountMap(client, restoreCollection));
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/AssignTest.java b/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
index 8e32510..ac55313 100644
--- a/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
@@ -25,7 +25,7 @@ import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.DocRouter;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
@@ -75,7 +75,7 @@ public class AssignTest extends SolrTestCaseJ4 {
Slice slice = new Slice("slice1", replicas , new HashMap<String,Object>(0));
slices.put("slice1", slice);
- DocRouter router = new ImplicitDocRouter();
+ DocRouter router = new ManualDocRouter();
DocCollection docCollection = new DocCollection(cname, slices, new HashMap<String,Object>(0), router);
collectionStates.put(cname, docCollection);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/CollectionTooManyReplicasTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionTooManyReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionTooManyReplicasTest.java
index a1c2175..972f517 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CollectionTooManyReplicasTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CollectionTooManyReplicasTest.java
@@ -121,7 +121,7 @@ public class CollectionTooManyReplicasTest extends SolrCloudTestCase {
public void testAddShard() throws Exception {
String collectionName = "TooManyReplicasWhenAddingShards";
- CollectionAdminRequest.createCollectionWithImplicitRouter(collectionName, "conf", "shardstart", 2)
+ CollectionAdminRequest.createCollectionWithManualRouter(collectionName, "conf", "shardstart", 2)
.setMaxShardsPerNode(2)
.process(cluster.getSolrClient());
@@ -178,7 +178,7 @@ public class CollectionTooManyReplicasTest extends SolrCloudTestCase {
@Test
public void testDownedShards() throws Exception {
String collectionName = "TooManyReplicasWhenAddingDownedNode";
- CollectionAdminRequest.createCollectionWithImplicitRouter(collectionName, "conf", "shardstart", 1)
+ CollectionAdminRequest.createCollectionWithManualRouter(collectionName, "conf", "shardstart", 1)
.setMaxShardsPerNode(2)
.process(cluster.getSolrClient());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIAsyncDistributedZkTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIAsyncDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIAsyncDistributedZkTest.java
index 1474b5c..5605f272 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIAsyncDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIAsyncDistributedZkTest.java
@@ -78,7 +78,7 @@ public class CollectionsAPIAsyncDistributedZkTest extends SolrCloudTestCase {
final CloudSolrClient client = cluster.getSolrClient();
RequestStatusState state = CollectionAdminRequest.createCollection(collection,"conf1",1,1)
- .setRouterName("implicit")
+ .setRouterName("manual")
.setShards("shard1")
.processAndWait(client, MAX_TIMEOUT_SECONDS);
assertSame("CreateCollection task did not complete!", RequestStatusState.COMPLETED, state);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
index 77db071..71a7a5c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
@@ -148,10 +148,10 @@ public class CollectionsAPISolrJTest extends SolrCloudTestCase {
@Test
public void testCreateAndDeleteShard() throws IOException, SolrServerException {
- // Create an implicit collection
- String collectionName = "solrj_implicit";
+ // Create a manual collection
+ String collectionName = "solrj_manual";
CollectionAdminResponse response
- = CollectionAdminRequest.createCollectionWithImplicitRouter(collectionName, "conf", "shardA,shardB", 1, 1, 1)
+ = CollectionAdminRequest.createCollectionWithManualRouter(collectionName, "conf", "shardA,shardB", 1, 1, 1)
.setMaxShardsPerNode(3)
.process(cluster.getSolrClient());
@@ -160,7 +160,7 @@ public class CollectionsAPISolrJTest extends SolrCloudTestCase {
Map<String, NamedList<Integer>> coresStatus = response.getCollectionCoresStatus();
assertEquals(6, coresStatus.size());
- // Add a shard to the implicit collection
+ // Add a shard to the manual collection
response = CollectionAdminRequest.createShard(collectionName, "shardC").process(cluster.getSolrClient());
assertEquals(0, response.getStatus());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java b/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java
index 63a3272..bcf09c6 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java
@@ -56,20 +56,20 @@ public class CustomCollectionTest extends SolrCloudTestCase {
@Test
public void testCustomCollectionsAPI() throws Exception {
- final String collection = "implicitcoll";
+ final String collection = "manualcoll";
int replicationFactor = TestUtil.nextInt(random(), 0, 3) + 2;
int numShards = 3;
int maxShardsPerNode = (((numShards + 1) * replicationFactor) / NODE_COUNT) + 1;
- CollectionAdminRequest.createCollectionWithImplicitRouter(collection, "conf", "a,b,c", replicationFactor)
+ CollectionAdminRequest.createCollectionWithManualRouter(collection, "conf", "a,b,c", replicationFactor)
.setMaxShardsPerNode(maxShardsPerNode)
.process(cluster.getSolrClient());
DocCollection coll = getCollectionState(collection);
- assertEquals("implicit", ((Map) coll.get(DOC_ROUTER)).get("name"));
+ assertEquals("manual", ((Map) coll.get(DOC_ROUTER)).get("name"));
assertNotNull(coll.getStr(REPLICATION_FACTOR));
assertNotNull(coll.getStr(MAX_SHARDS_PER_NODE));
- assertNull("A shard of a Collection configured with implicit router must have null range",
+ assertNull("A shard of a Collection configured with manual router must have null range",
coll.getSlice("a").getRange());
new UpdateRequest()
@@ -120,7 +120,7 @@ public class CustomCollectionTest extends SolrCloudTestCase {
}
@Test
- public void testRouteFieldForImplicitRouter() throws Exception {
+ public void testRouteFieldForManualRouter() throws Exception {
int numShards = 4;
int replicationFactor = TestUtil.nextInt(random(), 0, 3) + 2;
@@ -129,7 +129,7 @@ public class CustomCollectionTest extends SolrCloudTestCase {
final String collection = "withShardField";
- CollectionAdminRequest.createCollectionWithImplicitRouter(collection, "conf", "a,b,c,d", replicationFactor)
+ CollectionAdminRequest.createCollectionWithManualRouter(collection, "conf", "a,b,c,d", replicationFactor)
.setMaxShardsPerNode(maxShardsPerNode)
.setRouterField(shard_fld)
.process(cluster.getSolrClient());
@@ -183,7 +183,7 @@ public class CustomCollectionTest extends SolrCloudTestCase {
@Test
public void testCreateShardRepFactor() throws Exception {
final String collectionName = "testCreateShardRepFactor";
- CollectionAdminRequest.createCollectionWithImplicitRouter(collectionName, "conf", "a,b", 1)
+ CollectionAdminRequest.createCollectionWithManualRouter(collectionName, "conf", "a,b", 1)
.process(cluster.getSolrClient());
CollectionAdminRequest.createShard(collectionName, "x")
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/DeleteLastCustomShardedReplicaTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteLastCustomShardedReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteLastCustomShardedReplicaTest.java
index c46362e..07abdee 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteLastCustomShardedReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteLastCustomShardedReplicaTest.java
@@ -36,7 +36,7 @@ public class DeleteLastCustomShardedReplicaTest extends SolrCloudTestCase {
final String collectionName = "customcollreplicadeletion";
- CollectionAdminRequest.createCollectionWithImplicitRouter(collectionName, "conf", "a,b", 1)
+ CollectionAdminRequest.createCollectionWithManualRouter(collectionName, "conf", "a,b", 1)
.setMaxShardsPerNode(5)
.process(cluster.getSolrClient());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java
index ed3d03b..a91faab 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java
@@ -106,7 +106,7 @@ public class DeleteShardTest extends SolrCloudTestCase {
public void testDirectoryCleanupAfterDeleteShard() throws InterruptedException, IOException, SolrServerException {
final String collection = "deleteshard_test";
- CollectionAdminRequest.createCollectionWithImplicitRouter(collection, "conf", "a,b,c", 1)
+ CollectionAdminRequest.createCollectionWithManualRouter(collection, "conf", "a,b,c", 1)
.setMaxShardsPerNode(2)
.process(cluster.getSolrClient());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
index b4c5a46..6f56144 100644
--- a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
@@ -142,7 +142,7 @@ public class FullSolrCloudDistribCmdsTest extends AbstractFullDistribZkTestBase
testDeleteByQueryDistrib();
// See SOLR-7384
-// testDeleteByIdImplicitRouter();
+// testDeleteByIdManualRouter();
//
// testDeleteByIdCompositeRouterWithRouterField();
@@ -152,13 +152,13 @@ public class FullSolrCloudDistribCmdsTest extends AbstractFullDistribZkTestBase
docId = testIndexingBatchPerRequestWithHttpSolrClient(docId);
}
- private void testDeleteByIdImplicitRouter() throws Exception {
+ private void testDeleteByIdManualRouter() throws Exception {
SolrClient server = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
CollectionAdminResponse response;
Map<String, NamedList<Integer>> coresStatus;
CollectionAdminRequest.Create createCollectionRequest
- = CollectionAdminRequest.createCollectionWithImplicitRouter("implicit_collection_without_routerfield",
+ = CollectionAdminRequest.createCollectionWithManualRouter("manual_collection_without_routerfield",
"conf1","shard1,shard2",2);
response = createCollectionRequest.process(server);
@@ -167,16 +167,16 @@ public class FullSolrCloudDistribCmdsTest extends AbstractFullDistribZkTestBase
coresStatus = response.getCollectionCoresStatus();
assertEquals(4, coresStatus.size());
for (int i = 0; i < 4; i++) {
- NamedList<Integer> status = coresStatus.get("implicit_collection_without_routerfield_shard" + (i / 2 + 1) + "_replica" + (i % 2 + 1));
+ NamedList<Integer> status = coresStatus.get("manual_collection_without_routerfield_shard" + (i / 2 + 1) + "_replica" + (i % 2 + 1));
assertEquals(0, (int) status.get("status"));
assertTrue(status.get("QTime") > 0);
}
- waitForRecoveriesToFinish("implicit_collection_without_routerfield", true);
+ waitForRecoveriesToFinish("manual_collection_without_routerfield", true);
- SolrClient shard1 = createNewSolrClient("implicit_collection_without_routerfield_shard1_replica1",
+ SolrClient shard1 = createNewSolrClient("manual_collection_without_routerfield_shard1_replica1",
getBaseUrl((HttpSolrClient) clients.get(0)));
- SolrClient shard2 = createNewSolrClient("implicit_collection_without_routerfield_shard2_replica1",
+ SolrClient shard2 = createNewSolrClient("manual_collection_without_routerfield_shard2_replica1",
getBaseUrl((HttpSolrClient) clients.get(0)));
SolrInputDocument doc = new SolrInputDocument();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/TestCollectionAPI.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCollectionAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestCollectionAPI.java
index abe4ed3..201f2b8 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCollectionAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCollectionAPI.java
@@ -690,7 +690,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase {
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("action", CollectionParams.CollectionAction.CREATE.toString());
params.set("name", "valid_collection_name");
- params.set("router.name", "implicit");
+ params.set("router.name", "manual");
params.set("numShards", "1");
params.set("shards", "invalid@name#with$weird%characters");
SolrRequest request = new QueryRequest(params);
@@ -732,12 +732,12 @@ public class TestCollectionAPI extends ReplicaPropertiesBase {
private void testShardCreationNameValidation() throws Exception {
try (CloudSolrClient client = createCloudClient(null)) {
client.connect();
- // Create a collection w/ implicit router
+ // Create a collection w/ manual router
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("action", CollectionParams.CollectionAction.CREATE.toString());
params.set("name", "valid_collection_name");
params.set("shards", "a");
- params.set("router.name", "implicit");
+ params.set("router.name", "manual");
SolrRequest request = new QueryRequest(params);
request.setPath("/admin/collections");
client.request(request);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
index cb519f2..e2da9ac 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
@@ -140,7 +140,7 @@ public class TestPolicyCloud extends SolrCloudTestCase {
Map<String, Object> json = Utils.getJson(cluster.getZkClient(), ZkStateReader.SOLR_AUTOSCALING_CONF_PATH, true);
assertEquals("full json:"+ Utils.toJSONString(json) , "#EACH",
Utils.getObjectByPath(json, true, "/policies/c1[0]/shard"));
- CollectionAdminRequest.createCollectionWithImplicitRouter("policiesTest", "conf", "s1,s2", 1)
+ CollectionAdminRequest.createCollectionWithManualRouter("policiesTest", "conf", "s1,s2", 1)
.setPolicy("c1")
.process(cluster.getSolrClient());
@@ -155,7 +155,7 @@ public class TestPolicyCloud extends SolrCloudTestCase {
}
public void testDataProvider() throws IOException, SolrServerException, KeeperException, InterruptedException {
- CollectionAdminRequest.createCollectionWithImplicitRouter("policiesTest", "conf", "shard1", 2)
+ CollectionAdminRequest.createCollectionWithManualRouter("policiesTest", "conf", "shard1", 2)
.process(cluster.getSolrClient());
DocCollection rulesCollection = getCollectionState("policiesTest");
SolrClientDataProvider provider = new SolrClientDataProvider(cluster.getSolrClient());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java b/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
index 18cf763..3ed6403 100644
--- a/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
+++ b/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
@@ -22,7 +22,7 @@ import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.cloud.MockZkStateReader;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.util.Utils;
@@ -48,7 +48,7 @@ public class TestClusterStateMutator extends SolrTestCaseJ4 {
message = new ZkNodeProps(Utils.makeMap(
"name", "abc",
"numShards", "2",
- "router.name", "implicit",
+ "router.name", "manual",
"shards", "x,y",
"replicationFactor", "3",
"maxShardsPerNode", "4"
@@ -64,7 +64,7 @@ public class TestClusterStateMutator extends SolrTestCaseJ4 {
assertSame(Slice.State.ACTIVE, collection.getSlicesMap().get("x").getState());
assertSame(Slice.State.ACTIVE, collection.getSlicesMap().get("y").getState());
assertEquals(4, collection.getMaxShardsPerNode());
- assertEquals(ImplicitDocRouter.class, collection.getRouter().getClass());
+ assertEquals(ManualDocRouter.class, collection.getRouter().getClass());
assertNotNull(state.getCollectionOrNull("xyz")); // we still have the old collection
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java b/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java
index d4a72bf..8598f3b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java
@@ -70,7 +70,7 @@ public class RulesTest extends SolrCloudTestCase {
ImplicitSnitch.getUsableSpaceInGB(Paths.get("/")) > minGB);
String rulesColl = "rulesColl";
- CollectionAdminRequest.createCollectionWithImplicitRouter(rulesColl, "conf", "shard1", 2)
+ CollectionAdminRequest.createCollectionWithManualRouter(rulesColl, "conf", "shard1", 2)
.setRule("cores:<4", "node:*,replica:<2", "freedisk:>"+minGB)
.setSnitch("class:ImplicitSnitch")
.process(cluster.getSolrClient());
@@ -98,7 +98,7 @@ public class RulesTest extends SolrCloudTestCase {
String port = Integer.toString(jetty.getLocalPort());
String rulesColl = "portRuleColl";
- CollectionAdminRequest.createCollectionWithImplicitRouter(rulesColl, "conf", "shard1", 2)
+ CollectionAdminRequest.createCollectionWithManualRouter(rulesColl, "conf", "shard1", 2)
.setRule("port:" + port)
.setSnitch("class:ImplicitSnitch")
.process(cluster.getSolrClient());
@@ -125,7 +125,7 @@ public class RulesTest extends SolrCloudTestCase {
String ip_1 = ipFragments[ipFragments.length - 1];
String ip_2 = ipFragments[ipFragments.length - 2];
- CollectionAdminRequest.createCollectionWithImplicitRouter(rulesColl, "conf", "shard1", 2)
+ CollectionAdminRequest.createCollectionWithManualRouter(rulesColl, "conf", "shard1", 2)
.setRule("ip_2:" + ip_2, "ip_1:" + ip_1)
.setSnitch("class:ImplicitSnitch")
.process(cluster.getSolrClient());
@@ -157,7 +157,7 @@ public class RulesTest extends SolrCloudTestCase {
expectedException.expect(HttpSolrClient.RemoteSolrException.class);
expectedException.expectMessage(containsString("ip_1"));
- CollectionAdminRequest.createCollectionWithImplicitRouter(rulesColl, "conf", "shard1", 2)
+ CollectionAdminRequest.createCollectionWithManualRouter(rulesColl, "conf", "shard1", 2)
.setRule("ip_2:" + ip_2, "ip_1:" + ip_1 + "9999")
.setSnitch("class:ImplicitSnitch")
.process(cluster.getSolrClient());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java b/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java
index cac2dc5..c8f760a 100644
--- a/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java
+++ b/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java
@@ -32,7 +32,7 @@ import org.apache.solr.cloud.AbstractDistribZkTestBase;
import org.apache.solr.cloud.MiniSolrCloudCluster;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.CompositeIdRouter;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.ShardParams;
import org.junit.Test;
@@ -74,8 +74,8 @@ public class TestDistribIDF extends SolrTestCaseJ4 {
@Test
public void testSimpleQuery() throws Exception {
//3 shards. 3rd shard won't have any data.
- createCollection("onecollection", "conf1", ImplicitDocRouter.NAME);
- createCollection("onecollection_local", "conf2", ImplicitDocRouter.NAME);
+ createCollection("onecollection", "conf1", ManualDocRouter.NAME);
+ createCollection("onecollection_local", "conf2", ManualDocRouter.NAME);
SolrInputDocument doc = new SolrInputDocument();
doc.setField("id", "1");
@@ -195,8 +195,8 @@ public class TestDistribIDF extends SolrTestCaseJ4 {
private void createCollection(String name, String config, String router) throws Exception {
CollectionAdminResponse response;
- if (router.equals(ImplicitDocRouter.NAME)) {
- CollectionAdminRequest.Create create = CollectionAdminRequest.createCollectionWithImplicitRouter(name,config,"a,b,c",1);
+ if (router.equals(ManualDocRouter.NAME)) {
+ CollectionAdminRequest.Create create = CollectionAdminRequest.createCollectionWithManualRouter(name,config,"a,b,c",1);
create.setMaxShardsPerNode(1);
response = create.process(solrCluster.getSolrClient());
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
index eeb96af..51b79c8 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
@@ -64,7 +64,7 @@ import org.apache.solr.common.cloud.CollectionStatePredicate;
import org.apache.solr.common.cloud.CollectionStateWatcher;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.DocRouter;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkCoreNodeProps;
@@ -479,7 +479,7 @@ public class CloudSolrClient extends SolrClient {
DocRouter router = col.getRouter();
- if (router instanceof ImplicitDocRouter) {
+ if (router instanceof ManualDocRouter) {
// short circuit as optimization
return null;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
index f039ba4..8b48b8c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
@@ -33,7 +33,7 @@ import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
import org.apache.solr.client.solrj.util.SolrIdentifierValidator;
import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.ImplicitDocRouter;
+import org.apache.solr.common.cloud.ManualDocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CollectionAdminParams;
@@ -323,18 +323,18 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
}
/**
- * Returns a SolrRequest for creating a collection with the implicit router
+ * Returns a SolrRequest for creating a collection with the manual router
* @param collection the collection name
* @param config the collection config
* @param shards a shard definition string
* @param numReplicas the replication factor of the collection
*/
- public static Create createCollectionWithImplicitRouter(String collection, String config, String shards, int numReplicas) {
+ public static Create createCollectionWithManualRouter(String collection, String config, String shards, int numReplicas) {
return new Create(collection, config, shards, numReplicas);
}
/**
- * Returns a SolrRequest for creating a collection with the implicit router and specific types of replicas
+ * Returns a SolrRequest for creating a collection with the manual router and specific types of replicas
* @param collection the collection name
* @param config the collection config
* @param shards a shard definition string
@@ -342,8 +342,8 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
* @param numTlogReplicas the number of replicas of type {@link org.apache.solr.common.cloud.Replica.Type#TLOG}
* @param numPullReplicas the number of replicas of type {@link org.apache.solr.common.cloud.Replica.Type#PULL}
*/
- public static Create createCollectionWithImplicitRouter(String collection, String config, String shards, int numNrtReplicas, int numTlogReplicas, int numPullReplicas) {
- return new Create(collection, config, ImplicitDocRouter.NAME, null, checkNotNull("shards",shards), numNrtReplicas, numTlogReplicas, numPullReplicas);
+ public static Create createCollectionWithManualRouter(String collection, String config, String shards, int numNrtReplicas, int numTlogReplicas, int numPullReplicas) {
+ return new Create(collection, config, ManualDocRouter.NAME, null, checkNotNull("shards",shards), numNrtReplicas, numTlogReplicas, numPullReplicas);
}
// CREATE request
@@ -371,9 +371,9 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
this(collection, config, null, numShards, null, numNrtReplicas, numTlogReplicas, numPullReplicas);
}
- /** Constructor that assumes {@link ImplicitDocRouter#NAME} and an explicit list of <code>shards</code> */
+ /** Constructor that assumes {@link ManualDocRouter#NAME} and an explicit list of <code>shards</code> */
protected Create(String collection, String config, String shards, int numNrtReplicas) {
- this(collection, config, ImplicitDocRouter.NAME, null, checkNotNull("shards",shards), numNrtReplicas, null, null);
+ this(collection, config, ManualDocRouter.NAME, null, checkNotNull("shards",shards), numNrtReplicas, null, null);
}
private Create(String collection, String config, String routerName, Integer numShards, String shards, Integer numNrtReplicas, Integer numTlogReplicas, Integer numPullReplicas) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
index 846c25e..7893102 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
@@ -77,7 +77,7 @@ public abstract class DocRouter {
routerMap.put(null, plain); // back compat with 4.0
routerMap.put(PlainIdRouter.NAME, plain);
routerMap.put(CompositeIdRouter.NAME, DEFAULT_NAME.equals(CompositeIdRouter.NAME) ? DEFAULT : new CompositeIdRouter());
- routerMap.put(ImplicitDocRouter.NAME, new ImplicitDocRouter());
+ routerMap.put(ManualDocRouter.NAME, new ManualDocRouter());
// NOTE: careful that the map keys (the static .NAME members) are filled in by making them final
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/java/org/apache/solr/common/cloud/ImplicitDocRouter.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ImplicitDocRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ImplicitDocRouter.java
deleted file mode 100644
index 0b25fcb..0000000
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ImplicitDocRouter.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.solr.common.cloud;
-
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.common.params.SolrParams;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import static org.apache.solr.common.params.ShardParams._ROUTE_;
-
-/** This document router is for custom sharding
- */
-public class ImplicitDocRouter extends DocRouter {
-
- public static final String NAME = "implicit";
-
- @Override
- public Slice getTargetSlice(String id, SolrInputDocument sdoc, String route, SolrParams params, DocCollection collection) {
- String shard = null;
-
- if (route != null) // if a route is already passed in, try to use it
- shard = route;
- else if (sdoc != null) {
- String f = getRouteField(collection);
- if(f !=null) {
- Object o = sdoc.getFieldValue(f);
- if (o != null) shard = o.toString();
- else throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "No value for field "+f +" in " + sdoc);
- }
- if(shard == null) {
- Object o = sdoc.getFieldValue(_ROUTE_);
- if (o != null) {
- shard = o.toString();
- }
- }
- }
-
- if (shard == null) {
- shard = params.get(_ROUTE_);
- }
-
- if (shard != null) {
-
- Slice slice = collection.getSlice(shard);
- if (slice == null) {
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "No shard called =" + shard + " in " + collection);
- }
- return slice;
- }
-
- return null; // no shard specified... use default.
- }
-
- @Override
- public boolean isTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection) {
-
- // todo : how to handle this?
- return false;
- }
-
- @Override
- public Collection<Slice> getSearchSlicesSingle(String shardKey, SolrParams params, DocCollection collection) {
-
- if (shardKey == null) {
- return collection.getActiveSlices();
- }
-
- // assume the shardKey is just a slice name
- Slice slice = collection.getSlice(shardKey);
- if (slice == null) {
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "implicit router can't find shard " + shardKey + " in collection " + collection.getName());
- }
-
- return Collections.singleton(slice);
- }
-
- @Override
- public List<Range> partitionRange(int partitions, Range range) {
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/java/org/apache/solr/common/cloud/ManualDocRouter.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ManualDocRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ManualDocRouter.java
new file mode 100644
index 0000000..bc7b145
--- /dev/null
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ManualDocRouter.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.common.cloud;
+
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.params.SolrParams;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import static org.apache.solr.common.params.ShardParams._ROUTE_;
+
+/** This document router is for custom sharding
+ */
+public class ManualDocRouter extends DocRouter {
+
+ public static final String NAME = "manual";
+ @Deprecated public static final String DEPRECATED_NAME = "implicit";
+
+ @Override
+ public Slice getTargetSlice(String id, SolrInputDocument sdoc, String route, SolrParams params, DocCollection collection) {
+ String shard = null;
+
+ if (route != null) // if a route is already passed in, try to use it
+ shard = route;
+ else if (sdoc != null) {
+ String f = getRouteField(collection);
+ if(f !=null) {
+ Object o = sdoc.getFieldValue(f);
+ if (o != null) shard = o.toString();
+ else throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "No value for field "+f +" in " + sdoc);
+ }
+ if(shard == null) {
+ Object o = sdoc.getFieldValue(_ROUTE_);
+ if (o != null) {
+ shard = o.toString();
+ }
+ }
+ }
+
+ if (shard == null) {
+ shard = params.get(_ROUTE_);
+ }
+
+ if (shard != null) {
+
+ Slice slice = collection.getSlice(shard);
+ if (slice == null) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "No shard called =" + shard + " in " + collection);
+ }
+ return slice;
+ }
+
+ return null; // no shard specified... use default.
+ }
+
+ @Override
+ public boolean isTargetSlice(String id, SolrInputDocument sdoc, SolrParams params, String shardId, DocCollection collection) {
+
+ // todo : how to handle this?
+ return false;
+ }
+
+ @Override
+ public Collection<Slice> getSearchSlicesSingle(String shardKey, SolrParams params, DocCollection collection) {
+
+ if (shardKey == null) {
+ return collection.getActiveSlices();
+ }
+
+ // assume the shardKey is just a slice name
+ Slice slice = collection.getSlice(shardKey);
+ if (slice == null) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "manual router can't find shard " + shardKey + " in collection " + collection.getName());
+ }
+
+ return Collections.singleton(slice);
+ }
+
+ @Override
+ public List<Range> partitionRange(int partitions, Range range) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/test/org/apache/solr/client/solrj/CollectionAdminRequestRequiredParamsTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/CollectionAdminRequestRequiredParamsTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/CollectionAdminRequestRequiredParamsTest.java
index 870aa34..d8f71bb 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/CollectionAdminRequestRequiredParamsTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/CollectionAdminRequestRequiredParamsTest.java
@@ -140,8 +140,8 @@ public class CollectionAdminRequestRequiredParamsTest extends LuceneTestCase {
assertContainsParams(CollectionAdminRequest.createCollection("foo", null, 1, 1).getParams(),
ACTION, NAME, ZkStateReader.NUM_SHARDS_PROP,
"replicationFactor", ZkStateReader.NRT_REPLICAS);
- // shortest form w/ "explicitly" choosing "implicit" router
- assertContainsParams(CollectionAdminRequest.createCollectionWithImplicitRouter("foo", null, "bar", 1).getParams(),
+ // shortest form w/ "explicitly" choosing "manual" router
+ assertContainsParams(CollectionAdminRequest.createCollectionWithManualRouter("foo", null, "bar", 1).getParams(),
ACTION, NAME, "shards", "router.name",
"replicationFactor", ZkStateReader.NRT_REPLICAS);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ee770f/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCollectionAdminRequest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCollectionAdminRequest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCollectionAdminRequest.java
index 29b273e..be217f9 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCollectionAdminRequest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCollectionAdminRequest.java
@@ -40,9 +40,9 @@ public class TestCollectionAdminRequest extends LuceneTestCase {
}
@Test
- public void testInvalidShardNamesRejectedWhenCreatingImplicitCollection() {
+ public void testInvalidShardNamesRejectedWhenCreatingManualCollection() {
final SolrException e = expectThrows(SolrException.class, () -> {
- CollectionAdminRequest.createCollectionWithImplicitRouter("fine", "fine", "invalid$shard@name",1,0,0);
+ CollectionAdminRequest.createCollectionWithManualRouter("fine", "fine", "invalid$shard@name",1,0,0);
});
final String exceptionMessage = e.getMessage();
assertTrue(exceptionMessage.contains("Invalid shard"));
@@ -52,7 +52,7 @@ public class TestCollectionAdminRequest extends LuceneTestCase {
@Test
public void testInvalidShardNamesRejectedWhenCallingSetShards() {
- CollectionAdminRequest.Create request = CollectionAdminRequest.createCollectionWithImplicitRouter("fine",null,"fine",1);
+ CollectionAdminRequest.Create request = CollectionAdminRequest.createCollectionWithManualRouter("fine",null,"fine",1);
final SolrException e = expectThrows(SolrException.class, () -> {
request.setShards("invalid$shard@name");
});