com.atlassian.bamboo.build
Class DefaultBuildExecutionManager

java.lang.Object
  extended by com.atlassian.bamboo.build.DefaultBuildExecutionManager
All Implemented Interfaces:
BuildExecutionManager, BuildExecutionUpdateManager, BuildLoggerManager

public class DefaultBuildExecutionManager
extends java.lang.Object
implements BuildExecutionManager


Constructor Summary
DefaultBuildExecutionManager(PlanExecutionPermitter planExecutionPermitter, org.quartz.Scheduler scheduler)
           
 
Method Summary
 CurrentlyBuilding addToCurrentlyBuilding(BuildContext buildContext)
          Denotes that the passed build context is beginning the build process.
 void execute(BuildContext buildContext)
          Executes the given BuildContext At this point a BuildResultsSummary exists that matches the given BuildContext
 void finishBuild(PlanResultKey planResultKey)
          Calls removeCurrentlyBuilding & finishProcess
 BuildLogger getBuildLogger(PlanKey planKey)
          Returns a BuildLogger for the given plan
 BuildLogger getBuildLogger(PlanResultKey resultKey)
          Returns a BuildLogger for the given result
 BuildLogger getBuildLogger(java.lang.String planOrResultKey)
          Returns a BuildLogger for the given plan or result key.
 CurrentlyBuilding getBuildRunningOnAgent(java.lang.Long buildAgentId)
           
 java.util.List<CurrentlyBuilding> getCurrentlyBuilding(java.lang.String planKey)
           
 CurrentlyBuilding getCurrentlyBuildingByBuildResult(BuildIdentifier buildIdentifier)
          Returns CurrentlyBuilding instance for build identifier (or BuildContext).
 CurrentlyBuilding getCurrentlyBuildingByBuildResultKey(java.lang.String buildResultKey)
          Returns CurrentlyBuilding instance for build identified by buildResultKey.
 java.util.List<CurrentlyBuilding> getCurrentlyExecutingBuilds()
          Retrieves a list of all builds being executed (i.e not just queued).
 java.util.List<CurrentlyBuilding> getCurrentlyExecutingBuilds(java.lang.String planKey)
          Retrieves a list of all builds being executed (i.e not just queued) that belong to the specified planKey.
 boolean isAllowBuilding(java.lang.String planKey)
          Checks if a particular build is allowed to be built.
 void removeBuildLogger(PlanKey planKey)
          Removes plan logger for given plan key.
 void removeBuildLogger(PlanResultKey buildResultKey)
          Removes buildLogger for finished build process.
 CurrentlyBuilding removeCurrentlyBuilding(java.lang.String planKey)
           
 void setAuthorCreatorService(AuthorCreatorService authorCreatorService)
           
 void setBuildFinish(BuildContext buildContext, TimingPoint timingPoint)
           
 void setBuildLoggerManager(BuildLoggerManager buildLoggerManager)
           
 void setBuildResultsSummaryManager(BuildResultsSummaryManager buildResultsSummaryManager)
           
 void setBuildRunningOnAgent(BuildContext buildContext, java.lang.Long buildAgentId)
          Marks that this plan has started building on the agentId.
 void setBuildStart(BuildContext buildContext, TimingPoint timingPoint)
           
 void setBuildStopAcknowledge(java.lang.String buildResultKey)
           
 void setCurrentlyBuilding(BuildContext buildContext, java.util.Collection<BuildAgent> executableAgents, java.util.Collection<ElasticImageConfiguration> executableImages)
          Denotes that the passed build context is beginning the build process.
 void setCurrentlyBuildingContainer(CurrentlyBuildingContainer currentlyBuildingContainer)
           
 void setErrorUpdateHandler(ErrorUpdateHandler errorUpdateHandler)
           
 void setEventManager(com.atlassian.event.EventManager eventManager)
           
 void setLimitedConcurrencyCaller(LimitedConcurrencyCaller limitedConcurrencyCaller)
           
 void setPendingBuildResultsCleanup(PendingBuildResultsCleanup pendingBuildResultsCleanup)
           
 void setPlanManager(PlanManager planManager)
           
 void setPlanStatePersisterService(PlanStatePersisterService planStatePersisterService)
           
 BuildRequestResult tryToDetectAndBuild(java.lang.String planKey, BuildDetectionAction buildDetectionAction)
          Will fire off BuildTriggeredEvent if the callback completes successfully and a BuildRequestResult is returned by the callback action.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultBuildExecutionManager

