Class ForkClient
- java.lang.Object
-
- org.apache.maven.plugin.surefire.booterclient.output.ForkClient
-
- All Implemented Interfaces:
org.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event>
public final class ForkClient extends java.lang.Object implements org.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event>Knows how to reconstruct *all* the state transmitted over stdout by the forked process.- Author:
- Kristian Rosenvold
-
-
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)org.apache.maven.surefire.api.report.TestOutputReceiver<org.apache.maven.surefire.api.report.TestOutputReportEntry>getConsoleOutputReceiver()DefaultReporterFactorygetDefaultReporterFactory()org.apache.maven.surefire.api.report.StackTraceWritergetErrorInFork()org.apache.maven.surefire.api.report.RunListenergetReporter()Used when getting reporters on the plugin side of a fork.java.util.Map<java.lang.String,java.lang.String>getTestVmSystemProperties()booleanhadTimeout()voidhandleEvent(org.apache.maven.surefire.api.event.Event event)booleanhasTestsInProgress()booleanisErrorInFork()booleanisSaidGoodBye()voidkill()voidsetStopOnNextTestListener(ForkedProcessEventListener listener)voidsetTimeoutDetectedListener(java.lang.Runnable listener)Registers a one-shot callback invoked synchronously when the forked process timeout has been reached, immediately before the KILL command is sent.java.util.Set<java.lang.String>testsInProgress()voidtryToTimeout(long currentTimeMillis, int forkedProcessTimeoutInSeconds)Called in concurrent Thread.
-
-
-
Constructor Detail
-
ForkClient
public ForkClient(DefaultReporterFactory defaultReporterFactory, NotifiableTestStream notifiableTestStream, int forkNumber)
-
-
Method Detail
-
setStopOnNextTestListener
public void setStopOnNextTestListener(ForkedProcessEventListener listener)
-
setTimeoutDetectedListener
public void setTimeoutDetectedListener(java.lang.Runnable listener)
Registers a one-shot callback invoked synchronously when the forked process timeout has been reached, immediately before the KILL command is sent. The forked JVM is still alive when the callback runs, so it may collect live diagnostics (for example ajstackdump).- Parameters:
listener- the callback to run, ornullto clear; callback must not throw checked exceptions
-
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 millisecondsforkedProcessTimeoutInSeconds- timeout in seconds given by MOJO
-
getDefaultReporterFactory
public DefaultReporterFactory getDefaultReporterFactory()
-
handleEvent
public void handleEvent(@Nonnull org.apache.maven.surefire.api.event.Event event)- Specified by:
handleEventin interfaceorg.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event>
-
hadTimeout
public boolean hadTimeout()
-
getTestVmSystemProperties
public java.util.Map<java.lang.String,java.lang.String> getTestVmSystemProperties()
-
getReporter
public org.apache.maven.surefire.api.report.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 org.apache.maven.surefire.api.report.TestOutputReceiver<org.apache.maven.surefire.api.report.TestOutputReportEntry> getConsoleOutputReceiver()
-
close
public void close(boolean hadTimeout)
-
isSaidGoodBye
public boolean isSaidGoodBye()
-
getErrorInFork
public org.apache.maven.surefire.api.report.StackTraceWriter getErrorInFork()
-
isErrorInFork
public boolean isErrorInFork()
-
testsInProgress
public java.util.Set<java.lang.String> testsInProgress()
-
hasTestsInProgress
public boolean hasTestsInProgress()
-
-