You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ds...@apache.org on 2016/04/14 07:37:43 UTC
[2/7] lucene-solr:solr-5750: Refactor ClusterState.makeSlices to
Slice.loadAllFromMap
Refactor ClusterState.makeSlices to Slice.loadAllFromMap
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/91e72a3e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/91e72a3e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/91e72a3e
Branch: refs/heads/solr-5750
Commit: 91e72a3ea46043bab9362f739e77176a78822cea
Parents: d7b7a87
Author: David Smiley <ds...@apache.org>
Authored: Thu Apr 14 01:26:18 2016 -0400
Committer: David Smiley <ds...@apache.org>
Committed: Thu Apr 14 01:26:18 2016 -0400
----------------------------------------------------------------------
.../apache/solr/common/cloud/ClusterState.java | 20 +++-------------
.../org/apache/solr/common/cloud/Slice.java | 25 ++++++++++++++++----
2 files changed, 24 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/91e72a3e/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
index 2495c41..b73afc8 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
@@ -294,6 +294,7 @@ public class ClusterState implements JSONWriter.Writable {
return new Aliases(aliasMap);
}
+ // ODO move to static DocCollection.loadFromMap
private static DocCollection collectionFromObjects(String name, Map<String, Object> objs, Integer version, String znode) {
Map<String,Object> props;
Map<String,Slice> slices;
@@ -301,10 +302,10 @@ public class ClusterState implements JSONWriter.Writable {
Map<String,Object> sliceObjs = (Map<String,Object>)objs.get(DocCollection.SHARDS);
if (sliceObjs == null) {
// legacy format from 4.0... there was no separate "shards" level to contain the collection shards.
- slices = makeSlices(objs);
+ slices = Slice.loadAllFromMap(objs);
props = Collections.emptyMap();
} else {
- slices = makeSlices(sliceObjs);
+ slices = Slice.loadAllFromMap(sliceObjs);
props = new HashMap<>(objs);
objs.remove(DocCollection.SHARDS);
}
@@ -324,21 +325,6 @@ public class ClusterState implements JSONWriter.Writable {
return new DocCollection(name, slices, props, router, version, znode);
}
- private static Map<String,Slice> makeSlices(Map<String,Object> genericSlices) {
- if (genericSlices == null) return Collections.emptyMap();
- Map<String,Slice> result = new LinkedHashMap<>(genericSlices.size());
- for (Map.Entry<String,Object> entry : genericSlices.entrySet()) {
- String name = entry.getKey();
- Object val = entry.getValue();
- if (val instanceof Slice) {
- result.put(name, (Slice)val);
- } else if (val instanceof Map) {
- result.put(name, new Slice(name, null, (Map<String,Object>)val));
- }
- }
- return result;
- }
-
@Override
public void write(JSONWriter jsonWriter) {
LinkedHashMap<String , DocCollection> map = new LinkedHashMap<>();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/91e72a3e/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java b/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java
index 369edbb..41478fd 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java
@@ -16,20 +16,37 @@
*/
package org.apache.solr.common.cloud;
-import org.noggit.JSONUtil;
-import org.noggit.JSONWriter;
-
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
+import org.noggit.JSONUtil;
+import org.noggit.JSONWriter;
+
/**
* A Slice contains immutable information about a logical shard (all replicas that share the same shard id).
*/
public class Slice extends ZkNodeProps {
-
+
+ /** Loads multiple slices into a Map from a generic Map that probably came from deserialized JSON. */
+ public static Map<String,Slice> loadAllFromMap(Map<String, Object> genericSlices) {
+ if (genericSlices == null) return Collections.emptyMap();
+ Map<String,Slice> result = new LinkedHashMap<>(genericSlices.size());
+ for (Map.Entry<String,Object> entry : genericSlices.entrySet()) {
+ String name = entry.getKey();
+ Object val = entry.getValue();
+ if (val instanceof Slice) {
+ result.put(name, (Slice)val);
+ } else if (val instanceof Map) {
+ result.put(name, new Slice(name, null, (Map<String,Object>)val));
+ }
+ }
+ return result;
+ }
+
/** The slice's state. */
public enum State {