Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.jboss.mx.server
Class MBeanServerImpl  view MBeanServerImpl download MBeanServerImpl.java

java.lang.Object
  extended byorg.jboss.mx.server.MBeanServerImpl
All Implemented Interfaces:
javax.management.MBeanServer, ServerConstants

public class MBeanServerImpl
extends java.lang.Object
implements javax.management.MBeanServer, ServerConstants

MBean server implementation. This is the default server implementation returned by the MBeanServerFactory class (DEFAULT_MBEAN_SERVER_CLASS 55 ).

The MBean server behaviour can be further configured by setting the following system properties:

The loader repository is used for managing class loaders in the MBean server. The default repository uses the BasicLoaderRepository implementation (DEFAULT_LOADER_REPOSITORY_CLASS 55 ).

The default registry is (DEFAULT_MBEAN_REGISTRY_CLASS 55 ).

The RequiredModelMBean uses XMBean implementation by default (DEFAULT_REQUIRED_MODELMBEAN_CLASS 55 ).

Version:
$Revision: 1.24.4.5 $

Field Summary
private  java.util.Map listenerProxies
          The notification listener proxies.
private static org.jboss.logging.Logger log
          The logger
private static java.lang.Object[] NOPARAMS
          No parameters array
private static java.lang.String[] NOSIG
          No signature array
protected  org.jboss.mx.server.registry.MBeanRegistry registry
          Registry used by this server to map MBean object names to resource references.
 
Fields inherited from interface org.jboss.mx.server.ServerConstants
CLASS_REMOVED, CLASSLOADER, CLASSLOADER_ADDED, CLASSLOADER_REMOVED, DEFAULT_DOMAIN, DEFAULT_LOADER_NAME, DEFAULT_LOADER_REPOSITORY_CLASS, DEFAULT_LOGGER_FACTORY_CLASS, DEFAULT_MBEAN_REGISTRY_CLASS, DEFAULT_MBEAN_SERVER_CLASS, DEFAULT_REQUIRED_MODELMBEAN_CLASS, DEFAULT_SCOPED_REPOSITORY_CLASS, DEFAULT_SCOPED_REPOSITORY_PARSER_CLASS, IMPLEMENTATION_NAME, IMPLEMENTATION_VENDOR, IMPLEMENTATION_VERSION, JMI_DOMAIN, LOADER_REPOSITORY_CLASS_PROPERTY, LOGGER_FACTORY_CLASS_PROPERTY, MBEAN_REGISTRY, MBEAN_REGISTRY_CLASS_PROPERTY, MBEAN_SERVER_CLASS_PROPERTY, MBEAN_SERVER_DELEGATE, OPTIMIZE_REFLECTED_DISPATCHER, REQUIRED_MODELMBEAN_CLASS_PROPERTY, SPECIFICATION_NAME, SPECIFICATION_VENDOR, SPECIFICATION_VERSION, UNIFIED_LOADER_REPOSITORY_CLASS
 
Constructor Summary
MBeanServerImpl(java.lang.String defaultDomain)
          Creates an MBean server implementation with a given default domain name and registers the mandatory server delegate MBean to the server (MBEAN_SERVER_DELEGATE 55 ).
 
Method Summary
 void addNotificationListener(javax.management.ObjectName name, javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)
           
 void addNotificationListener(javax.management.ObjectName name, javax.management.ObjectName listener, javax.management.NotificationFilter filter, java.lang.Object handback)
           
protected  javax.management.NotificationListener createListenerProxy(javax.management.ObjectName name, javax.management.NotificationListener listener, java.lang.Object handback)
          Add a notification listener proxy
 javax.management.ObjectInstance createMBean(java.lang.String className, javax.management.ObjectName name)
           
 javax.management.ObjectInstance createMBean(java.lang.String className, javax.management.ObjectName name, java.lang.Object[] params, java.lang.String[] signature)
           
 javax.management.ObjectInstance createMBean(java.lang.String className, javax.management.ObjectName name, javax.management.ObjectName loaderName)
           
 javax.management.ObjectInstance createMBean(java.lang.String className, javax.management.ObjectName name, javax.management.ObjectName loaderName, java.lang.Object[] params, java.lang.String[] signature)
           
