Merge with trank @ 137446
[official-gcc.git] / libjava / classpath / javax / management / remote / rmi / RMIServer.java
blobd862372ace794ad2949078fb22131468c6783935
1 /* RMIServer.java -- RMI object for connecting to an RMI JMX connector.
2 Copyright (C) 2007 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
38 package javax.management.remote.rmi;
40 import java.io.IOException;
42 import java.rmi.Remote;
43 import java.rmi.RemoteException;
45 /**
46 * RMI interface for obtaining an instance of an
47 * {@link RMIConnection}. An implementation of this
48 * interface exists for each RMI connector.
50 * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
51 * @since 1.5
53 public interface RMIServer
54 extends Remote
57 /**
58 * Returns the version of the RMI connection protocol used
59 * by this server. The returned string takes the form of
60 * <emph>protocol-version implementation-name</emph> where
61 * <emph>protocol-version</emph> is a series of two or more
62 * non-negative integers, separated by a decimal point (.)
63 * (currently {@code 1.0}) and <emph>implementation-name</emph>
64 * is the string {@code "GNU Classpath"} followed by the version
65 * of GNU Classpath in use.
67 * @return the string specified above.
68 * @throws RemoteException if there is a problem with the transfer
69 * of the string via RMI.
71 String getVersion()
72 throws RemoteException;
74 /**
75 * Constructs and returns a new RMI connection using the specified
76 * authentication credentials. Each client calls this method to
77 * obtain a connection to the server.
79 * @param credentials a user-defined object passed to the server
80 * to authenticate the client. May be {@code null}.
81 * @return the new connection.
82 * @throws IOException if the new connection can not be created or
83 * exported, or an error occurs in the RMI transmission.
84 * @throws SecurityException if the client could not be authenticated
85 * correctly using the supplied credientials.
87 RMIConnection newClient(Object credentials)
88 throws IOException;