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 <[email protected]> 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); }