protected  org.jboss.mx.server.registry.MBeanRegistry createRegistry(java.lang.String defaultDomain)
           
 java.io.ObjectInputStream deserialize(javax.management.ObjectName name, byte[] data)
           
 java.io.ObjectInputStream deserialize(java.lang.String className, byte[] data)
           
 java.io.ObjectInputStream deserialize(java.lang.String className, javax.management.ObjectName loaderName, byte[] data)
           
 java.lang.Object getAttribute(javax.management.ObjectName name, java.lang.String attribute)
           
 javax.management.AttributeList getAttributes(javax.management.ObjectName name, java.lang.String[] attributes)
           
 java.lang.String getDefaultDomain()
           
 java.lang.Integer getMBeanCount()
           
 javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name)
           
 javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name)
           
private  javax.management.modelmbean.ModelMBeanInfo getRegistryManagementInterface()
           
protected  void handleInstantiateExceptions(java.lang.Throwable t, java.lang.String className)
          Handles errors thrown during class instantiation
private  java.lang.Exception handleInvocationException(java.lang.Exception e)
          Handles exceptions thrown by the implementation MBeans
 java.lang.Object instantiate(java.lang.String className)
          Instantiates an object using the default loader repository and default no-args constructor.
protected  java.lang.Object instantiate(java.lang.String className, java.lang.ClassLoader cl, java.lang.Object[] params, java.lang.String[] signature)
          Instantiate an object, the passed classloader is set as the thread's context classloader for the duration of this method.
 java.lang.Object instantiate(java.lang.String className, java.lang.Object[] params, java.lang.String[] signature)
          Instantiates an object using the default loader repository and a given constructor.
 java.lang.Object instantiate(java.lang.String className, javax.management.ObjectName loaderName)
          Instantiates an object using the given class loader.
 java.lang.Object instantiate(java.lang.String className, javax.management.ObjectName loaderName, java.lang.Object[] params, java.lang.String[] signature)
          Instantiates an object using the given class loader.
 java.lang.Object invoke(javax.management.ObjectName name, java.lang.String operationName, java.lang.Object[] params, java.lang.String[] signature)
           
 boolean isInstanceOf(javax.management.ObjectName name, java.lang.String className)
           
 boolean isRegistered(javax.management.ObjectName name)
           
protected  boolean queryMBean(javax.management.ObjectName objectName, javax.management.QueryExp queryExp)
          Query an MBean against the query
 java.util.Set queryMBeans(javax.management.ObjectName name, javax.management.QueryExp query)
           
 java.util.Set queryNames(javax.management.ObjectName name, javax.management.QueryExp query)
           
 javax.management.ObjectInstance registerMBean(java.lang.Object object, javax.management.ObjectName name)
           
protected  javax.management.ObjectInstance registerMBean(java.lang.Object object, javax.management.ObjectName name, java.lang.ClassLoader cl)
          Register an MBean
protected  javax.management.ObjectInstance registerMBean(java.lang.Object mbean, javax.management.ObjectName name, javax.management.ObjectName loaderName)
          Register an MBean
protected  void removeListenerProxies(javax.management.NotificationBroadcaster broadcaster, javax.management.ObjectName name)
          Remove notification listener proxies for a broadcaster
