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:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.InitializingBean
,org.springframework.beans.factory.SmartInitializingSingleton
,org.springframework.context.ApplicationContextAware
,org.springframework.context.Lifecycle
,org.springframework.context.Phased
,org.springframework.context.SmartLifecycle
,org.springframework.integration.context.ExpressionCapable
,org.springframework.integration.context.OrderlyShutdownCapable
,org.springframework.integration.core.MessageProducer
,org.springframework.integration.IntegrationPattern
,org.springframework.integration.support.context.NamedComponent
,org.springframework.integration.support.management.ManageableLifecycle
,org.springframework.integration.support.management.ManageableSmartLifecycle
,org.springframework.integration.support.management.TrackableComponent
public class AmqpInboundChannelAdapter
extends org.springframework.integration.endpoint.MessageProducerSupport
implements org.springframework.integration.context.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
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
AmqpInboundChannelAdapter.BatchListener
static class
AmqpInboundChannelAdapter.BatchMode
Defines the payload type when the listener container is configured with consumerBatchEnabled.protected class
AmqpInboundChannelAdapter.Listener
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONSOLIDATED_HEADERS
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
-
Constructor Summary
Constructors Constructor Description AmqpInboundChannelAdapter(org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer listenerContainer)
AmqpInboundChannelAdapter(org.springframework.amqp.rabbit.listener.MessageListenerContainer listenerContainer)
Construct an instance using the provided container. -
Method Summary
Modifier and Type Method Description int
afterShutdown()
int
beforeShutdown()
protected void
doStart()
protected void
doStop()
java.lang.String
getComponentType()
protected org.springframework.core.AttributeAccessor
getErrorMessageAttributes(org.springframework.messaging.Message<?> message)
protected void
onInit()
void
setBatchingStrategy(org.springframework.amqp.rabbit.batch.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(org.springframework.amqp.support.converter.MessageConverter messageConverter)
void
setMessageRecoverer(org.springframework.amqp.rabbit.retry.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, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, 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, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
-
Field Details
-
CONSOLIDATED_HEADERS
public static final java.lang.String CONSOLIDATED_HEADERSHeader containingList<Map<String, Object>
headers when batch mode isAmqpInboundChannelAdapter.BatchMode.EXTRACT_PAYLOADS_WITH_HEADERS
.- See Also:
- Constant Field Values
-
-
Constructor Details
-
AmqpInboundChannelAdapter
public AmqpInboundChannelAdapter(org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer listenerContainer) -
AmqpInboundChannelAdapter
public AmqpInboundChannelAdapter(org.springframework.amqp.rabbit.listener.MessageListenerContainer listenerContainer)Construct an instance using the provided container.- Parameters:
listenerContainer
- the container.
-
-
Method Details
-
setMessageConverter
public void setMessageConverter(org.springframework.amqp.support.converter.MessageConverter messageConverter) -
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(RecoveryCallback)
-
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:
setRetryTemplate(RetryTemplate)
-
setMessageRecoverer
public void setMessageRecoverer(org.springframework.amqp.rabbit.retry.MessageRecoverer messageRecoverer)Configure aMessageRecoverer
for retry operations. A more AMQP-specific convenience instead ofsetRecoveryCallback(RecoveryCallback)
.- Parameters:
messageRecoverer
- theMessageRecoverer
to use.- Since:
- 5.5
-
setBatchingStrategy
public void setBatchingStrategy(org.springframework.amqp.rabbit.batch.BatchingStrategy batchingStrategy)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
public java.lang.String getComponentType()- Specified by:
getComponentType
in interfaceorg.springframework.integration.support.context.NamedComponent
- Overrides:
getComponentType
in classorg.springframework.integration.context.IntegrationObjectSupport
-
onInit
protected void onInit()- Overrides:
onInit
in classorg.springframework.integration.endpoint.MessageProducerSupport
-
doStart
protected void doStart()- Overrides:
doStart
in classorg.springframework.integration.endpoint.MessageProducerSupport
-
doStop
protected void doStop()- Overrides:
doStop
in classorg.springframework.integration.endpoint.MessageProducerSupport
-
beforeShutdown
public int beforeShutdown()- Specified by:
beforeShutdown
in interfaceorg.springframework.integration.context.OrderlyShutdownCapable
-
afterShutdown
public int afterShutdown()- Specified by:
afterShutdown
in interfaceorg.springframework.integration.context.OrderlyShutdownCapable
-
getErrorMessageAttributes
protected org.springframework.core.AttributeAccessor getErrorMessageAttributes(org.springframework.messaging.Message<?> message)- Overrides:
getErrorMessageAttributes
in classorg.springframework.integration.endpoint.MessageProducerSupport
-