You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/11/08 06:23:11 UTC

[incubator-dubbo] 01/02: override url in directory

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

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

commit 546b1353c298462382776bc1563462a1ac7d8dbb
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Nov 7 14:12:20 2018 +0800

    override url in directory
---
 .../dubbo/registry/integration/RegistryDirectory.java   | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

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 a69192c..9ab35e6 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
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.Version;
 import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
+import org.apache.dubbo.common.utils.CollectionUtils;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.common.utils.StringUtils;
 import org.apache.dubbo.governance.ConfigChangeEvent;
@@ -278,16 +279,26 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
             List<Router> routers = toRouters(routerUrls);
             addRouters(routers);
         }
-        List<Configurator> localConfigurators = this.configurators; // local reference
         // merge override parameters
         this.overrideDirectoryUrl = directoryUrl;
+        List<Configurator> localConfigurators = this.configurators; // local reference
         if (localConfigurators != null && !localConfigurators.isEmpty()) {
             for (Configurator configurator : localConfigurators) {
                 this.overrideDirectoryUrl = configurator.configure(overrideDirectoryUrl);
             }
         }
-        // FIXME should we apply dynamicConfigurators to overrideDirectoryUrl?
-
+        List<Configurator> localAppDynamicConfigurators = this.appDynamicConfigurators; // local reference
+        if (CollectionUtils.isNotEmpty(localAppDynamicConfigurators)) {
+            localAppDynamicConfigurators.forEach(configurator -> {
+                this.overrideDirectoryUrl = configurator.configure(overrideDirectoryUrl);
+            });
+        }
+        List<Configurator> localDynamicConfigurators = this.dynamicConfigurators; // local reference
+        if (CollectionUtils.isNotEmpty(localDynamicConfigurators)) {
+            localDynamicConfigurators.forEach(configurator -> {
+                this.overrideDirectoryUrl = configurator.configure(overrideDirectoryUrl);
+            });
+        }
         // providers
         refreshInvoker(invokerUrls);
     }