Class DependencyQueueTaskDispatcher
java.lang.Object
hudson.model.queue.QueueTaskDispatcher
com.sonyericsson.hudson.plugins.gerrit.trigger.dependency.DependencyQueueTaskDispatcher
- All Implemented Interfaces:
GerritEventLifecycleListener,com.sonymobile.tools.gerrit.gerritevents.GerritEventListener,ExtensionPoint
@Extension
public final class DependencyQueueTaskDispatcher
extends QueueTaskDispatcher
implements GerritEventLifecycleListener, com.sonymobile.tools.gerrit.gerritevents.GerritEventListener
Blocks builds from running until the projects on which they depend have finished building.
This applies on a per-event basis, so for each event, the plugin will wait for
dependency projects (i.e., projects on which it depends) which also trigger for the same
event, to finish building before building a dependent project.
- Author:
- Yannick Bréhon <yannick.brehon@smartmatic.com>
-
Nested Class Summary
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidallBuildsCompleted(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Called when all builds triggered by the event are completed.voidbuildCompleted(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event, Run build) Called when a build is completed.voidbuildStarted(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event, Run build) Called when a build has started.canRun(Queue.Item item) voidgerritEvent(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Process lifecycle events.Returns the registered instance of this class from the list of all listeners.getProjectsFromString(String projects, Item context) Return a list of Abstract Projects from their string names.voidonDoneTriggeringAll(com.sonymobile.tools.gerrit.gerritevents.dto.events.GerritTriggeredEvent event) Signals this event is done retriggering all its projects.voidonTriggeringAll(com.sonymobile.tools.gerrit.gerritevents.dto.events.GerritTriggeredEvent event) Signals this event started retriggering all its projects.voidprojectTriggered(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event, Job project) Called when the trigger of a project has decided to trigger on the event.voidtriggerScanDone(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Called after all triggers has been enumerated.voidtriggerScanStarting(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Called before any triggers are enumerated.Methods inherited from class hudson.model.queue.QueueTaskDispatcher
all, canTake, canTake
-
Constructor Details
-
DependencyQueueTaskDispatcher
public DependencyQueueTaskDispatcher()Default constructor.
-
-
Method Details
-
getInstance
Returns the registered instance of this class from the list of all listeners.- Returns:
- the instance.
-
canRun
- Overrides:
canRunin classQueueTaskDispatcher
-
getProjectsFromString
Return a list of Abstract Projects from their string names.- Parameters:
projects- The string containing the projects, comma-separated.context- The context in which to read the string- Returns:
- the list of projects
-
onTriggeringAll
public void onTriggeringAll(com.sonymobile.tools.gerrit.gerritevents.dto.events.GerritTriggeredEvent event) Signals this event started retriggering all its projects. In the meantime, no builds with dependencies should be allowed to start.- Parameters:
event- the event triggering
-
onDoneTriggeringAll
public void onDoneTriggeringAll(com.sonymobile.tools.gerrit.gerritevents.dto.events.GerritTriggeredEvent event) Signals this event is done retriggering all its projects. Builds with dependencies may be allowed to start once their dependencies are built..- Parameters:
event- the event done triggering
-
gerritEvent
public void gerritEvent(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Process lifecycle events. We register to these events so we can get notified of the beginning of the scanning and end of scanning.- Specified by:
gerritEventin interfacecom.sonymobile.tools.gerrit.gerritevents.GerritEventListener- Parameters:
event- the event to which we subscribe.
-
triggerScanStarting
public void triggerScanStarting(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Description copied from interface:GerritEventLifecycleListenerCalled before any triggers are enumerated.- Specified by:
triggerScanStartingin interfaceGerritEventLifecycleListener- Parameters:
event- the event.
-
triggerScanDone
public void triggerScanDone(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Description copied from interface:GerritEventLifecycleListenerCalled after all triggers has been enumerated.- Specified by:
triggerScanDonein interfaceGerritEventLifecycleListener- Parameters:
event- the event.
-
projectTriggered
public void projectTriggered(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event, Job project) Description copied from interface:GerritEventLifecycleListenerCalled when the trigger of a project has decided to trigger on the event.- Specified by:
projectTriggeredin interfaceGerritEventLifecycleListener- Parameters:
event- the event.project- the project that was triggered.
-
buildStarted
Description copied from interface:GerritEventLifecycleListenerCalled when a build has started.- Specified by:
buildStartedin interfaceGerritEventLifecycleListener- Parameters:
event- the event.build- the build.
-
buildCompleted
public void buildCompleted(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event, Run build) Description copied from interface:GerritEventLifecycleListenerCalled when a build is completed.- Specified by:
buildCompletedin interfaceGerritEventLifecycleListener- Parameters:
event- the event.build- the build.
-
allBuildsCompleted
public void allBuildsCompleted(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent event) Description copied from interface:GerritEventLifecycleListenerCalled when all builds triggered by the event are completed.- Specified by:
allBuildsCompletedin interfaceGerritEventLifecycleListener- Parameters:
event- the event.
-