protected  java.util.Iterator removeListenerProxies(javax.management.ObjectName name, javax.management.NotificationListener listener)
          Remove notification listener proxies for a listener
 void removeNotificationListener(javax.management.ObjectName name, javax.management.NotificationListener listener)
           
 void removeNotificationListener(javax.management.ObjectName name, javax.management.ObjectName listener)
           
 void setAttribute(javax.management.ObjectName name, javax.management.Attribute attribute)
           
 javax.management.AttributeList setAttributes(javax.management.ObjectName name, javax.management.AttributeList attributes)
           
 void unregisterMBean(javax.management.ObjectName name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NOPARAMS

private static final java.lang.Object[] NOPARAMS
No parameters array


NOSIG

private static final java.lang.String[] NOSIG
No signature array


registry

protected org.jboss.mx.server.registry.MBeanRegistry registry
Registry used by this server to map MBean object names to resource references.


listenerProxies

private java.util.Map listenerProxies
The notification listener proxies. It is a map of object names to another map of listeners to another map of handback objects to proxies. Phew!


log

private static org.jboss.logging.Logger log
The logger

Constructor Detail

MBeanServerImpl

public MBeanServerImpl(java.lang.String defaultDomain)
Creates an MBean server implementation with a given default domain name and registers the mandatory server delegate MBean to the server (MBEAN_SERVER_DELEGATE 55 ).

Method Detail

instantiate

public java.lang.Object instantiate(java.lang.String className)
                             throws javax.management.ReflectionException,
                                    javax.management.MBeanException
Description copied from interface: javax.management.MBeanServer
Instantiates an object using the default loader repository and default no-args constructor.

Specified by:
instantiate in interface javax.management.MBeanServer

instantiate

public java.lang.Object instantiate(java.lang.String className,
                                    java.lang.Object[] params,
                                    java.lang.String[] signature)
                             throws javax.management.ReflectionException,
                                    javax.management.MBeanException
Description copied from interface: javax.management.MBeanServer
Instantiates an object using the default loader repository and a given constructor. The class being instantiated must contain a constructor that matches the signature given as an argument to this method call.

Specified by:
instantiate in interface javax.management.MBeanServer

instantiate

public java.lang.Object instantiate(java.lang.String className,
                                    javax.management.ObjectName loaderName)
                             throws javax.management.ReflectionException,
                                    javax.management.MBeanException,
                                    javax.management.InstanceNotFoundException
Description copied from interface: javax.management.MBeanServer
Instantiates an object using the given class loader. If the loader name contains a null reference, the class loader of the MBean server implementation will be used. The object must have a default, no-args constructor.

Specified by:
instantiate in interface javax.management.MBeanServer

instantiate

public java.lang.Object instantiate(java.lang.String className,
                                    javax.management.ObjectName loaderName,
                                    java.lang.Object[] params,
                                    java.lang.String[] signature)
                             throws javax.management.ReflectionException,
                                    javax.management.MBeanException,
                                    javax.management.InstanceNotFoundException
Description copied from interface: javax.management.MBeanServer
Instantiates an object using the given class loader. If the loader name contains a null reference, the class loader of the MBean server implementation will be used. The object must contain a constructor with a matching signature given as a parameter to this call.

Specified by:
instantiate in interface javax.management.MBeanServer

createMBean

public javax.management.ObjectInstance createMBean(java.lang.String className,
                                                   javax.management.ObjectName name)
                                            throws javax.management.ReflectionException,
                                                   javax.management.InstanceAlreadyExistsException,
                                                   javax.management.MBeanRegistrationException,
                                                   javax.management.MBeanException,
                                                   javax.management.NotCompliantMBeanException
Specified by:
createMBean in interface javax.management.MBeanServer

createMBean

public javax.management.ObjectInstance createMBean(java.lang.String className,
                                                   javax.management.ObjectName name,
                                                   java.lang.Object[] params,
                                                   java.lang.String[] signature)
                                            throws javax.management.ReflectionException,
                                                   javax.management.InstanceAlreadyExistsException,
                                                   javax.management.MBeanRegistrationException,
                                                   javax.management.MBeanException,
                                                   javax.management.NotCompliantMBeanException
Specified by:
createMBean in interface javax.management.MBeanServer

createMBean

public javax.management.ObjectInstance createMBean(java.lang.String className,
                                                   javax.management.ObjectName name,
                                                   javax.management.ObjectName loaderName)
                                            throws javax.management.ReflectionException,
                                                   javax.management.InstanceAlreadyExistsException,
                                                   javax.management.MBeanRegistrationException,
                                                   javax.management.MBeanException,
                                                   javax.management.NotCompliantMBeanException,
                                                   javax.management.InstanceNotFoundException
Specified by:
createMBean in interface javax.management.MBeanServer

createMBean

public javax.management.ObjectInstance createMBean(java.lang.String className,
                                                   javax.management.ObjectName name,
                                                   javax.management.ObjectName loaderName,
                                                   java.lang.Object[] params,
                                                   java.lang.String[] signature)
                                            throws javax.management.ReflectionException,
                                                   javax.management.InstanceAlreadyExistsException,
                                                   javax.management.MBeanRegistrationException,
                                                   javax.management.MBeanException,
                                                   javax.management.NotCompliantMBeanException,
                                                   javax.management.InstanceNotFoundException
Specified by:
createMBean in interface javax.management.MBeanServer

registerMBean

public javax.management.ObjectInstance registerMBean(java.lang.Object object,
                                                     javax.management.ObjectName name)
                                              throws javax.management.InstanceAlreadyExistsException,
                                                     javax.management.MBeanRegistrationException,
                                                     javax.management.NotCompliantMBeanException
Specified by:
registerMBean in interface javax.management.MBeanServer

unregisterMBean

public void unregisterMBean(javax.management.ObjectName name)
                     throws javax.management.InstanceNotFoundException,
                            javax.management.MBeanRegistrationException
Specified by:
unregisterMBean in interface javax.management.MBeanServer

getObjectInstance

public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name)
                                                  throws javax.management.InstanceNotFoundException
