This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new bfb6077 [compatible] Registry compatibility #3882 (#4015)
bfb6077 is described below
commit bfb60773d8dd6ff15a1510986423ea64cb23e6fc
Author: cvictory <[email protected]>
AuthorDate: Fri May 17 15:58:26 2019 +0800
[compatible] Registry compatibility #3882 (#4015)
Fixes #3882
---
.../com/alibaba/dubbo/common/utils/UrlUtils.java | 110 ++++++++++++
.../com/alibaba/dubbo/registry/NotifyListener.java | 16 ++
.../dubbo/registry/support/AbstractRegistry.java | 145 ++++++++++++++++
.../AbstractRegistryFactory.java} | 31 ++--
.../dubbo/registry/support/FailbackRegistry.java | 187 +++++++++++++++++++++
.../dubbo/registry/support/FailbackRegistry.java | 10 +-
6 files changed, 473 insertions(+), 26 deletions(-)
diff --git
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/utils/UrlUtils.java
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/utils/UrlUtils.java
new file mode 100644
index 0000000..c841761
--- /dev/null
+++
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/utils/UrlUtils.java
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.common.utils;
+
+import com.alibaba.dubbo.common.URL;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 2019-04-17
+ */
+@Deprecated
+public class UrlUtils {
+
+ public static URL parseURL(String address, Map<String, String> defaults) {
+ return new
URL(org.apache.dubbo.common.utils.UrlUtils.parseURL(address, defaults));
+ }
+
+ public static List<URL> parseURLs(String address, Map<String, String>
defaults) {
+ return org.apache.dubbo.common.utils.UrlUtils.parseURLs(address,
defaults).stream().map(e -> new URL(e)).collect(Collectors.toList());
+ }
+
+ public static Map<String, Map<String, String>> convertRegister(Map<String,
Map<String, String>> register) {
+ return
org.apache.dubbo.common.utils.UrlUtils.convertRegister(register);
+ }
+
+ public static Map<String, String> convertSubscribe(Map<String, String>
subscribe) {
+ return
org.apache.dubbo.common.utils.UrlUtils.convertSubscribe(subscribe);
+ }
+
+ public static Map<String, Map<String, String>> revertRegister(Map<String,
Map<String, String>> register) {
+ return org.apache.dubbo.common.utils.UrlUtils.revertRegister(register);
+ }
+
+ public static Map<String, String> revertSubscribe(Map<String, String>
subscribe) {
+ return
org.apache.dubbo.common.utils.UrlUtils.revertSubscribe(subscribe);
+ }
+
+ public static Map<String, Map<String, String>> revertNotify(Map<String,
Map<String, String>> notify) {
+ return org.apache.dubbo.common.utils.UrlUtils.revertNotify(notify);
+ }
+
+ //compatible for dubbo-2.0.0
+ public static List<String> revertForbid(List<String> forbid, Set<URL>
subscribed) {
+ Set<org.apache.dubbo.common.URL> urls = subscribed.stream().map(e ->
e.getOriginalURL()).collect(Collectors.toSet());
+ return org.apache.dubbo.common.utils.UrlUtils.revertForbid(forbid,
urls);
+ }
+
+ public static URL getEmptyUrl(String service, String category) {
+ return new
URL(org.apache.dubbo.common.utils.UrlUtils.getEmptyUrl(service, category));
+ }
+
+ public static boolean isMatchCategory(String category, String categories) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isMatchCategory(category, categories);
+ }
+
+ public static boolean isMatch(URL consumerUrl, URL providerUrl) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isMatch(consumerUrl.getOriginalURL(),
providerUrl.getOriginalURL());
+ }
+
+ public static boolean isMatchGlobPattern(String pattern, String value, URL
param) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isMatchGlobPattern(pattern, value,
param.getOriginalURL());
+ }
+
+ public static boolean isMatchGlobPattern(String pattern, String value) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isMatchGlobPattern(pattern, value);
+ }
+
+ public static boolean isServiceKeyMatch(URL pattern, URL value) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isServiceKeyMatch(pattern.getOriginalURL(),
value.getOriginalURL());
+ }
+
+
+ public static boolean isConfigurator(URL url) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isConfigurator(url.getOriginalURL());
+ }
+
+ public static boolean isRoute(URL url) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isRoute(url.getOriginalURL());
+ }
+
+ public static boolean isProvider(URL url) {
+ return
org.apache.dubbo.common.utils.UrlUtils.isProvider(url.getOriginalURL());
+ }
+
+ public static int getHeartbeat(URL url) {
+ return
org.apache.dubbo.common.utils.UrlUtils.getHeartbeat(url.getOriginalURL());
+ }
+
+ public static int getIdleTimeout(URL url) {
+ return
org.apache.dubbo.common.utils.UrlUtils.getIdleTimeout(url.getOriginalURL());
+ }
+}
diff --git
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
index d7e82b5..633dc1b 100644
---
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
+++
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
@@ -42,4 +42,20 @@ public interface NotifyListener {
}
}
}
+
+ class ReverseCompatibleNotifyListener implements
org.apache.dubbo.registry.NotifyListener {
+
+ private NotifyListener listener;
+
+ public ReverseCompatibleNotifyListener(NotifyListener listener) {
+ this.listener = listener;
+ }
+
+ @Override
+ public void notify(List<org.apache.dubbo.common.URL> urls) {
+ if (listener != null) {
+ listener.notify(urls.stream().map(url -> new
URL(url)).collect(Collectors.toList()));
+ }
+ }
+ }
}
diff --git
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java
new file mode 100644
index 0000000..ef1bb3d
--- /dev/null
+++
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.registry.support;
+
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.registry.NotifyListener;
+import org.apache.dubbo.registry.Registry;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 2019-04-16
+ */
+@Deprecated
+public abstract class AbstractRegistry implements Registry {
+
+ private CompatibleAbstractRegistry abstractRegistry;
+
+ public AbstractRegistry(com.alibaba.dubbo.common.URL url) {
+ abstractRegistry = new
CompatibleAbstractRegistry(url.getOriginalURL());
+ }
+
+ @Override
+ public com.alibaba.dubbo.common.URL getUrl() {
+ return new com.alibaba.dubbo.common.URL(abstractRegistry.getUrl());
+ }
+
+ protected void setUrl(com.alibaba.dubbo.common.URL url) {
+ abstractRegistry.setUrl(url.getOriginalURL());
+ }
+
+ public Set<com.alibaba.dubbo.common.URL> getRegistered() {
+ return abstractRegistry.getRegistered().stream().map(url -> new
com.alibaba.dubbo.common.URL(url)).collect(Collectors.toSet());
+ }
+
+ public Map<com.alibaba.dubbo.common.URL,
Set<com.alibaba.dubbo.registry.NotifyListener>> getSubscribed() {
+ return abstractRegistry.getSubscribed().entrySet()
+ .stream()
+ .collect(Collectors.toMap(entry -> new
com.alibaba.dubbo.common.URL(entry.getKey()),
+ entry -> convertToNotifyListeners(entry.getValue())));
+ }
+
+ public Map<com.alibaba.dubbo.common.URL, Map<String,
List<com.alibaba.dubbo.common.URL>>> getNotified() {
+ return abstractRegistry.getNotified().entrySet().stream()
+ .collect(Collectors.toMap(entry -> new
com.alibaba.dubbo.common.URL(entry.getKey()),
+ entry -> {
+ return entry.getValue().entrySet()
+ .stream()
+ .collect(Collectors.toMap(e -> e.getKey(),
e -> {
+ return e.getValue().stream().map(url
-> new com.alibaba.dubbo.common.URL(url)).collect(Collectors.toList());
+ }));
+ }));
+ }
+
+
+ public List<com.alibaba.dubbo.common.URL>
getCacheUrls(com.alibaba.dubbo.common.URL url) {
+ return
abstractRegistry.lookup(url.getOriginalURL()).stream().map(tmpUrl -> new
com.alibaba.dubbo.common.URL(tmpUrl)).collect(Collectors.toList());
+ }
+
+ public List<com.alibaba.dubbo.common.URL>
lookup(com.alibaba.dubbo.common.URL url) {
+ return
abstractRegistry.lookup(url.getOriginalURL()).stream().map(tmpUrl -> new
com.alibaba.dubbo.common.URL(tmpUrl)).collect(Collectors.toList());
+ }
+
+ protected void notify(com.alibaba.dubbo.common.URL url,
com.alibaba.dubbo.registry.NotifyListener listener,
List<com.alibaba.dubbo.common.URL> urls) {
+ abstractRegistry.notify(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener),
urls.stream().map(tmpUrl ->
tmpUrl.getOriginalURL()).collect(Collectors.toList()));
+ }
+
+ public void register(com.alibaba.dubbo.common.URL url) {
+ abstractRegistry.register(url.getOriginalURL());
+ }
+
+ public void unregister(com.alibaba.dubbo.common.URL url) {
+ abstractRegistry.unregister(url.getOriginalURL());
+ }
+
+ public void subscribe(com.alibaba.dubbo.common.URL url,
com.alibaba.dubbo.registry.NotifyListener listener) {
+ abstractRegistry.subscribe(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+ public void unsubscribe(com.alibaba.dubbo.common.URL url,
com.alibaba.dubbo.registry.NotifyListener listener) {
+ abstractRegistry.unsubscribe(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+
+ @Override
+ public void register(URL url) {
+ this.register(new com.alibaba.dubbo.common.URL(url));
+ }
+
+ @Override
+ public void unregister(URL url) {
+ this.unregister(new com.alibaba.dubbo.common.URL(url));
+ }
+
+ @Override
+ public void subscribe(URL url, NotifyListener listener) {
+ this.subscribe(new com.alibaba.dubbo.common.URL(url), new
com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener));
+ }
+
+ @Override
+ public void unsubscribe(URL url, NotifyListener listener) {
+ this.unsubscribe(new com.alibaba.dubbo.common.URL(url), new
com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener));
+ }
+
+ final Set<com.alibaba.dubbo.registry.NotifyListener>
convertToNotifyListeners(Set<NotifyListener> notifyListeners) {
+ return notifyListeners.stream().map(listener -> new
com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener)).collect(Collectors.toSet());
+ }
+
+
+ static class CompatibleAbstractRegistry extends
org.apache.dubbo.registry.support.AbstractRegistry {
+ public CompatibleAbstractRegistry(URL url) {
+ super(url);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return false;
+ }
+
+ public void notify(URL url, NotifyListener listener, List<URL> urls) {
+ super.notify(url, listener, urls);
+ }
+
+ public void setUrl(URL url) {
+ super.setUrl(url);
+ }
+ }
+}
diff --git
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
similarity index 53%
copy from
dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
copy to
dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
index d7e82b5..9b0b698 100644
---
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/NotifyListener.java
+++
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
@@ -14,32 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package com.alibaba.dubbo.registry.support;
-package com.alibaba.dubbo.registry;
-
-import com.alibaba.dubbo.common.URL;
-
-import java.util.List;
-import java.util.stream.Collectors;
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.registry.Registry;
+/**
+ * 2019-04-16
+ */
@Deprecated
-public interface NotifyListener {
-
- void notify(List<URL> urls);
-
- class CompatibleNotifyListener implements NotifyListener {
+public abstract class AbstractRegistryFactory extends
org.apache.dubbo.registry.support.AbstractRegistryFactory {
- private org.apache.dubbo.registry.NotifyListener listener;
- public
CompatibleNotifyListener(org.apache.dubbo.registry.NotifyListener listener) {
- this.listener = listener;
- }
+ protected abstract com.alibaba.dubbo.registry.Registry
createRegistry(com.alibaba.dubbo.common.URL url);
- @Override
- public void notify(List<URL> urls) {
- if (listener != null) {
- listener.notify(urls.stream().map(url ->
url.getOriginalURL()).collect(Collectors.toList()));
- }
- }
+ protected Registry createRegistry(URL url) {
+ return createRegistry(new com.alibaba.dubbo.common.URL(url));
}
}
diff --git
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java
new file mode 100644
index 0000000..0156ddb
--- /dev/null
+++
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.registry.support;
+
+import com.alibaba.dubbo.common.URL;
+import com.alibaba.dubbo.registry.NotifyListener;
+import com.alibaba.dubbo.registry.Registry;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 2019-04-17
+ */
+@Deprecated
+public abstract class FailbackRegistry implements
org.apache.dubbo.registry.Registry, Registry {
+
+ private CompatibleFailbackRegistry failbackRegistry;
+
+ public FailbackRegistry(URL url) {
+ failbackRegistry = new
CompatibleFailbackRegistry(url.getOriginalURL(), this);
+ }
+
+ public void removeFailedRegisteredTask(URL url) {
+ failbackRegistry.removeFailedRegisteredTask(url.getOriginalURL());
+ }
+
+ public void removeFailedUnregisteredTask(URL url) {
+ failbackRegistry.removeFailedUnregisteredTask(url.getOriginalURL());
+ }
+
+ public void removeFailedSubscribedTask(URL url, NotifyListener listener) {
+ failbackRegistry.removeFailedSubscribedTask(url.getOriginalURL(), new
NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+ public void removeFailedUnsubscribedTask(URL url, NotifyListener listener)
{
+ failbackRegistry.removeFailedUnsubscribedTask(url.getOriginalURL(),
new NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+ public void removeFailedNotifiedTask(URL url, NotifyListener listener) {
+ failbackRegistry.removeFailedNotifiedTask(url.getOriginalURL(), new
NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+ public void register(URL url) {
+ failbackRegistry.register(url.getOriginalURL());
+ }
+
+ public void unregister(URL url) {
+ failbackRegistry.unregister(url.getOriginalURL());
+ }
+
+ public void subscribe(URL url, NotifyListener listener) {
+ failbackRegistry.subscribe(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+ public void unsubscribe(URL url, NotifyListener listener) {
+ failbackRegistry.unsubscribe(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));
+ }
+
+ protected void notify(URL url, NotifyListener listener, List<URL> urls) {
+ List<org.apache.dubbo.common.URL> urlResult = urls.stream().map(e ->
e.getOriginalURL()).collect(Collectors.toList());
+ failbackRegistry.notify(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener),
urlResult);
+ }
+
+ protected void doNotify(URL url, NotifyListener listener, List<URL> urls) {
+ List<org.apache.dubbo.common.URL> urlResult = urls.stream().map(e ->
e.getOriginalURL()).collect(Collectors.toList());
+ failbackRegistry.doNotify(url.getOriginalURL(), new
com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener),
urlResult);
+ }
+
+ protected void recover() throws Exception {
+ failbackRegistry.recover();
+ }
+
+ public List<URL> lookup(URL url) {
+ return failbackRegistry.lookup(url.getOriginalURL()).stream().map(e ->
new URL(e)).collect(Collectors.toList());
+ }
+
+ public URL getUrl() {
+ return new URL(failbackRegistry.getUrl());
+ }
+
+ @Override
+ public void destroy() {
+ failbackRegistry.destroy();
+ }
+
+ // ==== Template method ====
+
+ public abstract void doRegister(URL url);
+
+ public abstract void doUnregister(URL url);
+
+ public abstract void doSubscribe(URL url, NotifyListener listener);
+
+ public abstract void doUnsubscribe(URL url, NotifyListener listener);
+
+ @Override
+ public void register(org.apache.dubbo.common.URL url) {
+ this.register(new URL(url));
+ }
+
+ @Override
+ public void unregister(org.apache.dubbo.common.URL url) {
+ this.unregister(new URL(url));
+ }
+
+ @Override
+ public void subscribe(org.apache.dubbo.common.URL url,
org.apache.dubbo.registry.NotifyListener listener) {
+ this.subscribe(new URL(url), new
NotifyListener.CompatibleNotifyListener(listener));
+ }
+
+ @Override
+ public void unsubscribe(org.apache.dubbo.common.URL url,
org.apache.dubbo.registry.NotifyListener listener) {
+ this.unsubscribe(new URL(url), new
NotifyListener.CompatibleNotifyListener(listener));
+ }
+
+ @Override
+ public List<org.apache.dubbo.common.URL>
lookup(org.apache.dubbo.common.URL url) {
+ return failbackRegistry.lookup(url);
+ }
+
+
+ static class CompatibleFailbackRegistry extends
org.apache.dubbo.registry.support.FailbackRegistry {
+
+ private FailbackRegistry compatibleFailbackRegistry;
+
+ public CompatibleFailbackRegistry(org.apache.dubbo.common.URL url,
FailbackRegistry compatibleFailbackRegistry) {
+ super(url);
+ this.compatibleFailbackRegistry = compatibleFailbackRegistry;
+ }
+
+ @Override
+ public void doRegister(org.apache.dubbo.common.URL url) {
+ this.compatibleFailbackRegistry.doRegister(new URL(url));
+ }
+
+ @Override
+ public void doUnregister(org.apache.dubbo.common.URL url) {
+ this.compatibleFailbackRegistry.doUnregister(new URL(url));
+ }
+
+ @Override
+ public void doSubscribe(org.apache.dubbo.common.URL url,
org.apache.dubbo.registry.NotifyListener listener) {
+ this.compatibleFailbackRegistry.doSubscribe(new URL(url), new
NotifyListener.CompatibleNotifyListener(listener));
+ }
+
+ @Override
+ public void doUnsubscribe(org.apache.dubbo.common.URL url,
org.apache.dubbo.registry.NotifyListener listener) {
+ this.compatibleFailbackRegistry.doUnsubscribe(new URL(url), new
NotifyListener.CompatibleNotifyListener(listener));
+ }
+
+ @Override
+ public void notify(org.apache.dubbo.common.URL url,
org.apache.dubbo.registry.NotifyListener listener,
List<org.apache.dubbo.common.URL> urls) {
+ super.notify(url, listener, urls);
+ }
+
+ @Override
+ public void doNotify(org.apache.dubbo.common.URL url,
org.apache.dubbo.registry.NotifyListener listener,
List<org.apache.dubbo.common.URL> urls) {
+ super.doNotify(url, listener, urls);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return false;
+ }
+
+ @Override
+ public void recover() throws Exception {
+ super.recover();
+ }
+ }
+
+}
diff --git
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
index 8f8304c..903d477 100644
---
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
+++
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
@@ -206,23 +206,23 @@ public abstract class FailbackRegistry extends
AbstractRegistry {
}
}
- public ConcurrentMap<URL, FailedRegisteredTask> getFailedRegistered() {
+ ConcurrentMap<URL, FailedRegisteredTask> getFailedRegistered() {
return failedRegistered;
}
- public ConcurrentMap<URL, FailedUnregisteredTask> getFailedUnregistered() {
+ ConcurrentMap<URL, FailedUnregisteredTask> getFailedUnregistered() {
return failedUnregistered;
}
- public ConcurrentMap<Holder, FailedSubscribedTask> getFailedSubscribed() {
+ ConcurrentMap<Holder, FailedSubscribedTask> getFailedSubscribed() {
return failedSubscribed;
}
- public ConcurrentMap<Holder, FailedUnsubscribedTask>
getFailedUnsubscribed() {
+ ConcurrentMap<Holder, FailedUnsubscribedTask> getFailedUnsubscribed() {
return failedUnsubscribed;
}
- public ConcurrentMap<Holder, FailedNotifiedTask> getFailedNotified() {
+ ConcurrentMap<Holder, FailedNotifiedTask> getFailedNotified() {
return failedNotified;
}