protected void parseBindings(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, String exchangeName) { Element bindingsElement = DomUtils.getChildElementByTagName(element, BINDINGS_ELE); doParseBindings(element, parserContext, exchangeName, bindingsElement, this); }
protected void parseDestination(Element binding, ParserContext parserContext, BeanDefinitionBuilder builder) { String queueAttribute = binding.getAttribute(BINDING_QUEUE_ATTR); String exchangeAttribute = binding.getAttribute(BINDING_EXCHANGE_ATTR); boolean hasQueueAttribute = StringUtils.hasText(queueAttribute); boolean hasExchangeAttribute = StringUtils.hasText(exchangeAttribute); if (hasQueueAttribute == hasExchangeAttribute) { parserContext.getReaderContext().error("Binding must have exactly one of 'queue' or 'exchange'", binding); } if (hasQueueAttribute) { builder.addPropertyReference("destinationQueue", queueAttribute); } if (hasExchangeAttribute) { builder.addPropertyReference("destinationExchange", exchangeAttribute); } this.parseArguments(binding, BINDING_ARGUMENTS, parserContext, builder, "arguments"); }
protected void doParseBindings(Element element, ParserContext parserContext, String exchangeName, Element bindings, AbstractExchangeParser parser) { if (bindings != null) { for (Element binding : DomUtils.getChildElementsByTagName(bindings, BINDING_ELE)) { BeanDefinitionBuilder bindingBuilder = parser.parseBinding(exchangeName, binding, parserContext); NamespaceUtils.parseDeclarationControls(element, bindingBuilder); BeanDefinition beanDefinition = bindingBuilder.getBeanDefinition(); registerBeanDefinition(new BeanDefinitionHolder(beanDefinition, parserContext.getReaderContext() .generateBeanName(beanDefinition)), parserContext.getRegistry()); } } }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String exchangeName = element.getAttribute(NAME_ATTRIBUTE); builder.addConstructorArgValue(new TypedStringValue(exchangeName)); parseBindings(element, parserContext, builder, exchangeName); NamespaceUtils.addConstructorArgBooleanValueIfAttributeDefined(builder, element, DURABLE_ATTRIBUTE, true); NamespaceUtils.addConstructorArgBooleanValueIfAttributeDefined(builder, element, AUTO_DELETE_ATTRIBUTE, false); NamespaceUtils.setValueIfAttributeDefined(builder, element, DELAYED_ATTRIBUTE); NamespaceUtils.setValueIfAttributeDefined(builder, element, "internal"); this.parseArguments(element, ARGUMENTS_ELEMENT, parserContext, builder, null); NamespaceUtils.parseDeclarationControls(element, builder); CURRENT_ELEMENT.set(element); }
protected void doParseBindings(Element element, ParserContext parserContext, String exchangeName, Element bindings, AbstractExchangeParser parser) { if (bindings != null) { for (Element binding : DomUtils.getChildElementsByTagName(bindings, BINDING_ELE)) { BeanDefinitionBuilder bindingBuilder = parser.parseBinding(exchangeName, binding, parserContext); NamespaceUtils.parseDeclarationControls(element, bindingBuilder); BeanDefinition beanDefinition = bindingBuilder.getBeanDefinition(); registerBeanDefinition(new BeanDefinitionHolder(beanDefinition, parserContext.getReaderContext() .generateBeanName(beanDefinition)), parserContext.getRegistry()); } } }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String exchangeName = element.getAttribute(NAME_ATTRIBUTE); builder.addConstructorArgValue(new TypedStringValue(exchangeName)); parseBindings(element, parserContext, builder, exchangeName); NamespaceUtils.addConstructorArgBooleanValueIfAttributeDefined(builder, element, DURABLE_ATTRIBUTE, true); NamespaceUtils.addConstructorArgBooleanValueIfAttributeDefined(builder, element, AUTO_DELETE_ATTRIBUTE, false); NamespaceUtils.setValueIfAttributeDefined(builder, element, DELAYED_ATTRIBUTE); NamespaceUtils.setValueIfAttributeDefined(builder, element, "internal"); this.parseArguments(element, ARGUMENTS_ELEMENT, parserContext, builder, null); NamespaceUtils.parseDeclarationControls(element, builder); CURRENT_ELEMENT.set(element); }
protected void parseBindings(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, String exchangeName) { Element bindingsElement = DomUtils.getChildElementByTagName(element, BINDINGS_ELE); doParseBindings(element, parserContext, exchangeName, bindingsElement, this); }
protected void parseDestination(Element binding, ParserContext parserContext, BeanDefinitionBuilder builder) { String queueAttribute = binding.getAttribute(BINDING_QUEUE_ATTR); String exchangeAttribute = binding.getAttribute(BINDING_EXCHANGE_ATTR); boolean hasQueueAttribute = StringUtils.hasText(queueAttribute); boolean hasExchangeAttribute = StringUtils.hasText(exchangeAttribute); if (hasQueueAttribute == hasExchangeAttribute) { parserContext.getReaderContext().error("Binding must have exactly one of 'queue' or 'exchange'", binding); } if (hasQueueAttribute) { builder.addPropertyReference("destinationQueue", queueAttribute); } if (hasExchangeAttribute) { builder.addPropertyReference("destinationExchange", exchangeAttribute); } this.parseArguments(binding, BINDING_ARGUMENTS, parserContext, builder, "arguments"); }