javax.management

Interface MBeanServer

public interface MBeanServer extends MBeanServerConnection

This interface represents a server for management beans, providing facilities for the creation, registration and removal of such beans. This interface is central to the Java management architecture. Users do not usually implement this class. Instead, implementations of this class may be obtained using an {@link MBeanServerFactory}.

Registering a bean with the server makes its attributes and operations accessible via the server. Only JMX compliant beans may be registered with the server. When a bean is registered or unregistered, an {@link MBeanServerNotification} is emitted by the server's {@link MBeanServerDelegate}. Listeners may be registered with this bean in order to obtain such notifications. It has the {@link ObjectName} JMImplementation:type=MBeanServerDelegate.

Security checks are applied on the methods of the server, as detailed below, if it is obtained using the {@link MBeanServerFactory#createMBeanServer()} or {@link MBeanServerFactory#newMBeanServer()} methods and {@link System.getSecurityManager()} returns a non-null value. If a check fails, a {@link SecurityException} is thrown. Note than the class name used in the exception is that of the bean, and thus, as a result, an {@link InstanceNotFoundException} precludes these security checks, due to the class name that would be used in the exception being unavailable.

Since: 1.5

Method Summary
voidaddNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object passback)
Registers the supplied listener with the specified management bean.
voidaddNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object passback)

Registers the supplied listener with the specified management bean.

ObjectInstancecreateMBean(String className, ObjectName name)

Instantiates a new instance of the specified management bean using the default constructor and registers it with the server under the supplied name.

ObjectInstancecreateMBean(String className, ObjectName name, Object[] params, String[] sig)

Instantiates a new instance of the specified management bean using the given constructor and registers it with the server under the supplied name.

ObjectInstancecreateMBean(String className, ObjectName name, ObjectName loaderName)

Instantiates a new instance of the specified management bean using the default constructor and registers it with the server under the supplied name.

ObjectInstancecreateMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] sig)

Instantiates a new instance of the specified management bean using the given constructor and registers it with the server under the supplied name.

ObjectInputStreamdeserialize(ObjectName name, byte[] data)
Deserializes a byte array using the class loader of the specified management bean as its context.
ObjectInputStreamdeserialize(String name, byte[] data)
Deserializes a byte array using the same class loader for its context as was used to load the given class.
ObjectInputStreamdeserialize(String name, ObjectName loader, byte[] data)
Deserializes a byte array using the same class loader for its context as was used to load the given class.
ObjectgetAttribute(ObjectName bean, String name)
Returns the value of the supplied attribute from the specified management bean.
AttributeListgetAttributes(ObjectName bean, String[] names)
Returns the values of the named attributes from the specified management bean.
ClassLoadergetClassLoader(ObjectName name)
Returns the specified class loader.
ClassLoadergetClassLoaderFor(ObjectName name)
Returns the class loader of the specified management bean.
ClassLoaderRepositorygetClassLoaderRepository()
Returns the class loader repository used by this server.
StringgetDefaultDomain()
Returns the default domain this server applies to beans that have no specified domain.
String[]getDomains()
Returns an array containing all the domains used by beans registered with this server.
IntegergetMBeanCount()
Returns the number of management beans registered with this server.
MBeanInfogetMBeanInfo(ObjectName name)
Returns information on the given management bean.
ObjectInstancegetObjectInstance(ObjectName name)
Returns the {@link ObjectInstance} created for the specified management bean on registration.
Objectinstantiate(String name)

Creates an instance of the specified class using the list of class loaders from the {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}.

Objectinstantiate(String name, Object[] params, String[] sig)
Creates an instance of the specified class using the list of class loaders from the {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}.
Objectinstantiate(String name, ObjectName loaderName)

Creates an instance of the specified class using the supplied class loader.

Objectinstantiate(String name, ObjectName loaderName, Object[] params, String[] sig)
Creates an instance of the specified class using the supplied class loader.
Objectinvoke(ObjectName bean, String name, Object[] params, String[] sig)
Invokes the supplied operation on the specified management bean.
booleanisInstanceOf(ObjectName name, String className)

Returns true if the specified management bean is an instance of the supplied class.

booleanisRegistered(ObjectName name)
Returns true if the specified management bean is registered with the server.
Set<ObjectInstance>queryMBeans(ObjectName name, QueryExp query)

