blob: 67fd93484b2445f8748a29e6632a07e85f8e9d55 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26package javax.management.remote;
27
28import java.io.IOException;
29import java.util.Map;
30
31import javax.management.MBeanServer;
32
33/**
34 * <p>A provider for creating JMX API connector servers using a given
35 * protocol. Instances of this interface are created by {@link
36 * JMXConnectorServerFactory} as part of its {@link
37 * JMXConnectorServerFactory#newJMXConnectorServer(JMXServiceURL,Map,MBeanServer)
38 * newJMXConnectorServer} method.</p>
39 *
40 * @since 1.5
41 */
42public interface JMXConnectorServerProvider {
43 /**
44 * <p>Creates a new connector server at the given address. Each
45 * successful call to this method produces a different
46 * <code>JMXConnectorServer</code> object.</p>
47 *
48 * @param serviceURL the address of the new connector server. The
49 * actual address of the new connector server, as returned by its
50 * {@link JMXConnectorServer#getAddress() getAddress} method, will
51 * not necessarily be exactly the same. For example, it might
52 * include a port number if the original address did not.
53 *
54 * @param environment a read-only Map containing named attributes
55 * to control the new connector server's behavior. Keys in this
56 * map must be Strings. The appropriate type of each associated
57 * value depends on the attribute.
58 *
59 * @param mbeanServer the MBean server that this connector server
60 * is attached to. Null if this connector server will be attached
61 * to an MBean server by being registered in it.
62 *
63 * @return a <code>JMXConnectorServer</code> representing the new
64 * connector server. Each successful call to this method produces
65 * a different object.
66 *
67 * @exception NullPointerException if <code>serviceURL</code> or
68 * <code>environment</code> is null.
69 *
70 * @exception IOException It is recommended for a provider
71 * implementation to throw {@code MalformedURLException} if the
72 * protocol in the {@code serviceURL} is not recognized by this
73 * provider, {@code JMXProviderException} if this is a provider
74 * for the protocol in {@code serviceURL} but it cannot be used
75 * for some reason or any other {@code IOException} if the
76 * connector server cannot be created.
77 */
78 public JMXConnectorServer newJMXConnectorServer(JMXServiceURL serviceURL,
79 Map<String,?> environment,
80 MBeanServer mbeanServer)
81 throws IOException;
82}