if ((!exchange.isDurable() || exchange.isAutoDelete()) && this.logger.isInfoEnabled()) { this.logger.info("Auto-declaring a non-durable or auto-delete Exchange (" + exchange.getName() + ") durable:" + exchange.isDurable() + ", auto-delete:" + exchange.isAutoDelete() + ". " + "It will be deleted by the broker if it shuts down, and can be redeclared by closing and " + "reopening the connection.");
if ((!exchange.isDurable() || exchange.isAutoDelete()) && this.logger.isInfoEnabled()) { this.logger.info("Auto-declaring a non-durable or auto-delete Exchange (" + exchange.getName() + ") durable:" + exchange.isDurable() + ", auto-delete:" + exchange.isAutoDelete() + ". " + "It will be deleted by the broker if it shuts down, and can be redeclared by closing and " + "reopening the connection.");
private void declareExchanges(final Channel channel, final Exchange... exchanges) throws IOException { for (final Exchange exchange : exchanges) { if (this.logger.isDebugEnabled()) { this.logger.debug("declaring Exchange '" + exchange.getName() + "'"); } if (!isDeclaringDefaultExchange(exchange)) { try { if (exchange.isDelayed()) { Map<String, Object> arguments = exchange.getArguments(); if (arguments == null) { arguments = new HashMap<String, Object>(); } else { arguments = new HashMap<String, Object>(arguments); } arguments.put("x-delayed-type", exchange.getType()); channel.exchangeDeclare(exchange.getName(), DELAYED_MESSAGE_EXCHANGE, exchange.isDurable(), exchange.isAutoDelete(), exchange.isInternal(), arguments); } else { channel.exchangeDeclare(exchange.getName(), exchange.getType(), exchange.isDurable(), exchange.isAutoDelete(), exchange.isInternal(), exchange.getArguments()); } } catch (IOException e) { logOrRethrowDeclarationException(exchange, "exchange", e); } } } }
private void declareExchanges(final Channel channel, final Exchange... exchanges) throws IOException { for (final Exchange exchange : exchanges) { if (this.logger.isDebugEnabled()) { this.logger.debug("declaring Exchange '" + exchange.getName() + "'"); } if (!isDeclaringDefaultExchange(exchange)) { try { if (exchange.isDelayed()) { Map<String, Object> arguments = exchange.getArguments(); if (arguments == null) { arguments = new HashMap<String, Object>(); } else { arguments = new HashMap<String, Object>(arguments); } arguments.put("x-delayed-type", exchange.getType()); channel.exchangeDeclare(exchange.getName(), DELAYED_MESSAGE_EXCHANGE, exchange.isDurable(), exchange.isAutoDelete(), exchange.isInternal(), arguments); } else { channel.exchangeDeclare(exchange.getName(), exchange.getType(), exchange.isDurable(), exchange.isAutoDelete(), exchange.isInternal(), exchange.getArguments()); } } catch (IOException e) { logOrRethrowDeclarationException(exchange, "exchange", e); } } } }
@Override public void addExchange(String vhost, Exchange exchange) { ExchangeInfo info = new ExchangeInfo(); info.setArguments(exchange.getArguments()); info.setAutoDelete(exchange.isAutoDelete()); info.setDurable(exchange.isDurable()); info.setType(exchange.getType()); this.rabbitClient.declareExchange(vhost, exchange.getName(), info); }
@Override public void addExchange(String vhost, Exchange exchange) { ExchangeInfo info = new ExchangeInfo(); info.setArguments(exchange.getArguments()); info.setAutoDelete(exchange.isAutoDelete()); info.setDurable(exchange.isDurable()); info.setType(exchange.getType()); this.rabbitClient.declareExchange(vhost, exchange.getName(), info); }
@Test public void testExchangeBuilder() { Exchange exchange = ExchangeBuilder.directExchange("foo").autoDelete().delayed().internal() .withArgument("foo", "bar").build(); assertThat(exchange, instanceOf(DirectExchange.class)); assertTrue(exchange.isAutoDelete()); assertTrue(exchange.isDurable()); assertTrue(exchange.isInternal()); assertTrue(exchange.isDelayed()); assertThat((String) exchange.getArguments().get("foo"), equalTo("bar")); exchange = ExchangeBuilder.topicExchange("foo").durable(false).build(); assertThat(exchange, instanceOf(TopicExchange.class)); assertFalse(exchange.isAutoDelete()); assertFalse(exchange.isDurable()); assertFalse(exchange.isInternal()); assertFalse(exchange.isDelayed()); exchange = ExchangeBuilder.fanoutExchange("foo").build(); assertThat(exchange, instanceOf(FanoutExchange.class)); assertFalse(exchange.isAutoDelete()); assertTrue(exchange.isDurable()); assertFalse(exchange.isInternal()); assertFalse(exchange.isDelayed()); exchange = ExchangeBuilder.headersExchange("foo").build(); assertThat(exchange, instanceOf(HeadersExchange.class)); assertFalse(exchange.isAutoDelete()); assertTrue(exchange.isDurable()); assertFalse(exchange.isInternal()); assertFalse(exchange.isDelayed()); }
@Test public void testDeleteExchange() { String exchangeName = "testExchange"; Exchange testExchange = new DirectExchange(exchangeName); ExchangeInfo info = new ExchangeInfo(); info.setArguments(testExchange.getArguments()); info.setAutoDelete(testExchange.isAutoDelete()); info.setDurable(testExchange.isDurable()); info.setType(testExchange.getType()); this.rabbitRestClient.declareExchange("/", testExchange.getName(), info); ExchangeInfo exchangeToAssert = this.rabbitRestClient.getExchange("/", exchangeName); assertEquals(testExchange.getName(), exchangeToAssert.getName()); assertEquals(testExchange.getType(), exchangeToAssert.getType()); this.rabbitRestClient.deleteExchange("/", testExchange.getName()); assertNull(this.rabbitRestClient.getExchange("/", exchangeName)); }