You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2016/09/11 23:34:53 UTC

incubator-geode git commit: GEODE-420: Cleaning up code parsing locators string

Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-420 9626269f3 -> 3edfdf2d3


GEODE-420: Cleaning up code parsing locators string


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/3edfdf2d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/3edfdf2d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/3edfdf2d

Branch: refs/heads/feature/GEODE-420
Commit: 3edfdf2d3e455bca113c0800532b2f12d3c0b19f
Parents: 9626269
Author: Udo Kohlmeyer <uk...@pivotal.io>
Authored: Mon Sep 12 09:34:42 2016 +1000
Committer: Udo Kohlmeyer <uk...@pivotal.io>
Committed: Mon Sep 12 09:34:42 2016 +1000

----------------------------------------------------------------------
 .../admin/remote/RemoteTransportConfig.java     | 192 +++++++++----------
 1 file changed, 88 insertions(+), 104 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3edfdf2d/geode-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/RemoteTransportConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/RemoteTransportConfig.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/RemoteTransportConfig.java
index d846fa1..0272685 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/RemoteTransportConfig.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/RemoteTransportConfig.java
@@ -16,23 +16,28 @@
  */
 package com.gemstone.gemfire.internal.admin.remote;
 
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Set;
+import java.util.StringTokenizer;
+
 import com.gemstone.gemfire.distributed.internal.DistributionConfig;
 import com.gemstone.gemfire.internal.Assert;
 import com.gemstone.gemfire.internal.admin.SSLConfig;
 import com.gemstone.gemfire.internal.admin.TransportConfig;
 import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.util.*;
