From c8c5d08e1f562cf08cfcd8f0b02794f1fcac019c Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 12 Nov 2020 00:28:19 +0100 Subject: [PATCH] Property to configure the default rolling window size (defaults to 2) --- .../java/org/jboss/fuse/mvnd/client/DaemonParameters.java | 4 ++++ .../main/java/org/jboss/fuse/mvnd/client/DefaultClient.java | 2 +- .../src/main/java/org/jboss/fuse/mvnd/common/Environment.java | 4 ++++ .../org/jboss/fuse/mvnd/common/logging/TerminalOutput.java | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonParameters.java b/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonParameters.java index bbade749..f0050e32 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonParameters.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonParameters.java @@ -279,6 +279,10 @@ public class DaemonParameters { return property(Environment.MVND_NO_BUFERING).orFail().asBoolean(); } + public int rollingWindowSize() { + return property(Environment.MVND_ROLLING_WINDOW_SIZE).orFail().asInt(); + } + public static String findDefaultMultimoduleProjectDirectory(Path pwd) { Path dir = pwd; do { diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java b/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java index 97efd64f..f49c7bd1 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java @@ -63,7 +63,7 @@ public class DefaultClient implements Client { } DaemonParameters parameters = new DaemonParameters(); - try (TerminalOutput output = new TerminalOutput(parameters.noBuffering(), logFile)) { + try (TerminalOutput output = new TerminalOutput(parameters.noBuffering(), parameters.rollingWindowSize(), logFile)) { try { new DefaultClient(parameters).execute(output, args); } catch (DaemonException.InterruptedException e) { diff --git a/common/src/main/java/org/jboss/fuse/mvnd/common/Environment.java b/common/src/main/java/org/jboss/fuse/mvnd/common/Environment.java index a8aebd69..51b67315 100644 --- a/common/src/main/java/org/jboss/fuse/mvnd/common/Environment.java +++ b/common/src/main/java/org/jboss/fuse/mvnd/common/Environment.java @@ -64,6 +64,10 @@ public enum Environment { * display. */ MVND_NO_BUFERING("mvnd.noBuffering", null, "false", false), + /** + * The size of the rolling window + */ + MVND_ROLLING_WINDOW_SIZE("mvnd.rollingWindowSize", null, "2", false), /** * The path to the daemon registry */ diff --git a/common/src/main/java/org/jboss/fuse/mvnd/common/logging/TerminalOutput.java b/common/src/main/java/org/jboss/fuse/mvnd/common/logging/TerminalOutput.java index 4d9df2de..a8a29aa9 100644 --- a/common/src/main/java/org/jboss/fuse/mvnd/common/logging/TerminalOutput.java +++ b/common/src/main/java/org/jboss/fuse/mvnd/common/logging/TerminalOutput.java @@ -107,11 +107,12 @@ public class TerminalOutput implements ClientOutput { } } - public TerminalOutput(boolean noBuffering, Path logFile) throws IOException { + public TerminalOutput(boolean noBuffering, int rollingWindowSize, Path logFile) throws IOException { this.start = System.currentTimeMillis(); this.terminal = TerminalBuilder.terminal(); this.dumb = terminal.getType().startsWith("dumb"); this.noBuffering = noBuffering; + this.linesPerProject = rollingWindowSize; terminal.enterRawMode(); Thread mainThread = Thread.currentThread(); daemonDispatch = m -> {