Package hudson.tools
Class ToolInstaller
- java.lang.Object
-
- hudson.tools.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 genericToolInstallationin fact exists on a node. The properties can be added toToolInstallationusing theInstallSourceProperty. The subclass should have aToolInstallerDescriptor. Aconfig.jellyshould be provided to customize specific fields;<t:label xmlns:t="/hudson/tools"/>to customizelabel.- Since:
- 1.305
- See Also:
- Tool Auto-Installation,
InstallSourceProperty
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classToolInstaller.ToolInstallerEntrystatic classToolInstaller.ToolInstallerList-
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
-
Field Summary
Fields Modifier and Type Field Description protected ToolInstallationtool
-
Constructor Summary
Constructors Modifier Constructor Description protectedToolInstaller(String label)Subclasses should pass these parameters in usingDataBoundConstructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanappliesTo(Node node)Checks whether this installer can be applied to a given node.ToolInstallerDescriptor<?>getDescriptor()Gets the descriptor for this instance.StringgetLabel()Label to limit which nodes this installation can be performed on.abstract FilePathperformInstallation(ToolInstallation tool, Node node, TaskListener log)Ensure that the configured tool is really installed.protected FilePathpreferredLocation(ToolInstallation tool, Node node)Convenience method to find a location to install a tool.protected voidsetTool(ToolInstallation t)Called during the initialization to tellToolInstallerwhatToolInstallationit is configured against.
-
-
-
Field Detail
-
tool
protected transient ToolInstallation tool
-
-
Constructor Detail
-
ToolInstaller
protected ToolInstaller(String label)
Subclasses should pass these parameters in usingDataBoundConstructor.
-
-
Method Detail
-
setTool
protected void setTool(ToolInstallation t)
Called during the initialization to tellToolInstallerwhatToolInstallationit 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 ifappliesTo(Node)are true.- Parameters:
tool- the tool being installednode- the computer on which to install the toollog- any status messages produced by the installation go here- Returns:
- the (directory) path at which the tool can be found,
typically coming from
preferredLocation(hudson.tools.ToolInstallation, hudson.model.Node) - Throws:
IOException- if installation failsInterruptedException- 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.- Parameters:
tool- the tool being installednode- the computer on which to install the tool- Returns:
ToolInstallation.getHome()if specified, else a path within the local Jenkins work area named according toToolInstallation.getName()- Since:
- 1.310
-
getDescriptor
public ToolInstallerDescriptor<?> getDescriptor()
Description copied from interface:DescribableGets the descriptor for this instance.Descriptoris a singleton for every concreteDescribableimplementation, so ifa.getClass() == b.getClass()then by defaulta.getDescriptor() == b.getDescriptor()as well. (In rare cases a single implementation class may be used for instances with distinct descriptors.)- Specified by:
getDescriptorin interfaceDescribable<ToolInstaller>
-
-