gnu.javax.management

Class Server

Implemented Interfaces:
MBeanServer, MBeanServerConnection

public class Server
extends Object
implements MBeanServer

This class provides an MBeanServer implementation for GNU Classpath.
Since:
1.5

Constructor Summary

Server(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
Constructs a new management server using the specified default domain, delegate bean and outer server.

Method Summary

void
addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object passback)
Registers the supplied listener with the specified management bean.
void
addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object passback)
Registers the supplied listener with the specified management bean.
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.
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.
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.
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.
ObjectInputStream
deserialize(String name, byte[] data)
Deprecated. getClassLoaderRepository() should be used to obtain the class loading repository, which can then be used to obtain the Class instance and deserialize the array using its class loader.
ObjectInputStream
deserialize(String name, ObjectName loader, byte[] data)
Deprecated. getClassLoader(ObjectName can be used to obtain the named class loader and deserialize the array.
ObjectInputStream
deserialize(ObjectName name, byte[] data)
Deprecated. 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.
Object
getAttribute(ObjectName bean, String name)
Returns the value of the supplied attribute from the specified management bean.
AttributeList
getAttributes(ObjectName bean, String[] names)
Returns the values of the named attributes from the specified management bean.
ClassLoader
getClassLoader(ObjectName name)
Returns the specified class loader.
ClassLoader
getClassLoaderFor(ObjectName name)
Returns the class loader of the specified management bean.
ClassLoaderRepository
getClassLoaderRepository()
Returns the class loader repository used by this server.
String
getDefaultDomain()
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.
Integer
getMBeanCount()
Returns the number of management beans registered with this server.
MBeanInfo
getMBeanInfo(ObjectName name)
Returns information on the given management bean.
ObjectInstance
getObjectInstance(ObjectName name)
Returns the ObjectInstance created for the specified management bean on registration.
Object
instantiate(String name)
Creates an instance of the specified class using the list of class loaders from the Class Loader Repository.
Object
instantiate(String name, Object[] params, String[] sig)
Creates an instance of the specified class using the list of class loaders from the Class Loader Repository.
Object
instantiate(String name, ObjectName loaderName)
Creates an instance of the specified class using the supplied class loader.
Object
instantiate(String name, ObjectName loaderName, Object[] params, String[] sig)
Creates an instance of the specified class using the supplied class loader.
Object
invoke(ObjectName bean, String name, Object[] params, String[] sig)
Invokes the supplied operation on the specified management bean.
boolean
isInstanceOf(ObjectName name, String className)
Returns true if the specified management bean is an instance of the supplied class.
boolean
isRegistered(ObjectName name)
Returns true if the specified management bean is registered with the server.
Set
queryMBeans(ObjectName name, QueryExp query)
Returns a set of ObjectInstances matching the specified criteria.
Set
queryNames(ObjectName name, QueryExp query)
Returns a set of ObjectNames matching the specified criteria.
ObjectInstance
registerMBean(Object obj, ObjectName name)
Registers the supplied instance with the server, using the specified ObjectName.
void
removeNotificationListener(ObjectName name, NotificationListener listener)
Removes the specified listener from the list of recipients of notifications from the supplied bean.
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.
void
removeNotificationListener(ObjectName name, ObjectName listener)
Removes the specified listener from the list of recipients of notifications from the supplied bean.
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.
void
setAttribute(ObjectName name, Attribute attribute)
Sets the value of the specified attribute of the supplied management bean.
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 Attribute object.
void
unregisterMBean(ObjectName name)
Unregisters the specified management bean.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

Server

public Server(String defaultDomain,
              MBeanServer outer,
              MBeanServerDelegate delegate)
Constructs a new management server using the specified default domain, delegate bean and outer server.
Parameters:
defaultDomain - the default domain to use for beans constructed with no specified domain.
outer - an MBeanServer to pass to beans implementing the MBeanRegistration interface, or null if this should be passed.
delegate - the delegate bean for this server.

Method Details

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    NotificationListener listener,
                                    NotificationFilter filter,
                                    Object passback)
            throws InstanceNotFoundException
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 an MBean references in the source to a portable ObjectName instance. The notification is otherwise unchanged.
Specified by:
addNotificationListener in interface MBeanServer
addNotificationListener in interface MBeanServerConnection
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 MBeanPermission(className, null, name, "addNotificationListener").

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    ObjectName listener,
                                    NotificationFilter filter,
                                    Object passback)
            throws InstanceNotFoundException
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 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.