Returns a set of {@link ObjectInstance}s matching the specified criteria.

Set<ObjectName>queryNames(ObjectName name, QueryExp query)

Returns a set of {@link ObjectName}s matching the specified criteria.

ObjectInstanceregisterMBean(Object obj, ObjectName name)
Registers the supplied instance with the server, using the specified {@link ObjectName}.
voidremoveNotificationListener(ObjectName name, NotificationListener listener)
Removes the specified listener from the list of recipients of notifications from the supplied bean.
voidremoveNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object passback)
Removes the specified listener from the list of recipients of notifications from the supplied bean.
voidremoveNotificationListener(ObjectName name, ObjectName listener)
Removes the specified listener from the list of recipients of notifications from the supplied bean.
voidremoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object passback)
Removes the specified listener from the list of recipients of notifications from the supplied bean.
voidsetAttribute(ObjectName name, Attribute attribute)
Sets the value of the specified attribute of the supplied management bean.
AttributeListsetAttributes(ObjectName name, AttributeList attributes)
Sets the value of each of the specified attributes of the supplied management bean to that specified by the {@link Attribute} object.
voidunregisterMBean(ObjectName name)
Unregisters the specified management bean.

Method Detail

addNotificationListener

public void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object passback)
Registers the supplied listener with the specified management bean. Notifications emitted by the management bean are forwarded to the listener via the server, which will convert any MBean references in the source to portable {@link ObjectName} instances. The notification is otherwise unchanged.

Parameters: name the name of the management bean with which the listener should be registered. listener the listener which will handle notifications from the bean. filter the filter to apply to incoming notifications, or null if no filtering should be applied. passback an object to be passed to the listener when a notification is emitted.

Throws: InstanceNotFoundException if the name of the management bean could not be resolved. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "addNotificationListener")}.

See Also: MBeanServer MBeanServer NotificationBroadcaster

addNotificationListener

public void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object passback)

Registers the supplied listener with the specified management bean. Notifications emitted by the management bean are forwarded to the listener via the server, which will convert any MBean references in the source to portable {@link ObjectName} instances. The notification is otherwise unchanged.

The listener that receives notifications will be the one that is registered with the given name at the time this method is called. Even if it later unregisters and ceases to use that name, it will still receive notifications.

Parameters: name the name of the management bean with which the listener should be registered. listener the name of the listener which will handle notifications from the bean. filter the filter to apply to incoming notifications, or null if no filtering should be applied. passback an object to be passed to the listener when a notification is emitted.

Throws: InstanceNotFoundException if the name of the management bean could not be resolved. RuntimeOperationsException if the bean associated with the given object name is not a {@link NotificationListener}. This exception wraps an {@link IllegalArgumentException}. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "addNotificationListener")}.

See Also: MBeanServer MBeanServer NotificationBroadcaster

createMBean

public ObjectInstance createMBean(String className, ObjectName name)

Instantiates a new instance of the specified management bean using the default constructor and registers it with the server under the supplied name. The class is loaded using the {@link javax.management.loading.ClassLoaderRepository default loader repository} of the server.

If the name supplied is null, then the bean is expected to implement the {@link MBeanRegistration} interface. The {@link MBeanRegistration#preRegister preRegister} method of this interface will be used to obtain the name in this case.

This method is equivalent to calling {@link #createMBean(String, ObjectName, Object[], String[]) createMBean(className, name, (Object[]) null, (String[]) null)} with null parameters and signature.

Parameters: className the class of the management bean, of which an instance should be created. name the name to register the new bean with.

Returns: an {@link ObjectInstance} containing the {@link ObjectName} and Java class name of the created instance.

Throws: ReflectionException if an exception occurs in creating an instance of the bean. InstanceAlreadyExistsException if a matching instance already exists. MBeanRegistrationException if an exception occurs in calling the preRegister method. MBeanException if the bean's constructor throws an exception. NotCompliantMBeanException if the created bean is not compliant with the JMX specification. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null class name or object name or if the object name is a pattern. SecurityException if a security manager exists and the caller's permissions don't imply the use of the instantiate and registerMBean methods.

See Also: (String, ObjectName, Object[], String[])

createMBean

public ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] sig)

Instantiates a new instance of the specified management bean using the given constructor and registers it with the server under the supplied name. The class is loaded using the {@link javax.management.loading.ClassLoaderRepository default loader repository} of the server.

