You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by an...@apache.org on 2014/12/23 02:39:34 UTC

svn commit: r1647465 - in /lucene/dev/branches/branch_5x: ./ solr/ solr/core/ solr/core/src/test/org/apache/solr/cloud/ solr/solrj/ solr/solrj/src/java/org/apache/solr/client/solrj/request/

Author: anshum
Date: Tue Dec 23 01:39:33 2014
New Revision: 1647465

URL: http://svn.apache.org/r1647465
Log:
SOLR-6881: Add split.key support for SPLITSHARD via SolrJ (merge from trunk)

Added:
    lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTests.java
      - copied unchanged from r1647462, lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTests.java
Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/solr/   (props changed)
    lucene/dev/branches/branch_5x/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_5x/solr/core/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
    lucene/dev/branches/branch_5x/solr/solrj/   (props changed)
    lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java

Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1647465&r1=1647464&r2=1647465&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Tue Dec 23 01:39:33 2014
@@ -486,6 +486,8 @@ Other Changes
 * SOLR-6523: Provide SolrJ support for specifying stateFormat while creating Collections.
   (Anshum Gupta)
 
+* SOLR-6881: Add split.key support for SPLITSHARD via SolrJ (Anshum Gupta)
+
 ==================  4.10.3 ==================
 
 Bug Fixes

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java?rev=1647465&r1=1647464&r2=1647465&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java Tue Dec 23 01:39:33 2014
@@ -199,7 +199,6 @@ public class CollectionsAPIDistributedZk
   
   @Override
   public void doTest() throws Exception {
-    testSolrJAPICalls();
     testPropertyParamsForCreate();
     testNodesUsedByCreate();
     testCollectionsAPI();
@@ -299,152 +298,6 @@ public class CollectionsAPIDistributedZk
 
   }
 
