public Exchange build() { AbstractExchange exchange; if (ExchangeTypes.DIRECT.equals(this.type)) { exchange = new DirectExchange(this.name, this.durable, this.autoDelete, getArguments()); } else if (ExchangeTypes.TOPIC.equals(this.type)) { exchange = new TopicExchange(this.name, this.durable, this.autoDelete, getArguments()); } else if (ExchangeTypes.FANOUT.equals(this.type)) { exchange = new FanoutExchange(this.name, this.durable, this.autoDelete, getArguments()); } else if (ExchangeTypes.HEADERS.equals(this.type)) { exchange = new HeadersExchange(this.name, this.durable, this.autoDelete, getArguments()); } else { exchange = new CustomExchange(this.name, this.type, this.durable, this.autoDelete, getArguments()); } exchange.setInternal(this.internal); exchange.setDelayed(this.delayed); exchange.setIgnoreDeclarationExceptions(this.ignoreDeclarationExceptions); exchange.setShouldDeclare(this.declare); if (!ObjectUtils.isEmpty(this.admins)) { exchange.setAdminsThatShouldDeclare(this.admins); } return exchange; }
@Nullable private Exchange convert(@Nullable ExchangeInfo ei) { if (ei == null) { return null; } boolean delayed = false; if (ei.getType().equals("x-delayed-message")) { ei.setType((String) ei.getArguments().get("x-delayed-type")); delayed = true; } AbstractExchange exchange; if (ei.getType().equals("direct")) { exchange = new DirectExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else if (ei.getType().equals("fanout")) { exchange = new FanoutExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else if (ei.getType().equals("headers")) { exchange = new HeadersExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else if (ei.getType().equals("topic")) { exchange = new TopicExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else { return null; } exchange.setDelayed(delayed); exchange.setInternal(ei.isInternal()); return exchange; }
@Nullable private Exchange convert(@Nullable ExchangeInfo ei) { if (ei == null) { return null; } boolean delayed = false; if (ei.getType().equals("x-delayed-message")) { ei.setType((String) ei.getArguments().get("x-delayed-type")); delayed = true; } AbstractExchange exchange; if (ei.getType().equals("direct")) { exchange = new DirectExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else if (ei.getType().equals("fanout")) { exchange = new FanoutExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else if (ei.getType().equals("headers")) { exchange = new HeadersExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else if (ei.getType().equals("topic")) { exchange = new TopicExchange(ei.getName(), ei.isDurable(), ei.isAutoDelete(), ei.getArguments()); } else { return null; } exchange.setDelayed(delayed); exchange.setInternal(ei.isInternal()); return exchange; }
public AbstractExchange buildExchange(ExchangeConfig defaultExchangeConfig) { if (!isDefaultConfigApplied()) { applyDefaultConfig(defaultExchangeConfig); } AbstractExchange exchange = new CustomExchange(getName(), getType().getValue(), getDurable(), getAutoDelete(), getArguments()); exchange.setInternal(getInternal()); exchange.setDelayed(getDelayed()); return exchange; }
@Test public void testDeleteExchangeWithInternalOption() throws Exception { String exchangeName = "test.exchange.internal"; AbstractExchange exchange = new DirectExchange(exchangeName); exchange.setInternal(true); rabbitAdmin.declareExchange(exchange); ExchangeInfo exchange2 = getExchange(exchangeName); assertEquals(ExchangeTypes.DIRECT, exchange2.getType()); assertTrue(exchange2.isInternal()); boolean result = rabbitAdmin.deleteExchange(exchangeName); assertTrue(result); }