@Override protected BeanDefinitionBuilder parseBinding(String exchangeName, Element binding, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(BindingFactoryBean.class); Element argumentsElement = DomUtils.getChildElementByTagName(binding, BINDING_ARGUMENTS); String key = binding.getAttribute("key"); String value = binding.getAttribute("value"); boolean hasKey = StringUtils.hasText(key); boolean hasValue = StringUtils.hasText(value); if (argumentsElement != null && (hasKey || hasValue)) { parserContext.getReaderContext() .error("'binding-arguments' sub-element and 'key/value' attributes are mutually exclusive.", binding); } parseDestination(binding, parserContext, builder); if (hasKey ^ hasValue) { parserContext.getReaderContext().error("Both 'key/value' attributes have to be declared.", binding); } if (argumentsElement == null) { if (!hasKey & !hasValue) { parserContext.getReaderContext() .error("At least one of 'binding-arguments' sub-element or 'key/value' attributes pair have to be declared.", binding); } ManagedMap<TypedStringValue, TypedStringValue> map = new ManagedMap<TypedStringValue, TypedStringValue>(); map.put(new TypedStringValue(key), new TypedStringValue(value)); builder.addPropertyValue("arguments", map); } builder.addPropertyValue("exchange", new TypedStringValue(exchangeName)); return builder; }
public void init() { registerBeanDefinitionParser("queue", new QueueParser()); registerBeanDefinitionParser("direct-exchange", new DirectExchangeParser()); registerBeanDefinitionParser("topic-exchange", new TopicExchangeParser()); registerBeanDefinitionParser("fanout-exchange", new FanoutExchangeParser()); registerBeanDefinitionParser("headers-exchange", new HeadersExchangeParser()); registerBeanDefinitionParser("listener-container", new ListenerContainerParser()); registerBeanDefinitionParser("admin", new AdminParser()); registerBeanDefinitionParser("connection-factory", new ConnectionFactoryParser()); registerBeanDefinitionParser("template", new TemplateParser()); registerBeanDefinitionParser("queue-arguments", new QueueArgumentsParser()); registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenParser()); }
public void init() { registerBeanDefinitionParser("queue", new QueueParser()); registerBeanDefinitionParser("direct-exchange", new DirectExchangeParser()); registerBeanDefinitionParser("topic-exchange", new TopicExchangeParser()); registerBeanDefinitionParser("fanout-exchange", new FanoutExchangeParser()); registerBeanDefinitionParser("headers-exchange", new HeadersExchangeParser()); registerBeanDefinitionParser("listener-container", new ListenerContainerParser()); registerBeanDefinitionParser("admin", new AdminParser()); registerBeanDefinitionParser("connection-factory", new ConnectionFactoryParser()); registerBeanDefinitionParser("template", new TemplateParser()); registerBeanDefinitionParser("queue-arguments", new QueueArgumentsParser()); registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenParser()); }
@Override protected BeanDefinitionBuilder parseBinding(String exchangeName, Element binding, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(BindingFactoryBean.class); Element argumentsElement = DomUtils.getChildElementByTagName(binding, BINDING_ARGUMENTS); String key = binding.getAttribute("key"); String value = binding.getAttribute("value"); boolean hasKey = StringUtils.hasText(key); boolean hasValue = StringUtils.hasText(value); if (argumentsElement != null && (hasKey || hasValue)) { parserContext.getReaderContext() .error("'binding-arguments' sub-element and 'key/value' attributes are mutually exclusive.", binding); } parseDestination(binding, parserContext, builder); if (hasKey ^ hasValue) { parserContext.getReaderContext().error("Both 'key/value' attributes have to be declared.", binding); } if (argumentsElement == null) { if (!hasKey & !hasValue) { parserContext.getReaderContext() .error("At least one of 'binding-arguments' sub-element or 'key/value' attributes pair have to be declared.", binding); } ManagedMap<TypedStringValue, TypedStringValue> map = new ManagedMap<TypedStringValue, TypedStringValue>(); map.put(new TypedStringValue(key), new TypedStringValue(value)); builder.addPropertyValue("arguments", map); } builder.addPropertyValue("exchange", new TypedStringValue(exchangeName)); return builder; }