If the name supplied is null, then the bean is expected to implement the {@link MBeanRegistration} interface. The {@link MBeanRegistration#preRegister preRegister} method of this interface will be used to obtain the name in this case.

Parameters: className the class of the management bean, of which an instance should be created. name the name to register the new bean with. params the parameters for the bean's constructor. sig the signature of the constructor to use.

Returns: an {@link ObjectInstance} containing the {@link ObjectName} and Java class name of the created instance.

Throws: ReflectionException if an exception occurs in creating an instance of the bean. InstanceAlreadyExistsException if a matching instance already exists. MBeanRegistrationException if an exception occurs in calling the preRegister method. MBeanException if the bean's constructor throws an exception. NotCompliantMBeanException if the created bean is not compliant with the JMX specification. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null class name or object name or if the object name is a pattern. SecurityException if a security manager exists and the caller's permissions don't imply the use of the instantiate and registerMBean methods.

createMBean

public ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName)

Instantiates a new instance of the specified management bean using the default constructor and registers it with the server under the supplied name. The class is loaded using the given class loader. If this argument is null, then the same class loader as was used to load the server is used.

If the name supplied is null, then the bean is expected to implement the {@link MBeanRegistration} interface. The {@link MBeanRegistration#preRegister preRegister} method of this interface will be used to obtain the name in this case.

This method is equivalent to calling {@link #createMBean(String, ObjectName, ObjectName, Object[], String) createMBean(className, name, loaderName, (Object[]) null, (String) null)} with null parameters and signature.

Parameters: className the class of the management bean, of which an instance should be created. name the name to register the new bean with. loaderName the name of the class loader.

Returns: an {@link ObjectInstance} containing the {@link ObjectName} and Java class name of the created instance.

Throws: ReflectionException if an exception occurs in creating an instance of the bean. InstanceAlreadyExistsException if a matching instance already exists. MBeanRegistrationException if an exception occurs in calling the preRegister method. MBeanException if the bean's constructor throws an exception. NotCompliantMBeanException if the created bean is not compliant with the JMX specification. InstanceNotFoundException if the specified class loader is not registered with the server. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null class name or object name or if the object name is a pattern. SecurityException if a security manager exists and the caller's permissions don't imply the use of the instantiate and registerMBean methods.

See Also: (String, ObjectName, ObjectName, Object[], String[])

createMBean

public ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] sig)

Instantiates a new instance of the specified management bean using the given constructor and registers it with the server under the supplied name. The class is loaded using the given class loader. If this argument is null, then the same class loader as was used to load the server is used.

