hudson.tools
Class ToolInstaller

java.lang.Object
  extended by hudson.tools.ToolInstaller
All Implemented Interfaces:
ExtensionPoint, Describable<ToolInstaller>
Direct Known Subclasses:
CommandInstaller, DownloadFromUrlInstaller, JDKInstaller, 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 subclass should have a ToolInstallerDescriptor. A config.jelly should be provided to customize specific fields; <t:label xmlns:t="/hudson/tools"/> to customize label.

Since:
1.305
See Also:
Tool Auto-Installation

Nested Class Summary
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
protected  ToolInstallation tool
           
 
Constructor Summary
protected ToolInstaller(String label)
          Subclasses should pass these parameters in using DataBoundConstructor.
 
Method Summary
 boolean appliesTo(Node node)
          Checks whether this installer can be applied to a given node.
 ToolInstallerDescriptor<?> getDescriptor()
          Gets the descriptor for this instance.
 String getLabel()
          Label to limit which nodes this installation can be performed on.
abstract  FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log)
          Ensure that the configured tool is really installed.
protected  FilePath preferredLocation(ToolInstallation tool, Node node)
          Convenience method to find a location to install a tool.
protected  void setTool(ToolInstallation t)
          Called during the initialization to tell ToolInstaller what ToolInstallation it is configured against.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tool

protected transient ToolInstallation tool
Constructor Detail

ToolInstaller

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

Method Detail

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.

Parameters:
tool - the tool being installed
node - the computer on which to install the tool
log - 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 fails
InterruptedException - if communication with a slave 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 installed
node - the computer on which to install the tool
Returns:
ToolInstallation.getHome() if specified, else a path within the local Jenkins work area named according to ToolInstallation.getName()
Since:
1.310

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 a.getDescriptor()==b.getDescriptor() must hold.

Specified by:
getDescriptor in interface Describable<ToolInstaller>


Copyright © 2004-2013. All Rights Reserved.