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 classForkClient.AcquireNextTestListenerprivate classForkClient.ByeListenerprivate classForkClient.ConsoleListenerprivate classForkClient.DebugListenerprivate classForkClient.ErrorListenerprivate classForkClient.ExitErrorEventListenerprivate classForkClient.StdErrListenerprivate classForkClient.StdOutListenerprivate classForkClient.SystemPropertiesListenerprivate classForkClient.TestAssumptionFailureListenerprivate classForkClient.TestErrorListenerprivate classForkClient.TestFailedListenerprivate classForkClient.TestSetCompletedListenerprivate classForkClient.TestSetStartingListenerprivate classForkClient.TestSkippedListenerprivate classForkClient.TestStartingListenerprivate classForkClient.TestSucceededListenerprivate classForkClient.WarningListener
-
Field Summary
Fields Modifier and Type Field Description private DefaultReporterFactorydefaultReporterFactoryprivate StackTraceWritererrorInForkprivate intforkNumberprivate NotifiableTestStreamnotifiableTestStreamprivate ForkedProcessEventNotifiernotifierprivate booleansaidGoodByeWritten by one Thread and read by another: Main Thread and ForkStarter's Thread.private static longSTART_TIME_NEGATIVE_TIMEOUTprivate static longSTART_TIME_ZEROprivate TestReportListener<TestOutputReportEntry>testSetReporterprivate java.util.concurrent.atomic.AtomicLongtestSetStartedAttestSetStartedAt is set to non-zero after receivedMasterProcessChannelEncoder.testSetStarting(TestSetReportEntry, boolean).private java.util.Queue<java.lang.String>testsInProgressprivate 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 voidclose(boolean hadTimeout)(package private) voiddumpToLoFile(java.lang.String msg)TestOutputReceiver<TestOutputReportEntry>getConsoleOutputReceiver()DefaultReporterFactorygetDefaultReporterFactory()StackTraceWritergetErrorInFork()private ConsoleLoggergetOrCreateConsoleLogger()RunListenergetReporter()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()booleanhadTimeout()voidhandleEvent(Event event)booleanhasTestsInProgress()booleanisErrorInFork()booleanisSaidGoodBye()voidkill()private voidsetCurrentStartTime()voidsetStopOnNextTestListener(ForkedProcessEventListener listener)java.util.Set<java.lang.String>testsInProgress()voidtryToTimeout(long currentTimeMillis, int forkedProcessTimeoutInSeconds)Called in concurrent Thread.private voidwriteTestOutput(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:
handleEventin 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()
-
-