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

mmiller pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/main by this push:
     new 26ee87e  Rename Duration to DurationFormat (#2579)
26ee87e is described below

commit 26ee87e6567e24d0de88879f38ec3ecf2c85e0ce
Author: Mike Miller <mmil...@apache.org>
AuthorDate: Mon Mar 21 09:13:38 2022 -0400

    Rename Duration to DurationFormat (#2579)
    
    * Rename to DurationFormat to prevent confusion with java Duration
    * Also clean up the class
---
 .../util/{Duration.java => DurationFormat.java}    | 64 +++++++++++++++-------
 .../shell/commands/ActiveCompactionHelper.java     | 11 ++--
 .../shell/commands/ActiveScanIterator.java         |  9 +--
 .../shell/commands/BulkImportListIterator.java     |  6 +-
 4 files changed, 58 insertions(+), 32 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/util/Duration.java 
b/core/src/main/java/org/apache/accumulo/core/util/DurationFormat.java
similarity index 58%
rename from core/src/main/java/org/apache/accumulo/core/util/Duration.java
rename to core/src/main/java/org/apache/accumulo/core/util/DurationFormat.java
index 7541e33..1cdc6bb 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/Duration.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/DurationFormat.java
@@ -18,40 +18,64 @@
  */
 package org.apache.accumulo.core.util;
 
-public class Duration {
+public class DurationFormat {
+  private final String str;
 
-  public static String format(long time) {
-    return format(time, "&nbsp;", "&mdash;");
-  }
-
-  public static String format(long time, String space, String zero) {
+  public DurationFormat(long time, String space) {
+    String dash = "-";
     long ms, sec, min, hr, day, yr;
-    ms = sec = min = hr = day = yr = -1;
-    if (time == 0)
-      return zero;
+
+    if (time == 0) {
+      str = dash;
+      return;
+    }
+
     ms = time % 1000;
     time /= 1000;
-    if (time == 0)
-      return String.format("%dms", ms);
+
+    if (time == 0) {
+      str = String.format("%dms", ms);
+      return;
+    }
+
     sec = time % 60;
     time /= 60;
-    if (time == 0)
-      return String.format("%ds" + space + "%dms", sec, ms);
+
+    if (time == 0) {
+      str = String.format("%ds" + space + "%dms", sec, ms);
+      return;
+    }
+
     min = time % 60;
     time /= 60;
-    if (time == 0)
-      return String.format("%dm" + space + "%ds", min, sec);
+
+    if (time == 0) {
+      str = String.format("%dm" + space + "%ds", min, sec);
+      return;
+    }
+
     hr = time % 24;
     time /= 24;
-    if (time == 0)
-      return String.format("%dh" + space + "%dm", hr, min);
+
+    if (time == 0) {
+      str = String.format("%dh" + space + "%dm", hr, min);
+      return;
+    }
+
     day = time % 365;
     time /= 365;
-    if (time == 0)
-      return String.format("%dd" + space + "%dh", day, hr);
+
+    if (time == 0) {
+      str = String.format("%dd" + space + "%dh", day, hr);
+      return;
+    }
     yr = time;
-    return String.format("%dy" + space + "%dd", yr, day);
 
+    str = String.format("%dy" + space + "%dd", yr, day);
   }
 
+  @Override
+  public String toString() {
+    return str;
+  }
 }
diff --git 
a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionHelper.java
 
b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionHelper.java
index 1d08abf..9b1befe 100644
--- 
a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionHelper.java
+++ 
b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionHelper.java
@@ -31,7 +31,7 @@ import org.apache.accumulo.core.client.IteratorSetting;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.admin.ActiveCompaction;
 import org.apache.accumulo.core.client.admin.InstanceOperations;
-import org.apache.accumulo.core.util.Duration;
+import org.apache.accumulo.core.util.DurationFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -87,11 +87,12 @@ class ActiveCompactionHelper {
     String host = ac.getHost().getAddress() + ":" + ac.getHost().getPort() + 
hostSuffix;
 
     try {
+      var dur = new DurationFormat(ac.getAge(), "");
       return String.format(
-          "%21s | %9s | %5s | %6s | %5s | %5s | %15s | %-40s | %5s | %35s | 
%9s | %s", host,
-          Duration.format(ac.getAge(), "", "-"), ac.getType(), ac.getReason(),
-          shortenCount(ac.getEntriesRead()), 
shortenCount(ac.getEntriesWritten()), ac.getTable(),
-          ac.getTablet(), ac.getInputFiles().size(), output, iterList, 
iterOpts);
+          "%21s | %9s | %5s | %6s | %5s | %5s | %15s | %-40s | %5s | %35s | 
%9s | %s", host, dur,
+          ac.getType(), ac.getReason(), shortenCount(ac.getEntriesRead()),
+          shortenCount(ac.getEntriesWritten()), ac.getTable(), ac.getTablet(),
+          ac.getInputFiles().size(), output, iterList, iterOpts);
     } catch (TableNotFoundException e) {
       return "ERROR " + e.getMessage();
     }
diff --git 
a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java
 
b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java
index 920f69b..26ae52b 100644
--- 
a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java
+++ 
b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java
@@ -26,7 +26,7 @@ import java.util.List;
 import org.apache.accumulo.core.client.admin.ActiveScan;
 import org.apache.accumulo.core.client.admin.InstanceOperations;
 import org.apache.accumulo.core.client.admin.ScanType;
-import org.apache.accumulo.core.util.Duration;
+import org.apache.accumulo.core.util.DurationFormat;
 
 class ActiveScanIterator implements Iterator<String> {
 
@@ -44,11 +44,12 @@ class ActiveScanIterator implements Iterator<String> {
         final List<ActiveScan> asl = instanceOps.getActiveScans(tserver);
 
         for (ActiveScan as : asl) {
+          var dur = new DurationFormat(as.getAge(), "");
+          var dur2 = new DurationFormat(as.getLastContactTime(), "");
           scans.add(String.format(
               "%21s |%21s |%9s |%9s |%7s |%6s |%8s |%8s |%10s |%20s |%10s 
|%20s |%10s | %s",
-              tserver, as.getClient(), Duration.format(as.getAge(), "", "-"),
-              Duration.format(as.getLastContactTime(), "", "-"), 
as.getState(), as.getType(),
-              as.getUser(), as.getTable(), as.getColumns(), 
as.getAuthorizations(),
+              tserver, as.getClient(), dur, dur2, as.getState(), as.getType(), 
as.getUser(),
+              as.getTable(), as.getColumns(), as.getAuthorizations(),
               (as.getType() == ScanType.SINGLE ? as.getTablet() : "N/A"), 
as.getScanid(),
               as.getSsiList(), as.getSsio()));
         }
diff --git 
a/shell/src/main/java/org/apache/accumulo/shell/commands/BulkImportListIterator.java
 
b/shell/src/main/java/org/apache/accumulo/shell/commands/BulkImportListIterator.java
index 7206e0c..1c8bfe4 100644
--- 
a/shell/src/main/java/org/apache/accumulo/shell/commands/BulkImportListIterator.java
+++ 
b/shell/src/main/java/org/apache/accumulo/shell/commands/BulkImportListIterator.java
@@ -25,7 +25,7 @@ import java.util.List;
 import org.apache.accumulo.core.manager.thrift.ManagerMonitorInfo;
 import org.apache.accumulo.core.master.thrift.BulkImportStatus;
 import org.apache.accumulo.core.master.thrift.TabletServerStatus;
-import org.apache.accumulo.core.util.Duration;
+import org.apache.accumulo.core.util.DurationFormat;
 
 public class BulkImportListIterator implements Iterator<String> {
 
@@ -51,8 +51,8 @@ public class BulkImportListIterator implements 
Iterator<String> {
 
   private String format(BulkImportStatus status) {
     long diff = System.currentTimeMillis() - status.startTime;
-    return String.format("%25s | %4s | %s", status.filename, 
Duration.format(diff, " ", "-"),
-        status.state);
+    var dur = new DurationFormat(diff, " ");
+    return String.format("%25s | %4s | %s", status.filename, dur, 
status.state);
   }
 
   @Override

Reply via email to