MBeanServerConnection.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package javax.management; import java.io.IOException; import java.util.Set; /** * An interface used to talk to an MBeanServer that is either remote or * local. The local interface MBeanServer extends this one. * * @see javax.management.MBeanServer * * @author <a href="mailto:Adrian.Brock@HappeningTimes.com">Adrian Brock</a>. * @version $Revision: 1.5 $ */ public interface MBeanServerConnection { /** * Create an MBean registered using the given object name.<p> * * Uses the default contructor. * * @param className the class name of the mbean * @param name the object name for registration, can be null * @return an ObjectInstance describing the registration * @exception ReflectionException for class not found or an exception * invoking the contructor * @exception InstanceAlreadyExistsException for an MBean already registered * with the passed or generated ObjectName * @exception MBeanRegistrationException for any exception thrown by the * MBean's preRegister * @exception MBeanException for any exception thrown by the MBean's constructor * @exception NotCompliantMBeanException if the class name does not correspond to * a valid MBean * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null class name, the ObjectName could not be determined or it is a pattern * @exception IOException for a communication problem during this operation */ public ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException; /** * Create an MBean registered using the given object name.<p> * * The MBean is loaded using the passed classloader. Uses the default contructor. * * @param className the class name of the mbean * @param loaderName an MBean that implements a classloader * @param name the object name for registration, can be null * @return an ObjectInstance describing the registration * @exception ReflectionException for class not found or an exception * invoking the contructor * @exception InstanceAlreadyExistsException for an MBean already registered * with the passed or generated ObjectName * @exception MBeanRegistrationException for any exception thrown by the * MBean's preRegister * @exception MBeanException for any exception thrown by the MBean's constructor * @exception InstanceNotFoundException if the loaderName is not a classloader registered * in the MBeanServer * @exception NotCompliantMBeanException if the class name does not correspond to * a valid MBean * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null class name, the ObjectName could not be determined or it is a pattern * @exception IOException for a communication problem during this operation */ public ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException; /** * Create an MBean registered using the given object name.<p> * * Uses the specified constructor. * * @param className the class name of the mbean * @param name the object name for registration, can be null * @param params the parameters for the constructor * @param signature the signature of the constructor * @return an ObjectInstance describing the registration * @exception ReflectionException for class not found or an exception * invoking the contructor * @exception InstanceAlreadyExistsException for an MBean already registered * with the passed or generated ObjectName * @exception MBeanRegistrationException for any exception thrown by the * MBean's preRegister * @exception MBeanException for any exception thrown by the MBean's constructor * @exception NotCompliantMBeanException if the class name does not correspond to * a valid MBean * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null class name, the ObjectName could not be determined or it is a pattern * @exception IOException for a communication problem during this operation */ public ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException; /** * Create an MBean registered using the given object name.<p> * * The MBean is loaded using the passed classloader. Uses the specified constructor. * * @param className the class name of the mbean * @param loaderName an MBean that implements a classloader * @param name the object name for registration, can be null * @param params the parameters for the constructor * @param signature the signature of the constructor * @return an ObjectInstance describing the registration * @exception ReflectionException for class not found or an exception * invoking the contructor * @exception InstanceAlreadyExistsException for an MBean already registered * with the passed or generated ObjectName * @exception MBeanRegistrationException for any exception thrown by the * MBean's preRegister * @exception MBeanException for any exception thrown by the MBean's constructor * @exception InstanceNotFoundException if the loaderName is not a classloader registered * in the MBeanServer * @exception NotCompliantMBeanException if the class name does not correspond to * a valid MBean * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null class name, the ObjectName could not be determined or it is a pattern * @exception IOException for a communication problem during this operation */ public ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException; /** * Unregisters an mbean. * * @param name the object name of the mbean to unregister * @exception InstanceNotFoundException if the mbean is not registered * in the MBeanServer * @exception MBeanRegistrationException for any exception thrown by the * MBean's preDeregister * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null name, or trying to unregister a JMX implementation MBean * @exception IOException for a communication problem during this operation */ public void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException, IOException; /** * Retrieve an MBean's registration information. * * @param name the object name of the mbean * @exception InstanceNotFoundException if the mbean is not registered * in the MBeanServer * @exception IOException for a communication problem during this operation */ public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException, IOException; /** * Retrieve a set of Object instances * * @param name an ObjectName pattern, can be null for all mbeans * @param query a query expression to further filter the mbeans, can be null * for no query * @exception IOException for a communication problem during this operation */ public Set queryMBeans(ObjectName name, QueryExp query) throws IOException; /** * Retrieve a set of Object names * * @param name an ObjectName pattern, can be null for all mbeans * @param query a query expression to further filter the mbeans, can be null * for no query * @exception IOException for a communication problem during this operation */ public Set queryNames(ObjectName name, QueryExp query) throws IOException; /** * Test whether an mbean is registered. * * @param name the object name of the mbean * @return true when the mbean is registered, false otherwise * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null name * @exception IOException for a communication problem during this operation */ public boolean isRegistered(ObjectName name) throws IOException; /** * Retrieve the number of mbeans registered in the server. * * @return true the number of registered mbeans * @exception IOException for a communication problem during this operation */ public Integer getMBeanCount() throws IOException; /** * Retrieve a value from an MBean. * * @param name the object name of the mbean * @param attribute the attribute name of the value to retrieve * @return the value * @exception ReflectionException for an exception invoking the mbean * @exception MBeanException for any exception thrown by the mbean * @exception InstanceNotFoundException if the mbean is not registered * @exception AttributeNotFoundException if the mbean has no such attribute * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null name or attribute * @exception IOException for a communication problem during this operation */ public Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException; /** * Retrieve a list of values from an MBean. * * @param name the object name of the mbean * @param attributes the attribute names of the values to retrieve * @return the list of values, attributes with errors are ignored * @exception ReflectionException for an exception invoking the mbean * @exception InstanceNotFoundException if the mbean is not registered * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null name or attributes * @exception IOException for a communication problem during this operation */ public AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException, IOException; /** * Set a value for an MBean. * * @param name the object name of the mbean * @param attribute the attribute name and value to set * @exception ReflectionException for an exception invoking the mbean * @exception MBeanException for any exception thrown by the mbean * @exception InstanceNotFoundException if the mbean is not registered * @exception AttributeNotFoundException if the mbean has no such attribute * @exception InvalidAttributeValueException if the new value has an incorrect type * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null name or attribute * @exception IOException for a communication problem during this operation */ public void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException; /** * Set a list of values for an MBean. * * @param name the object name of the mbean * @param attributes the attribute names and values to set * @return the list of values, attributes with errors are ignored * @exception ReflectionException for an exception invoking the mbean * @exception InstanceNotFoundException if the mbean is not registered * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null name or attributes * @exception IOException for a communication problem during this operation */ public AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException, IOException; /** * Invokes an operation on an mbean. * * @param name the object name of the mbean * @param operationName the operation to perform * @param params the parameters * @param signature the signature of the operation * @return any result of the operation * @exception ReflectionException for an exception invoking the mbean * @exception MBeanException for any exception thrown by the mbean * @exception InstanceNotFoundException if the mbean is not registered * @exception IOException for a communication problem during this operation */ public Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException; /** * Retrieve the default domain of the mbeanserver. * * @return the default domain * @exception IOException for a communication problem during this operation */ public String getDefaultDomain() throws IOException; /** * Retrieve the domains of the mbeanserver. * * @return the domains * @exception IOException for a communication problem during this operation */ public String[] getDomains() throws IOException; /** * Add a notification listener to an MBean. * * @param name the name of the MBean broadcasting notifications * @param listener the listener to add * @param filter a filter to preprocess notifications * @param handback a object to add to any notifications * @exception InstanceNotFoundException if the broadcaster is not registered * @exception IOException for a communication problem during this operation */ public void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException; /** * Add a notification listener to an MBean. * * @param name the name of the MBean broadcasting notifications * @param listener the object name listener to add * @param filter a filter to preprocess notifications * @param handback a object to add to any notifications * @exception InstanceNotFoundException if the broadcaster or listener is not registered * @exception RuntimeOperationsException wrapping an IllegalArgumentException for a * null listener or the listener does not implement the Notification Listener interface * @exception IOException for a communication problem during this operation */ public void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException; /** * Removes a listener from an mbean.<p> * * All registrations of the listener are removed. * * @param name the name of the MBean broadcasting notifications * @param listener the object name of the listener to remove * @exception InstanceNotFoundException if the broadcaster or listener is not registered * @exception ListenerNotFoundException if the listener is not registered against the broadcaster * @exception IOException for a communication problem during this operation */ public void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException, IOException; /** * Removes a listener from an mbean.<p> * * Only the listener that was registered with the same filter and handback is removed. * * @param name the name of the MBean broadcasting notifications * @param listener the object name of listener to remove * @param filter the filter of the listener to remove * @exception InstanceNotFoundException if the broadcaster or listener is not registered * @exception ListenerNotFoundException if the listener, filter, handback * is not registered against the broadcaster * @exception IOException for a communication problem during this operation */ public void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException, IOException; /** * Removes a listener from an mbean.<p> * * All registrations of the listener are removed. * * @param name the name of the MBean broadcasting notifications * @param listener the listener to remove * @exception InstanceNotFoundException if the broadcaster is not registered * @exception ListenerNotFoundException if the listener is not registered against the broadcaster * @exception IOException for a communication problem during this operation */ public void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException, IOException; /** * Removes a listener from an mbean.<p> * * Only the listener that was registered with the same filter and handback is removed. * * @param name the name of the MBean broadcasting notifications * @param listener the listener to remove * @param filter the filter of the listener to remove * @exception InstanceNotFoundException if the broadcaster is not registered * @exception ListenerNotFoundException if the listener, filter, handback * is not registered against the broadcaster * @exception IOException for a communication problem during this operation */ public void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException, IOException; /** * Retrieves the jmx metadata for an mbean * * @param name the name of the mbean * @return the metadata * @exception IntrospectionException for any error during instrospection * @exception InstanceNotFoundException if the mbean is not registered * @exception ReflectionException for any error trying to invoke the operation on the mbean * @exception IOException for a communication problem during this operation */ public MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException; /** * Tests whether an mbean can be cast to the given type * * @param name the name of the mbean * @param className the class name to check * @return true when it is of that type, false otherwise * @exception InstanceNotFoundException if the mbean is not registered * @exception IOException for a communication problem during this operation */ public boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException, IOException; }
MBeanServerConnection.java |