[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,33 +42,23 @@ public class DaemonMavenInvoker extends ResidentMavenInvoker {
} }
@Override @Override
protected void createTerminal(MavenContext context) { protected void doCreateTerminal(MavenContext context, TerminalBuilder builder) {
MessageUtils.systemInstall( builder.streams(
builder -> { context.invokerRequest.stdIn().orElseThrow(),
builder.streams( context.invokerRequest.stdOut().orElseThrow());
context.invokerRequest.stdIn().orElseThrow(), builder.systemOutput(TerminalBuilder.SystemOutput.ForcedSysOut);
context.invokerRequest.stdOut().orElseThrow()); builder.provider(TerminalBuilder.PROP_PROVIDER_EXEC);
builder.systemOutput(TerminalBuilder.SystemOutput.ForcedSysOut); if (context.coloredOutput != null) {
builder.provider(TerminalBuilder.PROP_PROVIDER_EXEC); builder.color(context.coloredOutput);
if (context.coloredOutput != null) { }
builder.color(context.coloredOutput); // we do want to pause input
} builder.paused(true);
// we do want to pause input
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); System.setOut(printStream(context.invokerRequest.stdOut().orElseThrow()));
if (context.invokerRequest.options().rawStreams().orElse(false)) { System.setErr(printStream(context.invokerRequest.stdErr().orElseThrow()));
System.setOut(printStream(context.invokerRequest.stdOut().orElseThrow()));
System.setErr(printStream(context.invokerRequest.stdErr().orElseThrow()));
}
} }
private PrintStream printStream(OutputStream outputStream) { private PrintStream printStream(OutputStream outputStream) {