Package hudson.init
Logic for Hudson startup.
Hudson's start up is based on the same idea as the modern Unix init mechanism like initng/upstart/SMF.
It first builds a set of Task
s that are units of the initialization work, and have them declare
dependencies among themselves. For example, jobs are only loaded after all the plugins are initialized,
and restoring the build queue requires all the jobs to be loaded.
Such micro-scopic dependencies are organized into a bigger directed acyclic graph, which is then executed
via Session
. During execution of the reactor, additional tasks can be discovered and added to
the DAG. We use this additional indirection to:
- Perform initialization in parallel where possible.
- Provide progress report on where we are in the initialization.
- Collect status of the initialization and their failures.
-
Interface Summary Interface Description InitReactorListener ReactorListener
s that get notified of the Hudson initialization process. -
Class Summary Class Description InitializerFinder Discovers initialization tasks fromInitializer
.InitStrategy Strategy pattern of the various key decision making during the Jenkins initialization.TerminatorFinder -
Enum Summary Enum Description InitMilestone Various key milestone in the initialization process of Hudson.TermMilestone Various key milestone in the termination process of Jenkins. -
Annotation Types Summary Annotation Type Description Initializer Placed on methods to indicate that this method is to be run during the Jenkins start up to perform some sort of initialization tasks, for example:Terminator LikeInitializer
but used during the shut down.