com.sun.jdmk
Class MBeanServerForwarder

java.lang.Object
  extended by com.sun.jdmk.MBeanServerForwarder
All Implemented Interfaces:
javax.management.MBeanServer, javax.management.MBeanServerConnection
Direct Known Subclasses:
MBeanServerChecker

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

An object of this class implements the MBeanServer interface and wraps another object that also implements that interface. Every method in MBeanServer is forwarded to the wrapped object.

This class is principally useful as the superclass for other wrapping classes that intercept some of the methods in MBeanServer and perform some action before forwarding to the wrapped object (or do not forward at all).

The wrapped object can be changed at any time. A frequent operation is to insert another MBeanServerForwarder between this one and the wrapped object. The idiom for that is:

 synchronized (mbeanServerForwarder) {
     MBeanServer oldmbs = mbeanServerForwarder.getMBeanServer();
     MBeanServer newmbs = new MyMBeanServerForwarder(oldmbs);
     mbeanServerForwarder.setMBeanServer(newmbs);
 }
 

The synchronized block ensures that information is not lost if two threads try to insert MBeanServerForwarders at the same time.

Since:
Java DMK 5.1

Constructor Summary
MBeanServerForwarder(javax.management.MBeanServer mbs)
          Make a new MBeanServerForwarder that forwards all requests from the MBeanServer interface to mbs.
 
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)
           
 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)
           
 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.ClassLoader getClassLoader(javax.management.ObjectName loaderName)
           
 java.lang.ClassLoader getClassLoaderFor(javax.management.ObjectName mbeanName)
           
 javax.management.loading.ClassLoaderRepository getClassLoaderRepository()
           
 java.lang.String getDefaultDomain()
           
 java.lang.String[] getDomains()
           
 java.lang.Integer getMBeanCount()
           
 javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name)
           
 javax.management.MBeanServer getMBeanServer()
          Return the wrapped MBeanServer to which all requests from the MBeanServer interface are forwarded.
 javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name)
           
 java.lang.Object instantiate(java.lang.String className)
           
 java.lang.Object instantiate(java.lang.String className, java.lang.Object[] params, java.lang.String[] signature)
           
 java.lang.Object instantiate(java.lang.String className, javax.management.ObjectName loaderName)
           
 java.lang.Object instantiate(java.lang.String className, javax.management.ObjectName loaderName, java.lang.Object[] params, java.lang.String[] signature)
           
 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)
           
 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)
           
 void removeNotificationListener(javax.management.ObjectName name, javax.management.NotificationListener listener)
           
 void removeNotificationListener(javax.management.ObjectName name, javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)
           
 void removeNotificationListener(javax.management.ObjectName name, javax.management.ObjectName listener)
           
 void removeNotificationListener(javax.management.ObjectName name, javax.management.ObjectName listener, javax.management.NotificationFilter filter, java.lang.Object handback)
           
 void setAttribute(javax.management.ObjectName name, javax.management.Attribute attribute)
           
 javax.management.AttributeList setAttributes(javax.management.ObjectName name, javax.management.AttributeList attributes)
           
 void setMBeanServer(javax.management.MBeanServer mbs)
          Change the wrapped MBeanServer object to which all requests from the MBeanServer interface are forwarded.
 void unregisterMBean(javax.management.ObjectName name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MBeanServerForwarder

public MBeanServerForwarder(javax.management.MBeanServer mbs)
Make a new MBeanServerForwarder that forwards all requests from the MBeanServer interface to mbs.

Parameters:
mbs - the wrapped MBeanServer to forward to.
Method Detail

getMBeanServer

public javax.management.MBeanServer getMBeanServer()
Return the wrapped MBeanServer to which all requests from the MBeanServer interface are forwarded.


setMBeanServer

public void setMBeanServer(javax.management.MBeanServer mbs)
                    throws java.lang.IllegalArgumentException

Change the wrapped MBeanServer object to which all requests from the MBeanServer interface are forwarded. The old wrapped object is lost unless it was accessible by other means.

Parameters:
mbs - the new wrapped object.
Throws:
java.lang.IllegalArgumentException - if mbs is null.

instantiate

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

instantiate

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

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
Specified by:
instantiate in interface javax.management.MBeanServer
Throws:
javax.management.ReflectionException
javax.management.MBeanException

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
Specified by:
instantiate in interface javax.management.MBeanServer
Throws:
javax.management.ReflectionException
javax.management.MBeanException
javax.management.InstanceNotFoundException

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
Specified by:
createMBean in interface javax.management.MBeanServerConnection
Throws:
javax.management.ReflectionException
javax.management.InstanceAlreadyExistsException
javax.management.MBeanRegistrationException
javax.management.MBeanException
javax.management.NotCompliantMBeanException

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
Specified by:
createMBean in interface javax.management.MBeanServerConnection
Throws:
javax.management.ReflectionException
javax.management.InstanceAlreadyExistsException
javax.management.MBeanRegistrationException
javax.management.MBeanException
javax.management.NotCompliantMBeanException
javax.management.InstanceNotFoundException

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
Specified by:
createMBean in interface javax.management.MBeanServerConnection
Throws:
javax.management.ReflectionException
javax.management.InstanceAlreadyExistsException
javax.management.MBeanRegistrationException
javax.management.MBeanException
javax.management.NotCompliantMBeanException

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
Specified by:
createMBean in interface javax.management.MBeanServerConnection
Throws:
javax.management.ReflectionException
javax.management.InstanceAlreadyExistsException
javax.management.MBeanRegistrationException
javax.management.MBeanException
javax.management.NotCompliantMBeanException
javax.management.InstanceNotFoundException

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
Throws:
javax.management.InstanceAlreadyExistsException
javax.management.MBeanRegistrationException
javax.management.NotCompliantMBeanException

unregisterMBean

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

getObjectInstance

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

queryMBeans

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

queryNames

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

isRegistered

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

getMBeanCount

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

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
Specified by:
getAttribute in interface javax.management.MBeanServerConnection
Throws:
javax.management.MBeanException
javax.management.AttributeNotFoundException
javax.management.InstanceNotFoundException
javax.management.ReflectionException

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
Specified by:
getAttributes in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.ReflectionException

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
Specified by:
setAttribute in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.AttributeNotFoundException
javax.management.InvalidAttributeValueException
javax.management.MBeanException
javax.management.ReflectionException

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
Specified by:
setAttributes in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.ReflectionException

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
Specified by:
invoke in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.MBeanException
javax.management.ReflectionException

getDefaultDomain

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

getDomains

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

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
Specified by:
addNotificationListener in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException

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
Specified by:
addNotificationListener in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException

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
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.ListenerNotFoundException

removeNotificationListener

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

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
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.ListenerNotFoundException

removeNotificationListener

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

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
Specified by:
getMBeanInfo in interface javax.management.MBeanServerConnection
Throws:
javax.management.InstanceNotFoundException
javax.management.IntrospectionException
javax.management.ReflectionException

isInstanceOf

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

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
Throws:
javax.management.InstanceNotFoundException
javax.management.OperationsException

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
Throws:
javax.management.OperationsException
javax.management.ReflectionException

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
Throws:
javax.management.InstanceNotFoundException
javax.management.OperationsException
javax.management.ReflectionException

getClassLoaderFor

public java.lang.ClassLoader getClassLoaderFor(javax.management.ObjectName mbeanName)
                                        throws javax.management.InstanceNotFoundException
Specified by:
getClassLoaderFor in interface javax.management.MBeanServer
Throws:
javax.management.InstanceNotFoundException

getClassLoader

public java.lang.ClassLoader getClassLoader(javax.management.ObjectName loaderName)
                                     throws javax.management.InstanceNotFoundException
Specified by:
getClassLoader in interface javax.management.MBeanServer
Throws:
javax.management.InstanceNotFoundException

getClassLoaderRepository

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

Open Source build 01-ea
opendmk-1.0-b01-ea 2010.10.20_19:39:55_UTC

Copyright 1998-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.