/******************************************************************************* * * Copyright (c) 2004-2009 Oracle Corporation. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * Kohsuke Kawaguchi, Stephen Connolly * * *******************************************************************************/ package hudson.slaves; import hudson.model.Descriptor; import hudson.model.TaskListener; import hudson.Util; import hudson.Extension; import org.kohsuke.stapler.DataBoundConstructor; /** * {@link ComputerLauncher} via JNLP. * * @author Stephen Connolly * @author Kohsuke Kawaguchi */ public class JNLPLauncher extends ComputerLauncher { /** * If the slave needs to tunnel the connection to the master, specify the * "host:port" here. This can include the special syntax "host:" and ":port" * to indicate the default host/port shall be used. * * <p> Null if no tunneling is necessary. * * @since 1.250 */ public final String tunnel; /** * Additional JVM arguments. Can be null. * * @since 1.297 */ public final String vmargs; @DataBoundConstructor public JNLPLauncher(String tunnel, String vmargs) { this.tunnel = Util.fixEmptyAndTrim(tunnel); this.vmargs = Util.fixEmptyAndTrim(vmargs); } public JNLPLauncher() { this(null, null); } @Override public boolean isLaunchSupported() { return false; } @Override public void launch(SlaveComputer computer, TaskListener listener) { // do nothing as we cannot self start } @Extension public static final Descriptor<ComputerLauncher> DESCRIPTOR = new Descriptor<ComputerLauncher>() { public String getDisplayName() { return Messages.JNLPLauncher_displayName(); } }; }