Class MBeanRegistry

java.lang.Object
org.apache.zookeeper.jmx.MBeanRegistry

public class MBeanRegistry extends Object
This class provides a unified interface for registering/unregistering of zookeeper MBeans with the platform MBean server. It builds a hierarchy of MBeans where each MBean represented by a filesystem-like path. Eventually, this hierarchy will be stored in the zookeeper data tree instance as a virtual data tree.
  • Field Details

  • Constructor Details

    • MBeanRegistry

      public MBeanRegistry()
  • Method Details

    • setInstance

      public static void setInstance(MBeanRegistry instance)
      Useful for unit tests. Change the MBeanRegistry instance
      Parameters:
      instance - new instance
    • getInstance

      public static MBeanRegistry getInstance()
    • getPlatformMBeanServer

      public MBeanServer getPlatformMBeanServer()
      Return the underlying MBeanServer that is being used to register MBean's. The returned MBeanServer may be a new empty MBeanServer if running through IKVM.
    • register

      public void register(ZKMBeanInfo bean, ZKMBeanInfo parent) throws JMException
      Registers a new MBean with the platform MBean server.
      Parameters:
      bean - the bean being registered
      parent - if not null, the new bean will be registered as a child node of this parent.
      Throws:
      JMException
    • getRegisteredBeans

      public Set<ZKMBeanInfo> getRegisteredBeans()
      Returns:
      a Collection with the ZKMBeanInfo instances not unregistered. Mainly for testing purposes.
    • unregister

      public void unregister(ZKMBeanInfo bean)
      Unregister MBean.
      Parameters:
      bean -
    • makeFullPath

      public String makeFullPath(String prefix, String... name)
      Generate a filesystem-like path.
      Parameters:
      prefix - path prefix
      name - path elements
      Returns:
      absolute path
    • makeFullPath

      protected String makeFullPath(String prefix, ZKMBeanInfo bean)
    • makeObjectName

      protected ObjectName makeObjectName(String path, ZKMBeanInfo bean) throws MalformedObjectNameException
      Builds an MBean path and creates an ObjectName instance using the path.
      Parameters:
      path - MBean path
      bean - the MBean instance
      Returns:
      ObjectName to be registered with the platform MBean server
      Throws:
      MalformedObjectNameException