The management functionality of carbon is provided by augmenting components
with hooks into the JMX (Java Management Extensions) APIs. An interceptor
exposes the DynamicMBean interface from a component that is specialized to
expose MBeanInfo for that component. The MBeanInfo will utilize a descriptor
configuration to decide which functionality to expose. It will also expose
the entire custom component configuration by default.
Utilizing the management metadata to decide what features to expose, this
service can provide sensible management interfaces, complete with thorough
descriptions of what is what.
Notifications are also supported by having the decorator expose the
NotificationBroadcaster capability that is part of the JMX specification.
This interface is exposed on a component such that you can describe certain
events in the management descriptor metadata for a particular component. This
allows the component to describe what events it may send, allowing others
to register to listen for those events. It can then send those events so that
those listening will receive notifications.