If the name supplied is null, then the bean is expected to implement the {@link MBeanRegistration} interface. The {@link MBeanRegistration#preRegister preRegister} method of this interface will be used to obtain the name in this case.

Parameters: className the class of the management bean, of which an instance should be created. name the name to register the new bean with. loaderName the name of the class loader. params the parameters for the bean's constructor. sig the signature of the constructor to use.

Returns: an {@link ObjectInstance} containing the {@link ObjectName} and Java class name of the created instance.

Throws: ReflectionException if an exception occurs in creating an instance of the bean. InstanceAlreadyExistsException if a matching instance already exists. MBeanRegistrationException if an exception occurs in calling the preRegister method. MBeanException if the bean's constructor throws an exception. NotCompliantMBeanException if the created bean is not compliant with the JMX specification. InstanceNotFoundException if the specified class loader is not registered with the server. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null class name or object name or if the object name is a pattern. SecurityException if a security manager exists and the caller's permissions don't imply the use of the instantiate and registerMBean methods.

deserialize

public ObjectInputStream deserialize(ObjectName name, byte[] data)

Deprecated: {@link #getClassLoaderFor(ObjectName)} should be used to obtain the class loader of the bean, which can then be used to perform deserialization in the user's code.

Deserializes a byte array using the class loader of the specified management bean as its context.

Parameters: name the name of the bean whose class loader should be used. data the byte array to be deserialized.

Returns: the deserialized object stream.

Throws: InstanceNotFoundException if the specified bean is not registered with the server. OperationsException if any I/O error is thrown by the deserialization process. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "getClassLoaderFor")

deserialize

public ObjectInputStream deserialize(String name, byte[] data)

Deprecated: {@link #getClassLoaderRepository} should be used to obtain the class loading repository, which can then be used to obtain the {@link Class} instance and deserialize the array using its class loader.

Deserializes a byte array using the same class loader for its context as was used to load the given class. This class loader is obtained by loading the specified class using the {@link javax.management.loading.ClassLoaderRepository Class Loader Repository} and then using the class loader of the resulting {@link Class} instance.

Parameters: name the name of the class which should be loaded to obtain the class loader. data the byte array to be deserialized.

Returns: the deserialized object stream.

Throws: OperationsException if any I/O error is thrown by the deserialization process. ReflectionException if an error occurs in obtaining the {@link Class} instance. 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")

deserialize

public ObjectInputStream deserialize(String name, ObjectName loader, byte[] data)

Deprecated: {@link #getClassLoader(ObjectName} can be used to obtain the named class loader and deserialize the array.

Deserializes a byte array using the same class loader for its context as was used to load the given class. The name of the class loader to be used is supplied, and may be null if the server's class loader should be used instead.

Parameters: name the name of the class which should be loaded to obtain the class loader. loader the name of the class loader to use, or null if the class loader of the server should be used. data the byte array to be deserialized.

Returns: the deserialized object stream.

Throws: InstanceNotFoundException if the specified class loader is not registered with the server. OperationsException if any I/O error is thrown by the deserialization process. ReflectionException if an error occurs in obtaining the {@link Class} instance. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, loader, "getClassLoader")

getAttribute

public Object getAttribute(ObjectName bean, String name)
Returns the value of the supplied attribute from the specified management bean.

Parameters: bean the bean to retrieve the value from. name the name of the attribute to retrieve.

Returns: the value of the attribute.

Throws: AttributeNotFoundException if the attribute could not be accessed from the bean. MBeanException if the management bean's accessor throws an exception. InstanceNotFoundException if the bean can not be found. ReflectionException if an exception was thrown in trying to invoke the bean's accessor. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null bean or attribute name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, name, bean, "getAttribute")}.

See Also: getAttribute

getAttributes

public AttributeList getAttributes(ObjectName bean, String[] names)
Returns the values of the named attributes from the specified management bean.

Parameters: bean the bean to retrieve the value from. names the names of the attributes to retrieve.

Returns: the values of the attributes.

Throws: InstanceNotFoundException if the bean can not be found. ReflectionException if an exception was thrown in trying to invoke the bean's accessor. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null bean or attribute name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, bean, "getAttribute")}. Additionally, for an attribute name, n, the caller's permission must imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, n, bean, "getAttribute")} or that attribute will not be included.

See Also: (String[])

getClassLoader

public ClassLoader getClassLoader(ObjectName name)
Returns the specified class loader. If the specified value is null, then the class loader of the server will be returned. If l is the requested class loader, and r is the actual class loader returned, then either l and r will be identical, or they will at least return the same class from {@link ClassLoader#loadClass(String)} for any given string. They may not be identical due to one or the other being wrapped in another class loader (e.g. for security).

Parameters: name the name of the class loader to return.

Returns: the class loader.

Throws: InstanceNotFoundException if the class loader can not be found. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "getClassLoader")

getClassLoaderFor

public ClassLoader getClassLoaderFor(ObjectName name)
Returns the class loader of the specified management bean. If l is the requested class loader, and r is the actual class loader returned, then either l and r will be identical, or they will at least return the same class from {@link ClassLoader#loadClass(String)} for any given string. They may not be identical due to one or the other being wrapped in another class loader (e.g. for security).

Parameters: name the name of the bean whose class loader should be returned.

Returns: the class loader.

Throws: InstanceNotFoundException if the bean is not registered with the server. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "getClassLoaderFor")

getClassLoaderRepository

public ClassLoaderRepository getClassLoaderRepository()
Returns the class loader repository used by this server.

Returns: the class loader repository.

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

getDefaultDomain

public String getDefaultDomain()
Returns the default domain this server applies to beans that have no specified domain.

Returns: the default domain.

getDomains

public String[] getDomains()
Returns an array containing all the domains used by beans registered with this server. The ordering of the array is undefined.

Returns: the list of domains.

Throws: SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(null, null, name, "getDomains")}. Additionally, for an domain, d, the caller's permission must imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains")} or that domain will not be included. Note that "x=x" is an arbitrary key-value pair provided to satisfy the constructor.

