Package jenkins
Class AgentProtocol
java.lang.Object
jenkins.AgentProtocol
- All Implemented Interfaces:
ExtensionPoint
- Direct Known Subclasses:
JnlpSlaveAgentProtocol4
,TcpSlaveAgentListener.PingAgentProtocol
Pluggable Jenkins TCP agent protocol handler called from
TcpSlaveAgentListener
.
To register your extension, put Extension
annotation on your subtype.
Implementations of this extension point is singleton, and its handle(Socket)
method
gets invoked concurrently whenever a new connection comes in.
Extending UI
- description.jelly
- Optional protocol description
- deprecationCause.jelly
- Optional. If the protocol is marked as
isDeprecated()
, clarifies the deprecation reason and provides extra documentation links
- Since:
- 1.467
- Author:
- Kohsuke Kawaguchi
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ExtensionList<AgentProtocol>
all()
Returns all the registeredAgentProtocol
s.Returns the human readable protocol display name.abstract String
getName()
Protocol name.abstract void
Called by the connection handling thread to execute the protocol.boolean
Checks if the protocol is deprecated.boolean
isOptIn()
Allow experimentalAgentProtocol
implementations to declare being opt-in.boolean
Allow essentialAgentProtocol
implementations (basicallyTcpSlaveAgentListener.PingAgentProtocol
) to be always enabled.static AgentProtocol
-
Constructor Details
-
AgentProtocol
public AgentProtocol()
-
-
Method Details
-
isOptIn
public boolean isOptIn()Allow experimentalAgentProtocol
implementations to declare being opt-in. Note thatJenkins.setAgentProtocols(Set)
only records the protocols where the admin has made a conscious decision thus:- if a protocol is opt-in, it records the admin enabling it
- if a protocol is opt-out, it records the admin disabling it
opt-in -> opt-out -> opt-in
. Implementations should never flip-flop:opt-in -> opt-out -> opt-in -> opt-out
as that will basically clear any preference that an admin has set. This latter restriction should be ok as we only ever will be adding new protocols and retiring old ones.- Returns:
true
if the protocol requires explicit opt-in.- Since:
- 2.16
- See Also:
-
isRequired
public boolean isRequired()Allow essentialAgentProtocol
implementations (basicallyTcpSlaveAgentListener.PingAgentProtocol
) to be always enabled.- Returns:
true
if the protocol can never be disabled.- Since:
- 2.16
-
isDeprecated
public boolean isDeprecated()Checks if the protocol is deprecated.- Since:
- 2.75
-
getName
Protocol name. This is a short string that consists of printable ASCII chars. Sent by the client to select the protocol.- Returns:
- null to be disabled. This is useful for avoiding getting used until the protocol is properly configured.
-
getDisplayName
Returns the human readable protocol display name.- Returns:
- the human readable protocol display name.
- Since:
- 2.16
-
handle
Called by the connection handling thread to execute the protocol.- Throws:
IOException
InterruptedException
-
all
Returns all the registeredAgentProtocol
s. -
of
-