Package org.apache.maven.surefire.booter
Class CommandReader
- java.lang.Object
-
- org.apache.maven.surefire.booter.CommandReader
-
public final class CommandReader extends java.lang.ObjectReader of commands coming from plugin(master) process.- Since:
- 2.19
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classCommandReader.ClassesIterableprivate classCommandReader.ClassesIteratorprivate classCommandReader.CommandRunnable
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ThreadcommandThreadprivate intiteratedCountprivate static java.lang.StringLAST_TEST_SYMBOLprivate java.util.Queue<BiProperty<MasterProcessCommand,CommandListener>>listenersprivate ConsoleLoggerloggerprivate java.util.concurrent.SemaphorenextCommandNotifierprivate static CommandReaderREADERprivate Shutdownshutdownprivate java.util.concurrent.CountDownLatchstartMonitorprivate java.util.concurrent.atomic.AtomicReference<java.lang.Thread.State>stateprivate java.util.concurrent.CopyOnWriteArrayList<java.lang.String>testClasses
-
Constructor Summary
Constructors Modifier Constructor Description privateCommandReader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddByeAckListener(CommandListener listener)voidaddListener(CommandListener listener)private voidaddListener(MasterProcessCommand cmd, CommandListener listener)voidaddNoopListener(CommandListener listener)voidaddShutdownListener(CommandListener listener)voidaddSkipNextTestsListener(CommandListener listener)voidaddTestListener(CommandListener listener)voidaddTestsFinishedListener(CommandListener listener)private voidawaitNextTest()booleanawaitStarted()(package private) java.lang.Iterable<java.lang.String>getIterableClasses(ForkedChannelEncoder eventChannel)The iterator can be used only in one Thread.static CommandReadergetReader()private booleaninsertToQueue(java.lang.String test)private booleanisQueueFull()private booleanisStopped()(package private) java.util.Iterator<java.lang.String>iterated()private voidmakeQueueFull()voidremoveListener(CommandListener listener)CommandReadersetLogger(ConsoleLogger logger)CommandReadersetShutdown(Shutdown shutdown)voidstop()private voidwakeupIterator()
-
-
-
Field Detail
-
LAST_TEST_SYMBOL
private static final java.lang.String LAST_TEST_SYMBOL
- See Also:
- Constant Field Values
-
READER
private static final CommandReader READER
-
listeners
private final java.util.Queue<BiProperty<MasterProcessCommand,CommandListener>> listeners
-
commandThread
private final java.lang.Thread commandThread
-
state
private final java.util.concurrent.atomic.AtomicReference<java.lang.Thread.State> state
-
startMonitor
private final java.util.concurrent.CountDownLatch startMonitor
-
nextCommandNotifier
private final java.util.concurrent.Semaphore nextCommandNotifier
-
testClasses
private final java.util.concurrent.CopyOnWriteArrayList<java.lang.String> testClasses
-
shutdown
private volatile Shutdown shutdown
-
iteratedCount
private int iteratedCount
-
logger
private volatile ConsoleLogger logger
-
-
Method Detail
-
getReader
public static CommandReader getReader()
-
setShutdown
public CommandReader setShutdown(Shutdown shutdown)
-
setLogger
public CommandReader setLogger(ConsoleLogger logger)
-
awaitStarted
public boolean awaitStarted() throws TestSetFailedException- Throws:
TestSetFailedException
-
addListener
public void addListener(CommandListener listener)
- Parameters:
listener- listener called with Anycommand type
-
addTestListener
public void addTestListener(CommandListener listener)
-
addTestsFinishedListener
public void addTestsFinishedListener(CommandListener listener)
-
addSkipNextTestsListener
public void addSkipNextTestsListener(CommandListener listener)
-
addShutdownListener
public void addShutdownListener(CommandListener listener)
-
addNoopListener
public void addNoopListener(CommandListener listener)
-
addByeAckListener
public void addByeAckListener(CommandListener listener)
-
addListener
private void addListener(MasterProcessCommand cmd, CommandListener listener)
-
removeListener
public void removeListener(CommandListener listener)
-
iterated
java.util.Iterator<java.lang.String> iterated()
- Returns:
- test classes which have been retrieved by
getIterableClasses(ForkedChannelEncoder).
-
getIterableClasses
java.lang.Iterable<java.lang.String> getIterableClasses(ForkedChannelEncoder eventChannel)
The iterator can be used only in one Thread. Two simultaneous instances are not allowed for sake of only onenextCommandNotifier.- Parameters:
eventChannel- original stream in current JVM process- Returns:
- Iterator with test classes lazily loaded as commands from the main process
-
stop
public void stop()
-
isStopped
private boolean isStopped()
-
isQueueFull
private boolean isQueueFull()
- Returns:
trueifLAST_TEST_SYMBOLfound at the last index intestClasses.
-
makeQueueFull
private void makeQueueFull()
-
insertToQueue
private boolean insertToQueue(java.lang.String test)
-
awaitNextTest
private void awaitNextTest()
-
wakeupIterator
private void wakeupIterator()
-
-