Class BrokerEventListener

  • All Implemented Interfaces:
    org.springframework.amqp.core.MessageListener, ConnectionListener, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationEventPublisherAware, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle

    public class BrokerEventListener
    extends java.lang.Object
    implements org.springframework.amqp.core.MessageListener, org.springframework.context.ApplicationEventPublisherAware, ConnectionListener, org.springframework.context.SmartLifecycle
    When the event-exchange-plugin is enabled (see https://www.rabbitmq.com/event-exchange.html), if an object of this type is declared as a bean, selected events will be published as BrokerEvents. Such events can then be consumed using an ApplicationListener or @EventListener method. An AnonymousQueue will be bound to the amq.rabbitmq.event topic exchange with the supplied keys.
    Since:
    2.1
    • Field Summary

      • Fields inherited from interface org.springframework.context.SmartLifecycle

        DEFAULT_PHASE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Exception getBindingsFailedException()
      Return any exception thrown when attempting to bind the queue to the event exchange.
      int getPhase()  
      boolean isAutoStartup()  
      boolean isRunning()  
      void onCreate​(Connection connection)
      Called when a new connection is established.
      void onMessage​(org.springframework.amqp.core.Message message)  
      void setApplicationEventPublisher​(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)  
      void setAutoStartup​(boolean autoStartup)  
      void setPhase​(int phase)  
      void start()  
      void stop()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.springframework.amqp.core.MessageListener

        containerAckMode, isAsyncReplies, onMessageBatch
      • Methods inherited from interface org.springframework.context.SmartLifecycle

        stop
    • Constructor Detail

      • BrokerEventListener

        public BrokerEventListener​(ConnectionFactory connectionFactory,
                                   java.lang.String... eventKeys)
        Construct an instance using the supplied connection factory and event keys. Event keys are patterns to match routing keys for events published to the amq.rabbitmq.event topic exchange. They can therefore match wildcards; examples are user.#, queue.created. Refer to the plugin documentation for information about available events. A single-threaded DirectMessageListenerContainer will be created; its lifecycle will be controlled by this object's SmartLifecycle methods.
        Parameters:
        connectionFactory - the connection factory.
        eventKeys - the event keys.
      • BrokerEventListener

        public BrokerEventListener​(AbstractMessageListenerContainer container,
                                   java.lang.String... eventKeys)
        Construct an instance using the supplied listener container factory and event keys. Event keys are patterns to match routing keys for events published to the amq.rabbitmq.event topic exchange. They can therefore match wildcards; examples are user.#, queue.created. Refer to the plugin documentation for information about available events. The container's lifecycle will be not be controlled by this object's SmartLifecycle methods. The container should not be configured with queues or a MessageListener; those properties will be replaced.
        Parameters:
        container - the listener container.
        eventKeys - the event keys.
    • Method Detail

      • setApplicationEventPublisher

        public void setApplicationEventPublisher​(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
        Specified by:
        setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAware
      • getBindingsFailedException

        @Nullable
        public java.lang.Exception getBindingsFailedException()
        Return any exception thrown when attempting to bind the queue to the event exchange.
        Returns:
        the exception.
      • start

        public void start()
        Specified by:
        start in interface org.springframework.context.Lifecycle
      • stop

        public void stop()
        Specified by:
        stop in interface org.springframework.context.Lifecycle
      • isRunning

        public boolean isRunning()
        Specified by:
        isRunning in interface org.springframework.context.Lifecycle
      • getPhase

        public int getPhase()
        Specified by:
        getPhase in interface org.springframework.context.Phased
        Specified by:
        getPhase in interface org.springframework.context.SmartLifecycle
      • setPhase

        public void setPhase​(int phase)
      • isAutoStartup

        public boolean isAutoStartup()
        Specified by:
        isAutoStartup in interface org.springframework.context.SmartLifecycle
      • setAutoStartup

        public void setAutoStartup​(boolean autoStartup)
      • onMessage

        public void onMessage​(org.springframework.amqp.core.Message message)
        Specified by:
        onMessage in interface org.springframework.amqp.core.MessageListener