public abstract class ToolInstallation extends AbstractDescribableImpl<ToolInstallation> implements Serializable, ExtensionPoint
You can define such a concept in your plugin entirely on your own, without extending from this class, but choosing this class as a base class has several benefits:
Implementations of this class are strongly encouraged to also implement NodeSpecific
(by using translateFor(Node, TaskListener)) and
EnvironmentSpecific (by using EnvVars.expand(String).)
Callers such as build steps can then use translate(AbstractBuild,TaskListener)
and cast to the desired ToolInstallation subtype, or just call
NodeSpecific.forNode(hudson.model.Node, hudson.model.TaskListener) and EnvironmentSpecific.forEnvironment(hudson.EnvVars) directly.
To contribute an extension point, put Extension on your ToolDescriptor class.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
ToolInstallation.ToolConverter
Subclasses can extend this for data migration from old field storing home directory.
|
ExtensionPoint.LegacyInstancesAreScopedToHudson| Constructor and Description |
|---|
ToolInstallation(String name,
String home)
Deprecated.
as of 1.302. Use
ToolInstallation(String, String, List) |
ToolInstallation(String name,
String home,
List<? extends ToolProperty<?>> properties) |
| Modifier and Type | Method and Description |
|---|---|
static DescriptorExtensionList<ToolInstallation,ToolDescriptor<?>> |
all()
Returns all the registered
ToolDescriptors. |
void |
buildEnvVars(EnvVars env)
Expose any environment variables that this tool installation wants the build to see.
|
String |
getHome()
Gets the home directory of this tool.
|
String |
getName()
Gets the human readable name that identifies this tool among other
ToolInstallations of the same kind. |
DescribableList<ToolProperty<?>,ToolPropertyDescriptor> |
getProperties() |
protected Object |
readResolve()
Invoked by XStream when this object is read into memory.
|
String |
toString() |
ToolInstallation |
translate(AbstractBuild<?,?> buildInProgress,
TaskListener listener)
Convenient version of
translate(Node, EnvVars, TaskListener) that just takes a build object in progress. |
ToolInstallation |
translate(Node node,
EnvVars envs,
TaskListener listener)
Performs a necessary variable/environment/context expansion.
|
protected String |
translateFor(Node node,
TaskListener log)
Finds a tool on a node.
|
getDescriptor@Deprecated public ToolInstallation(String name, String home)
ToolInstallation(String, String, List)public ToolInstallation(String name, String home, List<? extends ToolProperty<?>> properties)
public String getName()
ToolInstallations of the same kind.@CheckForNull public String getHome()
translate(Node, EnvVars, TaskListener), e.g. if unavailable on master)public void buildEnvVars(EnvVars env)
To add entry to PATH, do envVars.put("PATH+XYZ",path) where 'XYZ' is something unique.
Variable names of the form 'A+B' is interpreted as adding the value to the existing PATH.
public DescribableList<ToolProperty<?>,ToolPropertyDescriptor> getProperties()
public ToolInstallation translate(@Nonnull Node node, EnvVars envs, TaskListener listener) throws IOException, InterruptedException
node - Node that this tool is used in.envs - Set of environment variables to expand any references.listener - Any lengthy operation (such as auto-installation) will report its progress here.ToolInstallation object that is fully specialized.IOExceptionInterruptedExceptionNodeSpecific,
EnvironmentSpecificpublic ToolInstallation translate(AbstractBuild<?,?> buildInProgress, TaskListener listener) throws IOException, InterruptedException
translate(Node, EnvVars, TaskListener) that just takes a build object in progress.IOExceptionInterruptedExceptionprotected String translateFor(Node node, TaskListener log) throws IOException, InterruptedException
ToolLocationTranslators.
Otherwise returns installation.getHome().
This is the core logic behind NodeSpecific.forNode(Node, TaskListener) for ToolInstallation,
and meant to be used by the forNode implementations.
IOExceptionInterruptedExceptionprotected Object readResolve()
public static DescriptorExtensionList<ToolInstallation,ToolDescriptor<?>> all()
ToolDescriptors.Copyright © 2019. All rights reserved.