Specified by:
addNotificationListener in interface MBeanServer
addNotificationListener in interface MBeanServerConnection
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 NotificationListener. This exception wraps an IllegalArgumentException.
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(className, null, name, "addNotificationListener").

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name)
            throws ReflectionException,
                   InstanceAlreadyExistsException,
                   MBeanRegistrationException,
                   MBeanException,
                   NotCompliantMBeanException
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 default loader repository of the server.

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

This method is equivalent to calling createMBean(className, name, (Object[]) null, (String[]) null) with null parameters and signature.

Specified by:
createMBean in interface MBeanServer
createMBean in interface MBeanServerConnection
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 ObjectInstance containing the 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 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,
                                  Object[] params,
                                  String[] sig)
            throws ReflectionException,
                   InstanceAlreadyExistsException,
                   MBeanRegistrationException,
                   MBeanException,
                   NotCompliantMBeanException
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 default loader repository of the server.

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

Specified by:
createMBean in interface MBeanServer
createMBean in interface MBeanServerConnection
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 ObjectInstance containing the 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 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)
            throws ReflectionException,
                   InstanceAlreadyExistsException,
                   MBeanRegistrationException,
                   MBeanException,
                   NotCompliantMBeanException,
                   InstanceNotFoundException
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 MBeanRegistration interface. The preRegister method of this interface will be used to obtain the name in this case.

This method is equivalent to calling createMBean(className, name, loaderName, (Object[]) null, (String) null) with null parameters and signature.

Specified by:
createMBean in interface MBeanServer
createMBean in interface MBeanServerConnection
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 ObjectInstance containing the 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 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,
                                  Object[] params,
                                  String[] sig)
            throws ReflectionException,
                   InstanceAlreadyExistsException,
                   MBeanRegistrationException,
                   MBeanException,
                   NotCompliantMBeanException,
                   InstanceNotFoundException
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 MBeanRegistration interface. The preRegister method of this interface will be used to obtain the name in this case.

Specified by:
createMBean in interface MBeanServer
createMBean in interface MBeanServerConnection
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 ObjectInstance containing the 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 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(String name,
                                     byte[] data)
            throws OperationsException,
                   ReflectionException

Deprecated. getClassLoaderRepository() should be used to obtain the class loading repository, which can then be used to obtain the 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 Class Loader Repository and then using the class loader of the resulting Class instance.
Specified by:
deserialize in interface MBeanServer
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 Class instance.
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(null, null, null, "getClassLoaderRepository")

deserialize

public ObjectInputStream deserialize(String name,
                                     ObjectName loader,
                                     byte[] data)
            throws InstanceNotFoundException,
                   ReflectionException,
                   OperationsException

Deprecated. 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.
Specified by:
deserialize in interface MBeanServer
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 Class instance.
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(className, null, loader, "getClassLoader")

deserialize

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

Deprecated. 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.
Specified by:
deserialize in interface MBeanServer
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 MBeanPermission(className, null, name, "getClassLoaderFor")

getAttribute

public Object getAttribute(ObjectName bean,
                           String name)
            throws MBeanException,
                   AttributeNotFoundException,
                   InstanceNotFoundException,
                   ReflectionException
Returns the value of the supplied attribute from the specified management bean.
Specified by:
getAttribute in interface MBeanServer
getAttribute in interface MBeanServerConnection
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 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 MBeanPermission(className, name, bean, "getAttribute").

getAttributes

public AttributeList getAttributes(ObjectName bean,
                                   String[] names)
            throws InstanceNotFoundException,
                   ReflectionException
Returns the values of the named attributes from the specified management bean.
Specified by:
getAttributes in interface MBeanServer
getAttributes in interface MBeanServerConnection
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 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 MBeanPermission(className, null, bean, "getAttribute"). Additionally, for an attribute name, n, the caller's permission must imply MBeanPermission(className, n, bean, "getAttribute") or that attribute will not be included.

getClassLoader

public ClassLoader getClassLoader(ObjectName name)
            throws InstanceNotFoundException
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 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).
Specified by:
getClassLoader in interface MBeanServer
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 MBeanPermission(className, null, name, "getClassLoader")

getClassLoaderFor

public ClassLoader getClassLoaderFor(ObjectName name)
            throws InstanceNotFoundException
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 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).
Specified by:
getClassLoaderFor in interface MBeanServer
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 MBeanPermission(className, null, name, "getClassLoaderFor")

getClassLoaderRepository

public ClassLoaderRepository getClassLoaderRepository()
Returns the class loader repository used by this server.
Specified by:
getClassLoaderRepository in interface MBeanServer
Returns:
the class loader repository.
Throws:
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(null, null, null, "getClassLoaderRepository")

getDefaultDomain

