Class IntegrationMBeanExporter

All Implemented Interfaces:
Aware, BeanClassLoaderAware, BeanFactoryAware, BeanPostProcessor, DestructionAwareBeanPostProcessor, DisposableBean, InitializingBean, SmartInitializingSingleton, ApplicationContextAware, MBeanExportOperations

@ManagedResource
public class IntegrationMBeanExporter
extends MBeanExporter
implements ApplicationContextAware, DestructionAwareBeanPostProcessor

MBean exporter for Spring Integration components in an existing application. Add an instance of this as a bean definition in the same context as the components you need to monitor and all message channels and message handlers will be exposed.

Channels will report metrics on send and receive (counts, rates, errors) and handlers will report metrics on execution duration. Channels will be registered under their name (bean id), if explicit, or the last part of their internal name (e.g. "nullChannel") if registered by the framework. A handler that is attached to an endpoint will be registered with the endpoint name (bean id) if there is one, otherwise under the name of the input channel. Handler object names contain a bean key that reports the source of the name: "endpoint" if the name is the endpoint id; "anonymous" if it is the input channel; and "handler" as a fallback, where the object name is just the toString() of the handler.

This component is itself an MBean, reporting attributes concerning the names and object names of the channels and handlers. It doesn't register itself to avoid conflicts with the standard <context:mbean-export/> from Spring (which should therefore be used any time you need to expose those features).

Author:
Dave Syer, Helena Edelson, Oleg Zhurakousky, Gary Russell, Artem Bilan, Meherzad Lahewala