Class MBeanContainer

  • All Implemented Interfaces:
    org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable

    @ManagedObject("The component that registers beans as MBeans")
    public class MBeanContainer
    extends Object
    implements org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Destroyable
    Container class for the MBean instances
    • Constructor Detail

      • MBeanContainer

        public MBeanContainer​(MBeanServer server)
        Constructs MBeanContainer
        Parameters:
        server - instance of MBeanServer for use by container
      • MBeanContainer

        public MBeanContainer​(MBeanServer server,
                              boolean cacheOtherClassLoaders)
        Constructs MBeanContainer
        Parameters:
        server - instance of MBeanServer for use by container
        cacheOtherClassLoaders - If true, MBeans from other classloaders (eg WebAppClassLoader) will be cached. The cache is never flushed, so this should be false if some classloaders do not live forever.
    • Method Detail

      • getMBeanServer

        public MBeanServer getMBeanServer()
        Retrieve instance of MBeanServer used by container
        Returns:
        instance of MBeanServer
      • isUseCacheForOtherClassLoaders

        @ManagedAttribute(value="Whether to use the cache for MBeans loaded by other ClassLoaders",
                          readonly=true)
        public boolean isUseCacheForOtherClassLoaders()
      • setDomain

        public void setDomain​(String domain)
        Set domain to be used to add MBeans
        Parameters:
        domain - domain name
      • getDomain

        @ManagedAttribute("The default ObjectName domain")
        public String getDomain()
        Retrieve domain name used to add MBeans
        Returns:
        domain name
      • mbeanFor

        public Object mbeanFor​(Object o)

        Creates an ObjectMBean for the given object.

        Attempts to create an ObjectMBean for the object by searching the package and class name space. For example an object of the type:

         class com.acme.MyClass extends com.acme.util.BaseClass implements com.acme.Iface
         

        then this method would look for the following classes:

        • com.acme.jmx.MyClassMBean
        • com.acme.util.jmx.BaseClassMBean
        • org.eclipse.jetty.jmx.ObjectMBean
        Parameters:
        o - The object
        Returns:
        A new instance of an MBean for the object or null.
      • findMBean

        public ObjectName findMBean​(Object object)
        Lookup an object name by instance
        Parameters:
        object - instance for which object name is looked up
        Returns:
        object name associated with specified instance, or null if not found
      • findBean

        public Object findBean​(ObjectName objectName)
        Lookup an instance by object name
        Parameters:
        objectName - object name of instance
        Returns:
        instance associated with specified object name, or null if not found
      • beanAdded

        public void beanAdded​(org.eclipse.jetty.util.component.Container parent,
                              Object obj)
        Specified by:
        beanAdded in interface org.eclipse.jetty.util.component.Container.Listener
      • beanRemoved

        public void beanRemoved​(org.eclipse.jetty.util.component.Container parent,
                                Object obj)
        Specified by:
        beanRemoved in interface org.eclipse.jetty.util.component.Container.Listener
      • makeName

        public String makeName​(String basis)
        Parameters:
        basis - name to strip of special characters.
        Returns:
        normalized name
      • dump

        public String dump()
        Specified by:
        dump in interface org.eclipse.jetty.util.component.Dumpable
      • destroy

        public void destroy()
        Specified by:
        destroy in interface org.eclipse.jetty.util.component.Destroyable