Class MessageProducerSupport
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
- All Implemented Interfaces:
Aware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,SmartInitializingSingleton,ApplicationContextAware,Lifecycle,Phased,SmartLifecycle,ExpressionCapable,MessageProducer,IntegrationPattern,NamedComponent,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent
- Direct Known Subclasses:
AbstractInternetProtocolReceivingChannelAdapter,AbstractMqttMessageDrivenChannelAdapter,AbstractXmppConnectionAwareEndpoint,AmqpInboundChannelAdapter,ExpressionMessageProducerSupport,FileTailingMessageProducerSupport,ImapIdleChannelAdapter,JmsMessageDrivenEndpoint,KafkaMessageDrivenChannelAdapter,MongoDbChangeStreamMessageProducer,NotificationListeningMessageProducer,ReactiveMessageSourceProducer,ReactiveRedisStreamMessageProducer,RedisInboundChannelAdapter,RedisQueueMessageDrivenEndpoint,StompInboundChannelAdapter,SyslogReceivingChannelAdapterSupport,TcpReceivingChannelAdapter,WebSocketInboundChannelAdapter,ZeroMqMessageProducer
public abstract class MessageProducerSupport extends AbstractEndpoint implements MessageProducer, TrackableComponent, SmartInitializingSingleton, IntegrationPattern
A support class for producer endpoints that provides a setter for the
output channel and a convenience method for sending Messages.
- Author:
- Mark Fisher, Artem Bilan, Gary Russell
-
Field Summary
Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLockFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger -
Constructor Summary
Constructors Modifier Constructor Description protectedMessageProducerSupport() -
Method Summary
Modifier and Type Method Description voidafterSingletonsInstantiated()protected ErrorMessagebuildErrorMessage(Message<?> message, Exception exception)Build an error message for the exception and message using the configuredErrorMessageStrategy.protected voiddoStart()Take no action by default.protected voiddoStop()Take no action by default.MessageChannelgetErrorChannel()Return the error channel (if provided) to which error messages will be routed.protected AttributeAccessorgetErrorMessageAttributes(Message<?> message)Populate anAttributeAccessorto be used when building an error message with theerrorMessageStrategy.IntegrationPatternTypegetIntegrationPatternType()Return a pattern type this component implements.protected MessagingTemplategetMessagingTemplate()MessageChannelgetOutputChannel()Return the the output channel.protected voidonInit()Subclasses may implement this for initialization logic.protected booleansendErrorMessageIfNecessary(Message<?> message, Exception exception)Send an error message based on the exception and message.protected voidsendMessage(Message<?> messageArg)voidsetErrorChannel(MessageChannel errorChannel)voidsetErrorChannelName(String errorChannelName)Set the error channel name.voidsetErrorMessageStrategy(ErrorMessageStrategy errorMessageStrategy)Set anErrorMessageStrategyto use to build an error message when a exception occurs.voidsetOutputChannel(MessageChannel outputChannel)Specify theMessageChannelto which produced Messages should be sent.voidsetOutputChannelName(String outputChannelName)Set the output channel name; overridesoutputChannelif provided.voidsetSendTimeout(long sendTimeout)Configure the default timeout value to use for send operations.voidsetShouldTrack(boolean shouldTrack)protected voidsubscribeToPublisher(org.reactivestreams.Publisher<? extends Message<?>> publisher)Methods 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, getComponentType, 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.context.NamedComponent
getBeanName, getComponentName, getComponentType
-
Constructor Details
-
MessageProducerSupport
protected MessageProducerSupport()
-
-
Method Details
-
setOutputChannel
Description copied from interface:MessageProducerSpecify theMessageChannelto which produced Messages should be sent.- Specified by:
setOutputChannelin interfaceMessageProducer- Parameters:
outputChannel- The output channel.
-
setOutputChannelName
Set the output channel name; overridesoutputChannelif provided.- Specified by:
setOutputChannelNamein interfaceMessageProducer- Parameters:
outputChannelName- the channel name.- Since:
- 4.3
-
getOutputChannel
Description copied from interface:MessageProducerReturn the the output channel.- Specified by:
getOutputChannelin interfaceMessageProducer- Returns:
- the channel.
-
setErrorChannel
-
setErrorChannelName
Set the error channel name. If no error channel is provided, this endpoint will propagate Exceptions to the message-driven source. To completely suppress Exceptions, provide a reference to the "nullChannel" here.- Parameters:
errorChannelName- The error channel bean name.- Since:
- 4.3
-
getErrorChannel
Return the error channel (if provided) to which error messages will be routed.- Returns:
- the channel or null.
- Since:
- 4.3
-
setSendTimeout
public void setSendTimeout(long sendTimeout)Configure the default timeout value to use for send operations. May be overridden for individual messages.- Parameters:
sendTimeout- the send timeout in milliseconds- See Also:
GenericMessagingTemplate.setSendTimeout(long)
-
setShouldTrack
public void setShouldTrack(boolean shouldTrack)- Specified by:
setShouldTrackin interfaceTrackableComponent
-
setErrorMessageStrategy
Set anErrorMessageStrategyto use to build an error message when a exception occurs. Default is theDefaultErrorMessageStrategy.- Parameters:
errorMessageStrategy- theErrorMessageStrategy.- Since:
- 4.3.10
-
getMessagingTemplate
-
getIntegrationPatternType
Description copied from interface:IntegrationPatternReturn a pattern type this component implements.- Specified by:
getIntegrationPatternTypein interfaceIntegrationPattern- Returns:
- the
IntegrationPatternTypethis component implements.
-
afterSingletonsInstantiated
public void afterSingletonsInstantiated()- Specified by:
afterSingletonsInstantiatedin interfaceSmartInitializingSingleton
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupportSubclasses may implement this for initialization logic.- Overrides:
onInitin classAbstractEndpoint
-
doStart
protected void doStart()Take no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.- Specified by:
doStartin classAbstractEndpoint
-
doStop
protected void doStop()Take no action by default. Subclasses may override this if they need lifecycle-managed behavior.- Specified by:
doStopin classAbstractEndpoint
-
sendMessage
-
subscribeToPublisher
-
sendErrorMessageIfNecessary
protected final boolean sendErrorMessageIfNecessary(@Nullable Message<?> message, Exception exception)Send an error message based on the exception and message.- Parameters:
message- the message.exception- the exception.- Returns:
- true if the error channel is available and message sent.
- Since:
- 4.3.10
-
buildErrorMessage
Build an error message for the exception and message using the configuredErrorMessageStrategy.- Parameters:
message- the message.exception- the exception.- Returns:
- the error message.
- Since:
- 4.3.10
-
getErrorMessageAttributes
Populate anAttributeAccessorto be used when building an error message with theerrorMessageStrategy.- Parameters:
message- the message.- Returns:
- the attributes.
- Since:
- 4.3.10
-