public String getDefaultDomain()
Returns the default domain this server applies to beans that have no specified domain.
Specified by:
getDefaultDomain in interface MBeanServer
getDefaultDomain in interface MBeanServerConnection
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.
Specified by:
getDomains in interface MBeanServer
getDomains in interface MBeanServerConnection
Returns:
the list of domains.
Throws:
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(null, null, name, "getDomains"). Additionally, for an domain, d, the caller's permission must imply 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.

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.
Specified by:
getMBeanCount in interface MBeanServer
getMBeanCount in interface MBeanServerConnection
Returns:
the number of registered beans.

getMBeanInfo

public MBeanInfo getMBeanInfo(ObjectName name)
            throws InstanceNotFoundException,
                   IntrospectionException,
                   ReflectionException
Returns information on the given management bean.
Specified by:
getMBeanInfo in interface MBeanServer
getMBeanInfo in interface MBeanServerConnection
Parameters:
name - the name of the management bean.
Returns:
an instance of 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 DynamicMBean.getMBeanInfo() on the bean.
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(className, null, name, "getMBeanInfo").

getObjectInstance

public ObjectInstance getObjectInstance(ObjectName name)
            throws InstanceNotFoundException
Returns the ObjectInstance created for the specified management bean on registration.
Specified by:
getObjectInstance in interface MBeanServer
getObjectInstance in interface MBeanServerConnection
Parameters:
name - the name of the bean.
Returns:
the corresponding 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 MBeanPermission(className, null, name, "getObjectInstance")

instantiate

public Object instantiate(String name)
            throws ReflectionException,
                   MBeanException
Creates an instance of the specified class using the list of class loaders from the 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 instantiate(name, (Object[]) null, (String[]) null) with null parameters and signature.

Specified by:
instantiate in interface MBeanServer
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 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 MBeanPermission(className, null, null, "instantiate").

instantiate

public Object instantiate(String name,
                          Object[] params,
                          String[] sig)
            throws ReflectionException,
                   MBeanException
Creates an instance of the specified class using the list of class loaders from the 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.
Specified by:
instantiate in interface MBeanServer
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 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 MBeanPermission(className, null, null, "instantiate").

instantiate

public Object instantiate(String name,
                          ObjectName loaderName)
            throws InstanceNotFoundException,
                   ReflectionException,
                   MBeanException
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 instantiate(name, loaderName, (Object[]) null, (String[]) null) with null parameters and signature.

Specified by:
instantiate in interface MBeanServer
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 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 MBeanPermission(className, null, null, "instantiate").

instantiate

public Object instantiate(String name,
                          ObjectName loaderName,
                          Object[] params,
                          String[] sig)
            throws InstanceNotFoundException,
                   ReflectionException,
                   MBeanException
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.
Specified by:
instantiate in interface MBeanServer
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 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 MBeanPermission(className, null, null, "instantiate").

invoke

public Object invoke(ObjectName bean,
                     String name,
                     Object[] params,
                     String[] sig)
            throws InstanceNotFoundException,
                   MBeanException,
                   ReflectionException
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.
Specified by:
invoke in interface MBeanServer
invoke in interface MBeanServerConnection
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.
RuntimeOperationsException - if an IllegalArgumentException is thrown by the server due to a null name.
ReflectionException - if an exception is thrown in invoking the method.
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(className, name, bean, "invoke").

isInstanceOf

public boolean isInstanceOf(ObjectName name,
                            String className)
            throws InstanceNotFoundException
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:

  • The class name in B's MBeanInfo is equal to the supplied name.
  • Both the class of B and C were loaded by the same class loader, and B is assignable to C.
Specified by:
isInstanceOf in interface MBeanServer
isInstanceOf in interface MBeanServerConnection
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 MBeanPermission(className, null, name, "isInstanceOf")

isRegistered

public boolean isRegistered(ObjectName name)
Returns true if the specified management bean is registered with the server.
Specified by:
isRegistered in interface MBeanServer
isRegistered in interface MBeanServerConnection
Parameters:
name - the name of the management bean.
Returns:
true if the bean is registered.
Throws:
RuntimeOperationsException - if an IllegalArgumentException is thrown by the server due to a null bean name.

queryMBeans

public Set queryMBeans(ObjectName name,
                                       QueryExp query)
Returns a set of ObjectInstances 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 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.

Specified by:
queryMBeans in interface MBeanServer
queryMBeans in interface MBeanServerConnection
Parameters:
name - an 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 ObjectInstances matching the filtered beans.
Throws:
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(null, null, name, "queryMBeans"). Additionally, for an bean, b, the caller's permission must imply 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 queryNames(ObjectName name,
                                  QueryExp query)
Returns a set of ObjectNames 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 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.