See Also: getDomain

getMBeanCount

public Integer getMBeanCount()
Returns the number of management beans registered with this server. This may be less than the real number if the caller's access is restricted.

Returns: the number of registered beans.

getMBeanInfo

public MBeanInfo getMBeanInfo(ObjectName name)
Returns information on the given management bean.

Parameters: name the name of the management bean.

Returns: an instance of {@link MBeanInfo} for the bean.

Throws: IntrospectionException if an exception occurs in examining the bean. InstanceNotFoundException if the bean can not be found. ReflectionException if an exception occurs when trying to invoke {@link DynamicMBean#getMBeanInfo()} on the bean. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "getMBeanInfo")}.

See Also: getMBeanInfo

getObjectInstance

public ObjectInstance getObjectInstance(ObjectName name)
Returns the {@link ObjectInstance} created for the specified management bean on registration.

Parameters: name the name of the bean.

Returns: the corresponding {@link ObjectInstance} instance.

Throws: InstanceNotFoundException if the bean can not be found. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "getObjectInstance")

See Also: MBeanServer

instantiate

public Object instantiate(String name)

Creates an instance of the specified class using the list of class loaders from the {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}. The class should have a public constructor with no arguments. A reference to the new instance is returned, but the instance is not yet registered with the server.

This method is equivalent to calling {@link #instantiate(String, Object[], String[]) instantiate(name, (Object[]) null, (String[]) null)} with null parameters and signature.

Parameters: name the name of the class of bean to be instantiated.

Returns: an instance of the given class.

Throws: ReflectionException if an exception is thrown during loading the class or calling the constructor. MBeanException if the constructor throws an exception. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, null, "instantiate")}.

See Also: (String, Object[], String[])

instantiate

public Object instantiate(String name, Object[] params, String[] sig)
Creates an instance of the specified class using the list of class loaders from the {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}. The class should have a public constructor matching the supplied signature. A reference to the new instance is returned, but the instance is not yet registered with the server.

Parameters: name the name of the class of bean to be instantiated. params the parameters for the constructor. sig the signature of the constructor.

Returns: an instance of the given class.

Throws: ReflectionException if an exception is thrown during loading the class or calling the constructor. MBeanException if the constructor throws an exception. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, null, "instantiate")}.

instantiate

public Object instantiate(String name, ObjectName loaderName)

Creates an instance of the specified class using the supplied class loader. If the class loader given is null, then the class loader of the server will be used. The class should have a public constructor with no arguments. A reference to the new instance is returned, but the instance is not yet registered with the server.

This method is equivalent to calling {@link #instantiate(String, ObjectName, Object[], String[]) instantiate(name, loaderName, (Object[]) null, (String[]) null)} with null parameters and signature.

Parameters: name the name of the class of bean to be instantiated. loaderName the name of the class loader to use.

Returns: an instance of the given class.

Throws: InstanceNotFoundException if the class loader is not registered with the server. ReflectionException if an exception is thrown during loading the class or calling the constructor. MBeanException if the constructor throws an exception. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, null, "instantiate")}.

See Also: (String, Object[], String[])

instantiate

public Object instantiate(String name, ObjectName loaderName, Object[] params, String[] sig)
Creates an instance of the specified class using the supplied class loader. If the class loader given is null, then the class loader of the server will be used. The class should have a public constructor matching the supplied signature. A reference to the new instance is returned, but the instance is not yet registered with the server.

Parameters: name the name of the class of bean to be instantiated. loaderName the name of the class loader to use. params the parameters for the constructor. sig the signature of the constructor.

Returns: an instance of the given class.

Throws: InstanceNotFoundException if the class loader is not registered with the server. ReflectionException if an exception is thrown during loading the class or calling the constructor. MBeanException if the constructor throws an exception. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, null, "instantiate")}.

invoke

public Object invoke(ObjectName bean, String name, Object[] params, String[] sig)
Invokes the supplied operation on the specified management bean. The class objects specified in the signature are loaded using the same class loader as was used for the management bean.

Parameters: bean the management bean whose operation should be invoked. name the name of the operation to invoke. params the parameters of the operation. sig the signature of the operation.

Returns: the return value of the method.

