From Eclipsepedia

Jump to: navigation, search

Hudson defines extension points, which are interfaces or abstract classes that model an aspect of a build system. Those interfaces define contracts of what need to be implemented, and Hudson allows plugins to contribute those implementations. In general, all you need to do to register an implementation is to mark it with Template:@Extension.

Currently the following extension points are available. See Javadoc for more details about the contracts:

h4. AdministrativeMonitor

Checks the health of a subsystem of Hudson and if there's something that requires administrator's attention, notify the administrator.

h4. AuthorizationStrategy

Controls authorization throughout Hudson.

h4. Axis

Configuration axis.

h4. BuildWrapper

Pluggability point for performing pre/post actions for the build process.

h4. Builder

BuildSteps that perform the actual build.

h4. [CLICommand|]

Base class for Hudson CLI.

h4. [ChangeLogAnnotator|]

Performs mark up on changelog messages to be displayed.

h4. [Cloud|]

Creates [Node|]s to dynamically expand/shrink the slaves attached to Hudson.

h4. [ComputerConnector|]

Factory of [ComputerLauncher|].

h4. [ComputerLauncher|]

Extension point to allow control over how [Computer|]s are "launched", meaning how they get connected to their slave agent program.

h4. [ComputerListener|]

Receives notifications about status changes of [Computer|]s.

h4. [ComputerPinger|]

A way to see if a computer is reachable.

h4. [ConsoleAnnotationDescriptor|]

Descriptor for [ConsoleNote|].

h4. [ConsoleAnnotatorFactory|]

Entry point to the [ConsoleAnnotator|] extension point. This class creates a new instance of [ConsoleAnnotator|] that starts a new console annotation session.

h4. [ConsoleLogFilter|]

A hook to allow filtering of information that is written to the console log. Unlike [ConsoleAnnotator|] and [ConsoleNote|], this class provides direct access to the underlying Template:OutputStream so it's possible to suppress data, which isn't possible from the other interfaces.

h4. [CrumbIssuer|]

A CrumbIssuer represents an algorithm to generate a nonce value, known as a crumb, to counter cross site request forgery exploits. Crumbs are typically hashes incorporating information that uniquely identifies an agent that sends a request, along with a guarded secret so that the crumb value cannot be forged by a third party.

h4. [Downloadable|]

Represents a periodically updated JSON data file obtained from a remote URL.

h4. [ExtensionFinder|]

Discovers the implementations of an extension point.

h4. [FileSystemProvisioner|]

Prepares and provisions workspaces for [AbstractProject|]s.

h4. [FileSystemProvisionerDescriptor|]

[Descriptor|] for [FileSystemProvisioner|].

h4. [ItemListener|]

Receives notifications about CRUD operations of Template:Item.

h4. [Job|]

A job is an runnable entity under the monitoring of Hudson.

h4. [JobProperty|]

Extensible property of [Job|].

h4. [LabelAtomProperty|]

Extensible property of [LabelAtom|].

h4. [LabelFinder|]

Automatically adds labels to [Node|]s.

h4. [LauncherDecorator|]

Decorates [Launcher|] so that one can intercept executions of commands and alters the command being executed, such as doing this in fakeroot, sudo, pfexec, etc.

h4. [Lifecycle|]

Provides the capability for starting/stopping/restarting/uninstalling Hudson.

h4. [ListViewColumn|]

Extension point for adding a column to [ListView|].

h4. [LoadPredictor|]

Predicts future load to the system, to assist the scheduling decisions

h4. [MailAddressResolver|]

Infers e-mail addresses for the user when none is specified.

h4. [ManagementLink|]

Extension point to add icon to {{[1]}} page.

h4. [MatrixAggregatable|]

[Publisher|] can optionally implement this interface  to perform result aggregation across [MatrixRun|].

h4. [MatrixAggregator|]

Performs the aggregation of [MatrixRun|] results into [MatrixBuild|].

h4. [MyViewsTabBar|]

Extension point for adding a MyViewsTabBar header to Projects [MyViewsProperty|].

h4. [Node|]

