File D:\maven-qcr-plugin-testsunitaires\qcr4java\jenkins-master\target\site\qc\cli\src\main\java\hudson\cli\CliEntryPoint.java.html

1 /*
2 * The MIT License
3 *
4 * Copyright (c) 2004-2009, Sun Microsystems, Inc.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 */
24 package hudson.cli;
25
26 import hudson.remoting.Pipe;
27
28 import java.io.OutputStream;
29 import java.io.InputStream;
30 import java.util.List;
31 import java.util.Locale;
32
33 /**
34 * Remotable interface for CLI entry point on the server side.
35 *
36 * @author Kohsuke Kawaguchi
37 */
38 public interface CliEntryPoint {
39 /**
40 * Just like the static main method.
41 *
42 * @param locale
43 * Locale of this client.
44 */
45 int main(List<String> args, Locale locale, InputStream stdin, OutputStream stdout, OutputStream stderr);
46
47 /**
48 * Does the named command exist?
49 */
50 boolean hasCommand(String name);
51
52 /**
53 * Returns {@link #VERSION}, so that the client and the server can detect version incompatibility
54 * gracefully.
55 */
56 int protocolVersion();
57
58 /**
59 * Initiates authentication out of band.
60 * <p>
61 * This method starts two-way byte channel that allows the client and the server to perform authentication.
62 * The current supported implementation is based on SSH public key authentication that mutually authenticates
63 * clients and servers.
64 *
65 * @param protocol
66 * Currently only "ssh" is supported.
67 * @throws UnsupportedOperationException
68 * If the specified protocol is not supported by the server.
69 */
70 void authenticate(String protocol, Pipe c2s, Pipe s2c);
71
72 int VERSION = 1;
73 }
74