Throws: InstanceNotFoundException if the bean can not be found. MBeanException if the method invoked throws an exception. ReflectionException if an exception is thrown in invoking the method. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, name, bean, "invoke")}.

See Also: (String, Object[], String[])

isInstanceOf

public boolean isInstanceOf(ObjectName name, String className)

Returns true if the specified management bean is an instance of the supplied class.

A bean, B, is an instance of a class, C, if either of the following conditions holds:

Parameters: name the name of the management bean. className the name of the class to test if name is an instance of.

Returns: true if either B is directly an instance of the named class, or B is assignable to the class, given that both it and B's current class were loaded using the same class loader.

Throws: InstanceNotFoundException if the bean can not be found. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "isInstanceOf")

isRegistered

public boolean isRegistered(ObjectName name)
Returns true if the specified management bean is registered with the server.

Parameters: name the name of the management bean.

Returns: true if the bean is registered.

Throws: RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null bean name.

queryMBeans

public Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)

Returns a set of {@link ObjectInstance}s matching the specified criteria. The full set of beans registered with the server are passed through two filters:

  1. Pattern matching is performed using the supplied {@link ObjectName}.
  2. The supplied query expression is applied.

If both the object name and the query expression are null, or the object name has no domain and no key properties, no filtering will be performed and all beans are returned.

Parameters: name an {@link ObjectName} to use as a filter. query a query expression to apply to each of the beans that match the given object name.

Returns: a set of {@link ObjectInstance}s matching the filtered beans.

Throws: SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(null, null, name, "queryMBeans")}. Additionally, for an bean, b, the caller's permission must imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, b, name, "queryMBeans")} or that bean will not be included. Such an exception may also arise from the execution of the query, in which case that particular bean will again be excluded.

queryNames

public Set<ObjectName> queryNames(ObjectName name, QueryExp query)

Returns a set of {@link ObjectName}s matching the specified criteria. The full set of beans registered with the server are passed through two filters:

  1. Pattern matching is performed using the supplied {@link ObjectName}.
  2. The supplied query expression is applied.

If both the object name and the query expression are null, or the object name has no domain and no key properties, no filtering will be performed and all beans are returned.

Parameters: name an {@link ObjectName} to use as a filter. query a query expression to apply to each of the beans that match the given object name.

Returns: a set of {@link ObjectName}s matching the filtered beans.

Throws: SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(null, null, name, "queryNames")}. Additionally, for an name, n, the caller's permission must imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, n, name, "queryNames")} or that name will not be included. Such an exception may also arise from the execution of the query, in which case that particular bean will again be excluded. Note that these permissions are implied if the queryMBeans permissions are available.

registerMBean

public ObjectInstance registerMBean(Object obj, ObjectName name)
Registers the supplied instance with the server, using the specified {@link ObjectName}. If the name given is null, then the bean supplied is expected to implement the {@link MBeanRegistration} interface and provide the name via the {@link MBeanRegistration#preRegister preRegister} method of this interface.

Parameters: obj the object to register with the server. name the name under which to register the object, or null if the {@link MBeanRegistration} interface should be used.

Throws: InstanceAlreadyExistsException if a matching instance already exists. MBeanRegistrationException if an exception occurs in calling the preRegister method. NotCompliantMBeanException if the created bean is not compliant with the JMX specification. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null object. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "registerMBean")}. className here corresponds to the result of {@link MBeanInfo#getClassName()} for objects of this class. If this check succeeds, a check is also made on its {@link java.security.ProtectionDomain} to ensure it implies {@link MBeanTrustPermission(String) MBeanTrustPermission("register")}. The use of the {@link MBeanRegistration} interface results in another {@link MBeanPermission} check being made on the returned {@link ObjectName}.

removeNotificationListener

public void removeNotificationListener(ObjectName name, NotificationListener listener)
Removes the specified listener from the list of recipients of notifications from the supplied bean. This includes all combinations of filters and passback objects registered for this listener. For more specific removal of listeners, see {@link #removeNotificationListener(ObjectName, NotificationListener,NotificationFilter,Object)}

Parameters: name the name of the management bean from which the listener should be removed. listener the listener to remove.

Throws: InstanceNotFoundException if the bean can not be found. ListenerNotFoundException if the specified listener is not registered with the bean. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "removeNotificationListener")}.

See Also: MBeanServer removeNotificationListener

removeNotificationListener

