Class PointToPointSubscribableAmqpChannel
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.amqp.channel.AbstractAmqpChannel
org.springframework.integration.amqp.channel.PointToPointSubscribableAmqpChannel
- All Implemented Interfaces:
org.springframework.amqp.rabbit.connection.ConnectionListener
,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.context.ApplicationContextAware
,org.springframework.context.Lifecycle
,org.springframework.context.Phased
,org.springframework.context.SmartLifecycle
,org.springframework.integration.context.ExpressionCapable
,org.springframework.integration.IntegrationPattern
,org.springframework.integration.support.context.NamedComponent
,org.springframework.integration.support.management.IntegrationManagement
,org.springframework.integration.support.management.ManageableLifecycle
,org.springframework.integration.support.management.ManageableSmartLifecycle
,org.springframework.integration.support.management.TrackableComponent
,org.springframework.messaging.MessageChannel
,org.springframework.messaging.SubscribableChannel
,org.springframework.messaging.support.InterceptableChannel
public class PointToPointSubscribableAmqpChannel extends AbstractAmqpChannel
The
AbstractSubscribableAmqpChannel
implementation for one-to-one subscription
over AMQP queue.
If queue name is not provided, the channel bean name is used internally to declare
a queue via provided AmqpAdmin
(if any).
- Since:
- 2.1
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.springframework.integration.channel.AbstractMessageChannel
interceptors, meters
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
-
Constructor Summary
Constructors Constructor Description PointToPointSubscribableAmqpChannel(java.lang.String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate)
Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.PointToPointSubscribableAmqpChannel(java.lang.String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate, AmqpHeaderMapper outboundMapper, AmqpHeaderMapper inboundMapper)
Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped. -
Method Summary
Modifier and Type Method Description protected org.springframework.integration.dispatcher.AbstractDispatcher
createDispatcher()
void
destroy()
protected void
doDeclares()
int
getPhase()
protected java.lang.String
getRoutingKey()
Subclasses may override this method to return a routing key.boolean
isAutoStartup()
boolean
isRunning()
protected java.lang.String
obtainQueueName(java.lang.String channelName)
void
onInit()
void
setMaxSubscribers(int maxSubscribers)
Specify the maximum number of subscribers supported by the channel's dispatcher (if it is anAbstractDispatcher
).void
setQueueName(java.lang.String queueName)
Provide a Queue name to be used.void
start()
void
stop()
void
stop(java.lang.Runnable callback)
boolean
subscribe(org.springframework.messaging.MessageHandler handler)
boolean
unsubscribe(org.springframework.messaging.MessageHandler handler)
Methods inherited from class org.springframework.integration.amqp.channel.AbstractAmqpChannel
doSend, getAdmin, getAmqpTemplate, getConnectionFactory, getExchangeName, getInboundHeaderMapper, getRabbitTemplate, isExtractPayload, isLoggingEnabled, onClose, onCreate, setAdmin, setConnectionFactory, setDefaultDeliveryMode, setExtractPayload, setHeadersMappedLast, setLoggingEnabled
Methods inherited from class org.springframework.integration.channel.AbstractMessageChannel
addInterceptor, addInterceptor, getComponentType, getFullChannelName, getIChannelInterceptorList, getIntegrationPatternType, getInterceptors, getMetricsCaptor, getOverrides, registerMetricsCaptor, removeInterceptor, removeInterceptor, send, send, setDatatypes, setInterceptors, setMessageConverter, setShouldTrack
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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.amqp.rabbit.connection.ConnectionListener
onFailed, onShutDown
-
Constructor Details
-
PointToPointSubscribableAmqpChannel
public PointToPointSubscribableAmqpChannel(java.lang.String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate)Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.- Parameters:
channelName
- the channel name.container
- the container.amqpTemplate
- the template.- See Also:
AbstractAmqpChannel.setExtractPayload(boolean)
-
PointToPointSubscribableAmqpChannel
public PointToPointSubscribableAmqpChannel(java.lang.String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate, AmqpHeaderMapper outboundMapper, AmqpHeaderMapper inboundMapper)Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.- Parameters:
channelName
- the channel name.container
- the container.amqpTemplate
- the template.outboundMapper
- the outbound mapper.inboundMapper
- the inbound mapper.- Since:
- 4.3
- See Also:
AbstractAmqpChannel.setExtractPayload(boolean)
-
-
Method Details
-
setQueueName
public void setQueueName(java.lang.String queueName)Provide a Queue name to be used. If this is not provided, the Queue's name will be the same as the channel name.- Parameters:
queueName
- The queue name.
-
obtainQueueName
protected java.lang.String obtainQueueName(java.lang.String channelName) -
createDispatcher
protected org.springframework.integration.dispatcher.AbstractDispatcher createDispatcher() -
getRoutingKey
protected java.lang.String getRoutingKey()Description copied from class:AbstractAmqpChannel
Subclasses may override this method to return a routing key. By default, there will be no routing key (empty string).- Overrides:
getRoutingKey
in classAbstractAmqpChannel
- Returns:
- The routing key.
-
doDeclares
protected void doDeclares()- Specified by:
doDeclares
in classAbstractAmqpChannel
-
setMaxSubscribers
public void setMaxSubscribers(int maxSubscribers)Specify the maximum number of subscribers supported by the channel's dispatcher (if it is anAbstractDispatcher
).- Parameters:
maxSubscribers
- The maximum number of subscribers allowed.
-
subscribe
public boolean subscribe(org.springframework.messaging.MessageHandler handler)- Specified by:
subscribe
in interfaceorg.springframework.messaging.SubscribableChannel
-
unsubscribe
public boolean unsubscribe(org.springframework.messaging.MessageHandler handler)- Specified by:
unsubscribe
in interfaceorg.springframework.messaging.SubscribableChannel
-
onInit
public void onInit()- Overrides:
onInit
in classAbstractAmqpChannel
-
isAutoStartup
public boolean isAutoStartup()- Specified by:
isAutoStartup
in interfaceorg.springframework.context.SmartLifecycle
-
getPhase
public int getPhase()- Specified by:
getPhase
in interfaceorg.springframework.context.Phased
- Specified by:
getPhase
in interfaceorg.springframework.context.SmartLifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunning
in interfaceorg.springframework.context.Lifecycle
- Specified by:
isRunning
in interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
start
public void start()- Specified by:
start
in interfaceorg.springframework.context.Lifecycle
- Specified by:
start
in interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
stop
public void stop()- Specified by:
stop
in interfaceorg.springframework.context.Lifecycle
- Specified by:
stop
in interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
stop
public void stop(java.lang.Runnable callback)- Specified by:
stop
in interfaceorg.springframework.context.SmartLifecycle
-
destroy
public void destroy()- Specified by:
destroy
in interfaceorg.springframework.beans.factory.DisposableBean
- Specified by:
destroy
in interfaceorg.springframework.integration.support.management.IntegrationManagement
- Overrides:
destroy
in classAbstractAmqpChannel
-