Specified by:
getObjectInstance in interface javax.management.MBeanServer

queryMBeans

public java.util.Set queryMBeans(javax.management.ObjectName name,
                                 javax.management.QueryExp query)
Specified by:
queryMBeans in interface javax.management.MBeanServer

queryNames

public java.util.Set queryNames(javax.management.ObjectName name,
                                javax.management.QueryExp query)
Specified by:
queryNames in interface javax.management.MBeanServer

isRegistered

public boolean isRegistered(javax.management.ObjectName name)
Specified by:
isRegistered in interface javax.management.MBeanServer

getMBeanCount

public java.lang.Integer getMBeanCount()
Specified by:
getMBeanCount in interface javax.management.MBeanServer

getAttribute

public java.lang.Object getAttribute(javax.management.ObjectName name,
                                     java.lang.String attribute)
                              throws javax.management.MBeanException,
                                     javax.management.AttributeNotFoundException,
                                     javax.management.InstanceNotFoundException,
                                     javax.management.ReflectionException
Specified by:
getAttribute in interface javax.management.MBeanServer

getAttributes

public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
                                                    java.lang.String[] attributes)
                                             throws javax.management.InstanceNotFoundException,
                                                    javax.management.ReflectionException
Specified by:
getAttributes in interface javax.management.MBeanServer

setAttribute

public void setAttribute(javax.management.ObjectName name,
                         javax.management.Attribute attribute)
                  throws javax.management.InstanceNotFoundException,
                         javax.management.AttributeNotFoundException,
                         javax.management.InvalidAttributeValueException,
                         javax.management.MBeanException,
                         javax.management.ReflectionException
Specified by:
setAttribute in interface javax.management.MBeanServer

setAttributes

public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
                                                    javax.management.AttributeList attributes)
                                             throws javax.management.InstanceNotFoundException,
                                                    javax.management.ReflectionException
Specified by:
setAttributes in interface javax.management.MBeanServer

invoke

public java.lang.Object invoke(javax.management.ObjectName name,
                               java.lang.String operationName,
                               java.lang.Object[] params,
                               java.lang.String[] signature)
                        throws javax.management.InstanceNotFoundException,
                               javax.management.MBeanException,
                               javax.management.ReflectionException
Specified by:
invoke in interface javax.management.MBeanServer

getMBeanInfo

public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name)
                                        throws javax.management.InstanceNotFoundException,
                                               javax.management.IntrospectionException,
                                               javax.management.ReflectionException
Specified by:
getMBeanInfo in interface javax.management.MBeanServer

getDefaultDomain

public java.lang.String getDefaultDomain()
Specified by:
getDefaultDomain in interface javax.management.MBeanServer

addNotificationListener

public void addNotificationListener(javax.management.ObjectName name,
                                    javax.management.NotificationListener listener,
                                    javax.management.NotificationFilter filter,
                                    java.lang.Object handback)
                             throws javax.management.InstanceNotFoundException
Specified by:
addNotificationListener in interface javax.management.MBeanServer

addNotificationListener

public void addNotificationListener(javax.management.ObjectName name,
                                    javax.management.ObjectName listener,
                                    javax.management.NotificationFilter filter,
                                    java.lang.Object handback)
                             throws javax.management.InstanceNotFoundException
Specified by:
addNotificationListener in interface javax.management.MBeanServer

removeNotificationListener

public void removeNotificationListener(javax.management.ObjectName name,
                                       javax.management.NotificationListener listener)
                                throws javax.management.InstanceNotFoundException,
                                       javax.management.ListenerNotFoundException
