Class ToolInstaller

All Implemented Interfaces:
ExtensionPoint, Describable<ToolInstaller>
Direct Known Subclasses:
AbstractCommandInstaller, DownloadFromUrlInstaller, ZipExtractionInstaller

public abstract class ToolInstaller extends Object implements Describable<ToolInstaller>, ExtensionPoint
An object which can ensure that a generic ToolInstallation in fact exists on a node. The properties can be added to ToolInstallation using the InstallSourceProperty. The subclass should have a ToolInstallerDescriptor. A config.jelly should be provided to customize specific fields; <t:label xmlns:t="/hudson/tools"/> to customize label.
See Also:
  • Field Details

  • Constructor Details

    • ToolInstaller

      protected ToolInstaller(String label)
      Subclasses should pass these parameters in using DataBoundConstructor.
  • Method Details

    • setTool

      protected void setTool(ToolInstallation t)
      Called during the initialization to tell ToolInstaller what ToolInstallation it is configured against.
    • getLabel

      public final String getLabel()
      Label to limit which nodes this installation can be performed on. Can be null to not impose a limit.
    • appliesTo

      public boolean appliesTo(Node node)
      Checks whether this installer can be applied to a given node. (By default, just checks the label.)
    • performInstallation

      public abstract FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException
      Ensure that the configured tool is really installed. If it is already installed, do nothing. Called only if appliesTo(Node) are true.
      tool - the tool being installed
      node - the computer on which to install the tool
      log - any status messages produced by the installation go here
      the (directory) path at which the tool can be found, typically coming from preferredLocation(, hudson.model.Node)
      IOException - if installation fails
      InterruptedException - if communication with a agent is interrupted
    • preferredLocation

      protected final FilePath preferredLocation(ToolInstallation tool, Node node)
      Convenience method to find a location to install a tool.
      tool - the tool being installed
      node - the computer on which to install the tool
      ToolInstallation.getHome() if specified, else a path within the local Jenkins work area named according to ToolInstallation.getName()
    • getDescriptor

      public ToolInstallerDescriptor<?> getDescriptor()
      Description copied from interface: Describable
      Gets the descriptor for this instance.

      Descriptor is a singleton for every concrete Describable implementation, so if a.getClass() == b.getClass() then by default a.getDescriptor() == b.getDescriptor() as well. (In rare cases a single implementation class may be used for instances with distinct descriptors.)

      Specified by:
      getDescriptor in interface Describable<ToolInstaller>