Class PublishSubscribeAmqpChannel
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.amqp.channel.AbstractAmqpChannel
org.springframework.integration.amqp.channel.PublishSubscribeAmqpChannel
- All Implemented Interfaces:
ConnectionListener,Aware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,ApplicationContextAware,Lifecycle,Phased,SmartLifecycle,BroadcastCapableChannel,ComponentSourceAware,ExpressionCapable,IntegrationPattern,NamedComponent,IntegrationManagement,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent,MessageChannel,SubscribableChannel,InterceptableChannel
public class PublishSubscribeAmqpChannel
extends AbstractAmqpChannel
implements BroadcastCapableChannel
The
AbstractSubscribableAmqpChannel extension for pub-sub semantics based on the FanoutExchange.- Since:
- 2.1
- Author:
- Mark Fisher, Gary Russell, Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.channel.AbstractMessageChannel
AbstractMessageChannel.ChannelInterceptorListNested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides -
Field Summary
Fields inherited from class org.springframework.integration.channel.AbstractMessageChannel
interceptors, metersFields 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.messaging.MessageChannel
INDEFINITE_TIMEOUTFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
ConstructorsConstructorDescriptionPublishSubscribeAmqpChannel(String channelName, AbstractMessageListenerContainer container, AmqpTemplate amqpTemplate) Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.PublishSubscribeAmqpChannel(String channelName, AbstractMessageListenerContainer container, 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 TypeMethodDescriptionprotected AbstractDispatchervoiddestroy()protected voidprotected StringSubclasses may override this method to return an Exchange name.intgetPhase()booleanbooleanprotected StringobtainQueueName(String channelName) voidonInit()Subclasses may implement this for initialization logic.voidsetExchange(FanoutExchange exchange) Configure the FanoutExchange instance.voidsetMaxSubscribers(int maxSubscribers) Specify the maximum number of subscribers supported by the channel's dispatcher (if it is anAbstractDispatcher).voidstart()voidstop()voidbooleansubscribe(MessageHandler handler) booleanunsubscribe(MessageHandler handler) Methods inherited from class org.springframework.integration.amqp.channel.AbstractAmqpChannel
doSend, getAdmin, getAmqpTemplate, getConnectionFactory, getInboundHeaderMapper, getRabbitTemplate, getRoutingKey, isExtractPayload, isLoggingEnabled, onCreate, setAdmin, setConnectionFactory, setDefaultDeliveryMode, setExtractPayload, setHeadersMappedLast, setLoggingEnabledMethods inherited from class org.springframework.integration.channel.AbstractMessageChannel
addInterceptor, addInterceptor, getComponentType, getFullChannelName, getIChannelInterceptorList, getIntegrationPatternType, getInterceptors, getMetricsCaptor, getOverrides, isApplicationRunning, isObserved, registerMetricsCaptor, registerObservationRegistry, removeInterceptor, removeInterceptor, send, send, setDatatypes, setInterceptors, setMessageConverter, setObservationConvention, setShouldTrackMethods 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.channel.BroadcastCapableChannel
isBroadcastMethods inherited from interface org.springframework.amqp.rabbit.connection.ConnectionListener
onClose, onFailed, onShutDownMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getManagedName, getManagedType, getThisAs, setManagedName, setManagedTypeMethods inherited from interface org.springframework.messaging.MessageChannel
send, sendMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentNameMethods inherited from interface org.springframework.context.SmartLifecycle
isPauseableMethods inherited from interface org.springframework.messaging.SubscribableChannel
subscribe, unsubscribe
-
Constructor Details
-
PublishSubscribeAmqpChannel
public PublishSubscribeAmqpChannel(String channelName, AbstractMessageListenerContainer container, 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:
-
PublishSubscribeAmqpChannel
public PublishSubscribeAmqpChannel(String channelName, AbstractMessageListenerContainer container, 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 templateoutboundMapper- the outbound mapper.inboundMapper- the inbound mapper.- Since:
- 4.3
- See Also:
-
-
Method Details
-
setExchange
Configure the FanoutExchange instance. If this is not provided, then a FanoutExchange will be declared implicitly, and its name will be the same as the channel name prefixed by "si.fanout.". In either case, an effectively anonymous Queue will be declared automatically.- Parameters:
exchange- The fanout exchange.
-
getExchangeName
Description copied from class:AbstractAmqpChannelSubclasses may override this method to return an Exchange name. By default, Messages will be sent to the no-name Direct Exchange.- Overrides:
getExchangeNamein classAbstractAmqpChannel- Returns:
- The exchange name.
-
obtainQueueName
-
createDispatcher
-
doDeclares
protected void doDeclares()- Specified by:
doDeclaresin 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
- Specified by:
subscribein interfaceSubscribableChannel
-
unsubscribe
- Specified by:
unsubscribein interfaceSubscribableChannel
-
onInit
public void onInit()Description copied from class:IntegrationObjectSupportSubclasses may implement this for initialization logic.- Overrides:
onInitin classAbstractAmqpChannel
-
isAutoStartup
public boolean isAutoStartup()- Specified by:
isAutoStartupin interfaceSmartLifecycle
-
getPhase
public int getPhase()- Specified by:
getPhasein interfacePhased- Specified by:
getPhasein interfaceSmartLifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunningin interfaceLifecycle- Specified by:
isRunningin interfaceManageableLifecycle
-
start
public void start()- Specified by:
startin interfaceLifecycle- Specified by:
startin interfaceManageableLifecycle
-
stop
public void stop()- Specified by:
stopin interfaceLifecycle- Specified by:
stopin interfaceManageableLifecycle
-
stop
- Specified by:
stopin interfaceSmartLifecycle
-
destroy
public void destroy()- Specified by:
destroyin interfaceDisposableBean- Specified by:
destroyin interfaceIntegrationManagement- Overrides:
destroyin classAbstractAmqpChannel
-