Class SourcePollingChannelAdapter
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.AbstractPollingEndpoint
org.springframework.integration.endpoint.SourcePollingChannelAdapter
- All Implemented Interfaces:
Aware,BeanClassLoaderAware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,ApplicationContextAware,Lifecycle,Phased,SmartLifecycle,ComponentSourceAware,ExpressionCapable,NamedComponent,IntegrationManagement,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent
public class SourcePollingChannelAdapter
extends AbstractPollingEndpoint
implements TrackableComponent, IntegrationManagement
A Channel Adapter implementation for connecting a
MessageSource to a MessageChannel.- Author:
- Mark Fisher, Oleg Zhurakousky, Gary Russell, Artem Bilan, Christian Tzolov
-
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.AbstractPollingEndpoint
DEFAULT_POLLING_PERIODFields 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 voiddonePollingTask(Exception pollingTaskError) Stop an observation (and close its scope) previously started from themessageReceived(IntegrationResourceHolder, Message).protected voiddoStart()Subclasses must implement this method with the start behavior.protected voiddoStop()Subclasses must implement this method with the stop behavior.Subclasses may implement this method to provide component type information.Return this endpoint's source.protected Objectprotected StringReturn the key under which the resource will be made available as an attribute on theIntegrationResourceHolder.protected ObjectReturn a resource (MessageSource etc.) to bind when using transaction synchronization.protected voidhandleMessage(Message<?> messageArg) Handle a message.booleanTrue if this implementation is going to deal with a registry other than theObservationRegistry.NOOPinstance.protected booleanprotected voidmessageReceived(IntegrationResourceHolder holder, Message<?> message) Start an observation (and open scope) for the received message.protected voidonInit()Subclasses may implement this for initialization logic.protected Message<?>Obtain the next message (if one is available).voidregisterObservationRegistry(io.micrometer.observation.ObservationRegistry observationRegistry) Inject anObservationRegistry.voidsetObservationConvention(MessageReceiverObservationConvention observationConvention) Set a customMessageReceiverObservationConventionforIntegrationObservation.HANDLER.voidsetOutputChannel(MessageChannel outputChannel) Specify theMessageChannelwhere Messages should be sent.voidsetOutputChannelName(String outputChannelName) protected final voidsetReceiveMessageSource(Object source) voidsetSendTimeout(long sendTimeout) Specify the maximum time to wait for a Message to be sent to the output channel.voidsetShouldTrack(boolean shouldTrack) Specify whether this component should be tracked in the Message History.voidsetSource(MessageSource<?> source) Specify the source to be polled for Messages.Methods inherited from class org.springframework.integration.endpoint.AbstractPollingEndpoint
applyReceiveOnlyAdviceChain, getBeanClassLoader, getDefaultErrorChannel, getMaxMessagesPerPoll, getPollingFlux, getTaskExecutor, isReceiveOnlyAdvice, isSyncExecutor, setAdviceChain, setBeanClassLoader, setErrorHandler, setMaxMessagesPerPoll, setTaskExecutor, setTransactionSynchronizationFactory, setTriggerMethods 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, 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
-
Constructor Details
-
SourcePollingChannelAdapter
public SourcePollingChannelAdapter()
-
-
Method Details
-
setSource
Specify the source to be polled for Messages.- Parameters:
source- The message source.
-
setOutputChannel
Specify theMessageChannelwhere Messages should be sent.- Parameters:
outputChannel- The output channel.
-
getMessageSource
Return this endpoint's source.- Returns:
- the source.
- Since:
- 4.3
-
setOutputChannelName
-
setSendTimeout
public void setSendTimeout(long sendTimeout) Specify the maximum time to wait for a Message to be sent to the output channel.- Parameters:
sendTimeout- The send timeout.
-
setShouldTrack
public void setShouldTrack(boolean shouldTrack) Specify whether this component should be tracked in the Message History.- Specified by:
setShouldTrackin interfaceTrackableComponent- Parameters:
shouldTrack- true if the component should be tracked.
-
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:
-
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.5
-
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.
-
getComponentType
Description copied from class:IntegrationObjectSupportSubclasses may implement this method to provide component type information.- Specified by:
getComponentTypein interfaceNamedComponent- Overrides:
getComponentTypein classIntegrationObjectSupport
-
isReactive
protected boolean isReactive()- Overrides:
isReactivein classAbstractPollingEndpoint
-
getReceiveMessageSource
- Overrides:
getReceiveMessageSourcein classAbstractPollingEndpoint
-
setReceiveMessageSource
- Overrides:
setReceiveMessageSourcein classAbstractPollingEndpoint
-
doStart
protected void doStart()Description copied from class:AbstractEndpointSubclasses must implement this method with the start behavior. This method will be invoked while holding theAbstractEndpoint.lifecycleLock.- Overrides:
doStartin classAbstractPollingEndpoint
-
doStop
protected void doStop()Description copied from class:AbstractEndpointSubclasses must implement this method with the stop behavior. This method will be invoked while holding theAbstractEndpoint.lifecycleLock.- Overrides:
doStopin classAbstractPollingEndpoint
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupportSubclasses may implement this for initialization logic.- Overrides:
onInitin classAbstractPollingEndpoint
-
getOutputChannel
-
handleMessage
Description copied from class:AbstractPollingEndpointHandle a message.- Specified by:
handleMessagein classAbstractPollingEndpoint- Parameters:
messageArg- The message.
-
receiveMessage
Description copied from class:AbstractPollingEndpointObtain the next message (if one is available). MAY return null if no message is immediately available.- Specified by:
receiveMessagein classAbstractPollingEndpoint- Returns:
- The message or null.
-
messageReceived
Start an observation (and open scope) for the received message.- Overrides:
messageReceivedin classAbstractPollingEndpoint- Parameters:
holder- the resource holder for this component.message- the received message.
-
donePollingTask
Stop an observation (and close its scope) previously started from themessageReceived(IntegrationResourceHolder, Message).- Overrides:
donePollingTaskin classAbstractPollingEndpoint- Parameters:
pollingTaskError- an optional error as a result of the polling task.
-
getResourceToBind
Description copied from class:AbstractPollingEndpointReturn a resource (MessageSource etc.) to bind when using transaction synchronization.- Overrides:
getResourceToBindin classAbstractPollingEndpoint- Returns:
- The resource, or null if transaction synchronization is not required.
-
getResourceKey
Description copied from class:AbstractPollingEndpointReturn the key under which the resource will be made available as an attribute on theIntegrationResourceHolder. The defaultExpressionEvaluatingTransactionSynchronizationProcessormakes this attribute available as a variable in SpEL expressions.- Overrides:
getResourceKeyin classAbstractPollingEndpoint- Returns:
- The key, or null (default) if the resource shouldn't be made available as a attribute.
-