From 7ab09f3e28b4b843482d0a6de38426dd7e0b63c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Diga=C5=88a?= Date: Thu, 30 Dec 2021 17:21:52 +0100 Subject: [PATCH] NativeStd???StreamConsumer should use System.???.println() --- .../surefire/booterclient/ForkStarter.java | 18 +++++++----------- .../output/NativeStdErrStreamConsumer.java | 12 +++++++----- .../output/NativeStdOutStreamConsumer.java | 12 +++++++----- .../extensions/SurefireForkChannel.java | 2 +- .../booterclient/ForkingRunListenerTest.java | 4 ++-- .../booterclient/output/ForkClientTest.java | 5 ++--- .../plugin/surefire/extensions/E2ETest.java | 4 ++-- .../extensions/EventConsumerThreadTest.java | 5 ++--- .../ForkedProcessEventNotifierTest.java | 5 ++--- .../surefire/extensions/ForkChannelTest.java | 5 ++--- .../surefire/stream/EventDecoderTest.java | 5 ++--- .../surefire/api/fork/ForkNodeArguments.java | 3 +-- .../api/stream/AbstractStreamDecoderTest.java | 5 ++--- .../maven/surefire/booter/ForkedNodeArg.java | 5 ++--- .../booter/spi/CommandChannelDecoderTest.java | 5 ++--- 15 files changed, 43 insertions(+), 52 deletions(-) diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java index adb7040496..29bc31e361 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java @@ -34,7 +34,6 @@ import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.plugin.surefire.report.ReportsMerger; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.booter.AbstractPathConfiguration; import org.apache.maven.surefire.booter.PropertiesWrapper; import org.apache.maven.surefire.booter.ProviderConfiguration; @@ -577,7 +576,7 @@ private RunResult fork( Object testSet, PropertiesWrapper providerProperties, Fo try { ForkNodeArguments forkNodeArguments = new ForkedNodeArg( forkConfiguration.isDebug(), forkNumber, - dumpLogDir, randomUUID().toString(), forkClient.getConsoleOutputReceiver() ); + dumpLogDir, randomUUID().toString() ); forkChannel = forkNodeFactory.createForkChannel( forkNodeArguments ); closer.addCloseable( forkChannel ); tempDir = forkConfiguration.getTempDirectory().getCanonicalPath(); @@ -755,10 +754,10 @@ else if ( result != SUCCESS ) return runResult; } - private Stoppable bindErrorStream( int forkNumber, CountdownCloseable countdownCloseable, - CommandlineStreams streams, ConsoleOutputReceiver consoleOutputReceiver ) + private static Stoppable bindErrorStream( int forkNumber, CountdownCloseable countdownCloseable, + CommandlineStreams streams, Object errorStreamLock ) { - EventHandler errConsumer = new NativeStdErrStreamConsumer( consoleOutputReceiver ); + EventHandler errConsumer = new NativeStdErrStreamConsumer( errorStreamLock ); LineConsumerThread stdErr = new LineConsumerThread( "fork-" + forkNumber + "-err-thread", streams.getStdErrChannel(), errConsumer, countdownCloseable ); stdErr.start(); @@ -890,16 +889,13 @@ private final class ForkedNodeArg implements ForkNodeArguments private final File dumpLogDir; private final String sessionId; private final boolean debug; - private final ConsoleOutputReceiver consoleOutputReceiver; - ForkedNodeArg( boolean debug, int forkChannelId, File dumpLogDir, String sessionId, - ConsoleOutputReceiver consoleOutputReceiver ) + ForkedNodeArg( boolean debug, int forkChannelId, File dumpLogDir, String sessionId ) { this.debug = debug; this.forkChannelId = forkChannelId; this.dumpLogDir = dumpLogDir; this.sessionId = sessionId; - this.consoleOutputReceiver = consoleOutputReceiver; } @Nonnull @@ -945,9 +941,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return consoleOutputReceiver; + return log; } @Override diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdErrStreamConsumer.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdErrStreamConsumer.java index 8f656eebb0..18005599c6 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdErrStreamConsumer.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdErrStreamConsumer.java @@ -19,7 +19,6 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.extensions.EventHandler; import javax.annotation.Nonnull; @@ -35,16 +34,19 @@ public final class NativeStdErrStreamConsumer implements EventHandler { - private final ConsoleOutputReceiver consoleMessageReceiver; + private final Object errStreamLock; - public NativeStdErrStreamConsumer( ConsoleOutputReceiver consoleMessageReceiver ) + public NativeStdErrStreamConsumer( Object errStreamLock) { - this.consoleMessageReceiver = consoleMessageReceiver; + this.errStreamLock = errStreamLock; } @Override public void handleEvent( @Nonnull String message ) { - consoleMessageReceiver.writeTestOutput( message, true, false ); + synchronized (errStreamLock) + { + System.err.println( message ); + } } } diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdOutStreamConsumer.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdOutStreamConsumer.java index 3e1cf4d249..4d0a268539 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdOutStreamConsumer.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/NativeStdOutStreamConsumer.java @@ -19,7 +19,6 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.extensions.EventHandler; import javax.annotation.Nonnull; @@ -34,16 +33,19 @@ public final class NativeStdOutStreamConsumer implements EventHandler { - private final ConsoleOutputReceiver consoleMessageReceiver; + private final Object outStreamLock; - public NativeStdOutStreamConsumer( ConsoleOutputReceiver consoleMessageReceiver ) + public NativeStdOutStreamConsumer( Object outStreamLock ) { - this.consoleMessageReceiver = consoleMessageReceiver; + this.outStreamLock = outStreamLock; } @Override public void handleEvent( @Nonnull String message ) { - consoleMessageReceiver.writeTestOutput( message, true, true ); + synchronized ( outStreamLock ) + { + System.out.println( message ); + } } } diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java index 42208c84a9..f0c5bbfef1 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java @@ -143,7 +143,7 @@ public void bindEventHandler( @Nonnull EventHandler eventHandler, { ForkNodeArguments args = getArguments(); out = new LineConsumerThread( "fork-" + args.getForkChannelId() + "-out-thread", stdOut, - new NativeStdOutStreamConsumer( args.getConsoleOutputReceiver() ), countdown ); + new NativeStdOutStreamConsumer( args.getConsoleLock() ), countdown ); out.start(); eventBindings = new EventBindings( eventHandler, countdown ); diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java index 3d18afda3a..68e73c5184 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java @@ -373,9 +373,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - throw new UnsupportedOperationException(); + return logger; } boolean isCalled() diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java index 0b9c80d077..6cb409db7f 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java @@ -46,7 +46,6 @@ import org.apache.maven.surefire.api.event.TestSucceededEvent; import org.apache.maven.surefire.api.event.TestsetCompletedEvent; import org.apache.maven.surefire.api.event.TestsetStartingEvent; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.SafeThrowable; import org.apache.maven.surefire.api.report.SimpleReportEntry; @@ -1883,9 +1882,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - throw new UnsupportedOperationException(); + return logger; } boolean isCalled() diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java index 45a39df91a..05af3fc4c7 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java @@ -433,9 +433,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return null; + return logger; } @Override diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java index 4a436592e1..e0bb416d0c 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java @@ -22,7 +22,6 @@ import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.event.Event; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.extensions.EventHandler; import org.apache.maven.surefire.extensions.util.CountdownCloseable; import org.junit.Test; @@ -232,9 +231,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return null; + return new Object(); } @Override diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/ForkedProcessEventNotifierTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/ForkedProcessEventNotifierTest.java index b6fa15e799..f741cfa472 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/ForkedProcessEventNotifierTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/ForkedProcessEventNotifierTest.java @@ -32,7 +32,6 @@ import org.apache.maven.plugin.surefire.log.api.ConsoleLoggerUtils; import org.apache.maven.surefire.api.event.Event; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.RunMode; import org.apache.maven.surefire.api.report.SafeThrowable; @@ -1307,9 +1306,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return null; + return logger; } boolean isCalled() diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java index 0391874950..cd15874d6e 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java @@ -27,7 +27,6 @@ import org.apache.maven.surefire.api.event.ControlByeEvent; import org.apache.maven.surefire.api.event.Event; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.extensions.util.CountdownCloseable; import org.junit.Test; @@ -122,9 +121,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return null; + return reporter; } }; diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/stream/EventDecoderTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/stream/EventDecoderTest.java index 395600f742..c3c15bbb92 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/stream/EventDecoderTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/stream/EventDecoderTest.java @@ -44,7 +44,6 @@ import org.apache.maven.surefire.api.event.TestsetCompletedEvent; import org.apache.maven.surefire.api.event.TestsetStartingEvent; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.RunMode; import org.apache.maven.surefire.api.report.SafeThrowable; @@ -772,9 +771,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return null; + return new Object(); } @Override diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/fork/ForkNodeArguments.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/fork/ForkNodeArguments.java index e78b283ad3..ee5c2bfdff 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/fork/ForkNodeArguments.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/fork/ForkNodeArguments.java @@ -20,7 +20,6 @@ */ import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import javax.annotation.Nonnegative; import javax.annotation.Nonnull; @@ -57,7 +56,7 @@ public interface ForkNodeArguments ConsoleLogger getConsoleLogger(); @Nonnull - ConsoleOutputReceiver getConsoleOutputReceiver(); + Object getConsoleLock(); File getEventStreamBinaryFile(); diff --git a/surefire-api/src/test/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoderTest.java b/surefire-api/src/test/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoderTest.java index 3dc59ad938..e551552269 100644 --- a/surefire-api/src/test/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoderTest.java +++ b/surefire-api/src/test/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoderTest.java @@ -24,7 +24,6 @@ import org.apache.maven.surefire.api.booter.ForkedProcessEventType; import org.apache.maven.surefire.api.event.Event; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.RunMode; import org.apache.maven.surefire.api.stream.AbstractStreamDecoder.MalformedFrameException; import org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento; @@ -638,9 +637,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - return null; + return new Object(); } @Override diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedNodeArg.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedNodeArg.java index 3660174a40..c7c9c57900 100644 --- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedNodeArg.java +++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedNodeArg.java @@ -23,7 +23,6 @@ import org.apache.maven.plugin.surefire.log.api.NullConsoleLogger; import org.apache.maven.surefire.api.booter.DumpErrorSingleton; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import javax.annotation.Nonnull; import java.io.File; @@ -86,9 +85,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - throw new UnsupportedOperationException(); + return logger; } @Override diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/spi/CommandChannelDecoderTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/spi/CommandChannelDecoderTest.java index 1f7a061db8..648dce0163 100644 --- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/spi/CommandChannelDecoderTest.java +++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/spi/CommandChannelDecoderTest.java @@ -24,7 +24,6 @@ import org.apache.maven.surefire.api.booter.DumpErrorSingleton; import org.apache.maven.surefire.api.booter.Shutdown; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.booter.ForkedNodeArg; import org.junit.Before; import org.junit.Rule; @@ -403,9 +402,9 @@ public ConsoleLogger getConsoleLogger() @Nonnull @Override - public ConsoleOutputReceiver getConsoleOutputReceiver() + public Object getConsoleLock() { - throw new UnsupportedOperationException(); + return logger; } boolean isCalled()