public JMXManageableXMBean(final JMXManageable manageable, URL url) throws NotCompliantMBeanException, MBeanException { super(manageable, url); types_ = manageable.getJMXNotificationTypes(); manageable.setJMXCallback( new JMXManageable.JMXCallback() { public void sendJMXNotification(String type, String message) { broadCaster_.sendNotification( new Notification( type, // type manageable, // source ++notificationSequence_, // seq. number message // message )); } public void sendJMXAttributeChanged(String name, Object oldValue, Object newValue) { broadCaster_.sendNotification( new AttributeChangeNotification( manageable, ++notificationSequence_, System.currentTimeMillis(), "Attribute value changed", name, oldValue == null ? null : oldValue.getClass().getName(), oldValue, newValue)); } public void sendJMXNotification(String type, String message, Object payload) { sendJMXNotification(type, message); } }); }