public DefaultBuildExecutionManager(PlanExecutionPermitter planExecutionPermitter,
                                    org.quartz.Scheduler scheduler)
Method Detail

isAllowBuilding

public boolean isAllowBuilding(@NotNull
                               java.lang.String planKey)
Description copied from interface: BuildExecutionManager
Checks if a particular build is allowed to be built. It checks if it exists, not suspened, and that there is no global flag that has stopped building

Specified by:
isAllowBuilding in interface BuildExecutionManager
Returns:
true if the planKey is a valid build that is allowed to be built

execute

public void execute(@NotNull
                    BuildContext buildContext)
Description copied from interface: BuildExecutionManager
Executes the given BuildContext At this point a BuildResultsSummary exists that matches the given BuildContext

Specified by:
execute in interface BuildExecutionManager

tryToDetectAndBuild

@NotNull
public BuildRequestResult tryToDetectAndBuild(@NotNull
                                                      java.lang.String planKey,
                                                      @NotNull
                                                      BuildDetectionAction buildDetectionAction)
Description copied from interface: BuildExecutionManager
Will fire off BuildTriggeredEvent if the callback completes successfully and a BuildRequestResult is returned by the callback action. Will log reasons if/why it failed to build logs.

Specified by:
tryToDetectAndBuild in interface BuildExecutionManager
Returns:
buildRequestResult

getCurrentlyExecutingBuilds

@NotNull
public java.util.List<CurrentlyBuilding> getCurrentlyExecutingBuilds()
Description copied from interface: BuildExecutionManager
Retrieves a list of all builds being executed (i.e not just queued).

Specified by:
getCurrentlyExecutingBuilds in interface BuildExecutionManager
Returns:

getCurrentlyExecutingBuilds

@NotNull
public java.util.List<CurrentlyBuilding> getCurrentlyExecutingBuilds(java.lang.String planKey)
Description copied from interface: BuildExecutionManager
Retrieves a list of all builds being executed (i.e not just queued) that belong to the specified planKey.

Specified by:
getCurrentlyExecutingBuilds in interface BuildExecutionManager
Returns:

getCurrentlyBuilding

@NotNull
public java.util.List<CurrentlyBuilding> getCurrentlyBuilding(@NotNull
                                                                      java.lang.String planKey)
Specified by:
getCurrentlyBuilding in interface BuildExecutionManager

getCurrentlyBuildingByBuildResultKey

@NotNull
public CurrentlyBuilding getCurrentlyBuildingByBuildResultKey(@NotNull
                                                                      java.lang.String buildResultKey)
Description copied from interface: BuildExecutionManager
Returns CurrentlyBuilding instance for build identified by buildResultKey. Should be used only if BuildIdentifier is not available - basically in actions

Specified by:
getCurrentlyBuildingByBuildResultKey in interface BuildExecutionManager
Returns:

getCurrentlyBuildingByBuildResult

@NotNull
public CurrentlyBuilding getCurrentlyBuildingByBuildResult(@NotNull
                                                                   BuildIdentifier buildIdentifier)
Description copied from interface: BuildExecutionManager
Returns CurrentlyBuilding instance for build identifier (or BuildContext).

Specified by:
getCurrentlyBuildingByBuildResult in interface BuildExecutionManager
Returns:

setCurrentlyBuilding

public void setCurrentlyBuilding(@NotNull
                                 BuildContext buildContext,
                                 @NotNull
                                 java.util.Collection<BuildAgent> executableAgents,
                                 @NotNull
                                 java.util.Collection<ElasticImageConfiguration> executableImages)
