[MMG-8600] Adopt to Maven changes (#1277)

Adopt to https://github.com/apache/maven/pull/2134

Goal is to be able to perform required customizations to Terminal, but also "raw streams" (as Maven acts on false, while mvnd on true).
This commit is contained in:
Tamas Cservenak
2025-02-28 14:51:59 +01:00
committed by GitHub
parent 2bee55c682
commit 0bdeee9dcb

View File

@@ -33,7 +33,6 @@ import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.jline.MessageUtils; import org.apache.maven.jline.MessageUtils;
import org.apache.maven.logging.BuildEventListener; import org.apache.maven.logging.BuildEventListener;
import org.apache.maven.logging.LoggingOutputStream; import org.apache.maven.logging.LoggingOutputStream;
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder; import org.jline.terminal.TerminalBuilder;
import org.mvndaemon.mvnd.common.Environment; import org.mvndaemon.mvnd.common.Environment;
@@ -43,9 +42,7 @@ public class DaemonMavenInvoker extends ResidentMavenInvoker {
} }
@Override @Override
protected void createTerminal(MavenContext context) { protected void doCreateTerminal(MavenContext context, TerminalBuilder builder) {
MessageUtils.systemInstall(
builder -> {
builder.streams( builder.streams(
context.invokerRequest.stdIn().orElseThrow(), context.invokerRequest.stdIn().orElseThrow(),
context.invokerRequest.stdOut().orElseThrow()); context.invokerRequest.stdOut().orElseThrow());
@@ -56,21 +53,13 @@ public class DaemonMavenInvoker extends ResidentMavenInvoker {
} }
// we do want to pause input // we do want to pause input
builder.paused(true); builder.paused(true);
},
terminal -> doConfigureWithTerminal(context, terminal));
context.terminal = MessageUtils.getTerminal();
context.closeables.add(MessageUtils::systemUninstall);
MessageUtils.registerShutdownHook();
} }
@Override @Override
protected void doConfigureWithTerminal(MavenContext context, Terminal terminal) { protected void doConfigureWithTerminalWithRawStreamsEnabled(MavenContext context) {
super.doConfigureWithTerminal(context, terminal);
if (context.invokerRequest.options().rawStreams().orElse(false)) {
System.setOut(printStream(context.invokerRequest.stdOut().orElseThrow())); System.setOut(printStream(context.invokerRequest.stdOut().orElseThrow()));
System.setErr(printStream(context.invokerRequest.stdErr().orElseThrow())); System.setErr(printStream(context.invokerRequest.stdErr().orElseThrow()));
} }
}
private PrintStream printStream(OutputStream outputStream) { private PrintStream printStream(OutputStream outputStream) {
if (outputStream instanceof LoggingOutputStream los) { if (outputStream instanceof LoggingOutputStream los) {