public class BuildQueueManagerImpl extends Object implements BuildQueueManager
BuildQueueManager.QueuedResultKey, BuildQueueManager.QueueItemView<T>
DISABLE_BUILD_SYSTEM_PROPERTY
Constructor and Description |
---|
BuildQueueManagerImpl(com.atlassian.event.api.EventPublisher eventPublisher,
BuildExecutionManager buildExecutionManager,
CachedPlanManager cachedPlanManager,
com.atlassian.plugin.PluginAccessor pluginAccessor,
ErrorUpdateHandler errorUpdateHandler,
ExecutableAgentsHelper executableAgentsHelper,
CustomVariableContextRunner customVariableContextRunner,
EnvironmentService environmentService,
ExecutionPhaseService executionPhaseService,
XStreamFactory xStreamFactory,
org.springframework.transaction.support.TransactionTemplate transactionTemplate,
LocalResultProcessor resultProcessor,
long responseTimeout) |
Modifier and Type | Method and Description |
---|---|
void |
addToQueue(CommonContext context)
Attempts to add the build to a queue.
|
Iterable<CommonContext> |
getBuildQueue()
Returns a list of
CommonContext objects currently in the build queue. |
Iterable<BuildQueueManager.QueuedResultKey> |
getQueuedExecutables() |
BuildQueuePosition |
getQueuePosition(ResultKey resultKey)
Returns information on position of plan result in the queue.
|
com.google.common.collect.ImmutableList<CommonContext> |
getRecentBuildQueue()
Returns a list of
CommonContext objects currently in the build queue. |
void |
invalidateExecutors(Key key) |
void |
invalidateExecutors(String reason) |
BuildQueueManager.QueueItemView<CommonContext> |
peekContext(ResultKey resultKey)
Returns a queued CommonContext for given resultKey.
|
void |
removeAllBuildsForPlanFromQueue(PlanKey planKey)
Removes all the
CommonContext associated with the planKey to be removed from the queue. |
void |
removeBuildFromQueue(ResultKey resultKey)
Removes the
CommonContext associated with the resultKey to be removed from the queue. |
void |
reorderBuildInQueue(String planKey,
int index)
Reorders the build queue.
|
boolean |
reorderBuildInQueue(String buildResultKey,
String prevBuildResultKey,
String nextBuildResultKey)
Moves a given build in a queue in between two given builds.
|
boolean |
reorderInQueue(ResultKey resultKey,
int index)
Reorders the build queue.
|
void |
restoreState(Set<ResultKey> buildsToRestore)
Restore state after server restart.
|
CommonContext |
takeBuildContext(long agentId)
Takes a
BuildContext from the queue, blocking until one is available. |
public BuildQueueManagerImpl(@NotNull com.atlassian.event.api.EventPublisher eventPublisher, @NotNull BuildExecutionManager buildExecutionManager, @NotNull CachedPlanManager cachedPlanManager, @NotNull com.atlassian.plugin.PluginAccessor pluginAccessor, @NotNull ErrorUpdateHandler errorUpdateHandler, @NotNull ExecutableAgentsHelper executableAgentsHelper, @NotNull CustomVariableContextRunner customVariableContextRunner, @NotNull EnvironmentService environmentService, @NotNull ExecutionPhaseService executionPhaseService, @NotNull XStreamFactory xStreamFactory, @NotNull org.springframework.transaction.support.TransactionTemplate transactionTemplate, @NotNull LocalResultProcessor resultProcessor, long responseTimeout)
public void addToQueue(@NotNull CommonContext context)
BuildQueueManager
A lock on the build is obtained from the BuildExecutionManager
.
addToQueue
in interface BuildQueueManager
public void removeBuildFromQueue(@NotNull ResultKey resultKey)
BuildQueueManager
CommonContext
associated with the resultKey to be removed from the queue.
The lock on the build is not released. The caller should call BuildExecutionManager.finishBuild(PlanResultKey)
to
release this lock when ready.
removeBuildFromQueue
in interface BuildQueueManager
public void removeAllBuildsForPlanFromQueue(@NotNull PlanKey planKey)
BuildQueueManager
CommonContext
associated with the planKey to be removed from the queue.
The lock on the build is not released. The caller should call BuildExecutionManager.finishBuild(PlanResultKey)
to
release this lock when ready.
removeAllBuildsForPlanFromQueue
in interface BuildQueueManager
public void reorderBuildInQueue(String planKey, int index)
BuildQueueManager
CommonContext
associated with the planKey is moved to new position in the queue
indicated by the zero-based index parameter. If index is < 0 or >= size of queue then CommonContext
is
positioned at the beginning or at the end of the queue respectively.reorderBuildInQueue
in interface BuildQueueManager
planKey
- Plan key of the build that shall be repositioned in the queue.index
- New position of a CommonContext
associated with the planKey in the queue.public boolean reorderInQueue(ResultKey resultKey, int index)
BuildQueueManager
CommonContext
associated with the resultKey is moved to new position in the queue
indicated by the zero-based index parameter. If index is < 0 or >= size of queue then CommonContext
is
positioned at the beginning or at the end of the queue respectively.reorderInQueue
in interface BuildQueueManager
resultKey
- Result key of the build that shall be repositioned in the queue.index
- New position of a CommonContext
associated with the planKey in the queue.public boolean reorderBuildInQueue(@NotNull String buildResultKey, @Nullable String prevBuildResultKey, @Nullable String nextBuildResultKey)
BuildQueueManager
You must specify buildResultKey and either prevBuildResultKey or nextBuildResultKey (or both).
reorderBuildInQueue
in interface BuildQueueManager
@NotNull public BuildQueuePosition getQueuePosition(@NotNull ResultKey resultKey)
BuildQueueManager
getQueuePosition
in interface BuildQueueManager
resultKey
- identifies plan resultpublic void invalidateExecutors(@NotNull String reason)
invalidateExecutors
in interface BuildQueueManager
public void invalidateExecutors(@NotNull Key key)
invalidateExecutors
in interface BuildQueueManager
@NotNull public Iterable<BuildQueueManager.QueuedResultKey> getQueuedExecutables()
getQueuedExecutables
in interface BuildQueueManager
@NotNull public com.google.common.collect.ImmutableList<CommonContext> getRecentBuildQueue()
BuildQueueManager
CommonContext
objects currently in the build queue. If there are any pending queue
operations, this method will return the latest known queue state.getRecentBuildQueue
in interface BuildQueueManager
List
of CommonContext
. Changes to this List is not reflected in the queue.@NotNull public Iterable<CommonContext> getBuildQueue()
BuildQueueManager
CommonContext
objects currently in the build queue. If there are any pending queue
operations, this method will return the latest known queue state.
Consider using com.atlassian.bamboo.v2.build.queue.QueueManagerView for queue access}getBuildQueue
in interface BuildQueueManager
List
of CommonContext
. Changes to this List is not reflected in the queue.public BuildQueueManager.QueueItemView<CommonContext> peekContext(@NotNull ResultKey resultKey)
BuildQueueManager
peekContext
in interface BuildQueueManager
public void restoreState(Set<ResultKey> buildsToRestore)
BuildQueueManager
restoreState
in interface BuildQueueManager
buildsToRestore
- keys of results that it makes sense to restore@Nullable public CommonContext takeBuildContext(long agentId) throws InterruptedException
AgentQueueAccessor
BuildContext
from the queue, blocking until one is available.
The lock on the build is not released. The caller should call BuildExecutionManager.finishBuild(PlanResultKey)
to
release this lock when ready.
takeBuildContext
in interface AgentQueueAccessor
agentId
- the id of the agent that is taking the build context.BuildContext
, null in case of timeout on retrieval.InterruptedException
- if the calling Thread
is interrupted.Copyright © 2016 Atlassian Software Systems Pty Ltd. All rights reserved.