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/18 23:27:39 UTC

svn commit: r1646558 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java

Author: anshum
Date: Thu Dec 18 22:27:38 2014
New Revision: 1646558

URL: http://svn.apache.org/r1646558
Log:
SOLR-6523: Provide SolrJ support for specifying stateFormat while creating Collections

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1646558&r1=1646557&r2=1646558&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Dec 18 22:27:38 2014
@@ -510,6 +510,9 @@ Other Changes
 * SOLR-5922: Add support for adding core properties to SolrJ Collection Admin Request calls.
   (Varun Thacker via Anshum Gupta).
 
+* SOLR-6523: Provide SolrJ support for specifying stateFormat while creating Collections.
+  (Anshum Gupta)
+
 ==================  4.10.3 ==================
 
 Bug Fixes

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java?rev=1646558&r1=1646557&r2=1646558&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java Thu Dec 18 22:27:38 2014
@@ -85,6 +85,7 @@ import org.apache.solr.core.SolrResource
 import org.apache.solr.servlet.SolrDispatchFilter;
 import org.apache.solr.update.DirectUpdateHandler2;
 import org.apache.solr.util.DefaultSolrThreadFactory;
+import org.apache.zookeeper.data.Stat;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
@@ -335,6 +336,31 @@ public class CollectionsAPIDistributedZk
     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());
+    CollectionAdminRequest requestStatusRequest = new CollectionAdminRequest.RequestStatus();
+    requestStatusRequest.setCollectionName(collectionName);
+
+    waitForRecoveriesToFinish(collectionName, false);
+    assertTrue("Collection state does not exist",
+        cloudClient.getZkStateReader().getZkClient()
+            .exists(ZkStateReader.getCollectionPath(collectionName), true));
+    Stat stat = new Stat();
+    ClusterState clusterState = cloudClient.getZkStateReader().getClusterState();
+    assertEquals("The zkversion of the nodes must be same zkver:" + stat.getVersion() ,
+        stat.getVersion(),clusterState.getCollection(collectionName).getZNodeVersion() );
+    assertTrue("DocCollection#getStateFormat() must be > 1",
+        cloudClient.getZkStateReader().getClusterState().getCollection(collectionName).getStateFormat() > 1);
+    
     CollectionAdminRequest.CreateShard createShardRequest = new CollectionAdminRequest
         .CreateShard();
     createShardRequest.setCollectionName("solrj_implicit");

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java?rev=1646558&r1=1646557&r2=1646558&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java Thu Dec 18 22:27:38 2014
@@ -17,18 +17,12 @@
 
 package org.apache.solr.client.solrj.request;
 
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.response.CollectionAdminResponse;
 import org.apache.solr.common.SolrException;
+import org.apache.solr.common.cloud.DocCollection;
 import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.common.params.CollectionParams.CollectionAction;
 import org.apache.solr.common.params.CoreAdminParams;
@@ -37,6 +31,13 @@ import org.apache.solr.common.params.Sha
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.ContentStream;
 
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+
 /**
  * This class is experimental and subject to change.
  *
@@ -94,6 +95,7 @@ public class CollectionAdminRequest exte
 
     private Properties properties;
     protected Boolean autoAddReplicas;
+    protected Integer stateFormat;
 
 
     public Create() {
@@ -109,6 +111,7 @@ public class CollectionAdminRequest exte
     public void setMaxShardsPerNode(Integer numShards) { this.maxShardsPerNode = numShards; }
     public void setAutoAddReplicas(boolean autoAddReplicas) { this.autoAddReplicas = autoAddReplicas; }
     public void setReplicationFactor(Integer repl) { this.replicationFactor = repl; }
+    public void setStateFormat(Integer stateFormat) { this.stateFormat = stateFormat; }
 
     public String getConfigName()  { return configName; }
     public String getCreateNodeSet() { return createNodeSet; }
@@ -118,6 +121,7 @@ public class CollectionAdminRequest exte
     public Integer getMaxShardsPerNode() { return maxShardsPerNode; }
     public Integer getReplicationFactor() { return replicationFactor; }
     public Boolean getAutoAddReplicas() { return autoAddReplicas; }
+    public Integer getStateFormat() { return stateFormat; }
 
     public Properties getProperties() {
       return properties;
@@ -153,7 +157,6 @@ public class CollectionAdminRequest exte
         params.set("router.field", routerField);
       }
       if (replicationFactor != null) {
-        // OverseerCollectionProcessor.REPLICATION_FACTOR
         params.set( "replicationFactor", replicationFactor);
       }
       if (asyncId != null) {
@@ -166,7 +169,9 @@ public class CollectionAdminRequest exte
       if(properties != null) {
         addProperties(params, properties);
       }
-
+      if (stateFormat != null) {
+        params.set(DocCollection.STATE_FORMAT, stateFormat);
+      }
       return params;
     }
   }