This is an automated email from the ASF dual-hosted git repository.
albumenj 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 10b3be9 optimize Multiple some code (#8900)
10b3be9 is described below
commit 10b3be9b8ac1828b671a198cb88d586d174b29d0
Author: Wang Chengming <[email protected]>
AuthorDate: Mon Sep 27 19:20:50 2021 +0800
optimize Multiple some code (#8900)
---
.../dubbo/registry/multiple/MultipleRegistry.java | 33 +++++++++++-----------
.../multiple/MultipleServiceDiscovery.java | 21 ++++++++------
2 files changed, 29 insertions(+), 25 deletions(-)
diff --git
a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
index 4ee590e..a4ed56b 100644
---
a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
+++
b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
@@ -42,17 +42,16 @@ public class MultipleRegistry extends AbstractRegistry {
public static final String REGISTRY_FOR_SERVICE = "service-registry";
public static final String REGISTRY_FOR_REFERENCE = "reference-registry";
-
- protected RegistryFactory registryFactory;
private final Map<String, Registry> serviceRegistries = new
ConcurrentHashMap<>(4);
- private final Map<String, Registry> referenceRegistries = new
ConcurrentHashMap<String, Registry>(4);
- private final Map<NotifyListener, MultipleNotifyListenerWrapper>
multipleNotifyListenerMap = new ConcurrentHashMap<NotifyListener,
MultipleNotifyListenerWrapper>(32);
+ private final Map<String, Registry> referenceRegistries = new
ConcurrentHashMap<>(4);
+ private final Map<NotifyListener, MultipleNotifyListenerWrapper>
multipleNotifyListenerMap = new ConcurrentHashMap<>(32);
+ private final URL registryUrl;
+ private final String applicationName;
+ protected RegistryFactory registryFactory;
protected List<String> origServiceRegistryURLs;
protected List<String> origReferenceRegistryURLs;
protected List<String> effectServiceRegistryURLs;
protected List<String> effectReferenceRegistryURLs;
- private URL registryUrl;
- private String applicationName;
public MultipleRegistry(URL url) {
this(url, true, true);
@@ -61,7 +60,7 @@ public class MultipleRegistry extends AbstractRegistry {
boolean defaultRegistry =
url.getParameter(CommonConstants.DEFAULT_KEY, true);
if (defaultRegistry && effectServiceRegistryURLs.isEmpty() &&
effectReferenceRegistryURLs.isEmpty()) {
throw new IllegalArgumentException("Illegal registry url. You need
to configure parameter " +
- REGISTRY_FOR_SERVICE + " or " + REGISTRY_FOR_REFERENCE);
+ REGISTRY_FOR_SERVICE + " or " + REGISTRY_FOR_REFERENCE);
}
}
@@ -73,7 +72,7 @@ public class MultipleRegistry extends AbstractRegistry {
init();
checkApplicationName(this.applicationName);
- // This urls contain parameter and it donot inherit from the parameter
of url in MultipleRegistry
+ // This urls contain parameter, and it does not inherit from the
parameter of url in MultipleRegistry
Map<String, Registry> registryMap = new HashMap<>();
if (initServiceRegistry) {
@@ -85,7 +84,7 @@ public class MultipleRegistry extends AbstractRegistry {
}
protected void initServiceRegistry(URL url, Map<String, Registry>
registryMap) {
- origServiceRegistryURLs = url.getParameter(REGISTRY_FOR_SERVICE, new
ArrayList<String>());
+ origServiceRegistryURLs = url.getParameter(REGISTRY_FOR_SERVICE, new
ArrayList<>());
effectServiceRegistryURLs =
this.filterServiceRegistry(origServiceRegistryURLs);
for (String tmpUrl : effectServiceRegistryURLs) {
if (registryMap.get(tmpUrl) != null) {
@@ -99,7 +98,7 @@ public class MultipleRegistry extends AbstractRegistry {
}
protected void initReferenceRegistry(URL url, Map<String, Registry>
registryMap) {
- origReferenceRegistryURLs = url.getParameter(REGISTRY_FOR_REFERENCE,
new ArrayList<String>());
+ origReferenceRegistryURLs = url.getParameter(REGISTRY_FOR_REFERENCE,
new ArrayList<>());
effectReferenceRegistryURLs =
this.filterReferenceRegistry(origReferenceRegistryURLs);
for (String tmpUrl : effectReferenceRegistryURLs) {
if (registryMap.get(tmpUrl) != null) {
@@ -120,7 +119,7 @@ public class MultipleRegistry extends AbstractRegistry {
@Override
public boolean isAvailable() {
- boolean available = serviceRegistries.isEmpty() ? true : false;
+ boolean available = serviceRegistries.isEmpty();
for (Registry serviceRegistry : serviceRegistries.values()) {
if (serviceRegistry.isAvailable()) {
available = true;
@@ -130,7 +129,7 @@ public class MultipleRegistry extends AbstractRegistry {
return false;
}
- available = referenceRegistries.isEmpty() ? true : false;
+ available = referenceRegistries.isEmpty();
for (Registry referenceRegistry : referenceRegistries.values()) {
if (referenceRegistry.isAvailable()) {
available = true;
@@ -144,7 +143,7 @@ public class MultipleRegistry extends AbstractRegistry {
@Override
public void destroy() {
- Set<Registry> registries = new
HashSet<Registry>(serviceRegistries.values());
+ Set<Registry> registries = new HashSet<>(serviceRegistries.values());
registries.addAll(referenceRegistries.values());
for (Registry registry : registries) {
registry.destroy();
@@ -195,7 +194,7 @@ public class MultipleRegistry extends AbstractRegistry {
@Override
public List<URL> lookup(URL url) {
- List<URL> urls = new ArrayList<URL>();
+ List<URL> urls = new ArrayList<>();
for (Registry registry : referenceRegistries.values()) {
List<URL> tmpUrls = registry.lookup(url);
if (!CollectionUtils.isEmpty(tmpUrls)) {
@@ -272,7 +271,7 @@ public class MultipleRegistry extends AbstractRegistry {
}
public synchronized void notifySourceListener() {
- List<URL> notifyURLs = new ArrayList<URL>();
+ List<URL> notifyURLs = new ArrayList<>();
URL emptyURL = null;
for (SingleNotifyListener singleNotifyListener :
registryMap.values()) {
List<URL> tmpUrls = singleNotifyListener.getUrlList();
@@ -281,8 +280,8 @@ public class MultipleRegistry extends AbstractRegistry {
}
// empty protocol
if (tmpUrls.size() == 1
- && tmpUrls.get(0) != null
- &&
EMPTY_PROTOCOL.equals(tmpUrls.get(0).getProtocol())) {
+ && tmpUrls.get(0) != null
+ && EMPTY_PROTOCOL.equals(tmpUrls.get(0).getProtocol())) {
// if only one empty
if (emptyURL == null) {
emptyURL = tmpUrls.get(0);
diff --git
a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
index 8ca95f6..cd09bed 100644
---
a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
+++
b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
@@ -36,6 +36,8 @@ import java.util.function.Function;
public class MultipleServiceDiscovery implements ServiceDiscovery {
public static final String REGISTRY_PREFIX_KEY = "child.";
+ private static final String REGISTRY_TYPE = "registry-type";
+ private static final String SERVICE = "service";
private final Map<String, ServiceDiscovery> serviceDiscoveries = new
ConcurrentHashMap<>();
private URL registryURL;
private ServiceInstance serviceInstance;
@@ -51,7 +53,7 @@ public class MultipleServiceDiscovery implements
ServiceDiscovery {
for (String key : parameters.keySet()) {
if (key.startsWith(REGISTRY_PREFIX_KEY)) {
URL url =
URL.valueOf(registryURL.getParameter(key)).addParameter(CommonConstants.APPLICATION_KEY,
applicationName)
- .addParameter("registry-type", "service");
+ .addParameter(REGISTRY_TYPE, SERVICE);
ServiceDiscovery serviceDiscovery =
ServiceDiscoveryFactory.getExtension(url).getServiceDiscovery(url);
serviceDiscovery.initialize(url);
serviceDiscoveries.put(key, serviceDiscovery);
@@ -94,14 +96,14 @@ public class MultipleServiceDiscovery implements
ServiceDiscovery {
}
@Override
- public void
addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)
throws NullPointerException, IllegalArgumentException {
+ public void
addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)
+ throws NullPointerException, IllegalArgumentException {
MultiServiceInstancesChangedListener multiListener =
(MultiServiceInstancesChangedListener) listener;
for (String registryKey : serviceDiscoveries.keySet()) {
ServiceDiscovery serviceDiscovery =
serviceDiscoveries.get(registryKey);
- SingleServiceInstancesChangedListener singleListener =
multiListener.getAndComputeIfAbsent(registryKey, k -> {
- return new
SingleServiceInstancesChangedListener(listener.getServiceNames(),
serviceDiscovery, multiListener);
- });
+ SingleServiceInstancesChangedListener singleListener =
multiListener.getAndComputeIfAbsent(registryKey, k ->
+ new
SingleServiceInstancesChangedListener(listener.getServiceNames(),
serviceDiscovery, multiListener));
serviceDiscovery.addServiceInstancesChangedListener(singleListener);
}
}
@@ -112,7 +114,8 @@ public class MultipleServiceDiscovery implements
ServiceDiscovery {
}
@Override
- public Page<ServiceInstance> getInstances(String serviceName, int offset,
int pageSize, boolean healthyOnly) throws NullPointerException,
IllegalArgumentException, UnsupportedOperationException {
+ public Page<ServiceInstance> getInstances(String serviceName, int offset,
int pageSize, boolean healthyOnly)
+ throws NullPointerException, IllegalArgumentException,
UnsupportedOperationException {
List<ServiceInstance> serviceInstanceList = new ArrayList<>();
for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {
@@ -165,7 +168,8 @@ public class MultipleServiceDiscovery implements
ServiceDiscovery {
singleListenerMap.put(registryKey, singleListener);
}
- public SingleServiceInstancesChangedListener
getAndComputeIfAbsent(String registryKey, Function<String,
SingleServiceInstancesChangedListener> func) {
+ public SingleServiceInstancesChangedListener
getAndComputeIfAbsent(String registryKey,
+
Function<String, SingleServiceInstancesChangedListener> func) {
return singleListenerMap.computeIfAbsent(registryKey, func);
}
}
@@ -174,7 +178,8 @@ public class MultipleServiceDiscovery implements
ServiceDiscovery {
private final MultiServiceInstancesChangedListener multiListener;
volatile ServiceInstancesChangedEvent event;
- public SingleServiceInstancesChangedListener(Set<String> serviceNames,
ServiceDiscovery serviceDiscovery, MultiServiceInstancesChangedListener
multiListener) {
+ public SingleServiceInstancesChangedListener(Set<String> serviceNames,
ServiceDiscovery serviceDiscovery,
+
MultiServiceInstancesChangedListener multiListener) {
super(serviceNames, serviceDiscovery);
this.multiListener = multiListener;
}