mx4j.server

Class MX4JMBeanServer

Implemented Interfaces:
javax.management.MBeanServer

public class MX4JMBeanServer
extends java.lang.Object
implements javax.management.MBeanServer

The MX4J MBeanServer implementation.
The MBeanServer accomplishes these roles:
The repository function is delegated to instances of MBeanRepository classes. This class acts as a factory for MBeanRepository instances, that can be controlled via the system property MX4JSystemKeys.MX4J_MBEANSERVER_REPOSITORY to the qualified name of the implementation class.

This class also acts as an invoker on MBeans. The architecture is interceptor-based, that is whenever you call from a client an MBeanServer method that will end up to call the MBean instance, the call is dispatched to the interceptor chain and eventually to the MBean.
The interceptors are configurable via the MBean MBeanServerInterceptorConfigurator. When the call is about to arrive to the MBean instance, the last interceptor dispatches the call depending on the MBean type: if the MBean is a dynamic MBean, the call is dispatched directly; if the MBean is a standard MBean an MBeanInvoker is delegated to invoke on the MBean instance.

Version:
$Revision: 1.31 $

Constructor Summary

MX4JMBeanServer(String defaultDomain, javax.management.MBeanServer outer, javax.management.MBeanServerDelegate delegate)
Create a new MBeanServer implementation with the specified default domain.

Method Summary

void
addNotificationListener(javax.management.ObjectName observed, javax.management.NotificationListener listener, javax.management.NotificationFilter filter, Object handback)
void
addNotificationListener(javax.management.ObjectName observed, javax.management.ObjectName listener, javax.management.NotificationFilter filter, Object handback)
javax.management.ObjectInstance
createMBean(String className, javax.management.ObjectName objectName)
javax.management.ObjectInstance
createMBean(String className, javax.management.ObjectName objectName, Object[] args, String[] parameters)
javax.management.ObjectInstance
createMBean(String className, javax.management.ObjectName objectName, javax.management.ObjectName loaderName)
javax.management.ObjectInstance
createMBean(String className, javax.management.ObjectName objectName, javax.management.ObjectName loaderName, Object[] args, String[] parameters)
ObjectInputStream
deserialize(String className, byte[] bytes)
ObjectInputStream
deserialize(String className, javax.management.ObjectName loaderName, byte[] bytes)
ObjectInputStream
deserialize(javax.management.ObjectName objectName, byte[] bytes)
Object
getAttribute(javax.management.ObjectName objectName, String attribute)
javax.management.AttributeList
getAttributes(javax.management.ObjectName objectName, String[] attributes)
ClassLoader
getClassLoader(javax.management.ObjectName name)
ClassLoader
getClassLoaderFor(javax.management.ObjectName name)
javax.management.loading.ClassLoaderRepository
getClassLoaderRepository()
Returns the ClassLoaderRepository for this MBeanServer.
String
getDefaultDomain()
String[]
getDomains()
Integer
getMBeanCount()
javax.management.MBeanInfo
getMBeanInfo(javax.management.ObjectName objectName)
javax.management.ObjectInstance
getObjectInstance(javax.management.ObjectName objectName)
Object
instantiate(String className)
Object
instantiate(String className, Object[] args, String[] parameters)
Object
instantiate(String className, javax.management.ObjectName loaderName)
Object
instantiate(String className, javax.management.ObjectName loaderName, Object[] args, String[] parameters)
Object
invoke(javax.management.ObjectName objectName, String methodName, Object[] args, String[] parameters)
boolean
isInstanceOf(javax.management.ObjectName objectName, String className)
boolean
isRegistered(javax.management.ObjectName objectName)
Set
queryMBeans(javax.management.ObjectName patternName, javax.management.QueryExp filter)
Set
queryNames(javax.management.ObjectName patternName, javax.management.QueryExp filter)
javax.management.ObjectInstance
registerMBean(Object mbean, javax.management.ObjectName objectName)
void
removeNotificationListener(javax.management.ObjectName observed, javax.management.NotificationListener listener)
void
removeNotificationListener(javax.management.ObjectName observed, javax.management.NotificationListener listener, javax.management.NotificationFilter filter, Object handback)
void
removeNotificationListener(javax.management.ObjectName observed, javax.management.ObjectName listener)
void
removeNotificationListener(javax.management.ObjectName observed, javax.management.ObjectName listener, javax.management.NotificationFilter filter, Object handback)
void
setAttribute(javax.management.ObjectName objectName, javax.management.Attribute attribute)
javax.management.AttributeList
setAttributes(javax.management.ObjectName objectName, javax.management.AttributeList attributes)
void
unregisterMBean(javax.management.ObjectName objectName)

Constructor Details

MX4JMBeanServer

public MX4JMBeanServer(String defaultDomain,
                       javax.management.MBeanServer outer,
                       javax.management.MBeanServerDelegate delegate)
Create a new MBeanServer implementation with the specified default domain. If the default domain is null, then the empty string is assumed.
Parameters:
defaultDomain - The default domain to be used

