This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new cd22199 Some configuration working at the consumer cluster, we should
not override by the configuration of provider cluster. (#9163)
cd22199 is described below
commit cd221993aa07391419a255cb39f02ad7366922e7
Author: Wang Chengming <[email protected]>
AuthorDate: Sun Oct 31 15:27:36 2021 +0800
Some configuration working at the consumer cluster, we should not override
by the configuration of provider cluster. (#9163)
---
.../client/ServiceDiscoveryRegistryDirectory.java | 26 ------------------
.../registry/integration/DynamicDirectory.java | 7 +++--
.../registry/integration/RegistryDirectory.java | 31 +++-------------------
3 files changed, 7 insertions(+), 57 deletions(-)
diff --git
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
index ab5c47f..37c20ab 100644
---
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
+++
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
@@ -165,35 +165,9 @@ public class ServiceDiscoveryRegistryDirectory<T> extends
DynamicDirectory<T> {
// RefreshOverrideAndInvoker will be executed by registryCenter and
configCenter, so it should be synchronized.
private synchronized void refreshOverrideAndInvoker(List<URL>
instanceUrls) {
// mock zookeeper://xxx?mock=return null
- if (enableConfigurationListen) {
- overrideDirectoryUrl();
- }
refreshInvoker(instanceUrls);
}
- // TODO: exact
- private void overrideDirectoryUrl() {
- // merge override parameters
- this.overrideDirectoryUrl = directoryUrl;
- List<Configurator> localAppDynamicConfigurators =
getConsumerConfigurationListener(moduleModel).getConfigurators(); // local
reference
- doOverrideUrl(localAppDynamicConfigurators);
- if (referenceConfigurationListener != null) {
- List<Configurator> localDynamicConfigurators =
referenceConfigurationListener.getConfigurators(); // local reference
- doOverrideUrl(localDynamicConfigurators);
- }
- }
-
- private void doOverrideUrl(List<Configurator> configurators) {
- if (CollectionUtils.isNotEmpty(configurators)) {
- for (Configurator configurator : configurators) {
- this.overrideDirectoryUrl =
configurator.configure(overrideDirectoryUrl);
- Map<String, String> newParams = new
HashMap<>(this.overrideDirectoryUrl.getParameters());
- directoryUrl.getParameters().forEach(newParams::remove);
- this.overrideQueryMap = newParams;
- }
- }
- }
-
private InstanceAddressURL overrideWithConfigurator(InstanceAddressURL
providerUrl) {
// override url with configurator from "app-name.configurators"
providerUrl =
overrideWithConfigurators(getConsumerConfigurationListener(moduleModel).getConfigurators(),
providerUrl);
diff --git
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/DynamicDirectory.java
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/DynamicDirectory.java
index 10a9373..f7339d7 100644
---
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/DynamicDirectory.java
+++
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/DynamicDirectory.java
@@ -92,7 +92,6 @@ public abstract class DynamicDirectory<T> extends
AbstractDirectory<T> implement
/**
* Initialization at construction time, assertion not null, and always
assign not null value
*/
- protected volatile URL overrideDirectoryUrl;
protected volatile URL subscribeUrl;
protected volatile URL registeredConsumerUrl;
@@ -129,7 +128,7 @@ public abstract class DynamicDirectory<T> extends
AbstractDirectory<T> implement
this.serviceType = serviceType;
this.serviceKey = super.getConsumerUrl().getServiceKey();
- this.overrideDirectoryUrl = this.directoryUrl = consumerUrl;
+ this.directoryUrl = consumerUrl;
String group = directoryUrl.getGroup("");
this.multiGroup = group != null && (ANY_VALUE.equals(group) ||
group.contains(","));
}
@@ -207,7 +206,7 @@ public abstract class DynamicDirectory<T> extends
AbstractDirectory<T> implement
*/
@Override
public URL getConsumerUrl() {
- return this.overrideDirectoryUrl;
+ return this.consumerUrl;
}
/**
@@ -216,7 +215,7 @@ public abstract class DynamicDirectory<T> extends
AbstractDirectory<T> implement
* @return URL
*/
public URL getOriginalConsumerUrl() {
- return this.overrideDirectoryUrl;
+ return this.consumerUrl;
}
/**
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 2257245..9711f14 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
@@ -183,7 +183,6 @@ public class RegistryDirectory<T> extends
DynamicDirectory<T> {
// RefreshOverrideAndInvoker will be executed by registryCenter and
configCenter, so it should be synchronized.
private synchronized void refreshOverrideAndInvoker(List<URL> urls) {
// mock zookeeper://xxx?mock=return null
- overrideDirectoryUrl();
refreshInvoker(urls);
}
@@ -406,7 +405,6 @@ public class RegistryDirectory<T> extends
DynamicDirectory<T> {
// FIXME, kept for mock
if (providerUrl.hasParameter(MOCK_KEY) ||
providerUrl.getAnyMethodParameter(MOCK_KEY) != null) {
providerUrl = providerUrl.removeParameter(TAG_KEY);
- this.overrideDirectoryUrl =
this.overrideDirectoryUrl.addParametersIfAbsent(providerUrl.getParameters());
}
if ((providerUrl.getPath() == null || providerUrl.getPath()
@@ -479,7 +477,7 @@ public class RegistryDirectory<T> extends
DynamicDirectory<T> {
@Override
protected void destroyAllInvokers() {
Map<URL, Invoker<T>> localUrlInvokerMap = this.urlInvokerMap; // local
reference
- if (localUrlInvokerMap != null) {
+ if (!CollectionUtils.isEmptyMap(localUrlInvokerMap)) {
for (Invoker<T> invoker : new
ArrayList<>(localUrlInvokerMap.values())) {
try {
invoker.destroyAll();
@@ -494,12 +492,12 @@ public class RegistryDirectory<T> extends
DynamicDirectory<T> {
}
private void destroyUnusedInvokers(Map<URL, Invoker<T>> oldUrlInvokerMap,
Map<URL, Invoker<T>> newUrlInvokerMap) {
- if (newUrlInvokerMap == null || newUrlInvokerMap.size() == 0) {
+ if (CollectionUtils.isEmptyMap(newUrlInvokerMap)) {
destroyAllInvokers();
return;
}
- if (oldUrlInvokerMap == null || oldUrlInvokerMap.size() == 0) {
+ if (CollectionUtils.isEmptyMap(oldUrlInvokerMap)) {
return;
}
@@ -557,7 +555,7 @@ public class RegistryDirectory<T> extends
DynamicDirectory<T> {
@Override
public URL getConsumerUrl() {
- return this.overrideDirectoryUrl;
+ return this.consumerUrl;
}
@Override
@@ -615,27 +613,6 @@ public class RegistryDirectory<T> extends
DynamicDirectory<T> {
return StringUtils.isEmpty(url.getParameter(COMPATIBLE_CONFIG_KEY));
}
- private void overrideDirectoryUrl() {
- // merge override parameters
- this.overrideDirectoryUrl = directoryUrl;
- List<Configurator> localConfigurators = this.configurators; // local
reference
- doOverrideUrl(localConfigurators);
- List<Configurator> localAppDynamicConfigurators =
consumerConfigurationListener.getConfigurators(); // local reference
- doOverrideUrl(localAppDynamicConfigurators);
- if (referenceConfigurationListener != null) {
- List<Configurator> localDynamicConfigurators =
referenceConfigurationListener.getConfigurators(); // local reference
- doOverrideUrl(localDynamicConfigurators);
- }
- }
-
- private void doOverrideUrl(List<Configurator> configurators) {
- if (CollectionUtils.isNotEmpty(configurators)) {
- for (Configurator configurator : configurators) {
- this.overrideDirectoryUrl =
configurator.configure(overrideDirectoryUrl);
- }
- }
- }
-
private static class ReferenceConfigurationListener extends
AbstractConfiguratorListener {
private RegistryDirectory directory;
private URL url;