List of usage examples for org.springframework.amqp.rabbit.core RabbitAdmin setApplicationContext
@Override public void setApplicationContext(ApplicationContext applicationContext)
From source file:org.springframework.cloud.netflix.hystrix.amqp.HystrixStreamAutoConfiguration.java
private ConnectionFactory connectionFactory() { if (this.hystrixConnectionFactory != null) { RabbitAdmin amqpAdmin = new RabbitAdmin(this.hystrixConnectionFactory); hystrixStreamExchange().setAdminsThatShouldDeclare(amqpAdmin); amqpAdmin.setApplicationContext(this.context); amqpAdmin.afterPropertiesSet();/*from w ww . ja va 2 s. c o m*/ return this.hystrixConnectionFactory; } return this.primaryConnectionFactory; }
From source file:org.springframework.cloud.netflix.turbine.amqp.TurbineAmqpAutoConfiguration.java
private ConnectionFactory connectionFactory() { if (this.turbineConnectionFactory != null) { RabbitAdmin amqpAdmin = new RabbitAdmin(this.turbineConnectionFactory); hystrixStreamExchange().setAdminsThatShouldDeclare(amqpAdmin); localTurbineAmqpQueueBinding().setAdminsThatShouldDeclare(amqpAdmin); hystrixStreamQueue().setAdminsThatShouldDeclare(amqpAdmin); amqpAdmin.setApplicationContext(this.context); amqpAdmin.afterPropertiesSet();/* ww w .j av a 2 s . co m*/ return this.turbineConnectionFactory; } return this.primaryConnectionFactory; }
From source file:org.springframework.amqp.rabbit.core.RabbitAdminTests.java
@Test public void testNoFailOnStartupWithMissingBroker() throws Exception { SingleConnectionFactory connectionFactory = new SingleConnectionFactory("foo"); connectionFactory.setPort(434343);/*from w w w . ja va 2s .c o m*/ GenericApplicationContext applicationContext = new GenericApplicationContext(); applicationContext.getBeanFactory().registerSingleton("foo", new Queue("queue")); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); rabbitAdmin.setApplicationContext(applicationContext); rabbitAdmin.setAutoStartup(true); rabbitAdmin.afterPropertiesSet(); connectionFactory.destroy(); }
From source file:org.springframework.amqp.rabbit.core.RabbitAdminTests.java
@Test public void testFailOnFirstUseWithMissingBroker() throws Exception { SingleConnectionFactory connectionFactory = new SingleConnectionFactory("localhost"); connectionFactory.setPort(434343);//from w ww. ja v a 2s. co m GenericApplicationContext applicationContext = new GenericApplicationContext(); applicationContext.getBeanFactory().registerSingleton("foo", new Queue("queue")); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); rabbitAdmin.setApplicationContext(applicationContext); rabbitAdmin.setAutoStartup(true); rabbitAdmin.afterPropertiesSet(); exception.expect(IllegalArgumentException.class); rabbitAdmin.declareQueue(); connectionFactory.destroy(); }
From source file:org.springframework.amqp.rabbit.core.RabbitAdminTests.java
@Test public void testTemporaryLogs() throws Exception { SingleConnectionFactory connectionFactory = new SingleConnectionFactory(); connectionFactory.setHost("localhost"); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); try {/*from ww w . j a v a 2 s . co m*/ ApplicationContext ctx = mock(ApplicationContext.class); Map<String, Queue> queues = new HashMap<String, Queue>(); queues.put("nonDurQ", new Queue("testq.nonDur", false, false, false)); queues.put("adQ", new Queue("testq.ad", true, false, true)); queues.put("exclQ", new Queue("testq.excl", true, true, false)); queues.put("allQ", new Queue("testq.all", false, true, true)); when(ctx.getBeansOfType(Queue.class)).thenReturn(queues); Map<String, Exchange> exchanges = new HashMap<String, Exchange>(); exchanges.put("nonDurEx", new DirectExchange("testex.nonDur", false, false)); exchanges.put("adEx", new DirectExchange("testex.ad", true, true)); exchanges.put("allEx", new DirectExchange("testex.all", false, true)); when(ctx.getBeansOfType(Exchange.class)).thenReturn(exchanges); rabbitAdmin.setApplicationContext(ctx); rabbitAdmin.afterPropertiesSet(); Log logger = spy(TestUtils.getPropertyValue(rabbitAdmin, "logger", Log.class)); doReturn(true).when(logger).isInfoEnabled(); doAnswer(new DoesNothing()).when(logger).info(anyString()); new DirectFieldAccessor(rabbitAdmin).setPropertyValue("logger", logger); connectionFactory.createConnection().close(); // force declarations ArgumentCaptor<String> log = ArgumentCaptor.forClass(String.class); verify(logger, times(7)).info(log.capture()); List<String> logs = log.getAllValues(); Collections.sort(logs); assertThat(logs.get(0), Matchers.containsString("(testex.ad) durable:true, auto-delete:true")); assertThat(logs.get(1), Matchers.containsString("(testex.all) durable:false, auto-delete:true")); assertThat(logs.get(2), Matchers.containsString("(testex.nonDur) durable:false, auto-delete:false")); assertThat(logs.get(3), Matchers.containsString("(testq.ad) durable:true, auto-delete:true, exclusive:false")); assertThat(logs.get(4), Matchers.containsString("(testq.all) durable:false, auto-delete:true, exclusive:true")); assertThat(logs.get(5), Matchers.containsString("(testq.excl) durable:true, auto-delete:false, exclusive:true")); assertThat(logs.get(6), Matchers.containsString("(testq.nonDur) durable:false, auto-delete:false, exclusive:false")); } finally { cleanQueuesAndExchanges(rabbitAdmin); connectionFactory.destroy(); } }
From source file:org.springframework.amqp.rabbit.listener.DirectMessageListenerContainerIntegrationTests.java
private void testRecoverDeletedQueueGuts(boolean autoDeclare) throws Exception { CachingConnectionFactory cf = new CachingConnectionFactory("localhost"); DirectMessageListenerContainer container = new DirectMessageListenerContainer(cf); if (autoDeclare) { GenericApplicationContext context = new GenericApplicationContext(); context.getBeanFactory().registerSingleton("foo", new Queue(Q1)); RabbitAdmin admin = new RabbitAdmin(cf); admin.setApplicationContext(context); context.getBeanFactory().registerSingleton("admin", admin); context.refresh();//from w ww .j av a2 s. c om container.setApplicationContext(context); } container.setAutoDeclare(autoDeclare); container.setQueueNames(Q1, Q2); container.setConsumersPerQueue(2); container.setConsumersPerQueue(2); container.setMessageListener(m -> { }); container.setFailedDeclarationRetryInterval(500); container.setBeanName("deleteQauto=" + autoDeclare); container.setConsumerTagStrategy(new Tag()); container.afterPropertiesSet(); container.start(); assertTrue(consumersOnQueue(Q1, 2)); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 4)); brokerRunning.deleteQueues(Q1); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 2)); assertTrue(restartConsumerCount(container, 2)); RabbitAdmin admin = new RabbitAdmin(cf); if (!autoDeclare) { Thread.sleep(2000); admin.declareQueue(new Queue(Q1)); } assertTrue(consumersOnQueue(Q1, 2)); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 4)); container.stop(); assertTrue(consumersOnQueue(Q1, 0)); assertTrue(consumersOnQueue(Q2, 0)); assertTrue(activeConsumerCount(container, 0)); assertEquals(0, TestUtils.getPropertyValue(container, "consumersByQueue", MultiValueMap.class).size()); cf.destroy(); }
From source file:org.springframework.amqp.rabbit.listener.DirectMessageListenerContainerTests.java
private void testRecoverDeletedQueueGuts(boolean autoDeclare) throws Exception { CachingConnectionFactory cf = new CachingConnectionFactory("localhost"); DirectMessageListenerContainer container = new DirectMessageListenerContainer(cf); if (autoDeclare) { GenericApplicationContext context = new GenericApplicationContext(); context.getBeanFactory().registerSingleton("foo", new Queue(Q1)); RabbitAdmin admin = new RabbitAdmin(cf); admin.setApplicationContext(context); context.getBeanFactory().registerSingleton("admin", admin); context.refresh();/* w ww . ja v a 2 s . c o m*/ container.setApplicationContext(context); } container.setAutoDeclare(autoDeclare); container.setQueueNames(Q1, Q2); container.setConsumersPerQueue(2); container.setConsumersPerQueue(2); container.setMessageListener(m -> { }); container.setFailedDeclarationRetryInterval(500); container.setBeanName("deleteQauto=" + autoDeclare); container.setConsumerTagStrategy(new Tag()); container.afterPropertiesSet(); container.start(); assertTrue(consumersOnQueue(Q1, 2)); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 4)); brokerRunning.getAdmin().deleteQueue(Q1); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 2)); assertTrue(restartConsumerCount(container, 2)); if (!autoDeclare) { Thread.sleep(2000); brokerRunning.getAdmin().declareQueue(new Queue(Q1)); } assertTrue(consumersOnQueue(Q1, 2)); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 4)); container.stop(); assertTrue(consumersOnQueue(Q1, 0)); assertTrue(consumersOnQueue(Q2, 0)); assertTrue(activeConsumerCount(container, 0)); assertEquals(0, TestUtils.getPropertyValue(container, "consumersByQueue", MultiValueMap.class).size()); cf.destroy(); }
From source file:org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainerIntegration2Tests.java
@Test public void testListenFromAnonQueue() throws Exception { AnonymousQueue queue = new AnonymousQueue(); CountDownLatch latch = new CountDownLatch(10); SimpleMessageListenerContainer container = new SimpleMessageListenerContainer( template.getConnectionFactory()); container.setMessageListener(new MessageListenerAdapter(new PojoListener(latch))); container.setQueueNames(queue.getName()); container.setConcurrentConsumers(2); GenericApplicationContext context = new GenericApplicationContext(); context.getBeanFactory().registerSingleton("foo", queue); context.refresh();//from ww w . j a va 2s .c o m container.setApplicationContext(context); RabbitAdmin admin = new RabbitAdmin(this.template.getConnectionFactory()); admin.setApplicationContext(context); container.setRabbitAdmin(admin); container.afterPropertiesSet(); container.start(); for (int i = 0; i < 10; i++) { template.convertAndSend(queue.getName(), i + "foo"); } assertTrue(latch.await(10, TimeUnit.SECONDS)); container.stop(); container.start(); latch = new CountDownLatch(10); container.setMessageListener(new MessageListenerAdapter(new PojoListener(latch))); for (int i = 0; i < 10; i++) { template.convertAndSend(queue.getName(), i + "foo"); } assertTrue(latch.await(10, TimeUnit.SECONDS)); container.stop(); }