Example usage for org.springframework.amqp.rabbit.listener RabbitListenerContainerFactory createListenerContainer

List of usage examples for org.springframework.amqp.rabbit.listener RabbitListenerContainerFactory createListenerContainer

Introduction

In this page you can find the example usage for org.springframework.amqp.rabbit.listener RabbitListenerContainerFactory createListenerContainer.

Prototype

C createListenerContainer(@Nullable RabbitListenerEndpoint endpoint);

Source Link

Document

Create a MessageListenerContainer for the given RabbitListenerEndpoint .

Usage

From source file:org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.java

/**
 * Create and start a new {@link MessageListenerContainer} using the specified factory.
 * @param endpoint the endpoint to create a {@link MessageListenerContainer}.
 * @param factory the {@link RabbitListenerContainerFactory} to use.
 * @return the {@link MessageListenerContainer}.
 *//*w  w w . j  ava2  s .co m*/
protected MessageListenerContainer createListenerContainer(RabbitListenerEndpoint endpoint,
        RabbitListenerContainerFactory<?> factory) {

    MessageListenerContainer listenerContainer = factory.createListenerContainer(endpoint);

    if (listenerContainer instanceof InitializingBean) {
        try {
            ((InitializingBean) listenerContainer).afterPropertiesSet();
        } catch (Exception ex) {
            throw new BeanInitializationException("Failed to initialize message listener container", ex);
        }
    }

    int containerPhase = listenerContainer.getPhase();
    if (containerPhase < Integer.MAX_VALUE) { // a custom phase value
        if (this.phase < Integer.MAX_VALUE && this.phase != containerPhase) {
            throw new IllegalStateException("Encountered phase mismatch between container factory definitions: "
                    + this.phase + " vs " + containerPhase);
        }
        this.phase = listenerContainer.getPhase();
    }

    return listenerContainer;
}