Example usage for org.springframework.amqp.rabbit.listener DirectReplyToMessageListenerContainer getChannelHolder

List of usage examples for org.springframework.amqp.rabbit.listener DirectReplyToMessageListenerContainer getChannelHolder

Introduction

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

Prototype

public ChannelHolder getChannelHolder() 

Source Link

Document

Get the channel holder associated with a direct reply-to consumer; contains a consumer epoch to prevent inappropriate releases.

Usage

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

@Test
public void testReplyToReleaseWithCancel() throws Exception {
    CachingConnectionFactory cf = new CachingConnectionFactory("localhost");
    DirectReplyToMessageListenerContainer container = new DirectReplyToMessageListenerContainer(cf);
    container.setBeanName("releaseCancel");
    container.afterPropertiesSet();/*w  ww.  j  a v a2  s .com*/
    container.start();
    ChannelHolder channelHolder = container.getChannelHolder();
    final CountDownLatch latch = new CountDownLatch(1);
    container.setApplicationEventPublisher(e -> {
        if (e instanceof ListenerContainerConsumerTerminatedEvent) {
            latch.countDown();
        }
    });
    container.releaseConsumerFor(channelHolder, true, "foo");
    assertTrue(latch.await(10, TimeUnit.SECONDS));
    container.stop();
    cf.destroy();
}

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

@Test
public void testReplyToConsumersReduced() throws Exception {
    CachingConnectionFactory cf = new CachingConnectionFactory("localhost");
    DirectReplyToMessageListenerContainer container = new DirectReplyToMessageListenerContainer(cf);
    container.setBeanName("reducing");
    container.setIdleEventInterval(500);
    container.afterPropertiesSet();//from  w w  w . j  a  v  a2  s  . co m
    container.start();
    ChannelHolder channelHolder = container.getChannelHolder();
    assertTrue(activeConsumerCount(container, 1));
    container.releaseConsumerFor(channelHolder, false, null);
    assertTrue(activeConsumerCount(container, 0));
    container.stop();
    cf.destroy();
}

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

@Test
public void testReplyToReleaseWithCancel() throws Exception {
    CachingConnectionFactory cf = new CachingConnectionFactory("localhost");
    DirectReplyToMessageListenerContainer container = new DirectReplyToMessageListenerContainer(cf);
    container.setBeanName("releaseCancel");
    container.afterPropertiesSet();/*from  ww  w . java  2  s. com*/
    container.start();
    ChannelHolder channelHolder = container.getChannelHolder();
    final CountDownLatch latch = new CountDownLatch(1);
    container.setApplicationEventPublisher(e -> {
        if (e instanceof ListenerContainerConsumerTerminatedEvent) {
            latch.countDown();
        }
    });
    container.releaseConsumerFor(channelHolder, true, "foo");
    assertTrue(latch.await(10, TimeUnit.SECONDS));
}

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

@Test
public void testReplyToConsumersReduced() throws Exception {
    CachingConnectionFactory cf = new CachingConnectionFactory("localhost");
    DirectReplyToMessageListenerContainer container = new DirectReplyToMessageListenerContainer(cf);
    container.setBeanName("reducing");
    container.setIdleEventInterval(500);
    container.afterPropertiesSet();//from   w  w  w. j  a va  2  s .c  om
    container.start();
    ChannelHolder channelHolder = container.getChannelHolder();
    assertTrue(activeConsumerCount(container, 1));
    container.releaseConsumerFor(channelHolder, false, null);
    assertTrue(activeConsumerCount(container, 0));
}