public abstract class ComputerLauncherFilter extends ComputerLauncher
ComputerLauncher filter that can be used as a base class for decorators.
Using this class also protects you from method additions in ComputerLauncher,
since these two classes are updated in sync.
SlaveComputer.grabLauncher(Node)ExtensionPoint.LegacyInstancesAreScopedToHudson| Modifier and Type | Field and Description |
|---|---|
protected ComputerLauncher |
core |
LIST| Constructor and Description |
|---|
ComputerLauncherFilter(ComputerLauncher core) |
| Modifier and Type | Method and Description |
|---|---|
void |
afterDisconnect(SlaveComputer computer,
TaskListener listener)
Allows the
ComputerLauncher to tidy-up after a disconnect. |
void |
beforeDisconnect(SlaveComputer computer,
TaskListener listener)
Allows the
ComputerLauncher to prepare for a disconnect. |
ComputerLauncher |
getCore()
Returns the delegation target.
|
Descriptor<ComputerLauncher> |
getDescriptor()
By default looks for a nested class (conventionally named
DescriptorImpl) implementing Descriptor and marked with Extension. |
boolean |
isLaunchSupported()
Returns true if this
ComputerLauncher supports
programatic launch of the slave agent in the target Computer. |
void |
launch(SlaveComputer computer,
TaskListener listener)
Launches the slave agent for the given
Computer. |
afterDisconnect, beforeDisconnect, checkJavaVersion, launchprotected volatile ComputerLauncher core
public ComputerLauncherFilter(ComputerLauncher core)
public ComputerLauncher getCore()
public boolean isLaunchSupported()
ComputerLauncherComputerLauncher supports
programatic launch of the slave agent in the target Computer.isLaunchSupported in class ComputerLauncherpublic void launch(SlaveComputer computer, TaskListener listener) throws IOException, InterruptedException
ComputerLauncherComputer.
If the slave agent is launched successfully, SlaveComputer.setChannel(InputStream, OutputStream, TaskListener, Channel.Listener)
should be invoked in the end to notify Hudson of the established connection.
The operation could also fail, in which case there's no need to make any callback notification,
(except to notify the user of the failure through StreamTaskListener.)
Also note that the normal return of this method call does not necessarily signify a successful launch.
If someone programmatically calls this method and wants to find out if the launch was a success,
use Computer.isOnline() at the end.
This method must operate synchronously. Asynchrony is provided by Computer.connect(boolean) and
its correct operation depends on this.
launch in class ComputerLauncherlistener - The progress of the launch, as well as any error, should be sent to this listener.IOException - if the method throws an IOException or InterruptedException, the launch was considered
a failure and the stack trace is reported into the listener. This handling is just so that the implementation
of this method doesn't have to dilligently catch those exceptions.InterruptedExceptionpublic void afterDisconnect(SlaveComputer computer, TaskListener listener)
ComputerLauncherComputerLauncher to tidy-up after a disconnect.
This method is invoked after the Channel to this computer is terminated.
Disconnect operation is performed asynchronously, so there's no guarantee
that the corresponding SlaveComputer exists for the duration of the
operation.
afterDisconnect in class ComputerLauncherpublic void beforeDisconnect(SlaveComputer computer, TaskListener listener)
ComputerLauncherComputerLauncher to prepare for a disconnect.
This method is invoked before the Channel to this computer is terminated,
thus the channel is still accessible from SlaveComputer.getChannel().
If the channel is terminated unexpectedly, this method will not be invoked,
as the channel is already gone.
Disconnect operation is performed asynchronously, so there's no guarantee
that the corresponding SlaveComputer exists for the duration of the
operation.
beforeDisconnect in class ComputerLauncherpublic Descriptor<ComputerLauncher> getDescriptor()
AbstractDescribableImplDescriptorImpl) implementing Descriptor and marked with Extension.
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.)
getDescriptor in interface Describable<ComputerLauncher>getDescriptor in class AbstractDescribableImpl<ComputerLauncher>Copyright © 2019. All rights reserved.