Package org.apache.maven.surefire.booter
Class CommandReader
- java.lang.Object
-
- org.apache.maven.surefire.booter.CommandReader
-
public final class CommandReader extends java.lang.Object
Reader of commands coming from plugin(master) process.- Since:
- 2.19
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
CommandReader.ClassesIterable
private class
CommandReader.ClassesIterator
private class
CommandReader.CommandRunnable
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Thread
commandThread
private int
iteratedCount
private static java.lang.String
LAST_TEST_SYMBOL
private java.util.Queue<BiProperty<MasterProcessCommand,CommandListener>>
listeners
private ConsoleLogger
logger
private java.util.concurrent.Semaphore
nextCommandNotifier
private static CommandReader
READER
private Shutdown
shutdown
private java.util.concurrent.CountDownLatch
startMonitor
private java.util.concurrent.atomic.AtomicReference<java.lang.Thread.State>
state
private java.util.concurrent.CopyOnWriteArrayList<java.lang.String>
testClasses
-
Constructor Summary
Constructors Modifier Constructor Description private
CommandReader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addByeAckListener(CommandListener listener)
void
addListener(CommandListener listener)
private void
addListener(MasterProcessCommand cmd, CommandListener listener)
void
addNoopListener(CommandListener listener)
void
addShutdownListener(CommandListener listener)
void
addSkipNextTestsListener(CommandListener listener)
void
addTestListener(CommandListener listener)
void
addTestsFinishedListener(CommandListener listener)
private void
awaitNextTest()
boolean
awaitStarted()
(package private) java.lang.Iterable<java.lang.String>
getIterableClasses(ForkedChannelEncoder eventChannel)
The iterator can be used only in one Thread.static CommandReader
getReader()
private boolean
insertToQueue(java.lang.String test)
private boolean
isQueueFull()
private boolean
isStopped()
(package private) java.util.Iterator<java.lang.String>
iterated()
private void
makeQueueFull()
void
removeListener(CommandListener listener)
CommandReader
setLogger(ConsoleLogger logger)
CommandReader
setShutdown(Shutdown shutdown)
void
stop()
private void
wakeupIterator()
-
-
-
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:
true
ifLAST_TEST_SYMBOL
found 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()
-
-