diff options
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java | 19 | ||||
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java | 3 |
2 files changed, 12 insertions, 10 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java b/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java index 691a5844596..fe3bca07845 100644 --- a/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java +++ b/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java @@ -12,6 +12,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.time.Duration; import java.util.Optional; import java.util.concurrent.TimeUnit; @@ -24,11 +25,11 @@ import java.util.concurrent.TimeUnit; public class ProcessExecutor { public static class Builder { - private final int timeoutSeconds; + private final Duration timeout; private int[] successExitCodes; - public Builder(int timeoutSeconds) { - this.timeoutSeconds = timeoutSeconds; + public Builder(Duration timeout) { + this.timeout = timeout; } public Builder successExitCodes(int... successExitCodes) { @@ -37,16 +38,16 @@ public class ProcessExecutor { } public ProcessExecutor build() { - return new ProcessExecutor(timeoutSeconds, successExitCodes); + return new ProcessExecutor(timeout, successExitCodes); } } - private ProcessExecutor(int timeoutSeconds, int[] successExitCodes) { - this.timeoutSeconds = timeoutSeconds; + private ProcessExecutor(Duration timeout, int[] successExitCodes) { + this.timeout = timeout; this.successExitCodes = successExitCodes; } - public final int timeoutSeconds; + private final Duration timeout; private final int[] successExitCodes; /** @@ -68,9 +69,9 @@ public class ProcessExecutor { ByteArrayOutputStream processErr = new ByteArrayOutputStream(); ByteArrayOutputStream processOut = new ByteArrayOutputStream(); - DefaultExecutor executor = new DefaultExecutor(); + DefaultExecutor executor = DefaultExecutor.builder().get(); executor.setStreamHandler(createStreamHandler(processOut, processErr, processInput)); - ExecuteWatchdog watchDog = new ExecuteWatchdog(TimeUnit.SECONDS.toMillis(timeoutSeconds)); + ExecuteWatchdog watchDog = ExecuteWatchdog.builder().setTimeout(timeout).get(); executor.setWatchdog(watchDog); executor.setExitValues(successExitCodes); diff --git a/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java b/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java index 88ad9c18134..607a223b00b 100644 --- a/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java +++ b/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java @@ -3,6 +3,7 @@ package com.yahoo.system.execution; import org.junit.Test; +import java.time.Duration; import java.util.Optional; import static org.junit.Assert.assertEquals; @@ -16,7 +17,7 @@ public class ProcessExecutorTest { @Test public void echo_can_be_executed() throws Exception { final String message = "Hello from executor!"; - ProcessExecutor executor = new ProcessExecutor.Builder(10).build(); + ProcessExecutor executor = new ProcessExecutor.Builder(Duration.ofSeconds(10)).build(); Optional<ProcessResult> result = executor.execute("echo " + message); assertTrue(result.isPresent()); assertEquals(message, result.get().stdOut.trim()); |