Class JndiJmx

All Implemented Interfaces:
EventListener, DynamicMBean, MBeanRegistration, ModelMBean, ModelMBeanNotificationBroadcaster, NotificationBroadcaster, NotificationListener, PersistentMBean

public class JndiJmx extends BaseModelMBean implements NotificationListener
Link between JNDI and JMX. JNDI can be used for persistence ( it is an API for storing hierarchical data and a perfect fit for that ), as well as an alternate view of the MBean registry. If this component is enabled, all MBeans will be registered in JNDI, and all attributes that are set via JMX can be stored in a DirContext. This acts as a "recorder" for creation of mbeans and attribute changes done via JMX. XXX How can we control ( filter ) which mbeans will be registere ? Or attributes ? XXX How can we get the beans and attributes loaded before jndijmx ? The intended use: - do whatever you want to start the application - load JndiJmx as an mbean - make changes via JMX. All changes are recorded - you can use JndiJmx to save the changes in a Jndi context. - you can use JndiJmx to load changes from a JndiContext and replay them. The main benefit is that only changed attributes are saved, and the Jndi layer can preserve most of the original structure of the config file. The alternative is to override the config files with config info extracted from the live objects - but it's very hard to save only what was actually changed and preserve structure and comments.
Author:
Costin Manolache
  • Field Details

    • log

      private static org.apache.commons.logging.Log log
    • componentContext

      protected Context componentContext
    • descriptorContext

      protected Context descriptorContext
    • configContext

      protected Context configContext
    • mserver

      MBeanServer mserver
    • attributes

      Hashtable attributes
    • instances

      Hashtable instances
  • Constructor Details

  • Method Details

    • setComponentContext

      public void setComponentContext(Context ctx)
      If a JNDI context is set, all components will be registered in the context.
      Parameters:
      ctx -
    • setDescriptorContext

      public void setDescriptorContext(Context ctx)
      JNDI context for component descriptors ( metadata ).
      Parameters:
      ctx -
    • setConfigContext

      public void setConfigContext(Context ctx)
      JNDI context where attributes will be stored for persistence
    • handleNotification

      public void handleNotification(Notification notification, Object handback)
      Specified by:
      handleNotification in interface NotificationListener
    • dumpStatus

      public String dumpStatus() throws Exception
      Throws:
      Exception
    • replay

      public void replay() throws Exception
      Throws:
      Exception
    • init

      public void init() throws Exception
      Throws:
      Exception