Package com.caplin.management.jmx
Interface MBeanServerManager
-
- All Known Implementing Classes:
MBeanServerManagerImpl
,MBeanServerManagerNullImpl
public interface MBeanServerManager
This is an interface for a wrapper class,MBeanServerManagerImpl
that wraps an JavaMBeanServer
and provides several useful abstractions. It supports registering and unregisteringJMXBean
annotated classes, adding and removing MBean relations, sending notifications to JMX clients upon attribute change, and registeringLongAttributeListener
s 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 relationshipvoid
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 namevoid
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 namevoid
notifyLongAttributeChanged(java.lang.String attributeName, java.lang.Long delta)
Notifies registered listeners of long attribute changesvoid
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 attributevoid
registerLongAttributeChangedListener(java.lang.String attributeName, LongAttributeListener longAttributeListener)
Registers listeners for long attribute changesvoid
registerMBean(java.lang.Object object)
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 childObjectvoid
unregisterMBean(java.lang.Object object)
-
-
-
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
-
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
-
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 namedescription
- description provided to JMX client of this attributeparentObject
-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 attributedelta
- 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 tolongAttributeListener
- 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 changedobject
- object to which changed attribute belongsoldValue
- original valuenewValue
- updated value
-
registerMBean
void registerMBean(java.lang.Object object)
- Parameters:
object
- object annotated withJMXBean
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 linkparentObject
- object from which relation will be removedchildObject
- object to which relation is linked
-
unregisterMBean
void unregisterMBean(java.lang.Object object)
- Parameters:
object
- object annotated withJMXBean
to be removed
-
-