From 050e461a8e837bb0e31da6533c960d63028b3f67 Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Fri, 22 Apr 2011 17:49:29 +0300 Subject: [PATCH] DATAKV-68 + merge channel and pattern into topic in the listener namespace --- .../docbook/reference/redis-messaging.xml | 4 ++-- .../config/RedisListenerContainerParser.java | 21 +++++-------------- .../keyvalue/redis/listener/ChannelTopic.java | 6 +++--- .../redis/config/spring-redis-1.0.xsd | 15 ++++--------- .../data/keyvalue/redis/config/namespace.xml | 6 +++--- 5 files changed, 17 insertions(+), 35 deletions(-) diff --git a/docs/src/reference/docbook/reference/redis-messaging.xml b/docs/src/reference/docbook/reference/redis-messaging.xml index c09a40e4c..ea53d6ba5 100644 --- a/docs/src/reference/docbook/reference/redis-messaging.xml +++ b/docs/src/reference/docbook/reference/redis-messaging.xml @@ -155,7 +155,7 @@ template.convertAndSend("hello!", "world");]]> <!-- the default ConnectionFactory --> <redis:listener-container> <!-- the method attribute can be skipped as the default method name is "handleMessage" --> - <redis:listener ref="listener" method="handleMessage" channel="chatroom" /> + <redis:listener ref="listener" method="handleMessage" topic="chatroom" /> </redis:listener-container> <bean class="redisexample.DefaultMessageDelegate"/> @@ -177,7 +177,7 @@ template.convertAndSend("hello!", "world");]]> <bean id="redisContainer" class="org.springframework.data.keyvalue.redis.listener.RedisMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory"/> <property name="messageListeners"> - <!-- map of listeners and their associated topics (channels or topics) --> + <!-- map of listeners and their associated topics (channels or/and patterns) --> <map> <entry key-ref="messageListener"> <bean class="org.springframework.data.keyvalue.redis.listener.ChannelTopic"> diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/config/RedisListenerContainerParser.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/config/RedisListenerContainerParser.java index 12fd192fd..8dca98e68 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/config/RedisListenerContainerParser.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/config/RedisListenerContainerParser.java @@ -117,26 +117,15 @@ class RedisListenerContainerParser extends AbstractSimpleBeanDefinitionParser { // assemble topics Collection topics = new ArrayList(); - // get channels - String channels = element.getAttribute("channel"); - if (StringUtils.hasText(channels)) { - String[] array = StringUtils.delimitedListToStringArray(channels, " "); + // get topic + String xTopics = element.getAttribute("topic"); + if (StringUtils.hasText(xTopics)) { + String[] array = StringUtils.delimitedListToStringArray(xTopics, " "); for (String string : array) { - topics.add(new ChannelTopic(string)); + topics.add(string.contains("*") ? new PatternTopic(string) : new ChannelTopic(string)); } } - - // get patterns - String patterns = element.getAttribute("pattern"); - if (StringUtils.hasText(patterns)) { - String[] array = StringUtils.delimitedListToStringArray(patterns, " "); - - for (String string : array) { - topics.add(new PatternTopic(string)); - } - } - ret[0] = builder.getBeanDefinition(); ret[1] = topics; diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/ChannelTopic.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/ChannelTopic.java index 654c34b7a..17ebda41a 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/ChannelTopic.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/listener/ChannelTopic.java @@ -16,7 +16,7 @@ package org.springframework.data.keyvalue.redis.listener; /** - * Topic describing a channel. + * Channel topic implementation (maps to a Redis channel). * * @author Costin Leau */ @@ -34,9 +34,9 @@ public class ChannelTopic implements Topic { } /** - * Returns the channel name. + * Returns the topic name. * - * @return channel name + * @return topic name */ public String getTopic() { return channelName; diff --git a/spring-data-redis/src/main/resources/org/springframework/data/keyvalue/redis/config/spring-redis-1.0.xsd b/spring-data-redis/src/main/resources/org/springframework/data/keyvalue/redis/config/spring-redis-1.0.xsd index dea12ea92..59c815d6e 100644 --- a/spring-data-redis/src/main/resources/org/springframework/data/keyvalue/redis/config/spring-redis-1.0.xsd +++ b/spring-data-redis/src/main/resources/org/springframework/data/keyvalue/redis/config/spring-redis-1.0.xsd @@ -110,19 +110,12 @@ and stop as soon as possible. - + - - - - - diff --git a/spring-data-redis/src/test/resources/org/springframework/data/keyvalue/redis/config/namespace.xml b/spring-data-redis/src/test/resources/org/springframework/data/keyvalue/redis/config/namespace.xml index 91a7cc2f3..ab17a299e 100644 --- a/spring-data-redis/src/test/resources/org/springframework/data/keyvalue/redis/config/namespace.xml +++ b/spring-data-redis/src/test/resources/org/springframework/data/keyvalue/redis/config/namespace.xml @@ -14,10 +14,10 @@ - + - - + +