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")