Interface MBeanServerManager

  • All Known Implementing Classes:
    MBeanServerManagerImpl, MBeanServerManagerNullImpl

    public interface MBeanServerManager
    This is an interface for a wrapper class, MBeanServerManagerImpl that wraps an Java MBeanServer and provides several useful abstractions. It supports registering and unregistering JMXBean annotated classes, adding and removing MBean relations, sending notifications to JMX clients upon attribute change, and registering LongAttributeListeners and sending notifying these listeners of attribute changes.

    Here is an example of its use:

    
     public class AnnotatedBeanExample
     {
     
            public static void main(String[] args) throws Exception
            {
                    DataSource dataSource = DataSourceFactory.createDataSource(args);
                    dataSource.start();
                    MBeanServerManagerImpl beanServerManager = new MBeanServerManagerImpl(dataSource.getMBeanServer(), Logger.getAnonymousLogger());
                    beanServerManager.registerMBean(new SimpleAnnotatedBean());
            }
     }
     
     @JMXBean
     public class SimpleAnnotatedBean
     {
     
            private String COUNT_ATTRIBUTE_NAME = "count";
            private long count = 0;
     
            @JMXBeanAttribute(name = COUNT_ATTRIBUTE_NAME)
            public void setCount(long count)
            {
                    this.count = count;
            }
     
            @JMXBeanAttribute(name = COUNT_ATTRIBUTE_NAME)
            public long getCount()
            {
                    return this.count;
            }
     
            @JMXBeanKey
            public String getBeanKey()
            {
                    return "com.caplin.example:name=SimpleAnnotatedBean";
            }
     }
    
     
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addMBeanManyRelation​(java.lang.String attributeName, java.lang.Object parentObject, java.lang.Object childObject)
      Adds a bean relationship which links a parentObject to a childObject, this has to be added to an existing one-to-many relationship
      void createMBeanManyRelation​(java.lang.String attributeName, java.lang.String description, java.lang.Object parentObject)
      Creates an empty one-to-many bean relation for a parentObject with an attribute name
      void createMBeanOneRelation​(java.lang.String attributeName, java.lang.String description, java.lang.Object parentObject, java.lang.Object childObject)
      Creates an one-to-one bean relation linking a parentObject to a childObject with an attribute name
      void notifyLongAttributeChanged​(java.lang.String attributeName, java.lang.Long delta)
      Notifies registered listeners of long attribute changes
      void notifyMBeanAttributeChanged​(java.lang.String attributeName, java.lang.Object object, java.lang.Object oldValue, java.lang.Object newValue)
      Notifies JMX Clients of a change to a specified attribute
      void registerLongAttributeChangedListener​(java.lang.String attributeName, LongAttributeListener longAttributeListener)
      Registers listeners for long attribute changes
      void registerMBean​(java.lang.Object object)
      Registers a JMXBean annotated object as a JMXBeanWrapper to the MBeanServer
      void removeMBeanManyRelation​(java.lang.String attributeName, java.lang.Object parentObject, java.lang.Object childObject)
      Removes bean one-to-many relation for attribute between a parentObject and childObject
      void unregisterMBean​(java.lang.Object object)
      Unregisters a JMXBean annotated object as a JMXBeanWrapper from the MBeanServer
    • Method Detail

      • addMBeanManyRelation

        void addMBeanManyRelation​(java.lang.String attributeName,
                                  java.lang.Object parentObject,
                                  java.lang.Object childObject)
        Adds a bean relationship which links a parentObject to a childObject, this has to be added to an existing one-to-many relationship
        Parameters:
        attributeName - relation attribute name
        parentObject - JMXBean annotated object relation is registered with
        childObject - JMXBean annotated object returned upon requesting the relation
      • createMBeanOneRelation

        void createMBeanOneRelation​(java.lang.String attributeName,
                                    java.lang.String description,
                                    java.lang.Object parentObject,
                                    java.lang.Object childObject)
        Creates an one-to-one bean relation linking a parentObject to a childObject with an attribute name
        Parameters:
        attributeName - relation attribute name
        description - description provided to JMX client of this attribute
        parentObject - JMXBean annotated object relation is registered with
        childObject - JMXBean annotated object returned upon requesting the relation
      • createMBeanManyRelation

        void createMBeanManyRelation​(java.lang.String attributeName,
                                     java.lang.String description,
                                     java.lang.Object parentObject)
        Creates an empty one-to-many bean relation for a parentObject with an attribute name
        Parameters:
        attributeName - relation attribute name
        description - description provided to JMX client of this attribute
        parentObject - JMXBean annotated object relation is registered with
      • notifyLongAttributeChanged

        void notifyLongAttributeChanged​(java.lang.String attributeName,
                                        java.lang.Long delta)
        Notifies registered listeners of long attribute changes
        Parameters:
        attributeName - changed attribute
        delta - change in attribute
      • registerLongAttributeChangedListener

        void registerLongAttributeChangedListener​(java.lang.String attributeName,
                                                  LongAttributeListener longAttributeListener)
        Registers listeners for long attribute changes
        Parameters:
        attributeName - attribute to listen for changes to
        longAttributeListener - listener to receive callbacks upon changes to attribute
      • notifyMBeanAttributeChanged

        void notifyMBeanAttributeChanged​(java.lang.String attributeName,
                                         java.lang.Object object,
                                         java.lang.Object oldValue,
                                         java.lang.Object newValue)
        Notifies JMX Clients of a change to a specified attribute
        Parameters:
        attributeName - attribute that has changed
        object - object to which changed attribute belongs
        oldValue - original value
        newValue - updated value
      • registerMBean

        void registerMBean​(java.lang.Object object)
        Registers a JMXBean annotated object as a JMXBeanWrapper to the MBeanServer
        Parameters:
        object - object annotated with JMXBean to be added
      • removeMBeanManyRelation

        void removeMBeanManyRelation​(java.lang.String attributeName,
                                     java.lang.Object parentObject,
                                     java.lang.Object childObject)
        Removes bean one-to-many relation for attribute between a parentObject and childObject
        Parameters:
        attributeName - attribute for which to remove link
        parentObject - object from which relation will be removed
        childObject - object to which relation is linked
      • unregisterMBean

        void unregisterMBean​(java.lang.Object object)
        Unregisters a JMXBean annotated object as a JMXBeanWrapper from the MBeanServer
        Parameters:
        object - object annotated with JMXBean to be removed