/** * @param queues a vararg list of queues to add. * @return the spec. * @see SimpleMessageListenerContainer#addQueueNames(String...) */ public AmqpInboundChannelAdapterSpec addQueues(Queue... queues) { this.listenerContainer.addQueues(queues); return this; }
/** * @param queues a vararg list of queues to add. * @return the spec. * @see SimpleMessageListenerContainer#addQueueNames(String...) */ public AmqpInboundGatewaySpec addQueues(Queue... queues) { this.listenerContainer.addQueues(queues); return this; }
/** * @param queues a vararg list of queues to add. * @return the spec. * @see SimpleMessageListenerContainer#addQueueNames(String...) */ public AmqpInboundChannelAdapterSpec addQueues(Queue... queues) { this.listenerContainer.addQueues(queues); return this; }
/** * @param queues a vararg list of queues to add. * @return the spec. * @see SimpleMessageListenerContainer#addQueueNames(String...) */ public AmqpInboundGatewaySpec addQueues(Queue... queues) { this.listenerContainer.addQueues(queues); return this; }
public RabbitContext build() { RabbitAdmin admin = new RabbitAdmin(rabbitConnectionFactory); ClassMapper mapper = createClassMapper(); AbstractJsonMessageConverter converter = createMessageConverter(mapper); RetryTemplate retryTemplate = createRetryTemplate(); RabbitTemplate rabbitTemplate = createRabbitTemplate(converter, retryTemplate); // Create containers for queues based on the containerAlias value on the message. // Default behaviour will be to add all queues to a single container containerQueueDataMap.forEach((containerAlias, containerData) -> { SimpleMessageListenerContainer container = containerFactory .createDefaultContainer(consumerPostfix + "-" + containerAlias, rabbitConnectionFactory, converter, containerData.getListener()); containerData.getQueueNames().forEach(q -> container.addQueues(queues.get(q))); containers.add(container); }); RabbitContext context = new RabbitContext(consumerPostfix, admin, rabbitTemplate, converter, exchanges.values(), queues.values(), bindings.values(), descriptions.values(), containers, replyToMap); // Set the context in anything that has been added as a RabbitContextAware contextAwares.forEach(contextAware -> contextAware.setRabbitContext(context)); return context; }
public RabbitContext build() { RabbitAdmin admin = new RabbitAdmin(rabbitConnectionFactory); ClassMapper mapper = createClassMapper(); AbstractJsonMessageConverter converter = createMessageConverter(mapper); RetryTemplate retryTemplate = createRetryTemplate(); RabbitTemplate rabbitTemplate = createRabbitTemplate(converter, retryTemplate); // Create containers for queues based on the containerAlias value on the message. // Default behaviour will be to add all queues to a single container containerQueueDataMap.forEach((containerAlias, containerData) -> { SimpleMessageListenerContainer container = containerFactory .createDefaultContainer(consumerPostfix + "-" + containerAlias, rabbitConnectionFactory, converter, containerData.getListener()); containerData.getQueueNames().forEach(q -> container.addQueues(queues.get(q))); containers.add(container); }); RabbitContext context = new RabbitContext(consumerPostfix, admin, rabbitTemplate, converter, exchanges.values(), queues.values(), bindings.values(), descriptions.values(), containers, replyToMap); // Set the context in anything that has been added as a RabbitContextAware contextAwares.forEach(contextAware -> contextAware.setRabbitContext(context)); return context; }
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(directExchange).with(routingKey)); listenerContainer.stop(); listenerContainer.addQueues(queue); listenerContainer.start(); declaredQueues.add(routingKey);
@Test public void testChangeQueues2() throws Exception { // addQueues instead of addQueueNames CountDownLatch latch = new CountDownLatch(30); container = createContainer(new MessageListenerAdapter(new PojoListener(latch)), queue.getName(), queue1.getName()); final CountDownLatch consumerLatch = new CountDownLatch(1); this.container.setApplicationEventPublisher(e -> { if (e instanceof AsyncConsumerStoppedEvent) { consumerLatch.countDown(); } }); for (int i = 0; i < 10; i++) { template.convertAndSend(queue.getName(), i + "foo"); template.convertAndSend(queue1.getName(), i + "foo"); } container.addQueues(queue1); assertTrue(consumerLatch.await(10, TimeUnit.SECONDS)); for (int i = 0; i < 10; i++) { template.convertAndSend(queue.getName(), i + "foo"); } boolean waited = latch.await(10, TimeUnit.SECONDS); assertTrue("Timed out waiting for message", waited); assertNull(template.receiveAndConvert(queue.getName())); assertNull(template.receiveAndConvert(queue1.getName())); }