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 <[email protected]>
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()?
          */

Reply via email to