public class ForkClient
extends java.lang.Object
implements org.apache.maven.shared.utils.cli.StreamConsumer
Modifier and Type | Class and Description |
---|---|
private static class |
ForkClient.OperationalData |
Modifier and Type | Field and Description |
---|---|
private DefaultReporterFactory |
defaultReporterFactory |
private StackTraceWriter |
errorInFork |
private int |
forkNumber |
private ConsoleLogger |
log |
private NotifiableTestStream |
notifiableTestStream |
private static java.lang.String |
PRINTABLE_JVM_NATIVE_STREAM |
private java.util.concurrent.atomic.AtomicBoolean |
printedErrorStream
prevents from printing same warning
|
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 RunListener |
testSetReporter
Used by single Thread started by
ThreadedStreamConsumer and therefore does not need to be volatile. |
private java.util.concurrent.atomic.AtomicLong |
testSetStartedAt
testSetStartedAt is set to non-zero after received
test-set . |
private java.util.Queue<java.lang.String> |
testsInProgress |
private java.util.Map<java.lang.String,java.lang.String> |
testVmSystemProperties |
Constructor and Description |
---|
ForkClient(DefaultReporterFactory defaultReporterFactory,
NotifiableTestStream notifiableTestStream,
ConsoleLogger log,
java.util.concurrent.atomic.AtomicBoolean printedErrorStream) |
Modifier and Type | Method and Description |
---|---|
void |
close(boolean hadTimeout) |
void |
consumeLine(java.lang.String s) |
void |
consumeMultiLineContent(java.lang.String s) |
private java.lang.String |
createConsoleMessage(java.lang.String remaining) |
private TestSetReportEntry |
createReportEntry(java.lang.String untokenized) |
private TestSetReportEntry |
createReportEntry(java.lang.String untokenized,
java.util.Map<java.lang.String,java.lang.String> systemProperties) |
private StackTraceWriter |
deserializeStackTraceWriter(java.util.StringTokenizer tokens) |
DefaultReporterFactory |
getDefaultReporterFactory() |
StackTraceWriter |
getErrorInFork() |
private ConsoleLogger |
getOrCreateConsoleLogger() |
private ConsoleOutputReceiver |
getOrCreateConsoleOutputReceiver() |
RunListener |
getReporter()
Used when getting reporters on the plugin side of a fork.
|
private RunListener |
getTestSetReporter() |
java.util.Map<java.lang.String,java.lang.String> |
getTestVmSystemProperties() |
boolean |
hadTimeout() |
boolean |
hasTestsInProgress() |
boolean |
isErrorInFork() |
boolean |
isSaidGoodBye() |
void |
kill() |
private void |
logStreamWarning(java.lang.String event) |
private void |
logStreamWarning(java.lang.Throwable e,
java.lang.String event) |
private java.lang.String |
nullableCsv(java.lang.String source) |
private void |
processLine(java.lang.String event) |
private void |
setCurrentStartTime() |
void |
setForkNumber(int forkNumber) |
protected void |
stopOnNextTest() |
java.util.Set<java.lang.String> |
testsInProgress() |
void |
tryToTimeout(long currentTimeMillis,
int forkedProcessTimeoutInSeconds)
Called in concurrent Thread.
|
private java.lang.String |
unescape(java.lang.String source) |
private void |
writeTestOutput(java.lang.String remaining,
boolean isStdout) |
private static final java.lang.String PRINTABLE_JVM_NATIVE_STREAM
private static final long START_TIME_ZERO
private static final long START_TIME_NEGATIVE_TIMEOUT
private final DefaultReporterFactory defaultReporterFactory
private final java.util.Map<java.lang.String,java.lang.String> testVmSystemProperties
private final NotifiableTestStream notifiableTestStream
private final java.util.Queue<java.lang.String> testsInProgress
private final java.util.concurrent.atomic.AtomicLong testSetStartedAt
testSetStartedAt
is set to non-zero after received
test-set
.private final ConsoleLogger log
private final java.util.concurrent.atomic.AtomicBoolean printedErrorStream
private RunListener testSetReporter
ThreadedStreamConsumer
and therefore does not need to be volatile.private volatile boolean saidGoodBye
private volatile StackTraceWriter errorInFork
private volatile int forkNumber
public ForkClient(DefaultReporterFactory defaultReporterFactory, NotifiableTestStream notifiableTestStream, ConsoleLogger log, java.util.concurrent.atomic.AtomicBoolean printedErrorStream)
protected void stopOnNextTest()
public void kill()
public final void tryToTimeout(long currentTimeMillis, int forkedProcessTimeoutInSeconds)
currentTimeMillis
- current time in millis secondsforkedProcessTimeoutInSeconds
- timeout in seconds given by MOJOpublic final DefaultReporterFactory getDefaultReporterFactory()
public final void consumeLine(java.lang.String s)
consumeLine
in interface org.apache.maven.shared.utils.cli.StreamConsumer
private void setCurrentStartTime()
public final boolean hadTimeout()
private RunListener getTestSetReporter()
private void processLine(java.lang.String event)
private void logStreamWarning(java.lang.String event)
private void logStreamWarning(java.lang.Throwable e, java.lang.String event)
private void writeTestOutput(java.lang.String remaining, boolean isStdout)
public final void consumeMultiLineContent(java.lang.String s) throws java.io.IOException
java.io.IOException
private java.lang.String createConsoleMessage(java.lang.String remaining)
private TestSetReportEntry createReportEntry(java.lang.String untokenized)
private TestSetReportEntry createReportEntry(java.lang.String untokenized, java.util.Map<java.lang.String,java.lang.String> systemProperties)
private StackTraceWriter deserializeStackTraceWriter(java.util.StringTokenizer tokens)
private java.lang.String nullableCsv(java.lang.String source)
private java.lang.String unescape(java.lang.String source)
public final java.util.Map<java.lang.String,java.lang.String> getTestVmSystemProperties()
public final RunListener getReporter()
private ConsoleOutputReceiver getOrCreateConsoleOutputReceiver()
private ConsoleLogger getOrCreateConsoleLogger()
public void close(boolean hadTimeout)
public final boolean isSaidGoodBye()
public final StackTraceWriter getErrorInFork()
public final boolean isErrorInFork()
public java.util.Set<java.lang.String> testsInProgress()
public boolean hasTestsInProgress()
public void setForkNumber(int forkNumber)