public class Scheduler extends Object implements org.junit.runners.model.RunnerScheduler
The scheduler objects should be first created (and wired) and set in runners
ParentRunner.setScheduler(org.junit.runners.model.RunnerScheduler)
.
A new instance of scheduling strategy should be passed to the constructor of this scheduler.
Modifier and Type | Class and Description |
---|---|
class |
Scheduler.ShutdownHandler |
Constructor and Description |
---|
Scheduler(Description description,
Scheduler masterScheduler,
SchedulingStrategy strategy)
Should be used with individual pools on suites, classes and methods, see
ParallelComputerBuilder.useSeparatePools() . |
Scheduler(Description description,
Scheduler masterScheduler,
SchedulingStrategy strategy,
Balancer balancer)
Can be used by e.g.
|
Scheduler(Description description,
Scheduler masterScheduler,
SchedulingStrategy strategy,
int concurrency) |
Scheduler(Description description,
SchedulingStrategy strategy)
Use e.g.
|
Scheduler(Description description,
SchedulingStrategy strategy,
Balancer balancer)
New instances should be used by schedulers with limited concurrency by balancer
against other groups of schedulers.
|
Scheduler(Description description,
SchedulingStrategy strategy,
int concurrency)
Should be used if schedulers in parallel children and parent use one instance of bounded thread pool.
|
Modifier and Type | Method and Description |
---|---|
protected void |
afterExecute() |
protected void |
beforeExecute() |
void |
finished() |
protected void |
logQuietly(String msg) |
protected void |
logQuietly(Throwable t) |
protected Scheduler.ShutdownHandler |
newShutdownHandler() |
void |
schedule(Runnable childStatement) |
Collection<Description> |
shutdown(boolean shutdownNow)
Attempts to stop all actively executing tasks and immediately returns a collection
of descriptions of those tasks which have started prior to this call.
|
public Scheduler(Description description, SchedulingStrategy strategy)
You can use it with one infinite thread pool shared in strategies across all suites, class runners, etc.
public Scheduler(Description description, SchedulingStrategy strategy, int concurrency)
Set this scheduler in a e.g. one suite of classes, then every individual class runner should reference
Scheduler(org.junit.runner.Description, Scheduler, SchedulingStrategy)
or Scheduler(org.junit.runner.Description, Scheduler, SchedulingStrategy, int)
.
description
- description of current runnerstrategy
- scheduling strategy with a shared thread poolconcurrency
- determines maximum concurrent children scheduled a time via schedule(Runnable)
NullPointerException
- if null strategypublic Scheduler(Description description, SchedulingStrategy strategy, Balancer balancer)
Unlike in Scheduler(org.junit.runner.Description, SchedulingStrategy, int)
which was limiting
the concurrency of children of a runner where this scheduler was set, this balancer
is limiting the concurrency of all children in runners having schedulers created by this constructor.
description
- description of current runnerstrategy
- scheduling strategy which may share threads with other strategybalancer
- determines maximum concurrent children scheduled a time via schedule(Runnable)
NullPointerException
- if null strategy or balancerpublic Scheduler(Description description, Scheduler masterScheduler, SchedulingStrategy strategy, Balancer balancer)
description
- description of current runnermasterScheduler
- scheduler sharing own threads with this slavestrategy
- scheduling strategy for this schedulerbalancer
- determines maximum concurrent children scheduled a time via schedule(Runnable)
NullPointerException
- if null masterScheduler, strategy or balancerpublic Scheduler(Description description, Scheduler masterScheduler, SchedulingStrategy strategy, int concurrency)
masterScheduler
- a reference to Scheduler(org.junit.runner.Description, SchedulingStrategy, int)
or Scheduler(org.junit.runner.Description, SchedulingStrategy)
Scheduler(org.junit.runner.Description, SchedulingStrategy)
,
Scheduler(org.junit.runner.Description, SchedulingStrategy, int)
public Scheduler(Description description, Scheduler masterScheduler, SchedulingStrategy strategy)
ParallelComputerBuilder.useSeparatePools()
.
Cached thread pool is infinite and can be always shared.
protected void logQuietly(Throwable t)
protected void logQuietly(String msg)
public Collection<Description> shutdown(boolean shutdownNow)
This scheduler and other registered schedulers will shutdown, see register(Scheduler)
.
If shutdownNow is set, waiting methods will be interrupted via Thread.interrupt()
.
shutdownNow
- if true interrupts waiting methodsprotected void beforeExecute()
protected void afterExecute()
public void schedule(Runnable childStatement)
schedule
in interface org.junit.runners.model.RunnerScheduler
public void finished()
finished
in interface org.junit.runners.model.RunnerScheduler
protected Scheduler.ShutdownHandler newShutdownHandler()
Copyright © 2004–2013 The Apache Software Foundation. All rights reserved.