From ecdb0d57176bb6dafe72daf539cb27511b034025 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 20 Apr 2011 18:10:33 +0100 Subject: [PATCH] AMQP-160: adjust binding parser so values can be externalized --- .../amqp/rabbit/config/DirectExchangeParser.java | 7 ++++--- .../amqp/rabbit/config/FanoutExchangeParser.java | 5 +++-- .../amqp/rabbit/config/HeadersExchangeParser.java | 4 ++-- .../amqp/rabbit/config/TopicExchangeParser.java | 7 ++++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/DirectExchangeParser.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/DirectExchangeParser.java index d00e01a8..d5629df5 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/DirectExchangeParser.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/DirectExchangeParser.java @@ -18,6 +18,7 @@ import java.util.Collections; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Binding.DestinationType; import org.springframework.amqp.core.DirectExchange; +import org.springframework.beans.factory.config.TypedStringValue; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; @@ -41,14 +42,14 @@ public class DirectExchangeParser extends AbstractExchangeParser { protected AbstractBeanDefinition parseBinding(String exchangeName, Element binding, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(Binding.class); - builder.addConstructorArgValue(binding.getAttribute(BINDING_QUEUE_ATTR)); + builder.addConstructorArgValue(new TypedStringValue(binding.getAttribute(BINDING_QUEUE_ATTR))); builder.addConstructorArgValue(DestinationType.EXCHANGE); - builder.addConstructorArgValue(exchangeName); + builder.addConstructorArgValue(new TypedStringValue(exchangeName)); String bindingKey = binding.getAttribute(BINDING_KEY_ATTR); if (!StringUtils.hasText(bindingKey)) { bindingKey = ""; } - builder.addConstructorArgValue(bindingKey); + builder.addConstructorArgValue(new TypedStringValue(bindingKey)); builder.addConstructorArgValue(Collections.emptyMap()); return builder.getBeanDefinition(); } diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/FanoutExchangeParser.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/FanoutExchangeParser.java index 12b33305..7e4dd989 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/FanoutExchangeParser.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/FanoutExchangeParser.java @@ -18,6 +18,7 @@ import java.util.Collections; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Binding.DestinationType; import org.springframework.amqp.core.FanoutExchange; +import org.springframework.beans.factory.config.TypedStringValue; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; @@ -37,9 +38,9 @@ public class FanoutExchangeParser extends AbstractExchangeParser { @Override protected AbstractBeanDefinition parseBinding(String exchangeName, Element binding, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(Binding.class); - builder.addConstructorArgValue(binding.getAttribute(BINDING_QUEUE_ATTR)); + builder.addConstructorArgValue(new TypedStringValue(binding.getAttribute(BINDING_QUEUE_ATTR))); builder.addConstructorArgValue(DestinationType.EXCHANGE); - builder.addConstructorArgValue(exchangeName); + builder.addConstructorArgValue(new TypedStringValue(exchangeName)); builder.addConstructorArgValue(""); builder.addConstructorArgValue(Collections.emptyMap()); return builder.getBeanDefinition(); diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/HeadersExchangeParser.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/HeadersExchangeParser.java index 4e4955dc..d7e059d9 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/HeadersExchangeParser.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/HeadersExchangeParser.java @@ -40,9 +40,9 @@ public class HeadersExchangeParser extends AbstractExchangeParser { @Override protected AbstractBeanDefinition parseBinding(String exchangeName, Element binding, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(Binding.class); - builder.addConstructorArgValue(binding.getAttribute(BINDING_QUEUE_ATTR)); + builder.addConstructorArgValue(new TypedStringValue(binding.getAttribute(BINDING_QUEUE_ATTR))); builder.addConstructorArgValue(DestinationType.EXCHANGE); - builder.addConstructorArgValue(exchangeName); + builder.addConstructorArgValue(new TypedStringValue(exchangeName)); builder.addConstructorArgValue(""); ManagedMap map = new ManagedMap(); String key = binding.getAttribute("key"); diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/TopicExchangeParser.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/TopicExchangeParser.java index 766f9193..cdf0c67c 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/TopicExchangeParser.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/TopicExchangeParser.java @@ -21,6 +21,7 @@ import java.util.Collections; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Binding.DestinationType; import org.springframework.amqp.core.TopicExchange; +import org.springframework.beans.factory.config.TypedStringValue; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; @@ -42,10 +43,10 @@ public class TopicExchangeParser extends AbstractExchangeParser { @Override protected AbstractBeanDefinition parseBinding(String exchangeName, Element binding, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(Binding.class); - builder.addConstructorArgValue(binding.getAttribute(BINDING_QUEUE_ATTR)); + builder.addConstructorArgValue(new TypedStringValue(binding.getAttribute(BINDING_QUEUE_ATTR))); builder.addConstructorArgValue(DestinationType.EXCHANGE); - builder.addConstructorArgValue(exchangeName); - builder.addConstructorArgValue(binding.getAttribute(BINDING_PATTERN_ATTR)); + builder.addConstructorArgValue(new TypedStringValue(exchangeName)); + builder.addConstructorArgValue(new TypedStringValue(binding.getAttribute(BINDING_PATTERN_ATTR))); builder.addConstructorArgValue(Collections.emptyMap()); return builder.getBeanDefinition(); }