javax.management

Class MBeanServerFactory

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:

  1. If the property has no value, then an instance of {@link MBeanServerBuilder} is used.
  2. If a value is given, then:
    1. The class is loaded using Thread.currentThread().getContextClassLoader(), or, if this is null, by Class.forName().
    2. 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.
  3. The value is checked on each successive request for a server. If it differs from the class of the existing instance of {@link MBeanServerBuilder}, then the value is used to create a new instance.
Method Summary
static MBeanServercreateMBeanServer()
Returns a server implementation using the default domain name of "DefaultDomain".
static MBeanServercreateMBeanServer(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 ClassLoaderRepositorygetClassLoaderRepository(MBeanServer server)
Returns the class loader repository used by the specified server.
static MBeanServernewMBeanServer()
Returns a server implementation using the default domain name of "DefaultDomain".
static MBeanServernewMBeanServer(String domain)
Returns a server implementation using the default domain name given, or "DefaultDomain" if this is null.
static voidreleaseMBeanServer(MBeanServer server)
Removes the reference to the specified server, thus allowing it to be garbage collected.

Method Detail

createMBeanServer

public static MBeanServer createMBeanServer()
Returns a server implementation using the default domain name of "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

createMBeanServer

public static MBeanServer createMBeanServer(String domain)
Returns a server implementation using the default domain name given, or "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}.

findMBeanServer

public static ArrayList<MBeanServer> findMBeanServer(String id)
Returns the specified server, or, if 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")

getClassLoaderRepository

public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
Returns the class loader repository used by the specified server. This is equivalent to calling {@link MBeanServer#getClassLoaderRepository()} on the given server.

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

newMBeanServer

public static MBeanServer newMBeanServer()
Returns a server implementation using the default domain name of "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

newMBeanServer

public static MBeanServer newMBeanServer(String domain)
Returns a server implementation using the default domain name given, or "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}.

releaseMBeanServer

public static void releaseMBeanServer(MBeanServer server)
Removes the reference to the specified server, thus allowing it to be garbage collected.

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