-
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+import com.gemstone.gemfire.internal.lang.StringUtils;
 
 /**
  * Tranport config for RemoteGfManagerAgent.
- * 
- *
  */
 public class RemoteTransportConfig implements TransportConfig {
-  
+
   private final boolean mcastEnabled;
   private final boolean tcpDisabled;
   private final boolean disableAutoReconnect;
@@ -55,7 +60,6 @@ public class RemoteTransportConfig implements TransportConfig {
    * configuration information in a <code>DistributionConfig</code>.
    * We assume that <code>config</code> already been checked for
    * errors.
-   *
    * @since GemFire 3.0
    */
   public RemoteTransportConfig(DistributionConfig config, int vmKind) {
@@ -66,27 +70,23 @@ public class RemoteTransportConfig implements TransportConfig {
     }
     this.vmKind = vmKind;
     this.tcpPort = config.getTcpPort();
-    this.membershipPortRange = 
-            getMembershipPortRangeString(config.getMembershipPortRange());
+    this.membershipPortRange = getMembershipPortRangeString(config.getMembershipPortRange());
     this.sslConfig = new SSLConfig();
-    
+
     String initialHosts = config.getLocators();
-    if (initialHosts == null)
+    if (initialHosts == null) {
       initialHosts = "";
+    }
     initialHosts = initialHosts.trim();
-    
+
     if (config.getMcastPort() > 0) {
-      this.mcastId = new DistributionLocatorId(config.getMcastAddress(), 
-                                               config.getMcastPort(), 
-                                               config.getBindAddress(),
-                                               this.sslConfig);
+      this.mcastId = new DistributionLocatorId(config.getMcastAddress(), config.getMcastPort(), config.getBindAddress(), this.sslConfig);
       this.mcastEnabled = true;
-    }
-    else {
+    } else {
       this.mcastEnabled = false;
       this.mcastId = null;
     }
-    
+
     this.tcpDisabled = config.getDisableTcp();
     this.disableAutoReconnect = config.getDisableAutoReconnect();
 
@@ -95,24 +95,16 @@ public class RemoteTransportConfig implements TransportConfig {
       // loner system
       this.ids = Collections.EMPTY_SET;
       return;
-    }
-    else {
+    } else {
       HashSet locators = new HashSet();
-      int startIdx = 0;
-      int endIdx = -1;
-      do {
-        String locator;
-        endIdx = initialHosts.indexOf(',', startIdx);
-        if (endIdx == -1) {
-          locator = initialHosts.substring(startIdx);
-        } else {
-          locator = initialHosts.substring(startIdx, endIdx);
-          startIdx = endIdx+1;
+      StringTokenizer stringTokenizer = new StringTokenizer(initialHosts, ",");
+      while (stringTokenizer.hasMoreTokens()) {
+        String locator = stringTokenizer.nextToken();
+        if (!StringUtils.isEmpty(locator)) {
+          locators.add(new DistributionLocatorId(locator));
         }
-        locators.add(new DistributionLocatorId(locator));
+      }
 
-      } while (endIdx != -1);
-    
       if (this.mcastEnabled) {
         locators.add(this.mcastId);
       }
@@ -127,25 +119,25 @@ public class RemoteTransportConfig implements TransportConfig {
    * Constructs a transport config given a collection of {@link
    * DistributionLocatorId} instances.
    */
-  public RemoteTransportConfig(
-    boolean isMcastEnabled,
-    boolean isTcpDisabled,
-    boolean isAutoReconnectDisabled,
-    String bindAddress, 
-    SSLConfig sslConfig,
-    Collection ids, String membershipPortRange,
-    int tcpPort, int vmKind)
-  {
+  public RemoteTransportConfig(boolean isMcastEnabled,
+                               boolean isTcpDisabled,
+                               boolean isAutoReconnectDisabled,
+                               String bindAddress,
+                               SSLConfig sslConfig,
+                               Collection ids,
+                               String membershipPortRange,
+                               int tcpPort,
+                               int vmKind) {
     DistributionLocatorId mid = null;
-    
+
     if (bindAddress == null) {
       this.bindAddress = DistributionConfig.DEFAULT_BIND_ADDRESS;
     } else {
       this.bindAddress = bindAddress;
     }
-    
+
     this.sslConfig = sslConfig;
-    
+
     this.mcastEnabled = isMcastEnabled;
     this.tcpDisabled = isTcpDisabled;
     this.disableAutoReconnect = isAutoReconnectDisabled;
@@ -155,12 +147,11 @@ public class RemoteTransportConfig implements TransportConfig {
       }
       Iterator it = ids.iterator();
       while (it.hasNext() && mid == null) {
-        DistributionLocatorId id = (DistributionLocatorId)it.next();
+        DistributionLocatorId id = (DistributionLocatorId) it.next();
         if (id.isMcastId()) {
           mid = id;
           //System.out.println("mcast id: " + id);
-        }
-        else {
+        } else {
           //System.out.println("non-mcast id: " + id);
         }
       }
@@ -173,24 +164,22 @@ public class RemoteTransportConfig implements TransportConfig {
     this.membershipPortRange = membershipPortRange;
     this.tcpPort = tcpPort;
     this.vmKind = vmKind;
- }
-  
-  
+  }
+
+
   private static String getMembershipPortRangeString(int[] membershipPortRange) {
     String membershipPortRangeString = "";
-    if (membershipPortRange != null && 
-        membershipPortRange.length == 2) {
-      membershipPortRangeString = membershipPortRange[0] + "-" + 
-                                  membershipPortRange[1];
+    if (membershipPortRange != null && membershipPortRange.length == 2) {
+      membershipPortRangeString = membershipPortRange[0] + "-" + membershipPortRange[1];
     }
-    
+
     return membershipPortRangeString;
   }
 
   // -------------------------------------------------------------------------
   //   Attribute(s)
   // -------------------------------------------------------------------------
-  
+
   /**
    * Returns the set of DistributionLocatorId instances that define this
    * transport. The set is unmodifiable.
@@ -198,7 +187,7 @@ public class RemoteTransportConfig implements TransportConfig {
   public Set getIds() {
     return this.ids;
   }
-  
+
   /**
    * Returns true iff multicast is enabled in this transport.
    * Multicast must be enabled in order to use multicast discovery.
@@ -206,35 +195,35 @@ public class RemoteTransportConfig implements TransportConfig {
   public boolean isMcastEnabled() {
     return this.mcastEnabled;
   }
-  
+
   public DistributionLocatorId getMcastId() {
     return this.mcastId;
   }
-  
+
   public int getVmKind() {
     return this.vmKind;
   }
-  
+
   public boolean isTcpDisabled() {
     return this.tcpDisabled;
   }
 
   public String getBindAddress() {
-	  return this.bindAddress;
+    return this.bindAddress;
   }
-  
+
   public SSLConfig getSSLConfig() {
-	  return this.sslConfig;
+    return this.sslConfig;
   }
-  
+
   public String getMembershipPortRange() {
     return this.membershipPortRange;
   }
-  
+
   public int getTcpPort() {
     return this.tcpPort;
   }
-  
+
   public boolean getIsReconnectingDS() {
     return isReconnectingDS;
   }
@@ -255,14 +244,12 @@ public class RemoteTransportConfig implements TransportConfig {
    * Returns a <code>Properties</code> based on this config that is
    * appropriate to use with {@link
    * com.gemstone.gemfire.distributed.DistributedSystem#connect}.
-   *
    * @since GemFire 4.0
    */
   Properties toDSProperties() {
     Properties props = new Properties();
-    props.setProperty(BIND_ADDRESS,
-                      bindAddress);
-//    System.out.println("entering ds port range property of " + this.membershipPortRange);
+    props.setProperty(BIND_ADDRESS, bindAddress);
+    //    System.out.println("entering ds port range property of " + this.membershipPortRange);
     if (this.membershipPortRange != null) {
       props.setProperty(MEMBERSHIP_PORT_RANGE, this.membershipPortRange);
     }
@@ -270,28 +257,22 @@ public class RemoteTransportConfig implements TransportConfig {
       props.setProperty(TCP_PORT, String.valueOf(this.tcpPort));
     }
     if (this.mcastEnabled) {
-       // Fix bug 32849
-      props.setProperty(MCAST_ADDRESS,
-                         String.valueOf(this.mcastId.getHost().getHostAddress()));
-      props.setProperty(MCAST_PORT,
-                        String.valueOf(this.mcastId.getPort()));
+      // Fix bug 32849
+      props.setProperty(MCAST_ADDRESS, String.valueOf(this.mcastId.getHost().getHostAddress()));
+      props.setProperty(MCAST_PORT, String.valueOf(this.mcastId.getPort()));
 
-    }
-    else {
-      props.setProperty(MCAST_PORT,
-                        String.valueOf(0));
+    } else {
+      props.setProperty(MCAST_PORT, String.valueOf(0));
     }
     // Create locator string
     StringBuffer locators = new StringBuffer();
     for (Iterator iter = this.ids.iterator(); iter.hasNext(); ) {
-      DistributionLocatorId locator =
-          (DistributionLocatorId) iter.next();
+      DistributionLocatorId locator = (DistributionLocatorId) iter.next();
       if (!locator.isMcastId()) {
         String baddr = locator.getBindAddress();
         if (baddr != null && baddr.trim().length() > 0) {
           locators.append(baddr);
-        }
-        else {
+        } else {
           locators.append(locator.getHost().getCanonicalHostName());
         }
         locators.append("[");
@@ -303,16 +284,18 @@ public class RemoteTransportConfig implements TransportConfig {
         }
       }
     }
+    String tempLocatorString = locators.toString();
+    if (tempLocatorString.endsWith(",")) {
+      tempLocatorString = tempLocatorString.substring(0, tempLocatorString.length() - 1);
+    }
 
-    props.setProperty(LOCATORS,
-        locators.toString());
+    props.setProperty(LOCATORS, tempLocatorString);
 
     this.sslConfig.toDSProperties(props);
-    
-    props.setProperty(DISABLE_TCP,
-      this.tcpDisabled? "true" : "false");
-    
-    props.setProperty(DISABLE_AUTO_RECONNECT, this.disableAutoReconnect? "true" : "false");
+
+    props.setProperty(DISABLE_TCP, this.tcpDisabled ? "true" : "false");
+
+    props.setProperty(DISABLE_AUTO_RECONNECT, this.disableAutoReconnect ? "true" : "false");
 
     return props;
   }
@@ -322,7 +305,7 @@ public class RemoteTransportConfig implements TransportConfig {
     boolean first = true;
     Iterator it = ids.iterator();
     while (it.hasNext()) {
-      DistributionLocatorId dli = (DistributionLocatorId)it.next();
+      DistributionLocatorId dli = (DistributionLocatorId) it.next();
       if (noMcast && dli.isMcastId()) {
         continue;
       }
@@ -335,17 +318,19 @@ public class RemoteTransportConfig implements TransportConfig {
     }
     return result.toString();
   }
-  
-  /** returns a locators string suitable for use in locators= in gemfire.properties */
+
+  /**
+   * returns a locators string suitable for use in locators= in gemfire.properties
+   */
   public String locatorsString() {
     return this.toString(true);
   }
-  
 
- // -------------------------------------------------------------------------
+
+  // -------------------------------------------------------------------------
   //   Methods overridden from java.lang.Object
   // -------------------------------------------------------------------------
-  
+
   @Override
   public String toString() {
     return toString(false);
@@ -354,16 +339,15 @@ public class RemoteTransportConfig implements TransportConfig {
   @Override
   public boolean equals(Object o) {
     if (o != null && o instanceof RemoteTransportConfig) {
-      RemoteTransportConfig other = (RemoteTransportConfig)o;
-      return (this.mcastEnabled == other.mcastEnabled)
-        && this.ids.equals(other.ids);
+      RemoteTransportConfig other = (RemoteTransportConfig) o;
+      return (this.mcastEnabled == other.mcastEnabled) && this.ids.equals(other.ids);
     }
     return false;
   }
-  
+
   @Override
   public int hashCode() {
     return this.ids.hashCode();
   }
-  
+
 }