This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 08ffa52  Remove duplication in CLI validation code (#1958)
08ffa52 is described below

commit 08ffa52eb5f6b55ee862ab18d2836f60ac53a1d0
Author: Ivan Kelly <[email protected]>
AuthorDate: Wed Jun 13 21:47:20 2018 +0200

    Remove duplication in CLI validation code (#1958)
    
    There was a couple of validation methods which were duplicated
    verbatim among various classes. All have been moved into the
    CliCommand base class as static methods.
---
 .../org/apache/pulsar/admin/cli/CliCommand.java    | 89 +++++++++++++++++++---
 .../org/apache/pulsar/admin/cli/CmdNamespaces.java | 50 ------------
 .../pulsar/admin/cli/CmdPersistentTopics.java      | 37 ---------
 .../org/apache/pulsar/admin/cli/CmdTopics.java     | 37 ---------
 4 files changed, 77 insertions(+), 136 deletions(-)

diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
index 63c8445..7af1b9f 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
@@ -21,6 +21,9 @@ package org.apache.pulsar.admin.cli;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.pulsar.client.admin.PulsarAdminException;
+import org.apache.pulsar.client.api.MessageId;
+import org.apache.pulsar.client.impl.MessageIdImpl;
 import org.apache.pulsar.common.naming.TopicDomain;
 import org.apache.pulsar.common.naming.TopicName;
 import org.apache.pulsar.common.naming.NamespaceName;
@@ -30,25 +33,26 @@ import org.apache.pulsar.common.util.ObjectMapperFactory;
 import com.beust.jcommander.ParameterException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectWriter;
+import com.google.common.base.Preconditions;
 import com.google.common.collect.Sets;
 
 abstract class CliCommand {
 
-    String[] validatePropertyCluster(List<String> params) {
+    static String[] validatePropertyCluster(List<String> params) {
         return splitParameter(params, 2);
     }
 
-    String validateNamespace(List<String> params) {
+    static String validateNamespace(List<String> params) {
         String namespace = checkArgument(params);
         return NamespaceName.get(namespace).toString();
     }
 
-    String validateTopicName(List<String> params) {
+    static String validateTopicName(List<String> params) {
         String topic = checkArgument(params);
         return TopicName.get(topic).toString();
     }
 
-    String validatePersistentTopic(List<String> params) {
+    static String validatePersistentTopic(List<String> params) {
         String topic = checkArgument(params);
         TopicName topicName = TopicName.get(topic);
         if (topicName.getDomain() != TopicDomain.persistent) {
@@ -56,8 +60,8 @@ abstract class CliCommand {
         }
         return topicName.toString();
     }
-    
-    String validateNonPersistentTopic(List<String> params) {
+
+    static String validateNonPersistentTopic(List<String> params) {
         String topic = checkArgument(params);
         TopicName topicName = TopicName.get(topic);
         if (topicName.getDomain() != TopicDomain.non_persistent) {
@@ -66,14 +70,75 @@ abstract class CliCommand {
         return topicName.toString();
     }
 
-    void validateLatencySampleRate(int sampleRate) {
+    static void validateLatencySampleRate(int sampleRate) {
         if (sampleRate < 0) {
             throw new ParameterException(
                     "Latency sample rate should be positive and non-zero 
(found " + sampleRate + ")");
         }
     }
 
-    String checkArgument(List<String> arguments) {
+    static long validateSizeString(String s) {
+        char last = s.charAt(s.length() - 1);
+        String subStr = s.substring(0, s.length() - 1);
+        switch (last) {
+        case 'k':
+        case 'K':
+            return Long.parseLong(subStr) * 1024;
+
+        case 'm':
+        case 'M':
+            return Long.parseLong(subStr) * 1024 * 1024;
+
+        case 'g':
+        case 'G':
+            return Long.parseLong(subStr) * 1024 * 1024 * 1024;
+
+        case 't':
+        case 'T':
+            return Long.parseLong(subStr) * 1024 * 1024 * 1024 * 1024;
+
+        default:
+            return Long.parseLong(s);
+        }
+    }
+
+    static int validateTimeString(String s) {
+        char last = s.charAt(s.length() - 1);
+        String subStr = s.substring(0, s.length() - 1);
+        switch (last) {
+        case 'm':
+        case 'M':
+            return Integer.parseInt(subStr);
+
+        case 'h':
+        case 'H':
+            return Integer.parseInt(subStr) * 60;
+
+        case 'd':
+        case 'D':
+            return Integer.parseInt(subStr) * 24 * 60;
+
+        case 'w':
+        case 'W':
+            return Integer.parseInt(subStr) * 7 * 24 * 60;
+
+        default:
+            return Integer.parseInt(s);
+        }
+    }
+
+    static MessageId validateMessageIdString(String resetMessageIdStr) throws 
PulsarAdminException {
+        String[] messageId = resetMessageIdStr.split(":");
+        try {
+            Preconditions.checkArgument(messageId.length == 2);
+            return new MessageIdImpl(Long.parseLong(messageId[0]), 
Long.parseLong(messageId[1]), -1);
+        } catch (Exception e) {
+            throw new PulsarAdminException(
+                    "Invalid reset-position (must be in format: 
ledgerId:entryId) value " + resetMessageIdStr);
+        }
+    }
+
+    static String checkArgument(List<String> arguments) {
         if (arguments.size() != 1) {
             throw new ParameterException("Need to provide just 1 parameter");
         }
@@ -81,7 +146,7 @@ abstract class CliCommand {
         return arguments.get(0);
     }
 
-    private String[] splitParameter(List<String> params, int n) {
+    static private String[] splitParameter(List<String> params, int n) {
         if (params.size() != 1) {
             throw new ParameterException("Need to provide just 1 parameter");
         }
@@ -94,7 +159,7 @@ abstract class CliCommand {
         return parts;
     }
 
-    String getOneArgument(List<String> params) {
+    static String getOneArgument(List<String> params) {
         if (params.size() != 1) {
             throw new ParameterException("Need to provide just 1 parameter");
         }
@@ -112,7 +177,7 @@ abstract class CliCommand {
      *            Validate against max arguments
      * @return
      */
-    String getOneArgument(List<String> params, int pos, int maxArguments) {
+    static String getOneArgument(List<String> params, int pos, int 
maxArguments) {
         if (params.size() != maxArguments) {
             throw new ParameterException(String.format("Need to provide %s 
parameters", maxArguments));
         }
@@ -120,7 +185,7 @@ abstract class CliCommand {
         return params.get(pos);
     }
 
-    Set<AuthAction> getAuthActions(List<String> actions) {
+    static Set<AuthAction> getAuthActions(List<String> actions) {
         Set<AuthAction> res = Sets.newTreeSet();
         for (String action : actions) {
             res.add(AuthAction.valueOf(action));
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
index 9603247..1d881ab 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
@@ -796,56 +796,6 @@ public class CmdNamespaces extends CmdBase {
         }
     }
 
-    private static long validateSizeString(String s) {
-        char last = s.charAt(s.length() - 1);
-        String subStr = s.substring(0, s.length() - 1);
-        switch (last) {
-        case 'k':
-        case 'K':
-            return Long.parseLong(subStr) * 1024;
-
-        case 'm':
-        case 'M':
-            return Long.parseLong(subStr) * 1024 * 1024;
-
-        case 'g':
-        case 'G':
-            return Long.parseLong(subStr) * 1024 * 1024 * 1024;
-
-        case 't':
-        case 'T':
-            return Long.parseLong(subStr) * 1024 * 1024 * 1024 * 1024;
-
-        default:
-            return Long.parseLong(s);
-        }
-    }
-
-    private static int validateTimeString(String s) {
-        char last = s.charAt(s.length() - 1);
-        String subStr = s.substring(0, s.length() - 1);
-        switch (last) {
-        case 'm':
-        case 'M':
-            return Integer.parseInt(subStr);
-
-        case 'h':
-        case 'H':
-            return Integer.parseInt(subStr) * 60;
-
-        case 'd':
-        case 'D':
-            return Integer.parseInt(subStr) * 24 * 60;
-
-        case 'w':
-        case 'W':
-            return Integer.parseInt(subStr) * 7 * 24 * 60;
-
-        default:
-            return Integer.parseInt(s);
-        }
-    }
-
     public CmdNamespaces(PulsarAdmin admin) {
         super("namespaces", admin);
         jcommander.addCommand("list", new GetNamespacesPerProperty());
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
index dd9cf9c..b67e65c 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
@@ -36,7 +36,6 @@ import org.apache.pulsar.client.impl.MessageIdImpl;
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 import com.beust.jcommander.converters.CommaParameterSplitter;
-import static com.google.common.base.Preconditions.checkArgument;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.JsonObject;
@@ -605,40 +604,4 @@ public class CmdPersistentTopics extends CmdBase {
             }
         }
     }
-
-    private static int validateTimeString(String s) {
-        char last = s.charAt(s.length() - 1);
-        String subStr = s.substring(0, s.length() - 1);
-        switch (last) {
-        case 'm':
-        case 'M':
-            return Integer.parseInt(subStr);
-
-        case 'h':
-        case 'H':
-            return Integer.parseInt(subStr) * 60;
-
-        case 'd':
-        case 'D':
-            return Integer.parseInt(subStr) * 24 * 60;
-
-        case 'w':
-        case 'W':
-            return Integer.parseInt(subStr) * 7 * 24 * 60;
-
-        default:
-            return Integer.parseInt(s);
-        }
-    }
-
-    private MessageId validateMessageIdString(String resetMessageIdStr) throws 
PulsarAdminException {
-        String[] messageId = resetMessageIdStr.split(":");
-        try {
-            checkArgument(messageId.length == 2);
-            return new MessageIdImpl(Long.parseLong(messageId[0]), 
Long.parseLong(messageId[1]), -1);
-        } catch (Exception e) {
-            throw new PulsarAdminException(
-                    "Invalid reset-position (must be in format: 
ledgerId:entryId) value " + resetMessageIdStr);
-        }
-    }
 }
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
index 4c14310..eb90342 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
@@ -18,7 +18,6 @@
  */
 package org.apache.pulsar.admin.cli;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import static org.apache.commons.lang3.StringUtils.isNotBlank;
 
 import com.beust.jcommander.Parameter;
@@ -705,40 +704,4 @@ public class CmdTopics extends CmdBase {
             }
         }
     }
-
-    private static int validateTimeString(String s) {
-        char last = s.charAt(s.length() - 1);
-        String subStr = s.substring(0, s.length() - 1);
-        switch (last) {
-        case 'm':
-        case 'M':
-            return Integer.parseInt(subStr);
-
-        case 'h':
-        case 'H':
-            return Integer.parseInt(subStr) * 60;
-
-        case 'd':
-        case 'D':
-            return Integer.parseInt(subStr) * 24 * 60;
-
-        case 'w':
-        case 'W':
-            return Integer.parseInt(subStr) * 7 * 24 * 60;
-
-        default:
-            return Integer.parseInt(s);
-        }
-    }
-
-    private MessageId validateMessageIdString(String resetMessageIdStr) throws 
PulsarAdminException {
-        String[] messageId = resetMessageIdStr.split(":");
-        try {
-            checkArgument(messageId.length == 2);
-            return new MessageIdImpl(Long.parseLong(messageId[0]), 
Long.parseLong(messageId[1]), -1);
-        } catch (Exception e) {
-            throw new PulsarAdminException(
-                    "Invalid reset-position (must be in format: 
ledgerId:entryId) value " + resetMessageIdStr);
-        }
-    }
 }

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to