diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalInputHandler.java b/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalInputHandler.java index 2be40d88..c4071cbe 100644 --- a/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalInputHandler.java +++ b/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalInputHandler.java @@ -178,6 +178,7 @@ public class TerminalInputHandler implements AutoCloseable { break; } else if (c == '\n' || c == '\r') { terminal.writer().println(); + terminal.writer().flush(); daemonDispatch.accept(prompt.response(sb.toString())); break; } else if (c == 127) { // Backspace diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java b/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java index bf322f67..ea416498 100644 --- a/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java +++ b/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java @@ -328,10 +328,6 @@ public class TerminalOutput implements ClientOutput { } case Message.PROMPT: { Message.Prompt prompt = (Message.Prompt) entry; - if (dumb) { - terminal.writer().println(""); - break; - } clearDisplay(); inputHandler.requestPrompt(prompt); break; diff --git a/daemon/src/main/java/org/mvndaemon/mvnd/interactivity/DaemonPrompter.java b/daemon/src/main/java/org/mvndaemon/mvnd/interactivity/DaemonPrompter.java index baff8a66..299a8c55 100644 --- a/daemon/src/main/java/org/mvndaemon/mvnd/interactivity/DaemonPrompter.java +++ b/daemon/src/main/java/org/mvndaemon/mvnd/interactivity/DaemonPrompter.java @@ -26,12 +26,9 @@ import java.util.List; import java.util.Objects; import java.util.UUID; +import org.apache.maven.api.services.Prompter; +import org.apache.maven.api.services.PrompterException; import org.apache.maven.logging.ProjectBuildLogAppender; -import org.codehaus.plexus.components.interactivity.AbstractInputHandler; -import org.codehaus.plexus.components.interactivity.InputHandler; -import org.codehaus.plexus.components.interactivity.OutputHandler; -import org.codehaus.plexus.components.interactivity.Prompter; -import org.codehaus.plexus.components.interactivity.PrompterException; import org.eclipse.sisu.Priority; import org.eclipse.sisu.Typed; import org.mvndaemon.mvnd.common.Message; @@ -41,39 +38,39 @@ import org.slf4j.LoggerFactory; @Named @Priority(20) -@Typed({Prompter.class, InputHandler.class, OutputHandler.class}) -public class DaemonPrompter extends AbstractInputHandler implements Prompter, InputHandler, OutputHandler { +@Typed({Prompter.class}) +public class DaemonPrompter implements Prompter { private static final Logger LOGGER = LoggerFactory.getLogger(DaemonPrompter.class); @Override - public String prompt(String message) throws PrompterException { + public String prompt(String message) { return prompt(message, null, null); } @Override - public String prompt(String message, String defaultReply) throws PrompterException { + public String prompt(String message, String defaultReply) { return prompt(message, null, defaultReply); } @Override - public String prompt(String message, List possibleValues) throws PrompterException { + public String prompt(String message, List possibleValues) { return prompt(message, possibleValues, null); } @Override @SuppressWarnings("unchecked") - public String prompt(String message, List possibleValues, String defaultReply) throws PrompterException { + public String prompt(String message, List possibleValues, String defaultReply) { return doPrompt(message, possibleValues, defaultReply, false); } @Override - public String promptForPassword(String message) throws PrompterException { + public String promptForPassword(String message) { return doPrompt(message, null, null, true); } @Override - public void showMessage(String message) throws PrompterException { + public void showMessage(String message) { try { doDisplay(message); } catch (IOException e) { @@ -81,26 +78,6 @@ public class DaemonPrompter extends AbstractInputHandler implements Prompter, In } } - @Override - public String readLine() throws IOException { - return doPrompt(null, false); - } - - @Override - public String readPassword() throws IOException { - return doPrompt(null, true); - } - - @Override - public void write(String line) throws IOException { - doDisplay(line); - } - - @Override - public void writeLine(String line) throws IOException { - doDisplay(line + "\n"); - } - String doPrompt(String message, List possibleValues, String defaultReply, boolean password) throws PrompterException { String formattedMessage = formatMessage(message, possibleValues, defaultReply);