Class AmqpInboundChannelAdapter
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter
- All Implemented Interfaces:
Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,SmartInitializingSingleton
,ApplicationContextAware
,Lifecycle
,Phased
,SmartLifecycle
,ExpressionCapable
,OrderlyShutdownCapable
,MessageProducer
,IntegrationPattern
,NamedComponent
,IntegrationInboundManagement
,IntegrationManagement
,ManageableLifecycle
,ManageableSmartLifecycle
,TrackableComponent
public class AmqpInboundChannelAdapter
extends MessageProducerSupport
implements OrderlyShutdownCapable
Adapter that receives Messages from an AMQP Queue, converts them into
Spring Integration Messages, and sends the results to a Message Channel.
- Since:
- 2.1
- Author:
- Mark Fisher, Gary Russell, Artem Bilan
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
static enum
Defines the payload type when the listener container is configured with consumerBatchEnabled.protected class
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Header containingList<Map<String, Object>
headers when batch mode isAmqpInboundChannelAdapter.BatchMode.EXTRACT_PAYLOADS_WITH_HEADERS
.Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLock
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Fields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE
-
Constructor Summary
ConstructorDescriptionAmqpInboundChannelAdapter
(MessageListenerContainer listenerContainer) Construct an instance using the provided container. -
Method Summary
Modifier and TypeMethodDescriptionint
Called after normal shutdown of schedulers, executors etc, and after the shutdown delay has elapsed, but before any forced shutdown of any remaining active scheduler/executor threads.Can optionally return the number of active messages still in process.int
Called before shutdown begins.protected void
doStart()
Take no action by default.protected void
doStop()
Take no action by default.Subclasses may implement this method to provide component type information.protected AttributeAccessor
getErrorMessageAttributes
(Message<?> message) Populate anAttributeAccessor
to be used when building an error message with theerrorMessageStrategy
.protected void
onInit()
Subclasses may implement this for initialization logic.void
setBatchingStrategy
(BatchingStrategy batchingStrategy) Set a batching strategy to use when de-batching messages created by a batching producer (such as the BatchingRabbitTemplate).void
setBatchMode
(AmqpInboundChannelAdapter.BatchMode batchMode) When the listener container is configured with consumerBatchEnabled, set the payload type for messages generated for the batches.void
setBindSourceMessage
(boolean bindSourceMessage) Set to true to bind the source message in the header namedIntegrationMessageHeaderAccessor.SOURCE_DATA
.void
setHeaderMapper
(AmqpHeaderMapper headerMapper) void
setMessageConverter
(MessageConverter messageConverter) void
setMessageRecoverer
(MessageRecoverer messageRecoverer) Configure aMessageRecoverer
for retry operations.void
setRecoveryCallback
(org.springframework.retry.RecoveryCallback<?> recoveryCallback) Set aRecoveryCallback
when using retry within the adapter.void
setRetryTemplate
(org.springframework.retry.support.RetryTemplate retryTemplate) Set aRetryTemplate
to use for retrying a message delivery within the adapter.Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, isObserved, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisher
Methods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
destroy, doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stop
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, 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
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
destroy, getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedType
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Field Details
-
CONSOLIDATED_HEADERS
Header containingList<Map<String, Object>
headers when batch mode isAmqpInboundChannelAdapter.BatchMode.EXTRACT_PAYLOADS_WITH_HEADERS
.- See Also:
-
-
Constructor Details
-
AmqpInboundChannelAdapter
Construct an instance using the provided container.- Parameters:
listenerContainer
- the container.
-
-
Method Details
-
setMessageConverter
-
setHeaderMapper
-
setRetryTemplate
public void setRetryTemplate(org.springframework.retry.support.RetryTemplate retryTemplate) Set aRetryTemplate
to use for retrying a message delivery within the adapter. Unlike adding retry at the container level, this can be used with anErrorMessageSendingRecoverer
RecoveryCallback
to publish to the error channel after retries are exhausted. You generally should not configure an error channel when using retry here, use aRecoveryCallback
instead.- Parameters:
retryTemplate
- the template.- Since:
- 4.3.10.
- See Also:
-
setRecoveryCallback
public void setRecoveryCallback(org.springframework.retry.RecoveryCallback<?> recoveryCallback) Set aRecoveryCallback
when using retry within the adapter. Mutually exclusive withsetMessageRecoverer(MessageRecoverer)
.- Parameters:
recoveryCallback
- the callback.- Since:
- 4.3.10
- See Also:
-
setMessageRecoverer
Configure aMessageRecoverer
for retry operations. A more AMQP-specific convenience instead ofsetRecoveryCallback(RecoveryCallback)
.- Parameters:
messageRecoverer
- theMessageRecoverer
to use.- Since:
- 5.5
-
setBatchingStrategy
Set a batching strategy to use when de-batching messages created by a batching producer (such as the BatchingRabbitTemplate). Default isSimpleBatchingStrategy
.- Parameters:
batchingStrategy
- the strategy.- Since:
- 5.2
-
setBindSourceMessage
public void setBindSourceMessage(boolean bindSourceMessage) Set to true to bind the source message in the header namedIntegrationMessageHeaderAccessor.SOURCE_DATA
.- Parameters:
bindSourceMessage
- true to bind.- Since:
- 5.1.6
-
setBatchMode
When the listener container is configured with consumerBatchEnabled, set the payload type for messages generated for the batches. Default isAmqpInboundChannelAdapter.BatchMode.MESSAGES
.- Parameters:
batchMode
- the batch mode.- Since:
- 5.3
-
getComponentType
Description copied from class:IntegrationObjectSupport
Subclasses may implement this method to provide component type information.- Specified by:
getComponentType
in interfaceNamedComponent
- Overrides:
getComponentType
in classIntegrationObjectSupport
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupport
Subclasses may implement this for initialization logic.- Overrides:
onInit
in classMessageProducerSupport
-
doStart
protected void doStart()Description copied from class:MessageProducerSupport
Take no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.- Overrides:
doStart
in classMessageProducerSupport
-
doStop
protected void doStop()Description copied from class:MessageProducerSupport
Take no action by default. Subclasses may override this if they need lifecycle-managed behavior.- Overrides:
doStop
in classMessageProducerSupport
-
beforeShutdown
public int beforeShutdown()Description copied from interface:OrderlyShutdownCapable
Called before shutdown begins. Implementations should stop accepting new messages. Can optionally return the number of active messages in process.- Specified by:
beforeShutdown
in interfaceOrderlyShutdownCapable
- Returns:
- The number of active messages if available.
-
afterShutdown
public int afterShutdown()Description copied from interface:OrderlyShutdownCapable
Called after normal shutdown of schedulers, executors etc, and after the shutdown delay has elapsed, but before any forced shutdown of any remaining active scheduler/executor threads.Can optionally return the number of active messages still in process.- Specified by:
afterShutdown
in interfaceOrderlyShutdownCapable
- Returns:
- The number of active messages if available.
-
getErrorMessageAttributes
Description copied from class:MessageProducerSupport
Populate anAttributeAccessor
to be used when building an error message with theerrorMessageStrategy
.- Overrides:
getErrorMessageAttributes
in classMessageProducerSupport
- Parameters:
message
- the message.- Returns:
- the attributes.
-