From 3a4ba01622076d399adc5975ff6d169af50b141c Mon Sep 17 00:00:00 2001 From: Stephen Connolly Date: Wed, 27 Jul 2016 15:41:12 +0100 Subject: [PATCH] [FIXED JENKINS-36996] Hide the Java Web Start launcher when the TCP agent port is disabled --- .../main/java/hudson/slaves/JNLPLauncher.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index 37218e4fac..a58242b3d5 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -23,10 +23,13 @@ */ package hudson.slaves; +import hudson.Extension; +import hudson.Util; import hudson.model.Descriptor; +import hudson.model.DescriptorVisibilityFilter; import hudson.model.TaskListener; -import hudson.Util; -import hudson.Extension; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; @@ -94,4 +97,28 @@ public class JNLPLauncher extends ComputerLauncher { } }; + /** + * Hides the JNLP launcher when the JNLP agent port is not enabled. + * @since FIXME + */ + @Extension + public static class DescriptorVisibilityFilterImpl extends DescriptorVisibilityFilter { + + /** + * {@inheritDoc} + */ + @Override + public boolean filter(@CheckForNull Object context, @Nonnull Descriptor descriptor) { + return descriptor.clazz != JNLPLauncher.class || Jenkins.getInstance().getTcpSlaveAgentListener() != null; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean filterType(@Nonnull Class contextClass, @Nonnull Descriptor descriptor) { + return descriptor.clazz != JNLPLauncher.class || Jenkins.getInstance().getTcpSlaveAgentListener() != null; + } + } + } -- GitLab