Specified by:
removeNotificationListener in interface javax.management.MBeanServer

removeNotificationListener

public void removeNotificationListener(javax.management.ObjectName name,
                                       javax.management.ObjectName listener)
                                throws javax.management.InstanceNotFoundException,
                                       javax.management.ListenerNotFoundException
Specified by:
removeNotificationListener in interface javax.management.MBeanServer

isInstanceOf

public boolean isInstanceOf(javax.management.ObjectName name,
                            java.lang.String className)
                     throws javax.management.InstanceNotFoundException
Specified by:
isInstanceOf in interface javax.management.MBeanServer

deserialize

public java.io.ObjectInputStream deserialize(javax.management.ObjectName name,
                                             byte[] data)
                                      throws javax.management.InstanceNotFoundException,
                                             javax.management.OperationsException
Specified by:
deserialize in interface javax.management.MBeanServer

deserialize

public java.io.ObjectInputStream deserialize(java.lang.String className,
                                             byte[] data)
                                      throws javax.management.OperationsException,
                                             javax.management.ReflectionException
Specified by:
deserialize in interface javax.management.MBeanServer

deserialize

public java.io.ObjectInputStream deserialize(java.lang.String className,
                                             javax.management.ObjectName loaderName,
                                             byte[] data)
                                      throws javax.management.InstanceNotFoundException,
                                             javax.management.OperationsException,
                                             javax.management.ReflectionException
Specified by:
deserialize in interface javax.management.MBeanServer

instantiate

protected java.lang.Object instantiate(java.lang.String className,
                                       java.lang.ClassLoader cl,
                                       java.lang.Object[] params,
                                       java.lang.String[] signature)
                                throws javax.management.ReflectionException,
                                       javax.management.MBeanException
Instantiate an object, the passed classloader is set as the thread's context classloader for the duration of this method.


handleInstantiateExceptions

protected void handleInstantiateExceptions(java.lang.Throwable t,
                                           java.lang.String className)
                                    throws javax.management.ReflectionException,
                                           javax.management.MBeanException
Handles errors thrown during class instantiation


registerMBean

protected javax.management.ObjectInstance registerMBean(java.lang.Object mbean,
                                                        javax.management.ObjectName name,
                                                        javax.management.ObjectName loaderName)
                                                 throws javax.management.ReflectionException,
                                                        javax.management.InstanceAlreadyExistsException,
                                                        javax.management.MBeanRegistrationException,
                                                        javax.management.MBeanException,
                                                        javax.management.NotCompliantMBeanException,
                                                        javax.management.InstanceNotFoundException
Register an MBean

The classloader is used as the thread context classloader during access to the mbean and it's interceptors


registerMBean

protected javax.management.ObjectInstance registerMBean(java.lang.Object object,
                                                        javax.management.ObjectName name,
                                                        java.lang.ClassLoader cl)
                                                 throws javax.management.InstanceAlreadyExistsException,
                                                        javax.management.MBeanRegistrationException,
                                                        javax.management.NotCompliantMBeanException
Register an MBean

The classloader is used as the thread context classloader during access to the mbean and it's interceptors


createListenerProxy

protected javax.management.NotificationListener createListenerProxy(javax.management.ObjectName name,
                                                                    javax.management.NotificationListener listener,
                                                                    java.lang.Object handback)
Add a notification listener proxy


removeListenerProxies

protected java.util.Iterator removeListenerProxies(javax.management.ObjectName name,
                                                   javax.management.NotificationListener listener)
Remove notification listener proxies for a listener


removeListenerProxies

protected void removeListenerProxies(javax.management.NotificationBroadcaster broadcaster,
                                     javax.management.ObjectName name)
Remove notification listener proxies for a broadcaster


handleInvocationException

private java.lang.Exception handleInvocationException(java.lang.Exception e)
Handles exceptions thrown by the implementation MBeans

Either returns a wrapped exception or throws a runtime exception


queryMBean

protected boolean queryMBean(javax.management.ObjectName objectName,
                             javax.management.QueryExp queryExp)
Query an MBean against the query


createRegistry

protected org.jboss.mx.server.registry.MBeanRegistry createRegistry(java.lang.String defaultDomain)

getRegistryManagementInterface

private javax.management.modelmbean.ModelMBeanInfo getRegistryManagementInterface()