Class Scheduler
- java.lang.Object
-
- eu.royalsloth.depbuilder.dsl.scheduling.Scheduler
-
public class Scheduler extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
Scheduler.AbortReason
-
Field Summary
Fields Modifier and Type Field Description protected boolean
buildHasErrors
protected BuildLayers
buildLayers
protected boolean
buildWasAborted
protected Set<String>
finished
protected SchedulerSettings
settings
protected Instant
startTime
-
Constructor Summary
Constructors Constructor Description Scheduler(BuildLayers buildLayers, SchedulerSettings settings)
Scheduler(BuildLayers buildLayers, SchedulerSettings settings, Instant startTime)
Scheduler(BuildLayers buildLayers, SchedulerSettings settings, Instant startTime, List<String> startBuildWithNodes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
abortBuild(BuildJob node)
void
abortBuild(ScheduledNode node)
void
addQueuedBuild(BuildFuture future)
protected Scheduler.AbortReason
createAbortReason(BuildFuture build, PersistBuildInfoAction persistBuildInfo)
boolean
ejectFinishedBuilds(PrintStream logger, PersistBuildInfoAction persistBuildInfo)
Eject the build if the build has finished building.void
errorBuild(BuildJob node)
void
errorBuild(ScheduledNode node)
void
finishBuild(BuildJob buildJob, BuildStatus status)
ScheduledNode
getNext()
protected ScheduledNode
getNextNode()
List<BuildFuture>
getQueuedBuilds()
boolean
hasBuildErrors()
Checks if any build node in the scheduler has errors.boolean
hasNext()
protected void
markNodesAsReadyToBuild(BuildJob job)
void
successBuild(BuildJob node)
void
successBuild(ScheduledNode node)
boolean
wasAborted()
-
-
-
Field Detail
-
startTime
protected final Instant startTime
-
buildLayers
protected final BuildLayers buildLayers
-
settings
protected final SchedulerSettings settings
-
buildHasErrors
protected boolean buildHasErrors
-
buildWasAborted
protected boolean buildWasAborted
-
-
Constructor Detail
-
Scheduler
public Scheduler(BuildLayers buildLayers, SchedulerSettings settings)
-
Scheduler
public Scheduler(BuildLayers buildLayers, SchedulerSettings settings, Instant startTime)
-
Scheduler
public Scheduler(BuildLayers buildLayers, SchedulerSettings settings, Instant startTime, List<String> startBuildWithNodes)
-
-
Method Detail
-
markNodesAsReadyToBuild
protected void markNodesAsReadyToBuild(BuildJob job)
-
getQueuedBuilds
public List<BuildFuture> getQueuedBuilds()
-
addQueuedBuild
public void addQueuedBuild(BuildFuture future)
-
ejectFinishedBuilds
public boolean ejectFinishedBuilds(PrintStream logger, PersistBuildInfoAction persistBuildInfo)
Eject the build if the build has finished building.- Returns:
- true if the build was ejected and false otherwise.
-
createAbortReason
protected Scheduler.AbortReason createAbortReason(BuildFuture build, PersistBuildInfoAction persistBuildInfo)
-
successBuild
public void successBuild(BuildJob node)
-
successBuild
public void successBuild(ScheduledNode node)
-
abortBuild
public void abortBuild(BuildJob node)
-
abortBuild
public void abortBuild(ScheduledNode node)
-
errorBuild
public void errorBuild(BuildJob node)
-
errorBuild
public void errorBuild(ScheduledNode node)
-
finishBuild
public void finishBuild(BuildJob buildJob, BuildStatus status)
-
hasNext
public boolean hasNext()
-
hasBuildErrors
public boolean hasBuildErrors()
Checks if any build node in the scheduler has errors. This method should only be called once the scheduler returns ABORT node, so we know if that is due to a build being aborted, or because a certain build didn't build (or has parent build error)- Returns:
- if any node in the build layers has error and false if it does not.
-
wasAborted
public boolean wasAborted()
- Returns:
- true if the build was aborted and false otherwise
-
getNext
public ScheduledNode getNext()
- Returns:
- next node used for building
-
getNextNode
protected ScheduledNode getNextNode()
-
-