Denotes that the passed build context is beginning the build process. (i.e. it's being queued). Executable build agent lists are considered to be up to date if this method is used.

Specified by:
setCurrentlyBuilding in interface BuildExecutionManager
Parameters:
buildContext -
executableAgents - - a list of agents on which this build can be run.
executableImages - - a list of images on which the build can be run.

addToCurrentlyBuilding

public CurrentlyBuilding addToCurrentlyBuilding(@NotNull
                                                BuildContext buildContext)
Denotes that the passed build context is beginning the build process. (i.e. it's being queued). Executable build agent lists are considered to be not yet initialized if this method is used.

Specified by:
addToCurrentlyBuilding in interface BuildExecutionManager
Parameters:
buildContext -

setBuildRunningOnAgent

public void setBuildRunningOnAgent(@NotNull
                                   BuildContext buildContext,
                                   java.lang.Long buildAgentId)
Description copied from interface: BuildExecutionUpdateManager
Marks that this plan has started building on the agentId.

Specified by:
setBuildRunningOnAgent in interface BuildExecutionUpdateManager

getBuildRunningOnAgent

public CurrentlyBuilding getBuildRunningOnAgent(@NotNull
                                                java.lang.Long buildAgentId)
Specified by:
getBuildRunningOnAgent in interface BuildExecutionManager

finishBuild

public void finishBuild(@NotNull
                        PlanResultKey planResultKey)
Description copied from interface: BuildExecutionManager
Calls removeCurrentlyBuilding & finishProcess

Specified by:
finishBuild in interface BuildExecutionManager
Parameters:
planResultKey - identifies plan result

removeCurrentlyBuilding

public CurrentlyBuilding removeCurrentlyBuilding(@NotNull
                                                 java.lang.String planKey)
Specified by:
removeCurrentlyBuilding in interface BuildExecutionManager

setBuildStart

public void setBuildStart(@NotNull
                          BuildContext buildContext,
                          @NotNull
                          TimingPoint timingPoint)
Specified by:
setBuildStart in interface BuildExecutionUpdateManager

setBuildFinish

public void setBuildFinish(@NotNull
                           BuildContext buildContext,
                           @NotNull
                           TimingPoint timingPoint)
Specified by:
setBuildFinish in interface BuildExecutionUpdateManager

setBuildStopAcknowledge

public void setBuildStopAcknowledge(@NotNull
                                    java.lang.String buildResultKey)
Specified by:
setBuildStopAcknowledge in interface BuildExecutionUpdateManager

getBuildLogger

@NotNull
public BuildLogger getBuildLogger(@NotNull
                                          PlanKey planKey)
Description copied from interface: BuildLoggerManager
Returns a BuildLogger for the given plan

Specified by:
getBuildLogger in interface BuildLoggerManager
Returns:

getBuildLogger

@NotNull
public BuildLogger getBuildLogger(@NotNull
                                          PlanResultKey resultKey)
Description copied from interface: BuildLoggerManager
Returns a BuildLogger for the given result

Specified by:
getBuildLogger in interface BuildLoggerManager
Returns:

getBuildLogger

@NotNull
public BuildLogger getBuildLogger(@NotNull
                                          java.lang.String planOrResultKey)
Description copied from interface: BuildLoggerManager
Returns a BuildLogger for the given plan or result key. If it's detected that the AgentContext is building something, passing the plan key String will switch to log to the result log

Specified by:
getBuildLogger in interface BuildLoggerManager
Returns:
buildLogger

removeBuildLogger

public void removeBuildLogger(PlanKey planKey)
Description copied from interface: BuildLoggerManager
Removes plan logger for given plan key.

Specified by:
removeBuildLogger in interface BuildLoggerManager

removeBuildLogger

public void removeBuildLogger(PlanResultKey buildResultKey)
Description copied from interface: BuildLoggerManager
Removes buildLogger for finished build process. Removed build logger is not used anymore as build has been finished and build result should be persisted already.

Specified by:
removeBuildLogger in interface BuildLoggerManager

setPlanManager

public void setPlanManager(PlanManager planManager)

setEventManager

public void setEventManager(com.atlassian.event.EventManager eventManager)

setErrorUpdateHandler

public void setErrorUpdateHandler(ErrorUpdateHandler errorUpdateHandler)

setBuildResultsSummaryManager

public void setBuildResultsSummaryManager(BuildResultsSummaryManager buildResultsSummaryManager)

setBuildLoggerManager

public void setBuildLoggerManager(BuildLoggerManager buildLoggerManager)

setPendingBuildResultsCleanup

public void setPendingBuildResultsCleanup(PendingBuildResultsCleanup pendingBuildResultsCleanup)

setLimitedConcurrencyCaller

public void setLimitedConcurrencyCaller(LimitedConcurrencyCaller limitedConcurrencyCaller)

setAuthorCreatorService

public void setAuthorCreatorService(AuthorCreatorService authorCreatorService)

setCurrentlyBuildingContainer

public void setCurrentlyBuildingContainer(CurrentlyBuildingContainer currentlyBuildingContainer)

setPlanStatePersisterService

public void setPlanStatePersisterService(PlanStatePersisterService planStatePersisterService)


Copyright © 2010 Atlassian. All Rights Reserved.