You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by je...@apache.org on 2019/02/27 07:11:06 UTC

[incubator-dubbo] branch 3.x-dev updated: allow addressListner to return new addressList for filtering (#3572)

This is an automated email from the ASF dual-hosted git repository.

jefflv pushed a commit to branch 3.x-dev
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/3.x-dev by this push:
     new 52c549e  allow addressListner to return new addressList for filtering (#3572)
52c549e is described below

commit 52c549e70f3685e860495f67c998456532be41ea
Author: jefflv <lr...@gmail.com>
AuthorDate: Wed Feb 27 15:11:02 2019 +0800

    allow addressListner to return new addressList for filtering (#3572)
---
 .../src/main/java/org/apache/dubbo/registry/AddressListener.java   | 2 +-
 .../org/apache/dubbo/registry/integration/RegistryDirectory.java   | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java
index c0176d5..971cdc7 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java
@@ -29,6 +29,6 @@ public interface AddressListener {
      *
      * @param addresses
      */
-    void notify(List<URL> addresses);
+    List<URL> notify(List<URL> addresses);
 
 }
\ No newline at end of file
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
index d9e9765..8163191 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
@@ -188,11 +188,12 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
          */
         ExtensionLoader<AddressListener> addressListenerExtensionLoader = ExtensionLoader.getExtensionLoader(AddressListener.class);
         Set<String> surpportedListeners = addressListenerExtensionLoader.getSupportedExtensions();
-        for (String addressListenerName : surpportedListeners) {
-            addressListenerExtensionLoader.getExtension(addressListenerName).notify(categoryUrls);
+        if (surpportedListeners != null && !surpportedListeners.isEmpty()) {
+            for (String addressListenerName : surpportedListeners) {
+                categoryUrls = addressListenerExtensionLoader.getExtension(addressListenerName).notify(categoryUrls);
+            }
         }
 
-
         /**
          * TODO Try to refactor the processing of these three type of urls using Collectors.groupBy()?
          */