Class OperationInvokingMessageHandler
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.jmx.OperationInvokingMessageHandler
- All Implemented Interfaces:
org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanClassLoaderAware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.ApplicationContextAware
,org.springframework.core.Ordered
,org.springframework.integration.context.ExpressionCapable
,org.springframework.integration.context.Orderable
,org.springframework.integration.core.MessageProducer
,org.springframework.integration.handler.HeaderPropagationAware
,org.springframework.integration.IntegrationPattern
,org.springframework.integration.support.context.NamedComponent
,org.springframework.integration.support.management.IntegrationManagement
,org.springframework.integration.support.management.TrackableComponent
,org.springframework.messaging.MessageHandler
,reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>
public class OperationInvokingMessageHandler
extends org.springframework.integration.handler.AbstractReplyProducingMessageHandler
A
MessageHandler
implementation for invoking JMX operations based on
the Message sent to its AbstractMessageHandler.handleMessage(Message)
method. Message headers
will be checked first when resolving the 'objectName' and 'operationName' to be
invoked on an MBean. These values would be supplied with the Message headers
defined as JmxHeaders.OBJECT_NAME
and JmxHeaders.OPERATION_NAME
,
respectively. In either case, if no header is present, the value resolution
will fallback to the defaults, if any have been configured on this instance via
setObjectName(String)
and setOperationName(String)
,
respectively.
The operation parameter(s), if any, must be available within the payload of the Message being handled. If the target operation expects multiple parameters, they can be provided in either a List or Map typed payload.
- Since:
- 2.0
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplate
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
-
Constructor Summary
Constructors Constructor Description OperationInvokingMessageHandler(javax.management.MBeanServerConnection server)
Construct an instance based on the providedMBeanServerConnection
. -
Method Summary
Modifier and Type Method Description java.lang.String
getComponentType()
org.springframework.integration.IntegrationPatternType
getIntegrationPatternType()
protected java.lang.Object
handleRequestMessage(org.springframework.messaging.Message<?> requestMessage)
void
setExpectReply(boolean expectReply)
Specify whether a reply Message is expected.void
setObjectName(java.lang.String objectName)
Specify a default ObjectName to use when no such header is available on the Message being handled.void
setOperationName(java.lang.String operationName)
Specify an operation name to be invoked when no such header is available on the Message being handled.Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
doInit, doInvokeAdvisedRequestHandler, getBeanClassLoader, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply
Methods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeaders
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods 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, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
OperationInvokingMessageHandler
public OperationInvokingMessageHandler(javax.management.MBeanServerConnection server)Construct an instance based on the providedMBeanServerConnection
.- Parameters:
server
- theMBeanServerConnection
to use.- Since:
- 4.3.20
-
-
Method Details
-
setObjectName
public void setObjectName(java.lang.String objectName)Specify a default ObjectName to use when no such header is available on the Message being handled.- Parameters:
objectName
- The object name.
-
setOperationName
public void setOperationName(java.lang.String operationName)Specify an operation name to be invoked when no such header is available on the Message being handled.- Parameters:
operationName
- The operation name.
-
setExpectReply
public void setExpectReply(boolean expectReply)Specify whether a reply Message is expected. If not, this handler will simply return null for a successful response or throw an Exception for a non-successful response. The default is true.- Parameters:
expectReply
- true if a reply is expected.- Since:
- 4.3.20
-
getComponentType
public java.lang.String getComponentType()- Specified by:
getComponentType
in interfaceorg.springframework.integration.support.context.NamedComponent
- Overrides:
getComponentType
in classorg.springframework.integration.handler.MessageHandlerSupport
-
getIntegrationPatternType
public org.springframework.integration.IntegrationPatternType getIntegrationPatternType()- Specified by:
getIntegrationPatternType
in interfaceorg.springframework.integration.IntegrationPattern
- Overrides:
getIntegrationPatternType
in classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
handleRequestMessage
protected java.lang.Object handleRequestMessage(org.springframework.messaging.Message<?> requestMessage)- Specified by:
handleRequestMessage
in classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-