Specified by:
queryNames in interface MBeanServer
queryNames in interface MBeanServerConnection
Parameters:
name - an 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 ObjectNames matching the filtered beans.
Throws:
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(null, null, name, "queryNames"). Additionally, for an name, n, the caller's permission must imply 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)
            throws InstanceAlreadyExistsException,
                   MBeanRegistrationException,
                   NotCompliantMBeanException
Registers the supplied instance with the server, using the specified ObjectName. If the name given is null, then the bean supplied is expected to implement the MBeanRegistration interface and provide the name via the preRegister method of this interface.
Specified by:
registerMBean in interface MBeanServer
Parameters:
obj - the object to register with the server.
name - the name under which to register the object, or null if the MBeanRegistration interface should be used.
Returns:
an ObjectInstance containing the supplied ObjectName along with the name of the bean's class.
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 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 MBeanPermission(className, null, name, "registerMBean"). className here corresponds to the result of MBeanInfo.getClassName() for objects of this class. If this check succeeds, a check is also made on its ProtectionDomain to ensure it implies MBeanTrustPermission("register"). The use of the MBeanRegistration interface results in another MBeanPermission check being made on the returned ObjectName.

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       NotificationListener listener)
            throws InstanceNotFoundException,
                   ListenerNotFoundException
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 removeNotificationListener(ObjectName,NotificationListener,NotificationFilter,Object)
Specified by:
removeNotificationListener in interface MBeanServer
removeNotificationListener in interface MBeanServerConnection
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 MBeanPermission(className, null, name, "removeNotificationListener").
See Also:
addNotificationListener(NotificationListener, NotificationFilter, java.lang.Object), NotificationBroadcaster.removeNotificationListener(NotificationListener)

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       NotificationListener listener,
                                       NotificationFilter filter,
                                       Object passback)
            throws InstanceNotFoundException,
                   ListenerNotFoundException
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 removeNotificationListener(ObjectName,NotificationListener).
Specified by:
removeNotificationListener in interface MBeanServer
removeNotificationListener in interface MBeanServerConnection
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 MBeanPermission(className, null, name, "removeNotificationListener").

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener)
            throws InstanceNotFoundException,
                   ListenerNotFoundException
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 removeNotificationListener(ObjectName,ObjectName,NotificationFilter,Object)
Specified by:
removeNotificationListener in interface MBeanServer
removeNotificationListener in interface MBeanServerConnection
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 MBeanPermission(className, null, name, "removeNotificationListener").
See Also:
addNotificationListener(NotificationListener, NotificationFilter, java.lang.Object), NotificationBroadcaster.removeNotificationListener(NotificationListener)

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener,
                                       NotificationFilter filter,
                                       Object passback)
            throws InstanceNotFoundException,
                   ListenerNotFoundException
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 removeNotificationListener(ObjectName,ObjectName).
Specified by:
removeNotificationListener in interface MBeanServer
removeNotificationListener in interface MBeanServerConnection
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 MBeanPermission(className, null, name, "removeNotificationListener").

setAttribute

public void setAttribute(ObjectName name,
                         Attribute attribute)
            throws InstanceNotFoundException,
                   AttributeNotFoundException,
                   InvalidAttributeValueException,
                   MBeanException,
                   ReflectionException
Sets the value of the specified attribute of the supplied management bean.
Specified by:
setAttribute in interface MBeanServer
setAttribute in interface MBeanServerConnection
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 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 MBeanPermission(className, name, bean, "setAttribute").

setAttributes

public AttributeList setAttributes(ObjectName name,
                                   AttributeList attributes)
            throws InstanceNotFoundException,
                   ReflectionException
Sets the value of each of the specified attributes of the supplied management bean to that specified by the Attribute object. The returned list contains the attributes that were set and their new values.
Specified by:
setAttributes in interface MBeanServer
setAttributes in interface MBeanServerConnection
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 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 MBeanPermission(className, null, bean, "setAttribute"). Additionally, for an attribute name, n, the caller's permission must imply MBeanPermission(className, n, bean, "setAttribute") or that attribute will not be included.

unregisterMBean

public void unregisterMBean(ObjectName name)
            throws InstanceNotFoundException,
                   MBeanRegistrationException
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 MBeanRegistration.preDeregister() method will be called if the bean implements the MBeanRegistration interface.
Specified by:
unregisterMBean in interface MBeanServer
unregisterMBean in interface MBeanServerConnection
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 IllegalArgumentException is thrown by the server due to a null bean name or a request being made to unregister the MBeanServerDelegate bean.
SecurityException - if a security manager exists and the caller's permissions don't imply MBeanPermission(className, null, name, "unregisterMBean").

Server.java -- A GNU Classpath management server. Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.