Base type of Hudson slaves (although in practice, you probably extend [Slave|] to define a new slave type.)

h4. [NodeMonitor|]

Extension point for managing and monitoring [Node|]s.

h4. [NodeProperty|]

Extensible property of [Node|].

h4. [Notifier|]

[BuildStep|]s that run after the build is completed.

h4. [PageDecorator|]

Participates in the rendering of HTML pages for all pages of Hudson.

h4. [ParameterDefinition|]

Defines a parameter for a build.

h4. [PeriodicWork|]

Extension point to perform a periodic task in Hudson (through Template:Timer.)

h4. [PluginServletFilter|]

Servlet [Filter|] that chains multiple [Filter|]s, provided by plugins

h4. [PluginStrategy|]

Pluggability point for how to create [PluginWrapper|].

h4. [ProcessKiller|]

Extension point that defines more elaborate way of killing processes, such as sudo or pfexec, for [ProcessTree|].

h4. [QueueDecisionHandler|]

Extension point for deciding if particular job should be scheduled or not.

h4. [QueueSorter|]

Singleton extension point for sorting buildable items

h4. [QueueTaskDispatcher|]

Vetos the execution of a task on a node

h4. [Recorder|]

[BuildStep|]s that run after the build is completed.

h4. [RepositoryBrowser|]

Connects Hudson to repository browsers like ViewCVS or FishEye, so that Hudson can generate links to them.

h4. [RestartListener|]

Extension point that allows plugins to veto the restart.

h4. [RetentionStrategy|]

Controls when to take [Computer|] offline, bring it back online, or even to destroy it.

h4. [RootAction|]

Marker interface for actions that are added to [Hudson|].

h4. [Run|]

A particular execution of [Job|].

h4. [RunListener|]

Receives notifications about builds.

h4. [SCM|]

Captures the configuration information in it.

h4. [SCMListener|]

Receives notifications about SCM activities in Hudson.

h4. [SaveableListener|]

Receives notifications about save actions on [Saveable|] objects in Hudson.

h4. [SecurityRealm|]

Pluggable security realm that connects external user database to Hudson.

h4. [Solution|]

Extension point for suggesting solutions for full HUDSON_HOME.

h4. [SubTaskContributor|]

Externally contributes [SubTask|]s to Template:AbstractProject.

h4. [TestDataPublisher|]

Contributes [TestAction|]s to test results.

h4. [TestResultParser|]

Parses test result files and builds in-memory representation of it as Template:TestResult.

h4. [ToolInstallation|]

Formalization of a tool installed in nodes used for builds (examples include things like JDKs, Ants, Mavens, and Groovys)

h4. [ToolInstaller|]

An object which can ensure that a generic [ToolInstallation|] in fact exists on a node.

h4. [ToolLocationTranslator|]

This Hudson-wide extension points can participate in determining the actual node-specific path of the [ToolInstallation|] for the given [Node|].

h4. [ToolProperty|]

Extensible property of [ToolInstallation|].

h4. [TopLevelItem|]

Template:Item that can be directly displayed under [Hudson|].

h4. [TransientProjectActionFactory|]

Extension point for inserting transient [Action|]s into [AbstractProject|]s.

h4. [TransientViewActionFactory|]

Extension point for adding transient [Action|]s to [View|]s.

h4. [Trigger|]

Triggers a [Build|].

h4. [UDPBroadcastFragment|]

Extension point that contributes an XML fragment to the UDP broadcast.

h4. [UpdateCenterConfiguration|]

Strategy object for controlling the update center's behaviors.

h4. [UserNameResolver|]

Finds full name off the user when none is specified.

h4. [UserProperty|]

Extensible property of [User|].

h4. [View|]

Encapsulates the rendering of the list of [TopLevelItem|]s that [Hudson|] owns.

h4. [ViewJobFilter|]

Each ViewJobFilter contributes to or removes from the list of Jobs for a view.

h4. [ViewsTabBar|]

Extension point for adding a ViewsTabBar header to Projects [ListView|].

h4. [Widget|]

Box to be rendered in the side panel.