public void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object passback)
Removes the specified listener from the list of recipients of notifications from the supplied bean. Only the first instance with the supplied filter and passback object is removed. null is used as a valid value for these parameters, rather than as a way to remove all registration instances for the specified listener; for this behaviour instead, see {@link #removeNotificationListener(ObjectName, NotificationListener)}.

Parameters: name the name of the management bean from which the listener should be removed. listener the listener to remove. filter the filter of the listener to remove. passback the passback object of the listener to remove.

Throws: InstanceNotFoundException if the bean can not be found. ListenerNotFoundException if the specified listener is not registered with the bean. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "removeNotificationListener")}.

See Also: MBeanServer NotificationEmitter

removeNotificationListener

public void removeNotificationListener(ObjectName name, ObjectName listener)
Removes the specified listener from the list of recipients of notifications from the supplied bean. This includes all combinations of filters and passback objects registered for this listener. For more specific removal of listeners, see {@link #removeNotificationListener(ObjectName, ObjectName,NotificationFilter,Object)}

Parameters: name the name of the management bean from which the listener should be removed. listener the name of the listener to remove.

Throws: InstanceNotFoundException if a name doesn't match a registered bean. ListenerNotFoundException if the specified listener is not registered with the bean. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "removeNotificationListener")}.

See Also: MBeanServer removeNotificationListener

removeNotificationListener

public void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object passback)
Removes the specified listener from the list of recipients of notifications from the supplied bean. Only the first instance with the supplied filter and passback object is removed. null is used as a valid value for these parameters, rather than as a way to remove all registration instances for the specified listener; for this behaviour instead, see {@link #removeNotificationListener(ObjectName, ObjectName)}.

Parameters: name the name of the management bean from which the listener should be removed. listener the name of the listener to remove. filter the filter of the listener to remove. passback the passback object of the listener to remove.

Throws: InstanceNotFoundException if a name doesn't match a registered bean. ListenerNotFoundException if the specified listener is not registered with the bean. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "removeNotificationListener")}.

See Also: MBeanServer NotificationEmitter

setAttribute

public void setAttribute(ObjectName name, Attribute attribute)
Sets the value of the specified attribute of the supplied management bean.

Parameters: name the name of the management bean. attribute the attribute to set.

Throws: InstanceNotFoundException if the bean can not be found. AttributeNotFoundException if the attribute does not correspond to an attribute of the bean. InvalidAttributeValueException if the value is invalid for this particular attribute of the bean. MBeanException if setting the attribute causes the bean to throw an exception (which becomes the cause of this exception). ReflectionException if an exception occurred in trying to use the reflection interface to lookup the attribute. The thrown exception is the cause of this exception. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null bean or attribute name. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, name, bean, "setAttribute")}.

See Also: MBeanServer setAttribute

setAttributes

public AttributeList setAttributes(ObjectName name, AttributeList attributes)
Sets the value of each of the specified attributes of the supplied management bean to that specified by the {@link Attribute} object. The returned list contains the attributes that were set and their new values.

Parameters: name the name of the management bean. attributes the attributes to set.

Returns: a list of the changed attributes.

Throws: InstanceNotFoundException if the bean can not be found. ReflectionException if an exception occurred in trying to use the reflection interface to lookup the attribute. The thrown exception is the cause of this exception. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null bean or attribute list. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, bean, "setAttribute")}. Additionally, for an attribute name, n, the caller's permission must imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, n, bean, "setAttribute")} or that attribute will not be included.

See Also: (ObjectName, String[]) setAttributes

unregisterMBean

public void unregisterMBean(ObjectName name)
Unregisters the specified management bean. Following this operation, the bean instance is no longer accessible from the server via this name. Prior to unregistering the bean, the {@link MBeanRegistration#preDeregister()} method will be called if the bean implements the {@link MBeanRegistration} interface.

Parameters: name the name of the management bean.

Throws: InstanceNotFoundException if the bean can not be found. MBeanRegistrationException if an exception occurs in calling the preDeregister method. RuntimeOperationsException if an {@link IllegalArgumentException} is thrown by the server due to a null bean name or a request being made to unregister the {@link MBeanServerDelegate} bean. SecurityException if a security manager exists and the caller's permissions don't imply {@link MBeanPermission(String,String,ObjectName,String) MBeanPermission(className, null, name, "unregisterMBean")}.