Merge branch 'develop' of github.com:apache/incubator-dubbo-ops into develop
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
index c87e37b..4fab1db 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
@@ -48,6 +48,9 @@
public static final String IP = "ip";
public static final String INTERFACE_KEY = "interface";
public static final String VERSION_KEY = "version";
+ public static final String PROVIDERS_CATEGORY = "providers";
+ public static final String CONSUMERS_CATEGORY = "consumers";
+ public static final String SPECIFICATION_VERSION_KEY = "specVersion";
public static final Set<String> CONFIGS = new HashSet<>();
static {
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java
index 0eafc9a..ed5ffa2 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java
@@ -16,10 +16,7 @@
*/
package org.apache.dubbo.admin.service.impl;
-import com.google.common.collect.Iterables;
-import com.google.gson.Gson;
import org.apache.dubbo.admin.common.exception.ParamValidationException;
-import org.apache.dubbo.admin.common.util.ConvertUtil;
import org.apache.dubbo.admin.common.util.Pair;
import org.apache.dubbo.admin.common.util.ParseUtils;
import org.apache.dubbo.admin.common.util.SyncUtils;
@@ -27,14 +24,12 @@
import org.apache.dubbo.admin.model.dto.ServiceDTO;
import org.apache.dubbo.admin.service.OverrideService;
import org.apache.dubbo.admin.service.ProviderService;
-import org.apache.dubbo.common.Constants;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import org.yaml.snakeyaml.events.Event;
import java.util.*;
import java.util.Map.Entry;
@@ -42,7 +37,6 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static org.apache.dubbo.common.Constants.SPECIFICATION_VERSION_KEY;
/**
* IbatisProviderService
@@ -54,6 +48,7 @@
@Autowired
OverrideService overrideService;
+ @Override
public void create(Provider provider) {
URL url = provider.toUrl();
registry.register(url);
@@ -96,7 +91,7 @@
// }
// }
- @java.lang.Override
+ @Override
public String getProviderMetaData(MetadataIdentifier providerIdentifier) {
return metaDataCollector.getProviderMetaData(providerIdentifier);
}
@@ -209,12 +204,20 @@
weight = Integer.parseInt(value);
}
weight = (int) (weight * factor);
- if (weight < 1) weight = 1;
- if (weight == 2) weight = 3;
- if (weight == 24) weight = 25;
+ if (weight < 1){
+ weight = 1;
+ }
+ if (weight == 2){
+ weight = 3;
+ }
+
+ if (weight == 24){
+ weight = 25;
+ }
return weight;
}
+ @Override
public void deleteStaticProvider(String id) {
URL oldProvider = findProviderUrl(id);
if (oldProvider == null) {
@@ -223,6 +226,7 @@
registry.unregister(oldProvider);
}
+ @Override
public void updateProvider(Provider provider) {
String hash = provider.getHash();
if (hash == null) {
@@ -239,6 +243,7 @@
registry.register(newProvider);
}
+ @Override
public Provider findProvider(String id) {
return SyncUtils.url2Provider(findProviderUrlPair(id));
}
@@ -247,41 +252,32 @@
return SyncUtils.filterFromCategory(getRegistryCache(), Constants.PROVIDERS_CATEGORY, id);
}
+ @Override
public List<String> findServices() {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (providerUrls != null) ret.addAll(providerUrls.keySet());
+ if (providerUrls != null){
+ ret.addAll(providerUrls.keySet());
+ }
return ret;
}
+ @Override
public List<String> findAddresses() {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (null == providerUrls) return ret;
+ if (null == providerUrls) {
+ return ret;
+ }
for (Map.Entry<String, Map<String, URL>> e1 : providerUrls.entrySet()) {
Map<String, URL> value = e1.getValue();
for (Map.Entry<String, URL> e2 : value.entrySet()) {
URL u = e2.getValue();
String app = u.getAddress();
- if (app != null) ret.add(app);
- }
- }
-
- return ret;
- }
-
- public List<String> findAddressesByApplication(String application) {
- List<String> ret = new ArrayList<String>();
- ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- for (Map.Entry<String, Map<String, URL>> e1 : providerUrls.entrySet()) {
- Map<String, URL> value = e1.getValue();
- for (Map.Entry<String, URL> e2 : value.entrySet()) {
- URL u = e2.getValue();
- if (application.equals(u.getParameter(Constants.APPLICATION_KEY))) {
- String addr = u.getAddress();
- if (addr != null) ret.add(addr);
+ if (app != null) {
+ ret.add(app);
}
}
}
@@ -289,24 +285,52 @@
return ret;
}
- public List<String> findAddressesByService(String service) {
+ @Override
+ public List<String> findAddressesByApplication(String application) {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (null == providerUrls) return ret;
-
- for (Map.Entry<String, URL> e2 : providerUrls.get(service).entrySet()) {
- URL u = e2.getValue();
- String app = u.getAddress();
- if (app != null) ret.add(app);
+ for (Map.Entry<String, Map<String, URL>> e1 : providerUrls.entrySet()) {
+ Map<String, URL> value = e1.getValue();
+ for (Map.Entry<String, URL> e2 : value.entrySet()) {
+ URL u = e2.getValue();
+ if (application.equals(u.getParameter(Constants.APPLICATION))) {
+ String addr = u.getAddress();
+ if (addr != null) {
+ ret.add(addr);
+ }
+ }
+ }
}
return ret;
}
+ @Override
+ public List<String> findAddressesByService(String service) {
+ List<String> ret = new ArrayList<String>();
+ ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
+ if (null == providerUrls) {
+ return ret;
+ }
+
+ for (Map.Entry<String, URL> e2 : providerUrls.get(service).entrySet()) {
+ URL u = e2.getValue();
+ String app = u.getAddress();
+ if (app != null) {
+ ret.add(app);
+ }
+ }
+
+ return ret;
+ }
+
+ @Override
public List<String> findApplicationsByServiceName(String service) {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (null == providerUrls) return ret;
+ if (null == providerUrls) {
+ return ret;
+ }
Map<String, URL> value = providerUrls.get(service);
if (value == null) {
@@ -314,17 +338,21 @@
}
for (Map.Entry<String, URL> e2 : value.entrySet()) {
URL u = e2.getValue();
- String app = u.getParameter(Constants.APPLICATION_KEY);
- if (app != null) ret.add(app);
+ String app = u.getParameter(Constants.APPLICATION);
+ if (app != null){
+ ret.add(app);
+ }
}
return ret;
}
+ @Override
public List<Provider> findByService(String serviceName) {
return SyncUtils.url2ProviderList(findProviderUrlByService(serviceName));
}
+ @Override
public List<Provider> findByAppandService(String app, String serviceName) {
return SyncUtils.url2ProviderList(findProviderUrlByAppandService(app, serviceName));
}
@@ -337,6 +365,7 @@
return SyncUtils.filterFromCategory(getRegistryCache(), filter);
}
+ @Override
public List<Provider> findAll() {
return SyncUtils.url2ProviderList(findAllProviderUrl());
}
@@ -347,6 +376,7 @@
return SyncUtils.filterFromCategory(getRegistryCache(), filter);
}
+ @Override
public List<Provider> findByAddress(String providerAddress) {
return SyncUtils.url2ProviderList(findProviderUrlByAddress(providerAddress));
}
@@ -359,11 +389,14 @@
return SyncUtils.filterFromCategory(getRegistryCache(), filter);
}
+ @Override
public List<String> findServicesByAddress(String address) {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (providerUrls == null || address == null || address.length() == 0) return ret;
+ if (providerUrls == null || address == null || address.length() == 0) {
+ return ret;
+ }
for (Map.Entry<String, Map<String, URL>> e1 : providerUrls.entrySet()) {
Map<String, URL> value = e1.getValue();
@@ -379,23 +412,29 @@
return ret;
}
+ @Override
public List<String> findApplications() {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (providerUrls == null) return ret;
+ if (providerUrls == null){
+ return ret;
+ }
for (Map.Entry<String, Map<String, URL>> e1 : providerUrls.entrySet()) {
Map<String, URL> value = e1.getValue();
for (Map.Entry<String, URL> e2 : value.entrySet()) {
URL u = e2.getValue();
- String app = u.getParameter(Constants.APPLICATION_KEY);
- if (app != null) ret.add(app);
+ String app = u.getParameter(Constants.APPLICATION);
+ if (app != null) {
+ ret.add(app);
+ }
}
}
return ret;
}
+ @Override
public List<Provider> findByApplication(String application) {
return SyncUtils.url2ProviderList(findProviderUrlByApplication(application));
}
@@ -425,7 +464,7 @@
private Map<String, URL> findProviderUrlByAppandService(String app, String service) {
Map<String, String> filter = new HashMap<>();
filter.put(Constants.CATEGORY_KEY, Constants.PROVIDERS_CATEGORY);
- filter.put(Constants.APPLICATION_KEY, app);
+ filter.put(Constants.APPLICATION, app);
filter.put(SyncUtils.SERVICE_FILTER_KEY, service);
return SyncUtils.filterFromCategory(getRegistryCache(), filter);
}
@@ -435,21 +474,24 @@
private Map<String, URL> findProviderUrlByApplication(String application) {
Map<String, String> filter = new HashMap<>();
filter.put(Constants.CATEGORY_KEY, Constants.PROVIDERS_CATEGORY);
- filter.put(Constants.APPLICATION_KEY, application);
+ filter.put(Constants.APPLICATION, application);
return SyncUtils.filterFromCategory(getRegistryCache(), filter);
}
+ @Override
public List<String> findServicesByApplication(String application) {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (providerUrls == null || application == null || application.length() == 0) return ret;
+ if (providerUrls == null || application == null || application.length() == 0) {
+ return ret;
+ }
for (Map.Entry<String, Map<String, URL>> e1 : providerUrls.entrySet()) {
Map<String, URL> value = e1.getValue();
for (Map.Entry<String, URL> e2 : value.entrySet()) {
URL u = e2.getValue();
- if (application.equals(u.getParameter(Constants.APPLICATION_KEY))) {
+ if (application.equals(u.getParameter(Constants.APPLICATION))) {
ret.add(e1.getKey());
break;
}
@@ -459,14 +501,19 @@
return ret;
}
+ @Override
public List<String> findMethodsByService(String service) {
List<String> ret = new ArrayList<String>();
ConcurrentMap<String, Map<String, URL>> providerUrls = getRegistryCache().get(Constants.PROVIDERS_CATEGORY);
- if (providerUrls == null || service == null || service.length() == 0) return ret;
+ if (providerUrls == null || service == null || service.length() == 0){
+ return ret;
+ }
Map<String, URL> providers = providerUrls.get(service);
- if (null == providers || providers.isEmpty()) return ret;
+ if (null == providers || providers.isEmpty()) {
+ return ret;
+ }
Entry<String, URL> p = providers.entrySet().iterator().next();
String value = p.getValue().getParameter("methods");
@@ -488,6 +535,7 @@
return findProvider(id).toUrl();
}
+ @Override
public Provider findByServiceAndAddress(String service, String address) {
return SyncUtils.url2Provider(findProviderUrl(service, address));
}
@@ -506,35 +554,36 @@
}
}
+ @Override
public Set<ServiceDTO> getServiceDTOS(String pattern, String filter, String env) {
List<Provider> providers = new ArrayList<>();
- if (!filter.contains("*") && !filter.contains("?")) {
+ if (!filter.contains(Constants.ANY_VALUE) && !filter.contains(Constants.INTERROGATION_POINT)) {
// filter with specific string
- if (org.apache.dubbo.admin.common.util.Constants.IP.equals(pattern)) {
+ if (Constants.IP.equals(pattern)) {
providers = findByAddress(filter);
- } else if (org.apache.dubbo.admin.common.util.Constants.SERVICE.equals(pattern)) {
+ } else if (Constants.SERVICE.equals(pattern)) {
providers = findByService(filter);
- } else if (org.apache.dubbo.admin.common.util.Constants.APPLICATION.equals(pattern)) {
+ } else if (Constants.APPLICATION.equals(pattern)) {
providers = findByApplication(filter);
}
} else {
// filter with fuzzy search
List<String> candidates = Collections.emptyList();
- if (org.apache.dubbo.admin.common.util.Constants.SERVICE.equals(pattern)) {
+ if (Constants.SERVICE.equals(pattern)) {
candidates = findServices();
- } else if (org.apache.dubbo.admin.common.util.Constants.APPLICATION.equals(pattern)) {
+ } else if (Constants.APPLICATION.equals(pattern)) {
candidates = findApplications();
}
// replace dot symbol and asterisk symbol to java-based regex pattern
- filter = filter.toLowerCase().replace(".", "\\.");
- if (filter.startsWith("*")) {
- filter = "." + filter;
+ filter = filter.toLowerCase().replace(Constants.PUNCTUATION_POINT, Constants.PUNCTUATION_SEPARATOR_POINT);
+ if (filter.startsWith(Constants.ANY_VALUE)) {
+ filter = Constants.PUNCTUATION_POINT + filter;
}
Pattern regex = Pattern.compile(filter, Pattern.CASE_INSENSITIVE); // search with no case insensitive
for (String candidate : candidates) {
Matcher matcher = regex.matcher(candidate);
if (matcher.matches() || matcher.lookingAt()) {
- if (org.apache.dubbo.admin.common.util.Constants.SERVICE.equals(pattern)) {
+ if (Constants.SERVICE.equals(pattern)) {
providers.addAll(findByService(candidate));
} else {
providers.addAll(findByApplication(candidate));