From 0e017b44054cdba58e448193d4b76f413fe2f2d2 Mon Sep 17 00:00:00 2001 From: "william.liangf" Date: Thu, 8 Mar 2012 21:55:17 +0000 Subject: [PATCH] =?UTF-8?q?DUBBO-234=20redis=E6=B3=A8=E5=86=8C=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=81=A5=E7=8A=B6=E6=80=A7=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1221 1a56cb94-b969-4eaa-88fa-be21384802f2 --- .../src/main/java/com/alibaba/dubbo/common/URL.java | 4 ++++ .../com/alibaba/dubbo/registry/redis/RedisRegistry.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java index 55caba9ace..239552c4bd 100644 --- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java +++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java @@ -1059,6 +1059,10 @@ public final class URL implements Serializable { return getParameter(Constants.INTERFACE_KEY, path); } + public URL setServiceInterface(String service) { + return addParameter(Constants.INTERFACE_KEY, service); + } + public int hashCode() { final int prime = 31; int result = 1; diff --git a/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java b/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java index 1609b531ed..dc3eeb9ed7 100644 --- a/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java +++ b/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java @@ -331,6 +331,13 @@ public class RedisRegistry extends FailbackRegistry { } } } + if (urls != null && urls.isEmpty() && url.getParameter(Constants.ADMIN_KEY, false)) { + URL empty = url.setProtocol(Constants.EMPTY_PROTOCOL); + if (Constants.ANY_VALUE.equals(empty.getServiceInterface())) { + empty = empty.setServiceInterface(service.substring(root.length())); + } + urls.add(empty); + } for (NotifyListener listener : listeners) { notify(url, listener, urls); }