summaryrefslogtreecommitdiffstats
path: root/jdisc_core
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon.hallingstad@gmail.com>2019-10-22 09:02:19 +0200
committerGitHub <noreply@github.com>2019-10-22 09:02:19 +0200
commiteaa0a4ede51c5c0aee29deeb3f20dedaaf94404c (patch)
tree2de96057057b40142af041bd73f7dfab46285af2 /jdisc_core
parenta88ae4030a8f8936cb6de96a29a0100429d6a691 (diff)
Revert "Revert "Add Orchestrator application lock metrics""
Diffstat (limited to 'jdisc_core')
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/SystemTimer.java7
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java31
2 files changed, 38 insertions, 0 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/SystemTimer.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/SystemTimer.java
index 15e234079b0..40fce9fec54 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/SystemTimer.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/SystemTimer.java
@@ -3,6 +3,8 @@ package com.yahoo.jdisc.core;
import com.yahoo.jdisc.Timer;
+import java.time.Instant;
+
/**
* A timer which returns the System time
*
@@ -14,4 +16,9 @@ public class SystemTimer implements Timer {
public long currentTimeMillis() {
return System.currentTimeMillis();
}
+
+ @Override
+ public Instant currentTime() {
+ return Instant.now();
+ }
}
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java
new file mode 100644
index 00000000000..4d274a33a1f
--- /dev/null
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java
@@ -0,0 +1,31 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.jdisc.test;
+
+import com.yahoo.jdisc.Timer;
+
+import java.time.Duration;
+
+/**
+ * A {@link Timer} to be used in tests when the advancement of time needs to be controlled.
+ *
+ * @author hakonhall
+ */
+public class TestTimer implements Timer {
+ private Duration durationSinceEpoch = Duration.ZERO;
+
+ public void setMillis(long millisSinceEpoch) {
+ durationSinceEpoch = Duration.ofMillis(millisSinceEpoch);
+ }
+
+ public void advanceMillis(long millis) { advance(Duration.ofMillis(millis)); }
+ public void advanceSeconds(long seconds) { advance(Duration.ofSeconds(seconds)); }
+ public void advanceMinutes(long minutes) { advance(Duration.ofMinutes(minutes)); }
+ public void advance(Duration duration) {
+ durationSinceEpoch = durationSinceEpoch.plus(duration);
+ }
+
+ @Override
+ public long currentTimeMillis() {
+ return durationSinceEpoch.toMillis();
+ }
+}