Method Details

addNotificationListener

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

addNotificationListener

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

createMBean

public javax.management.ObjectInstance createMBean(String className,
                                                   javax.management.ObjectName objectName)
            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 in interface javax.management.MBeanServerConnection

createMBean

public javax.management.ObjectInstance createMBean(String className,
                                                   javax.management.ObjectName objectName,
                                                   Object[] args,
                                                   String[] parameters)
            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 in interface javax.management.MBeanServerConnection

createMBean

public javax.management.ObjectInstance createMBean(String className,
                                                   javax.management.ObjectName objectName,
                                                   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 in interface javax.management.MBeanServerConnection

createMBean

public javax.management.ObjectInstance createMBean(String className,
                                                   javax.management.ObjectName objectName,
                                                   javax.management.ObjectName loaderName,
                                                   Object[] args,
                                                   String[] parameters)
            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 in interface javax.management.MBeanServerConnection

deserialize

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

deserialize

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

deserialize

public ObjectInputStream deserialize(javax.management.ObjectName objectName,
                                     byte[] bytes)
            throws javax.management.InstanceNotFoundException,
                   javax.management.OperationsException
Specified by:
deserialize in interface javax.management.MBeanServer

getAttribute

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

getAttributes

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

getClassLoader

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

getClassLoaderFor

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

getClassLoaderRepository

public javax.management.loading.ClassLoaderRepository getClassLoaderRepository()
Specified by:
getClassLoaderRepository in interface javax.management.MBeanServer

getDefaultDomain

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

getDomains

public String[] getDomains()
Specified by:
getDomains in interface javax.management.MBeanServer
getDomains in interface javax.management.MBeanServerConnection

getMBeanCount

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

getMBeanInfo

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

getObjectInstance

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

instantiate

public Object instantiate(String className)
            throws javax.management.ReflectionException,
                   javax.management.MBeanException
Specified by:
instantiate in interface javax.management.MBeanServer

instantiate

public Object instantiate(String className,
                          Object[] args,
                          String[] parameters)
            throws javax.management.ReflectionException,
                   javax.management.MBeanException
Specified by:
instantiate in interface javax.management.MBeanServer

instantiate

public Object instantiate(String className,
                          javax.management.ObjectName loaderName)
            throws javax.management.ReflectionException,
                   javax.management.MBeanException,
                   javax.management.InstanceNotFoundException
Specified by:
instantiate in interface javax.management.MBeanServer

instantiate

public Object instantiate(String className,
                          javax.management.ObjectName loaderName,
                          Object[] args,
                          String[] parameters)
            throws javax.management.ReflectionException,
                   javax.management.MBeanException,
                   javax.management.InstanceNotFoundException
Specified by:
instantiate in interface javax.management.MBeanServer

invoke

public Object invoke(javax.management.ObjectName objectName,
                     String methodName,
                     Object[] args,
                     String[] parameters)
            throws javax.management.InstanceNotFoundException,
                   javax.management.MBeanException,
                   javax.management.ReflectionException
Specified by:
invoke in interface javax.management.MBeanServer
invoke in interface javax.management.MBeanServerConnection

isInstanceOf

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

isRegistered

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

queryMBeans

public Set queryMBeans(javax.management.ObjectName patternName,
                       javax.management.QueryExp filter)
Specified by:
queryMBeans in interface javax.management.MBeanServer
queryMBeans in interface javax.management.MBeanServerConnection

queryNames

public Set queryNames(javax.management.ObjectName patternName,
                      javax.management.QueryExp filter)
Specified by:
queryNames in interface javax.management.MBeanServer
queryNames in interface javax.management.MBeanServerConnection

registerMBean

public javax.management.ObjectInstance registerMBean(Object mbean,
                                                     javax.management.ObjectName objectName)
            throws javax.management.InstanceAlreadyExistsException,
                   javax.management.MBeanRegistrationException,
                   javax.management.NotCompliantMBeanException
Specified by:
registerMBean in interface javax.management.MBeanServer

removeNotificationListener

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

removeNotificationListener

public void removeNotificationListener(javax.management.ObjectName observed,
                                       javax.management.NotificationListener listener,
                                       javax.management.NotificationFilter filter,
                                       Object handback)
            throws javax.management.InstanceNotFoundException,
                   javax.management.ListenerNotFoundException
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
removeNotificationListener in interface javax.management.MBeanServerConnection

removeNotificationListener

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

removeNotificationListener

public void removeNotificationListener(javax.management.ObjectName observed,
                                       javax.management.ObjectName listener,
                                       javax.management.NotificationFilter filter,
                                       Object handback)
            throws javax.management.InstanceNotFoundException,
                   javax.management.ListenerNotFoundException
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
removeNotificationListener in interface javax.management.MBeanServerConnection

setAttribute

public void setAttribute(javax.management.ObjectName objectName,
                         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
setAttribute in interface javax.management.MBeanServerConnection

setAttributes

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

unregisterMBean

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

Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.