private void registerBindings(QueueBinding binding, String queueName, String exchangeName, String exchangeType) { final String[] routingKeys; if (exchangeType.equals(ExchangeTypes.FANOUT) || binding.key().length == 0) { routingKeys = new String[] { "" }; } else { final int length = binding.key().length; routingKeys = new String[length]; for (int i = 0; i < length; ++i) { routingKeys[i] = resolveExpressionAsString(binding.key()[i], "@QueueBinding.key"); } } final Map<String, Object> bindingArguments = resolveArguments(binding.arguments()); final boolean bindingIgnoreExceptions = resolveExpressionAsBoolean(binding.ignoreDeclarationExceptions()); boolean declare = resolveExpressionAsBoolean(binding.declare()); for (String routingKey : routingKeys) { final Binding actualBinding = new Binding(queueName, DestinationType.QUEUE, exchangeName, routingKey, bindingArguments); actualBinding.setIgnoreDeclarationExceptions(bindingIgnoreExceptions); actualBinding.setShouldDeclare(declare); if (binding.admins().length > 0) { actualBinding.setAdminsThatShouldDeclare((Object[]) binding.admins()); } ((ConfigurableBeanFactory) this.beanFactory) .registerSingleton(exchangeName + "." + queueName + ++this.increment, actualBinding); } }
private void registerBindings(QueueBinding binding, String queueName, String exchangeName, String exchangeType) { final String[] routingKeys; if (exchangeType.equals(ExchangeTypes.FANOUT) || binding.key().length == 0) { routingKeys = new String[] { "" }; } else { final int length = binding.key().length; routingKeys = new String[length]; for (int i = 0; i < length; ++i) { routingKeys[i] = resolveExpressionAsString(binding.key()[i], "@QueueBinding.key"); } } final Map<String, Object> bindingArguments = resolveArguments(binding.arguments()); final boolean bindingIgnoreExceptions = resolveExpressionAsBoolean(binding.ignoreDeclarationExceptions()); boolean declare = resolveExpressionAsBoolean(binding.declare()); for (String routingKey : routingKeys) { final Binding actualBinding = new Binding(queueName, DestinationType.QUEUE, exchangeName, routingKey, bindingArguments); actualBinding.setIgnoreDeclarationExceptions(bindingIgnoreExceptions); actualBinding.setShouldDeclare(declare); if (binding.admins().length > 0) { actualBinding.setAdminsThatShouldDeclare((Object[]) binding.admins()); } ((ConfigurableBeanFactory) this.beanFactory) .registerSingleton(exchangeName + "." + queueName + ++this.increment, actualBinding); } }