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 2012/02/26 22:02:46 UTC

svn commit: r1293934 - /lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java

Author: yonik
Date: Sun Feb 26 21:02:46 2012
New Revision: 1293934

URL: http://svn.apache.org/viewvc?rev=1293934&view=rev
Log:
zkController: try to simplify all the addresses/urls, precompute some also

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1293934&r1=1293933&r2=1293934&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java Sun Feb 26 21:02:46 2012
@@ -100,14 +100,15 @@ public final class ZkController {
 
   private LeaderElector leaderElector;
   
-  private String zkServerAddress;
+  private String zkServerAddress;          // example: 127.0.0.1:54062/solr
 
-  private String localHostPort;
-  private String localHostContext;
-  private String localHostName;
-  private String localHost;
+  private final String localHostPort;      // example: 54065
+  private final String localHostContext;   // example: solr
+  private final String localHost;          // example: http://127.0.0.1
+  private final String hostName;           // example: 127.0.0.1
+  private final String nodeName;           // example: 127.0.0.1:54065_solr
+  private final String baseURL;            // example: http://127.0.0.1:54065/solr
 
-  private String hostName;
 
   private LeaderElector overseerElector;
   
@@ -172,7 +173,10 @@ public final class ZkController {
     this.zkServerAddress = zkServerAddress;
     this.localHostPort = locaHostPort;
     this.localHostContext = localHostContext;
-    this.localHost = localHost;
+    this.localHost = getHostAddress(localHost);
+    this.hostName = getHostNameFromAddress(this.localHost);
+    this.nodeName = this.hostName + ':' + this.localHostPort + '_' + this.localHostContext;
+    this.baseURL = this.localHost + ":" + this.localHostPort + "/" + this.localHostContext;
 
     zkClient = new SolrZkClient(zkServerAddress, zkClientTimeout, zkClientConnectTimeout,
         // on reconnect, reload cloud info
@@ -300,23 +304,38 @@ public final class ZkController {
     return bytes;
   }
 
-  // TODO: consider how this is done
-  private String getHostAddress() throws IOException {
+  // normalize host to url_prefix://host
+  // input can be null, host, or url_prefix://host
+  private String getHostAddress(String host) throws IOException {
 
-    if (localHost == null) {
-      localHost = "http://" + InetAddress.getLocalHost().getHostName();
+    if (host == null) {
+      host = "http://" + InetAddress.getLocalHost().getHostName();
     } else {
-      Matcher m = URL_PREFIX.matcher(localHost);
+      Matcher m = URL_PREFIX.matcher(host);
       if (m.matches()) {
         String prefix = m.group(1);
-        localHost = prefix + localHost;
+        host = prefix + host;
       } else {
-        localHost = "http://" + localHost;
+        host = "http://" + host;
       }
     }
 
-    return localHost;
+    return host;
   }
+
+  // extract host from url_prefix://host
+  private String getHostNameFromAddress(String addr) {
+    Matcher m = URL_POST.matcher(addr);
+    if (m.matches()) {
+      return m.group(1);
+    } else {
+      log.error("Unrecognized host:" + addr);
+      throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
+          "Unrecognized host:" + addr);
+    }
+  }
+  
+  
   
   public String getHostName() {
     return hostName;
@@ -336,17 +355,6 @@ public final class ZkController {
   private void init() {
 
     try {
-      localHostName = getHostAddress();
-      Matcher m = URL_POST.matcher(localHostName);
-
-      if (m.matches()) {
-        hostName = m.group(1);
-      } else {
-        log.error("Unrecognized host:" + localHostName);
-        throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
-            "Unrecognized host:" + localHostName);
-      }
-      
       // makes nodes zkNode
       cmdExecutor.ensureExists(ZkStateReader.LIVE_NODES_ZKNODE, zkClient);
       
@@ -440,7 +448,7 @@ public final class ZkController {
   }
   
   public String getNodeName() {
-    return hostName + ":" + localHostPort + "_" + localHostContext;
+    return nodeName;
   }
 
   /**
@@ -694,8 +702,7 @@ public final class ZkController {
 
 
   public String getBaseUrl() {
-    final String baseUrl = localHostName + ":" + localHostPort + "/" + localHostContext;
-    return baseUrl;
+    return baseURL;
   }