Class ForkClient
- java.lang.Object
-
- org.apache.maven.plugin.surefire.booterclient.output.ForkClient
-
- All Implemented Interfaces:
EventHandler<Event>
public final class ForkClient extends java.lang.Object implements EventHandler<Event>
Knows how to reconstruct *all* the state transmitted over stdout by the forked process.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
ForkClient.AcquireNextTestListener
private class
ForkClient.ByeListener
private class
ForkClient.ConsoleListener
private class
ForkClient.DebugListener
private class
ForkClient.ErrorListener
private class
ForkClient.ExitErrorEventListener
private class
ForkClient.StdErrListener
private class
ForkClient.StdOutListener
private class
ForkClient.SystemPropertiesListener
private class
ForkClient.TestAssumptionFailureListener
private class
ForkClient.TestErrorListener
private class
ForkClient.TestFailedListener
private class
ForkClient.TestSetCompletedListener
private class
ForkClient.TestSetStartingListener
private class
ForkClient.TestSkippedListener
private class
ForkClient.TestStartingListener
private class
ForkClient.TestSucceededListener
private class
ForkClient.WarningListener
-
Field Summary
Fields Modifier and Type Field Description private DefaultReporterFactory
defaultReporterFactory
private StackTraceWriter
errorInFork
private int
forkNumber
private NotifiableTestStream
notifiableTestStream
private ForkedProcessEventNotifier
notifier
private boolean
saidGoodBye
Written by one Thread and read by another: Main Thread and ForkStarter's Thread.private static long
START_TIME_NEGATIVE_TIMEOUT
private static long
START_TIME_ZERO
private TestReportListener<TestOutputReportEntry>
testSetReporter
private java.util.concurrent.atomic.AtomicLong
testSetStartedAt
testSetStartedAt is set to non-zero after receivedMasterProcessChannelEncoder.testSetStarting(TestSetReportEntry, boolean)
.private java.util.Queue<java.lang.String>
testsInProgress
private java.util.Map<java.lang.String,java.lang.String>
testVmSystemProperties
-
Constructor Summary
Constructors Constructor Description ForkClient(DefaultReporterFactory defaultReporterFactory, NotifiableTestStream notifiableTestStream, int forkNumber)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close(boolean hadTimeout)
(package private) void
dumpToLoFile(java.lang.String msg)
TestOutputReceiver<TestOutputReportEntry>
getConsoleOutputReceiver()
DefaultReporterFactory
getDefaultReporterFactory()
StackTraceWriter
getErrorInFork()
private ConsoleLogger
getOrCreateConsoleLogger()
RunListener
getReporter()
Used when getting reporters on the plugin side of a fork.private TestReportListener<TestOutputReportEntry>
getTestSetReporter()
OnlygetConsoleOutputReceiver()
may call this method in another Thread.java.util.Map<java.lang.String,java.lang.String>
getTestVmSystemProperties()
boolean
hadTimeout()
void
handleEvent(Event event)
boolean
hasTestsInProgress()
boolean
isErrorInFork()
boolean
isSaidGoodBye()
void
kill()
private void
setCurrentStartTime()
void
setStopOnNextTestListener(ForkedProcessEventListener listener)
java.util.Set<java.lang.String>
testsInProgress()
void
tryToTimeout(long currentTimeMillis, int forkedProcessTimeoutInSeconds)
Called in concurrent Thread.private void
writeTestOutput(java.lang.String output, boolean isStdout, boolean newLine, RunMode runMode, java.lang.Long testRunId)
-
-
-
Field Detail
-
START_TIME_ZERO
private static final long START_TIME_ZERO
- See Also:
- Constant Field Values
-
START_TIME_NEGATIVE_TIMEOUT
private static final long START_TIME_NEGATIVE_TIMEOUT
- See Also:
- Constant Field Values
-
defaultReporterFactory
private final DefaultReporterFactory defaultReporterFactory
-
testVmSystemProperties
private final java.util.Map<java.lang.String,java.lang.String> testVmSystemProperties
-
notifiableTestStream
private final NotifiableTestStream notifiableTestStream
-
testsInProgress
private final java.util.Queue<java.lang.String> testsInProgress
-
testSetStartedAt
private final java.util.concurrent.atomic.AtomicLong testSetStartedAt
testSetStartedAt is set to non-zero after receivedMasterProcessChannelEncoder.testSetStarting(TestSetReportEntry, boolean)
.
-
notifier
private final ForkedProcessEventNotifier notifier
-
forkNumber
private final int forkNumber
-
testSetReporter
private volatile TestReportListener<TestOutputReportEntry> testSetReporter
-
saidGoodBye
private volatile boolean saidGoodBye
Written by one Thread and read by another: Main Thread and ForkStarter's Thread.
-
errorInFork
private volatile StackTraceWriter errorInFork
-
-
Constructor Detail
-
ForkClient
public ForkClient(DefaultReporterFactory defaultReporterFactory, NotifiableTestStream notifiableTestStream, int forkNumber)
-
-
Method Detail
-
setStopOnNextTestListener
public void setStopOnNextTestListener(ForkedProcessEventListener listener)
-
kill
public void kill()
-
tryToTimeout
public void tryToTimeout(long currentTimeMillis, int forkedProcessTimeoutInSeconds)
Called in concurrent Thread. Will shutdown if timeout was reached.- Parameters:
currentTimeMillis
- current time in millis secondsforkedProcessTimeoutInSeconds
- timeout in seconds given by MOJO
-
getDefaultReporterFactory
public DefaultReporterFactory getDefaultReporterFactory()
-
handleEvent
public void handleEvent(@Nonnull Event event)
- Specified by:
handleEvent
in interfaceEventHandler<Event>
-
setCurrentStartTime
private void setCurrentStartTime()
-
hadTimeout
public boolean hadTimeout()
-
getTestSetReporter
private TestReportListener<TestOutputReportEntry> getTestSetReporter()
OnlygetConsoleOutputReceiver()
may call this method in another Thread.
-
dumpToLoFile
void dumpToLoFile(java.lang.String msg)
-
writeTestOutput
private void writeTestOutput(java.lang.String output, boolean isStdout, boolean newLine, RunMode runMode, java.lang.Long testRunId)
-
getTestVmSystemProperties
public java.util.Map<java.lang.String,java.lang.String> getTestVmSystemProperties()
-
getReporter
public RunListener getReporter()
Used when getting reporters on the plugin side of a fork. Used by testing purposes only. May not be volatile variable.- Returns:
- A mock provider reporter
-
getConsoleOutputReceiver
public TestOutputReceiver<TestOutputReportEntry> getConsoleOutputReceiver()
-
getOrCreateConsoleLogger
private ConsoleLogger getOrCreateConsoleLogger()
-
close
public void close(boolean hadTimeout)
-
isSaidGoodBye
public boolean isSaidGoodBye()
-
getErrorInFork
public StackTraceWriter getErrorInFork()
-
isErrorInFork
public boolean isErrorInFork()
-
testsInProgress
public java.util.Set<java.lang.String> testsInProgress()
-
hasTestsInProgress
public boolean hasTestsInProgress()
-
-