Class NotificationListeningMessageProducer
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
org.springframework.integration.jmx.NotificationListeningMessageProducer
- All Implemented Interfaces:
EventListener,NotificationListener,Aware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,SmartInitializingSingleton,ApplicationContextAware,ApplicationListener<ContextRefreshedEvent>,Lifecycle,Phased,SmartLifecycle,ExpressionCapable,MessageProducer,IntegrationPattern,NamedComponent,IntegrationInboundManagement,IntegrationManagement,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent
public class NotificationListeningMessageProducer
extends MessageProducerSupport
implements NotificationListener, ApplicationListener<ContextRefreshedEvent>
A JMX
NotificationListener implementation that will send Messages
containing the JMX Notification instances as their payloads.- Since:
- 2.0
- Author:
- Mark Fisher, Gary Russell, Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides -
Field Summary
Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLockFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoStart()Registers the notification listener with the specified ObjectNames.protected voiddoStop()Unregisters the notification listener.Subclasses may implement this method to provide component type information.voidhandleNotification(Notification notification, Object handback) Notification handling method implementation.voidTheNotificationListenermight not be registered onAbstractEndpoint.start()because theMBeanExportermight not been started yet.protected Collection<ObjectName>Return a collection ofObjectNameofr providedmBeanObjectNames.voidsetFilter(NotificationFilter filter) Specify aNotificationFilterto be passed to the server when registering this listener.voidsetHandback(Object handback) Specify a handback object to provide context to the listener upon notification.voidsetObjectName(ObjectName... objectNames) Specify the JMX ObjectNames (or patterns) of the notification publisher to which this notification listener should be subscribed.voidsetServer(MBeanServerConnection server) Provide a reference to the MBeanServer where the notification publishing MBeans are registered.Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, onInit, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisherMethods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
destroy, doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stopMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
destroy, getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedTypeMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
NotificationListeningMessageProducer
public NotificationListeningMessageProducer()
-
-
Method Details
-
setServer
Provide a reference to the MBeanServer where the notification publishing MBeans are registered.- Parameters:
server- the MBean server connection.
-
setObjectName
Specify the JMX ObjectNames (or patterns) of the notification publisher to which this notification listener should be subscribed.- Parameters:
objectNames- The object names.
-
setFilter
Specify aNotificationFilterto be passed to the server when registering this listener. The filter may be null.- Parameters:
filter- The filter.
-
setHandback
Specify a handback object to provide context to the listener upon notification. This object may be null.- Parameters:
handback- The object.
-
handleNotification
Notification handling method implementation. Creates a Message with the JMXNotificationas its payload, and if the handback object is not null, it sets that as a Message header value. The Message is then sent to this producer's output channel.- Specified by:
handleNotificationin interfaceNotificationListener
-
getComponentType
Description copied from class:IntegrationObjectSupportSubclasses may implement this method to provide component type information.- Specified by:
getComponentTypein interfaceNamedComponent- Overrides:
getComponentTypein classIntegrationObjectSupport
-
onApplicationEvent
TheNotificationListenermight not be registered onAbstractEndpoint.start()because theMBeanExportermight not been started yet.- Specified by:
onApplicationEventin interfaceApplicationListener<ContextRefreshedEvent>- Parameters:
event- the ContextRefreshedEvent event
-
doStart
protected void doStart()Registers the notification listener with the specified ObjectNames.- Overrides:
doStartin classMessageProducerSupport
-
doStop
protected void doStop()Unregisters the notification listener.- Overrides:
doStopin classMessageProducerSupport
-
retrieveMBeanNames
Return a collection ofObjectNameofr providedmBeanObjectNames.- Returns:
- the collection of
ObjectNameofr providedmBeanObjectNames.
-