Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Extension points"
(→AuthorizationStrategy) |
(→ManagementLink) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Currently the following extension points are available. See Javadoc for more details about the contracts: | Currently the following extension points are available. See Javadoc for more details about the contracts: | ||
− | == AdministrativeMonitor == | + | == [http://hudson-ci.org/javadoc/hudson/model/AdministrativeMonitor.html AdministrativeMonitor] == |
− | + | Checks the health of a subsystem of Hudson and if there's something that requires administrator's attention, notify the administrator. | |
== [http://hudson-ci.org/javadoc/hudson/security/AuthorizationStrategy.html AuthorizationStrategy] == | == [http://hudson-ci.org/javadoc/hudson/security/AuthorizationStrategy.html AuthorizationStrategy] == | ||
Line 10: | Line 10: | ||
Controls authorization throughout Hudson. | Controls authorization throughout Hudson. | ||
− | == Axis == | + | == [http://hudson-ci.org/javadoc/hudson/matrix/Axis.html Axis] == |
Configuration axis. | Configuration axis. | ||
− | == BuildWrapper == | + | |
+ | == [http://hudson-ci.org/javadoc/hudson/tasks/BuildWrapper.html BuildWrapper] == | ||
Pluggability point for performing pre/post actions for the build process. | Pluggability point for performing pre/post actions for the build process. | ||
− | == Builder == | + | == [http://hudson-ci.org/javadoc/hudson/tasks/Builder.html Builder] == |
BuildSteps that perform the actual build. | BuildSteps that perform the actual build. | ||
− | == CLICommand == | + | == [http://hudson-ci.org/javadoc/hudson/cli.CLICommand.html CLICommand] == |
Base class for Hudson CLI. | Base class for Hudson CLI. | ||
− | == ChangeLogAnnotator == | + | == [http://hudson-ci.org/javadoc/hudson/scm/ChangeLogAnnotator.html ChangeLogAnnotator] == |
Performs mark up on changelog messages to be displayed. | Performs mark up on changelog messages to be displayed. | ||
− | == Cloud == | + | == [http://hudson-ci.org/javadoc/hudson/slaves/Cloud.html Cloud] == |
− | Creates | + | Creates [http://hudson-ci.org/javadoc/hudson/model/Node.html Node]s to dynamically expand/shrink the slaves attached to Hudson. |
− | == ComputerConnector == | + | == [http://hudson-ci.org/javadoc/hudson/slaves/ComputerConnector.html ComputerConnector] == |
− | Factory of ComputerLauncher. | + | Factory of [http://hudson-ci.org/javadoc/hudson/slaves/ComputerLauncher.html ComputerLauncher]. |
− | == ComputerLauncher == | + | == [http://hudson-ci.org/javadoc/hudson/slaves/ComputerLauncher.html ComputerLauncher] == |
− | Extension point to allow control over how | + | Extension point to allow control over how [http://hudson-ci.org/javadoc/hudson/model/Computer.html Computer]s are "launched", meaning how they get connected to their slave agent program. |
− | == ComputerListener == | + | == [http://hudson-ci.org/javadoc/hudson/slaves/ComputerListener.html ComputerListener] == |
− | Receives notifications about status changes of | + | Receives notifications about status changes of [http://hudson-ci.org/javadoc/hudson/model/Computer.html Computer]s. |
− | == ComputerPinger == | + | == [http://hudson-ci.org/javadoc/hudson/model/ComputerPinger.html ComputerPinger] == |
A way to see if a computer is reachable. | A way to see if a computer is reachable. | ||
− | == ConsoleAnnotationDescriptor == | + | == [http://hudson-ci.org/javadoc/hudson/console/ConsoleAnnotationDescriptor.html ConsoleAnnotationDescriptor] == |
− | Descriptor for ConsoleNote. | + | Descriptor for [http://hudson-ci.org/javadoc/hudson/console/ConsoleNote.html ConsoleNote]. |
− | == ConsoleAnnotatorFactory == | + | == [http://hudson-ci.org/javadoc/hudson/console/ConsoleAnnotatorFactory.html ConsoleAnnotatorFactory] == |
− | Entry point to the ConsoleAnnotator extension point. This class creates a new instance of ConsoleAnnotator that starts a new console annotation session. | + | Entry point to the [http://hudson-ci.org/javadoc/hudson/console/ConsoleAnnotator.html ConsoleAnnotator] extension point. This class creates a new instance of [http://hudson-ci.org/javadoc/hudson/console/ConsoleAnnotator.html ConsoleAnnotator] that starts a new console annotation session. |
− | == ConsoleLogFilter == | + | == [http://hudson-ci.org/javadoc/hudson/console/ConsoleLogFilter.html 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 OutputStream so it's possible to suppress data, which isn't possible from the other interfaces. | + | A hook to allow filtering of information that is written to the console log. Unlike [http://hudson-ci.org/javadoc/hudson/console/ConsoleAnnotator.html ConsoleAnnotator] and [http://hudson-ci.org/javadoc/hudson/console/ConsoleNote.html ConsoleNote], this class provides direct access to the underlying OutputStream so it's possible to suppress data, which isn't possible from the other interfaces. |
− | == CrumbIssuer == | + | == [http://hudson-ci.org/javadoc/hudson/security/csrf/CrumbIssuer.html 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. | 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. | ||
− | == Downloadable == | + | == [http://hudson-ci.org/javadoc/hudson/model/DownloadService.Downloadable.html Downloadable] == |
Represents a periodically updated JSON data file obtained from a remote URL. | Represents a periodically updated JSON data file obtained from a remote URL. | ||
− | == ExtensionFinder == | + | == [http://hudson-ci.org/javadoc/hudson/ExtensionFinder.html ExtensionFinder] == |
Discovers the implementations of an extension point. | Discovers the implementations of an extension point. | ||
− | == FileSystemProvisioner == | + | == [http://hudson-ci.org/javadoc/hudson/FileSystemProvisioner.html FileSystemProvisioner] == |
− | Prepares and provisions workspaces for AbstractProjects. | + | Prepares and provisions workspaces for [http://hudson-ci.org/javadoc/hudson/model/AbstractProject.html AbstractProjects]. |
− | == FileSystemProvisionerDescriptor == | + | == [http://hudson-ci.org/javadoc/hudson/FileSystemProvisionerDescriptor.html FileSystemProvisionerDescriptor] == |
− | Descriptor for FileSystemProvisioner. == | + | [http://hudson-ci.org/javadoc/hudson/model/Descriptor.html Descriptor] for [http://hudson-ci.org/javadoc/hudson/FileSystemProvisioner.html FileSystemProvisioner]. == |
− | == ItemListener | + | == [http://hudson-ci.org/javadoc/hudson/model/listeners/ItemListener.html ItemListener] == |
Receives notifications about CRUD operations of Item. | Receives notifications about CRUD operations of Item. | ||
− | == Job == | + | == [http://hudson-ci.org/javadoc/hudson/model/Job.html Job] == |
A job is an runnable entity under the monitoring of Hudson. | A job is an runnable entity under the monitoring of Hudson. | ||
− | == JobProperty == | + | == [http://hudson-ci.org/javadoc/hudson/model/JobProperty.html JobProperty] == |
− | Extensible property of Job. | + | Extensible property of [http://hudson-ci.org/javadoc/hudson/model/Job.html Job]. |
− | == LabelAtomProperty == | + | == [http://hudson-ci.org/javadoc/hudson/model/labels/LabelAtomProperty.html LabelAtomProperty] == |
− | Extensible property of LabelAtom. | + | Extensible property of [http://hudson-ci.org/javadoc/hudson/model/labels/LabelAtom.html LabelAtom]. |
− | + | ||
− | + | == [http://hudson-ci.org/javadoc/hudson/model/LabelFinder.html LabelFinder] == | |
− | == | + | |
− | 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. | + | Automatically adds labels to [http://hudson-ci.org/javadoc/hudson/model/Node.html Node]s. |
− | == Lifecycle == | + | == [http://hudson-ci.org/javadoc/hudson/LauncherDecorator.html LauncherDecorator] == |
+ | |||
+ | Decorates [http://hudson-ci.org/javadoc/hudson/Launcher.html Launcher] so that one can intercept executions of commands and alters the command being executed, such as doing this in fakeroot, sudo, pfexec, etc. | ||
+ | == [http://hudson-ci.org/javadoc/hudson/lifecycle/Lifecycle.html Lifecycle] == | ||
Provides the capability for starting/stopping/restarting/uninstalling Hudson. | Provides the capability for starting/stopping/restarting/uninstalling Hudson. | ||
− | == ListViewColumn == | + | == [http://hudson-ci.org/javadoc/hudson/views/ListViewColumn.html ListViewColumn] == |
− | Extension point for adding a column to ListView. | + | Extension point for adding a column to [http://hudson-ci.org/javadoc/hudson/model/ListView.html ListView]. |
− | == LoadPredictor == | + | == [http://hudson-ci.org/javadoc/hudson/model/queue/LoadPredictor.html LoadPredictor] == |
Predicts future load to the system, to assist the scheduling decisions | Predicts future load to the system, to assist the scheduling decisions | ||
− | == MailAddressResolver == | + | == [http://hudson-ci.org/javadoc/hudson/tasks/MailAddressResolver.html MailAddressResolver] == |
Infers e-mail addresses for the user when none is specified. | Infers e-mail addresses for the user when none is specified. | ||
− | == ManagementLink == | + | == [http://hudson-ci.org/javadoc/hudson/model/ManagementLink.html ManagementLink] == |
Extension point to add icon to http://server/hudson/manage page. | Extension point to add icon to http://server/hudson/manage page. | ||
+ | |||
== MatrixAggregatable == | == MatrixAggregatable == | ||
Latest revision as of 15:31, 27 August 2013
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 @Extension.
Currently the following extension points are available. See Javadoc for more details about the contracts:
Contents
- 1 AdministrativeMonitor
- 2 AuthorizationStrategy
- 3 Axis
- 4 BuildWrapper
- 5 Builder
- 6 CLICommand
- 7 ChangeLogAnnotator
- 8 Cloud
- 9 ComputerConnector
- 10 ComputerLauncher
- 11 ComputerListener
- 12 ComputerPinger
- 13 ConsoleAnnotationDescriptor
- 14 ConsoleAnnotatorFactory
- 15 ConsoleLogFilter
- 16 CrumbIssuer
- 17 Downloadable
- 18 ExtensionFinder
- 19 FileSystemProvisioner
- 20 FileSystemProvisionerDescriptor
- 21 ItemListener
- 22 Job
- 23 JobProperty
- 24 LabelAtomProperty
- 25 LabelFinder
- 26 LauncherDecorator
- 27 Lifecycle
- 28 ListViewColumn
- 29 LoadPredictor
- 30 MailAddressResolver
- 31 ManagementLink
- 32 MatrixAggregatable
- 33 MatrixAggregator
- 34 MyViewsTabBar
- 35 Node
- 36 NodeMonitor
- 37 NodeProperty
- 38 Notifier
- 39 PageDecorator
- 40 ParameterDefinition
- 41 PeriodicWork
- 42 PluginServletFilter
- 43 PluginStrategy
- 44 ProcessKiller
- 45 QueueDecisionHandler
- 46 QueueSorter
- 47 Recorder
- 48 RepositoryBrowser
- 49 RestartListener
- 50 RetentionStrategy
- 51 RootAction
- 52 Run
- 53 RunListener
- 54 SCM
- 55 SCMListener
- 56 SaveableListener
- 57 SecurityRealm
- 58 Solution
- 59 TestDataPublisher
- 60 TestResultParser
- 61 ToolInstallation
- 62 ToolInstaller
- 63 ToolLocationTranslator
- 64 ToolProperty
- 65 TopLevelItem
- 66 TransientProjectActionFactory
- 67 TransientViewActionFactory
- 68 Trigger
- 69 UDPBroadcastFragment
- 70 UpdateCenterConfiguration
- 71 UserNameResolver
- 72 UserProperty
- 73 View
- 74 ViewJobFilter
- 75 ViewsTabBar
- 76 Widget
AdministrativeMonitor
Checks the health of a subsystem of Hudson and if there's something that requires administrator's attention, notify the administrator.
AuthorizationStrategy
Controls authorization throughout Hudson.
Axis
Configuration axis.
BuildWrapper
Pluggability point for performing pre/post actions for the build process.
Builder
BuildSteps that perform the actual build.
CLICommand
Base class for Hudson CLI.
ChangeLogAnnotator
Performs mark up on changelog messages to be displayed.
Cloud
Creates Nodes to dynamically expand/shrink the slaves attached to Hudson.
ComputerConnector
Factory of ComputerLauncher.
ComputerLauncher
Extension point to allow control over how Computers are "launched", meaning how they get connected to their slave agent program.
ComputerListener
Receives notifications about status changes of Computers.
ComputerPinger
A way to see if a computer is reachable.
ConsoleAnnotationDescriptor
Descriptor for ConsoleNote.
ConsoleAnnotatorFactory
Entry point to the ConsoleAnnotator extension point. This class creates a new instance of ConsoleAnnotator that starts a new console annotation session.
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 OutputStream so it's possible to suppress data, which isn't possible from the other interfaces.
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.
Downloadable
Represents a periodically updated JSON data file obtained from a remote URL.
ExtensionFinder
Discovers the implementations of an extension point.
FileSystemProvisioner
Prepares and provisions workspaces for AbstractProjects.
FileSystemProvisionerDescriptor
Descriptor for FileSystemProvisioner. ==
ItemListener
Receives notifications about CRUD operations of Item.
Job
A job is an runnable entity under the monitoring of Hudson.
JobProperty
Extensible property of Job.
LabelAtomProperty
Extensible property of LabelAtom.
LabelFinder
Automatically adds labels to Nodes.
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.
Lifecycle
Provides the capability for starting/stopping/restarting/uninstalling Hudson.
ListViewColumn
Extension point for adding a column to ListView.
LoadPredictor
Predicts future load to the system, to assist the scheduling decisions
MailAddressResolver
Infers e-mail addresses for the user when none is specified.
ManagementLink
Extension point to add icon to http://server/hudson/manage page.
MatrixAggregatable
Publisher can optionally implement this interface to perform result aggregation across MatrixRun.
MatrixAggregator
Performs the aggregation of MatrixRun results into MatrixBuild.
MyViewsTabBar
Extension point for adding a MyViewsTabBar header to Projects MyViewsProperty.
Node
Base type of Hudson slaves (although in practice, you probably extend Slave to define a new slave type.)
NodeMonitor
Extension point for managing and monitoring Nodes.
NodeProperty
Extensible property of Node.
Notifier
BuildSteps that run after the build is completed.
PageDecorator
Participates in the rendering of HTML pages for all pages of Hudson.
ParameterDefinition
Defines a parameter for a build.
PeriodicWork
Extension point to perform a periodic task in Hudson (through Timer.)
PluginServletFilter
Servlet Filter that chains multiple Filters, provided by plugins
PluginStrategy
Pluggability point for how to create PluginWrapper.
ProcessKiller
Extension point that defines more elaborate way of killing processes, such as sudo or pfexec, for ProcessTree.
QueueDecisionHandler
Extension point for deciding if particular job should be scheduled or not.
QueueSorter
Singleton extension point for sorting buildable items == QueueTaskDispatcher
Vetos the execution of a task on a node
Recorder
BuildSteps that run after the build is completed.
RepositoryBrowser
Connects Hudson to repository browsers like ViewCVS or FishEye, so that Hudson can generate links to them.
RestartListener
Extension point that allows plugins to veto the restart.
RetentionStrategy
Controls when to take Computer offline, bring it back online, or even to destroy it.
RootAction
Marker interface for actions that are added to Hudson.
Run
A particular execution of Job.
RunListener
Receives notifications about builds.
SCM
Captures the configuration information in it.
SCMListener
Receives notifications about SCM activities in Hudson.
SaveableListener
Receives notifications about save actions on Saveable objects in Hudson.
SecurityRealm
Pluggable security realm that connects external user database to Hudson.
Solution
Extension point for suggesting solutions for full HUDSON_HOME. == SubTaskContributor
Externally contributes SubTasks to AbstractProject#getSubTasks().
TestDataPublisher
Contributes TestActions to test results.
TestResultParser
Parses test result files and builds in-memory representation of it as TestResult.
ToolInstallation
Formalization of a tool installed in nodes used for builds (examples include things like JDKs, Ants, Mavens, and Groovys)
ToolInstaller
An object which can ensure that a generic ToolInstallation in fact exists on a node.
ToolLocationTranslator
This Hudson-wide extension points can participate in determining the actual node-specific path of the ToolInstallation for the given Node.
ToolProperty
Extensible property of ToolInstallation.
TopLevelItem
Item that can be directly displayed under Hudson.
TransientProjectActionFactory
Extension point for inserting transient Actions into AbstractProjects.
TransientViewActionFactory
Extension point for adding transient Actions to Views.
Trigger
Triggers a Build.
UDPBroadcastFragment
Extension point that contributes an XML fragment to the UDP broadcast.
UpdateCenterConfiguration
Strategy object for controlling the update center's behaviors.
UserNameResolver
Finds full name off the user when none is specified.
UserProperty
Extensible property of User.
View
Encapsulates the rendering of the list of TopLevelItems that Hudson owns.
ViewJobFilter
Each ViewJobFilter contributes to or removes from the list of Jobs for a view.
ViewsTabBar
Extension point for adding a ViewsTabBar header to Projects ListView.
Widget
Box to be rendered in the side panel.