javax.management
public class MBeanServerFactory extends Object
Creates and maintains a set of {@link MBeanServer} instances.
Server instances, as of JMX 1.2, are created using a subclass
of {@link MBeanServerBuilder}. The exact class used is controlled
by the property javax.management.builder.initial,
and allows the instances created by {@link MBeanServerBuilder}
to be wrapped, thus providing additional functionality.
The property is used as follows:
Thread.currentThread().getContextClassLoader(), or,
if this is null, by Class.forName().Class.newInstance() is used to create an instance
of the class. The class must be public and have a public empty
constructor. If an exception is thrown, it is propogated as
a {@link JMRuntimeException} and no new server instances may be
created until the property is set to a valid value.| Method Summary | |
|---|---|
| static MBeanServer | createMBeanServer()
Returns a server implementation using the default domain name
of "DefaultDomain". |
| static MBeanServer | createMBeanServer(String domain)
Returns a server implementation using the default domain name
given, or "DefaultDomain" if this is null.
|
| static ArrayList<MBeanServer> | findMBeanServer(String id)
Returns the specified server, or, if id is null,
a list of all registered servers. |
| static ClassLoaderRepository | getClassLoaderRepository(MBeanServer server)
Returns the class loader repository used by the specified server.
|
| static MBeanServer | newMBeanServer()
Returns a server implementation using the default domain name
of "DefaultDomain". |
| static MBeanServer | newMBeanServer(String domain)
Returns a server implementation using the default domain name
given, or "DefaultDomain" if this is null.
|
| static void | releaseMBeanServer(MBeanServer server)
Removes the reference to the specified server, thus allowing it to
be garbage collected.
|
"DefaultDomain". The default domain name is
used when the domain name specified by the user is nullnull value.
Returns: a new {@link MBeanServer} instance.
Throws: SecurityException if a security manager exists and the
caller's permissions don't imply {@link
MBeanServerPermission(String)}("createMBeanServer") JMRuntimeException if the property
javax.management.builder.initial
exists but names a class which either can not be
instantiated or provides an implementation that returns
null from either
{@link MBeanServerBuilder#newMBeanServerDelegate()}
or {@link MBeanServerBuilder#newMBeanServer()} ClassCastException if the property
javax.management.builder.initial
exists but names a class which is not a subclass
of {@link MBeanServerBuilder}.
See Also: createMBeanServer
"DefaultDomain" if this is null.
The default domain name is used when the domain name specified by
the user is nullParameters: domain the default domain name of the server.
Returns: a new {@link MBeanServer} instance.
Throws: SecurityException if a security manager exists and the
caller's permissions don't imply {@link
MBeanServerPermission(String)}("createMBeanServer") JMRuntimeException if the property
javax.management.builder.initial
exists but names a class which either can not be
instantiated or provides an implementation that returns
null from either
{@link MBeanServerBuilder#newMBeanServerDelegate()}
or {@link MBeanServerBuilder#newMBeanServer()} ClassCastException if the property
javax.management.builder.initial
exists but names a class which is not a subclass
of {@link MBeanServerBuilder}.
id is null,
a list of all registered servers. A registered server is one that
was created using {@link #createMBeanServer()} or
{@link #createMBeanServer(String)} and has not yet been released
using {@link releaseMBeanServer(MBeanServer)}.
Parameters: id the id of the server to retrieve, or null
to return all servers.
Returns: a list of {@link MBeanServer}s.
Throws: SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanServerPermission(String)}("findMBeanServer")
Parameters: server the server whose class loader repository should be retrieved.
Throws: NullPointerException if server is null. SecurityException if a security manager exists and the
caller's permissions don't imply {@link
MBeanPermission(String,String,ObjectName,String)
MBeanPermission(null, null, null,
"getClassLoaderRepository")
"DefaultDomain". The default domain name is
used when the domain name specified by the user is nullnull value.
Returns: a new {@link MBeanServer} instance.
Throws: SecurityException if a security manager exists and the
caller's permissions don't imply {@link
MBeanServerPermission(String)}("newMBeanServer") JMRuntimeException if the property
javax.management.builder.initial
exists but names a class which either can not be
instantiated or provides an implementation that returns
null from either
{@link MBeanServerBuilder#newMBeanServerDelegate()}
or {@link MBeanServerBuilder#newMBeanServer()} ClassCastException if the property
javax.management.builder.initial
exists but names a class which is not a subclass
of {@link MBeanServerBuilder}.
See Also: newMBeanServer
"DefaultDomain" if this is null.
The default domain name is used when the domain name specified by
the user is nullParameters: domain the default domain name of the server.
Returns: a new {@link MBeanServer} instance.
Throws: SecurityException if a security manager exists and the
caller's permissions don't imply {@link
MBeanServerPermission(String)}("newMBeanServer") JMRuntimeException if the property
javax.management.builder.initial
exists but names a class which either can not be
instantiated or provides an implementation that returns
null from either
{@link MBeanServerBuilder#newMBeanServerDelegate()}
or {@link MBeanServerBuilder#newMBeanServer()} ClassCastException if the property
javax.management.builder.initial
exists but names a class which is not a subclass
of {@link MBeanServerBuilder}.
Parameters: server the server to remove.
Throws: IllegalArgumentException if a reference to the server is not held (i.e. it wasn't created by {@link #createMBeanServer(String)} or this method has already been called on it. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanServerPermission(String)}("releaseMBeanServer")