Class AbstractThreadPoolStrategy
- java.lang.Object
-
- org.apache.maven.surefire.junitcore.pc.SchedulingStrategy
-
- org.apache.maven.surefire.junitcore.pc.AbstractThreadPoolStrategy
-
- All Implemented Interfaces:
Destroyable
- Direct Known Subclasses:
NonSharedThreadPoolStrategy
,SharedThreadPoolStrategy
abstract class AbstractThreadPoolStrategy extends SchedulingStrategy
Abstract parallel scheduling strategy in private package. The remaining abstract methods have to be implemented differently depending if the thread pool is shared with other strategies or not.- Since:
- 2.16
- See Also:
SchedulingStrategy
,SharedThreadPoolStrategy
,NonSharedThreadPoolStrategy
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Collection<java.util.concurrent.Future<?>>
futureResults
private boolean
isDestroyed
private java.util.concurrent.ExecutorService
threadPool
-
Constructor Summary
Constructors Constructor Description AbstractThreadPoolStrategy(ConsoleStream logger, java.util.concurrent.ExecutorService threadPool)
AbstractThreadPoolStrategy(ConsoleStream logger, java.util.concurrent.ExecutorService threadPool, java.util.Collection<java.util.concurrent.Future<?>> futureResults)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
destroy()
CallingThreadPoolExecutor.shutdown()
andThreadPoolExecutor.awaitTermination(long, java.util.concurrent.TimeUnit)
.protected java.util.Collection<java.util.concurrent.Future<?>>
getFutureResults()
protected java.util.concurrent.ExecutorService
getThreadPool()
void
schedule(java.lang.Runnable task)
Schedules tasks ifSchedulingStrategy.canSchedule()
.protected void
setDefaultShutdownHandler(Scheduler.ShutdownHandler handler)
protected boolean
stop()
Stops scheduling new tasks (e.g.protected boolean
stopNow()
Stops scheduling new tasks andinterrupts
running tasks (e.g.-
Methods inherited from class org.apache.maven.surefire.junitcore.pc.SchedulingStrategy
canSchedule, disable, finished, hasSharedThreadPool, logQuietly
-
-
-
-
Constructor Detail
-
AbstractThreadPoolStrategy
AbstractThreadPoolStrategy(ConsoleStream logger, java.util.concurrent.ExecutorService threadPool)
-
AbstractThreadPoolStrategy
AbstractThreadPoolStrategy(ConsoleStream logger, java.util.concurrent.ExecutorService threadPool, java.util.Collection<java.util.concurrent.Future<?>> futureResults)
-
-
Method Detail
-
getThreadPool
protected final java.util.concurrent.ExecutorService getThreadPool()
-
getFutureResults
protected final java.util.Collection<java.util.concurrent.Future<?>> getFutureResults()
-
schedule
public void schedule(java.lang.Runnable task)
Description copied from class:SchedulingStrategy
Schedules tasks ifSchedulingStrategy.canSchedule()
.- Specified by:
schedule
in classSchedulingStrategy
- Parameters:
task
- runnable to schedule in a thread pool or invoke- See Also:
RunnerScheduler.schedule(Runnable)
,Executor.execute(Runnable)
-
stop
protected boolean stop()
Description copied from class:SchedulingStrategy
Stops scheduling new tasks (e.g. byExecutorService.shutdown()
on a private thread pool which cannot be shared with other strategy).- Specified by:
stop
in classSchedulingStrategy
- Returns:
true
if successfully stopped the scheduler, elsefalse
if already stopped (a shared thread pool was shutdown externally).- See Also:
ExecutorService.shutdown()
-
stopNow
protected boolean stopNow()
Description copied from class:SchedulingStrategy
Stops scheduling new tasks andinterrupts
running tasks (e.g. byExecutorService.shutdownNow()
on a private thread pool which cannot be shared with other strategy).
This method callsSchedulingStrategy.stop()
by default.- Overrides:
stopNow
in classSchedulingStrategy
- Returns:
true
if successfully stopped the scheduler, elsefalse
if already stopped (a shared thread pool was shutdown externally).- See Also:
ExecutorService.shutdownNow()
-
setDefaultShutdownHandler
protected void setDefaultShutdownHandler(Scheduler.ShutdownHandler handler)
- Overrides:
setDefaultShutdownHandler
in classSchedulingStrategy
- See Also:
Scheduler.ShutdownHandler
-
destroy
public boolean destroy()
Description copied from interface:Destroyable
CallingThreadPoolExecutor.shutdown()
andThreadPoolExecutor.awaitTermination(long, java.util.concurrent.TimeUnit)
.- Returns:
true
if not interrupted in current thread
-
-