-  private void testSolrJAPICalls() throws Exception {
-    SolrServer server = createNewSolrServer("", getBaseUrl((HttpSolrServer) clients.get(0)));
-    CollectionAdminResponse response;
-    Map<String, NamedList<Integer>> coresStatus;
-    Map<String, NamedList<Integer>> nodesStatus;
-
-    CollectionAdminRequest.Create createCollectionRequest = new CollectionAdminRequest.Create();
-    createCollectionRequest.setCollectionName("solrj_collection");
-    createCollectionRequest.setNumShards(2);
-    createCollectionRequest.setReplicationFactor(2);
-    createCollectionRequest.setConfigName("conf1");
-    createCollectionRequest.setRouterField("myOwnField");
-    response = createCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    coresStatus = response.getCollectionCoresStatus();
-    assertEquals(4, coresStatus.size());
-    for (int i=0; i<4; i++) {
-      NamedList<Integer> status = coresStatus.get("solrj_collection_shard" + (i/2+1) + "_replica" + (i%2+1));
-      assertEquals(0, (int)status.get("status"));
-      assertTrue(status.get("QTime") > 0);
-    }
-
-    // TODO: This test tries to validates defaulting to implicit router.
-    createCollectionRequest = new CollectionAdminRequest.Create();
-    createCollectionRequest.setCollectionName("solrj_implicit");
-    createCollectionRequest.setShards("shardA,shardB");
-    createCollectionRequest.setConfigName("conf1");
-    createCollectionRequest.setRouterName("implicit");
-    response = createCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    coresStatus = response.getCollectionCoresStatus();
-    assertEquals(2, coresStatus.size());
-
-    // Test Creating a collection with new stateformat.
-    String collectionName = "solrj_newstateformat";
-    createCollectionRequest = new CollectionAdminRequest.Create();
-    createCollectionRequest.setCollectionName(collectionName);
-    createCollectionRequest.setNumShards(2);
-    createCollectionRequest.setConfigName("conf1");
-    createCollectionRequest.setStateFormat(2);
-    
-    response = createCollectionRequest.process(server);
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    
-    waitForRecoveriesToFinish(collectionName, false);
-    assertTrue("Collection state does not exist",
-        cloudClient.getZkStateReader().getZkClient()
-            .exists(ZkStateReader.getCollectionPath(collectionName), true));
-    
-    CollectionAdminRequest.CreateShard createShardRequest = new CollectionAdminRequest
-        .CreateShard();
-    createShardRequest.setCollectionName("solrj_implicit");
-    createShardRequest.setShardName("shardC");
-    response = createShardRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    coresStatus = response.getCollectionCoresStatus();
-    assertEquals(1, coresStatus.size());
-    assertEquals(0, (int) coresStatus.get("solrj_implicit_shardC_replica1").get("status"));
-
-    CollectionAdminRequest.DeleteShard deleteShardRequest = new CollectionAdminRequest
-        .DeleteShard();
-    deleteShardRequest.setCollectionName("solrj_implicit");
-    deleteShardRequest.setShardName("shardC");
-    response = deleteShardRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    nodesStatus = response.getCollectionNodesStatus();
-    assertEquals(1, nodesStatus.size());
-
-    CollectionAdminRequest.Delete deleteCollectionRequest = new CollectionAdminRequest.Delete();
-    deleteCollectionRequest.setCollectionName("solrj_implicit");
-    response = deleteCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    nodesStatus = response.getCollectionNodesStatus();
-    assertEquals(2, nodesStatus.size());
-
-    createCollectionRequest = new CollectionAdminRequest.Create();
-    createCollectionRequest.setCollectionName("conf1");
-    createCollectionRequest.setNumShards(4);
-    createCollectionRequest.setConfigName("conf1");
-    response = createCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-
-    CollectionAdminRequest.Reload reloadCollectionRequest = new CollectionAdminRequest.Reload();
-    reloadCollectionRequest.setCollectionName("conf1");
-    response = reloadCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-
-    CollectionAdminRequest.CreateAlias createAliasRequest = new CollectionAdminRequest
-        .CreateAlias();
-    createAliasRequest.setCollectionName("solrj_alias");
-    createAliasRequest.setAliasedCollections("conf1,solrj_collection");
-    response = createAliasRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-
-    CollectionAdminRequest.DeleteAlias deleteAliasRequest = new CollectionAdminRequest.DeleteAlias();
-    deleteAliasRequest.setCollectionName("solrj_alias");
-    deleteAliasRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-
-    CollectionAdminRequest.SplitShard splitShardRequest = new CollectionAdminRequest.SplitShard();
-    splitShardRequest.setCollectionName("conf1");
-    splitShardRequest.setShardName("shard1");
-    response = splitShardRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    assertTrue(response.isSuccess());
-    coresStatus = response.getCollectionCoresStatus();
-    assertEquals(0, (int) coresStatus.get("conf1_shard1_0_replica1").get("status"));
-    assertEquals(0, (int) coresStatus.get("conf1_shard1_1_replica1").get("status"));
-
-    deleteCollectionRequest = new CollectionAdminRequest.Delete();
-    deleteCollectionRequest.setCollectionName("conf1");
-    response = deleteCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    nodesStatus = response.getCollectionNodesStatus();
-    assertTrue(response.isSuccess());
-    assertEquals(4, nodesStatus.size());
-
-    deleteCollectionRequest = new CollectionAdminRequest.Delete();
-    deleteCollectionRequest.setCollectionName("solrj_collection");
-    deleteCollectionRequest.process(server);
-
-    assertEquals(0, response.getStatus());
-    nodesStatus = response.getCollectionNodesStatus();
-    assertTrue(response.isSuccess());
-    assertEquals(4, nodesStatus.size());
-  }
-
-
   private void deletePartiallyCreatedCollection() throws Exception {
     final String baseUrl = getBaseUrl((HttpSolrServer) clients.get(0));
     String collectionName = "halfdeletedcollection";

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java?rev=1647465&r1=1647464&r2=1647465&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java Tue Dec 23 01:39:33 2014
@@ -229,12 +229,21 @@ public class CollectionAdminRequest exte
   //a split shard collection request
   public static class SplitShard extends CollectionShardAdminRequest {
     protected String ranges;
+    protected String splitKey;
 
     private Properties properties;
 
     public void setRanges(String ranges) { this.ranges = ranges; }
     public String getRanges() { return ranges; }
 
+    public void setSplitKey(String splitKey) {
+      this.splitKey = splitKey;
+    }
+    
+    public String getSplitKey() {
+      return this.splitKey;
+    }
+    
     public Properties getProperties() {
       return properties;
     }
@@ -252,6 +261,9 @@ public class CollectionAdminRequest exte
       ModifiableSolrParams params = getCommonParams();
       params.set( "ranges", ranges);
 
+      if(splitKey != null)
+        params.set("split.key", this.splitKey);
+      
       if(properties != null) {
         addProperties(params, properties);
       }