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,ComponentSourceAware,ExpressionCapable,MessageProducer,IntegrationPattern,NamedComponent,IntegrationInboundManagement,IntegrationManagement,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent
- Direct Known Subclasses:
AbstractHazelcastMessageProducer,AbstractInternetProtocolReceivingChannelAdapter,AbstractMqttMessageDrivenChannelAdapter,AbstractXmppConnectionAwareEndpoint,AmqpInboundChannelAdapter,DebeziumMessageProducer,ExpressionMessageProducerSupport,FileTailingMessageProducerSupport,HazelcastClusterMonitorMessageProducer,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, IntegrationInboundManagement
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
-
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 TypeMethodDescriptionvoidprotected final 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.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.protected ErrorMessageStrategyGet anErrorMessageStrategyto use to build an error message when a exception occurs.Return a pattern type this component implements.protected MessagingTemplateReturn the output channel.booleanTrue if this implementation is going to deal with a registry other than theObservationRegistry.NOOPinstance.protected voidonInit()Subclasses may implement this for initialization logic.voidregisterObservationRegistry(io.micrometer.observation.ObservationRegistry observationRegistry) Inject anObservationRegistry.protected final booleansendErrorMessageIfNecessary(Message<?> message, Exception exception) Send an error message based on the exception and message.protected voidsendMessage(Message<?> message) voidsetErrorChannel(MessageChannel errorChannel) voidsetErrorChannelName(String errorChannelName) Set the error channel name.final voidsetErrorMessageStrategy(ErrorMessageStrategy errorMessageStrategy) Set anErrorMessageStrategyto use to build an error message when a exception occurs.voidsetObservationConvention(MessageReceiverObservationConvention observationConvention) Set a customMessageReceiverObservationConventionforIntegrationObservation.HANDLER.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, getComponentDescription, getComponentName, getComponentSource, getComponentType, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, 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, 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 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' operation timeout in milliseconds- See Also:
-
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
-
getErrorMessageStrategy
Get anErrorMessageStrategyto use to build an error message when a exception occurs. Default is theDefaultErrorMessageStrategy.- Returns:
- the errorMessageStrategy
- Since:
- 6.0
-
getMessagingTemplate
-
setObservationConvention
public void setObservationConvention(@Nullable MessageReceiverObservationConvention observationConvention) Set a customMessageReceiverObservationConventionforIntegrationObservation.HANDLER. Ignored if anObservationRegistryis not configured for this component.- Parameters:
observationConvention- theMessageReceiverObservationConventionto use.- Since:
- 6.0
-
registerObservationRegistry
public void registerObservationRegistry(io.micrometer.observation.ObservationRegistry observationRegistry) Description copied from interface:IntegrationManagementInject anObservationRegistry. If provided, theMetricsCaptoris ignored. The meters capturing has to be configured as anObservationHandleron the providedObservationRegistry.- Specified by:
registerObservationRegistryin interfaceIntegrationManagement- Parameters:
observationRegistry- theObservationRegistryto expose observations from the component.- See Also:
-
isObserved
public boolean isObserved()Description copied from interface:IntegrationManagementTrue if this implementation is going to deal with a registry other than theObservationRegistry.NOOPinstance.- Specified by:
isObservedin interfaceIntegrationManagement- Returns:
- true if this implementation is going to deal with a registry other than the
ObservationRegistry.NOOPinstance.
-
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
-