You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2013/09/24 22:39:55 UTC

svn commit: r1526003 - in /lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud: ClusterState.java DocRouter.java

Author: yonik
Date: Tue Sep 24 20:39:54 2013
New Revision: 1526003

URL: http://svn.apache.org/r1526003
Log:
SOLR-4221: back compat for router spec

Modified:
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java?rev=1526003&r1=1526002&r2=1526003&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java Tue Sep 24 20:39:54 2013
@@ -260,8 +260,18 @@ public class ClusterState implements JSO
       objs.remove(DocCollection.SHARDS);
     }
 
-    Map map = (Map) props.get(DocCollection.DOC_ROUTER);
-    DocRouter router = map == null ? DocRouter.DEFAULT : DocRouter.getDocRouter(map.get("name"));
+    Object routerObj = props.get(DocCollection.DOC_ROUTER);
+    DocRouter router;
+    if (routerObj == null) {
+      router = DocRouter.DEFAULT;
+    } else if (routerObj instanceof String) {
+      // back compat with Solr4.4
+      router = DocRouter.getDocRouter((String)routerObj);
+    } else {
+      Map routerProps = (Map)routerObj;
+      router = DocRouter.getDocRouter(routerProps.get("name"));
+    }
+
     return new DocCollection(name, slices, props, router);
   }
 

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java?rev=1526003&r1=1526002&r2=1526003&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java Tue Sep 24 20:39:54 2013
@@ -64,9 +64,13 @@ public abstract class DocRouter {
         map.put(s.substring(7), props.get(s));
       }
     }
-    if(map.get("name") == null) map.put("name", DEFAULT_NAME);
+    Object o = props.get("router");
+    if (o instanceof String) {
+      map.put("name", o);
+    } else if (map.get("name") == null) {
+      map.put("name", DEFAULT_NAME);
+    }
     return  map;
-
   }
 
   // currently just an implementation detail...