@Override public void handleConsumeOk(String consumerTag) { super.handleConsumeOk(consumerTag); if (logger.isDebugEnabled()) { logger.debug("ConsumeOK: " + BlockingQueueConsumer.this); } if (BlockingQueueConsumer.this.applicationEventPublisher != null) { BlockingQueueConsumer.this.applicationEventPublisher .publishEvent(new ConsumeOkEvent(this, this.queue, consumerTag)); } }
@Override public String toString() { return "ConsumeOkEvent [queue=" + this.queue + ", consumerTag=" + this.consumerTag + ", consumer=" + getSource() + "]"; }
@Test public void testTransactionalLowLevel() throws Exception { RabbitTemplate template = new RabbitTemplate(); CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setHost("localhost"); connectionFactory.setPort(BrokerTestUtils.getPort()); template.setConnectionFactory(connectionFactory); BlockingQueueConsumer blockingQueueConsumer = new BlockingQueueConsumer(connectionFactory, new DefaultMessagePropertiesConverter(), new ActiveObjectCounter<BlockingQueueConsumer>(), AcknowledgeMode.AUTO, true, 1, queue1.getName(), queue2.getName()); final String consumerTagPrefix = UUID.randomUUID().toString(); blockingQueueConsumer.setTagStrategy(queue -> consumerTagPrefix + '#' + queue); CountDownLatch latch = new CountDownLatch(2); List<ConsumeOkEvent> events = new ArrayList<>(); blockingQueueConsumer.setApplicationEventPublisher(e -> { if (e instanceof ConsumeOkEvent) { events.add((ConsumeOkEvent) e); latch.countDown(); } }); blockingQueueConsumer.start(); assertTrue(latch.await(10, TimeUnit.SECONDS)); assertThat(events.get(0).getConsumerTag(), equalTo(consumerTagPrefix + "#" + queue1.getName())); assertThat(events.get(1).getConsumerTag(), equalTo(consumerTagPrefix + "#" + queue2.getName())); blockingQueueConsumer.stop(); assertNull(template.receiveAndConvert(queue1.getName())); connectionFactory.destroy(); }
assertThat(events.get(1), instanceOf(ConsumeOkEvent.class)); ConsumeOkEvent consumeOkEvent = (ConsumeOkEvent) events.get(1); assertThat(consumeOkEvent.getQueue(), isOneOf(this.queue.getName(), this.queue1.getName())); assertThat(events.get(2), instanceOf(ConsumeOkEvent.class)); consumeOkEvent = (ConsumeOkEvent) events.get(2); assertThat(consumeOkEvent.getQueue(), isOneOf(this.queue.getName(), this.queue1.getName())); assertSame(events.get(3), eventRef.get()); assertThat(events.get(4), instanceOf(AsyncConsumerRestartedEvent.class));
@Override public void handleConsumeOk(String consumerTag) { super.handleConsumeOk(consumerTag); if (logger.isDebugEnabled()) { logger.debug("ConsumeOK: " + BlockingQueueConsumer.this); } if (BlockingQueueConsumer.this.applicationEventPublisher != null) { BlockingQueueConsumer.this.applicationEventPublisher .publishEvent(new ConsumeOkEvent(this, this.queue, consumerTag)); } }
@Override public String toString() { return "ConsumeOkEvent [queue=" + this.queue + ", consumerTag=" + this.consumerTag + ", consumer=" + getSource() + "]"; }
@Override public void handleConsumeOk(String consumerTag) { super.handleConsumeOk(consumerTag); if (this.logger.isDebugEnabled()) { this.logger.debug("New " + this + " consumeOk"); } if (getApplicationEventPublisher() != null) { getApplicationEventPublisher().publishEvent(new ConsumeOkEvent(this, getQueue(), consumerTag)); } }
@Override public void handleConsumeOk(String consumerTag) { super.handleConsumeOk(consumerTag); if (this.logger.isDebugEnabled()) { this.logger.debug("New " + this + " consumeOk"); } if (getApplicationEventPublisher() != null) { getApplicationEventPublisher().publishEvent(new ConsumeOkEvent(this, getQueue(), consumerTag)); } }