diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/ConvertUtil.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/ConvertUtil.java index d7b85d4992a37abb2f9cd9057201b3c759b85624..2d4916ab7bdd156ee543bd0c8574f7ae946a6245 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/ConvertUtil.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/ConvertUtil.java @@ -28,22 +28,13 @@ public class ConvertUtil { } public static Map serviceName2Map(String serviceName) { - String group = null; - String version = null; - int i = serviceName.indexOf("/"); - if (i > 0) { - group = serviceName.substring(0, i); - serviceName = serviceName.substring(i + 1); - } - i = serviceName.lastIndexOf(":"); - if (i > 0) { - version = serviceName.substring(i + 1); - serviceName = serviceName.substring(0, i); - } + String group = Tool.getGroup(serviceName); + String version = Tool.getVersion(serviceName); + String interfaze = Tool.getInterface(serviceName); Map ret = new HashMap(); if (!StringUtils.isEmpty(serviceName)) { - ret.put(Constants.INTERFACE_KEY, serviceName); + ret.put(Constants.INTERFACE_KEY, interfaze); } if (!StringUtils.isEmpty(version)) { ret.put(Constants.VERSION_KEY, version); @@ -72,27 +63,4 @@ public class ConvertUtil { return org.apache.dubbo.admin.common.util.Constants.SERVICE; } } - -// public static T convertDTOtoStore(T dto) { -// if (StringUtils.isNotEmpty(dto.getApplication())) { -// dto.setScope("application"); -// dto.setKey(dto.getApplication()); -// } else { -// dto.setScope("service"); -// dto.setKey(dto.getService()); -// } -// return dto; -// } -// -// public static T convertDTOtoDisplay(T dto) { -// if (dto == null) { -// return null; -// } -// if(dto.getScope().equals("application")) { -// dto.setApplication(dto.getKey()); -// } else { -// dto.setService(dto.getKey()); -// } -// return dto; -// } } diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java index e3e042baa4d976dbac092b19c604927d97bf7035..c8a04b21b620859b905c13edd78c6e628e86b12f 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java @@ -19,6 +19,7 @@ package org.apache.dubbo.admin.controller; import com.google.gson.Gson; import org.apache.dubbo.admin.common.util.Constants; +import org.apache.dubbo.admin.common.util.Tool; import org.apache.dubbo.admin.model.domain.Consumer; import org.apache.dubbo.admin.model.domain.Provider; import org.apache.dubbo.admin.model.dto.ServiceDTO; @@ -61,19 +62,9 @@ public class ServiceController { @RequestMapping(value = "/service/{service}", method = RequestMethod.GET) public ServiceDetailDTO serviceDetail(@PathVariable String service, @PathVariable String env) { service = service.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR); - String group = null; - String version = null; - String interfaze = service; - int i = interfaze.indexOf("/"); - if (i >= 0) { - group = interfaze.substring(0, i); - interfaze = interfaze.substring(i + 1); - } - i = interfaze.lastIndexOf(":"); - if (i >= 0) { - version = interfaze.substring(i + 1); - interfaze = interfaze.substring(0, i); - } + String group = Tool.getGroup(service); + String version = Tool.getVersion(service); + String interfaze = Tool.getInterface(service); List providers = providerService.findByService(service); List consumers = consumerService.findByService(service); diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Consumer.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Consumer.java index 93d9835fe71e3c2bb4ea1590f99db8fbcd71a11b..c08c7e0ae8264cc2aed3f7d5810c0571b59c24b4 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Consumer.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Consumer.java @@ -16,6 +16,7 @@ */ package org.apache.dubbo.admin.model.domain; +import org.apache.dubbo.admin.common.util.Tool; import org.apache.dubbo.common.Constants; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.utils.StringUtils; @@ -201,19 +202,9 @@ public class Consumer extends Entity { } public URL toUrl() { - String group = null; - String version = null; - String path = service; - int i = path.indexOf("/"); - if (i > 0) { - group = path.substring(0, i); - path = path.substring(i + 1); - } - i = path.lastIndexOf(":"); - if (i > 0) { - version = path.substring(i + 1); - path = path.substring(0, i); - } + String group = Tool.getGroup(service); + String version = Tool.getVersion(service); + String interfaze = Tool.getInterface(service); Map param = StringUtils.parseQueryString(parameters); param.put(Constants.CATEGORY_KEY, Constants.CONSUMERS_CATEGORY); if (group != null) { @@ -222,7 +213,7 @@ public class Consumer extends Entity { if (version != null) { param.put(Constants.VERSION_KEY, version); } - return URL.valueOf(Constants.CONSUMER_PROTOCOL + "://" + address + "/" + path + return URL.valueOf(Constants.CONSUMER_PROTOCOL + "://" + address + "/" + interfaze + "?" + StringUtils.toQueryString(param)); } diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Override.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Override.java index ff79fada495c69afed3cffdfaa97e29f2378c277..fe96affba71f58bd832dfbd220aa21f41dcd1755 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Override.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Override.java @@ -16,6 +16,7 @@ */ package org.apache.dubbo.admin.model.domain; +import org.apache.dubbo.admin.common.util.Tool; import org.apache.dubbo.common.Constants; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.utils.StringUtils; @@ -158,19 +159,9 @@ public class Override extends Entity { } public URL toUrl() { - String group = null; - String version = null; - String path = service; - int i = path.indexOf("/"); - if (i > 0) { - group = path.substring(0, i); - path = path.substring(i + 1); - } - i = path.lastIndexOf(":"); - if (i > 0) { - version = path.substring(i + 1); - path = path.substring(0, i); - } + String group = Tool.getGroup(service); + String version = Tool.getVersion(service); + String interfaze = Tool.getInterface(service); StringBuilder sb = new StringBuilder(); sb.append(Constants.OVERRIDE_PROTOCOL); sb.append("://"); @@ -180,7 +171,7 @@ public class Override extends Entity { sb.append(Constants.ANYHOST_VALUE); } sb.append("/"); - sb.append(path); + sb.append(interfaze); sb.append("?"); Map param = StringUtils.parseQueryString(params); param.put(Constants.CATEGORY_KEY, Constants.CONFIGURATORS_CATEGORY); diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Route.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Route.java index 5547bc4ae3a53220994a8e264a595bbc8db7e0dc..1bb7fa118d7752f112004329d907f5d8854b09e2 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Route.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/model/domain/Route.java @@ -18,6 +18,7 @@ package org.apache.dubbo.admin.model.domain; +import org.apache.dubbo.admin.common.util.Tool; import org.apache.dubbo.common.Constants; import org.apache.dubbo.common.URL; @@ -208,20 +209,10 @@ public class Route extends Entity { } public URL toUrl() { - String group = null; - String version = null; - String path = service; - int i = path.indexOf("/"); - if (i > 0) { - group = path.substring(0, i); - path = path.substring(i + 1); - } - i = path.lastIndexOf(":"); - if (i > 0) { - version = path.substring(i + 1); - path = path.substring(0, i); - } - return URL.valueOf(Constants.ROUTE_PROTOCOL + "://" + Constants.ANYHOST_VALUE + "/" + path + String group = Tool.getGroup(service); + String version = Tool.getVersion(service); + String interfaze = Tool.getInterface(service); + return URL.valueOf(Constants.ROUTE_PROTOCOL + "://" + Constants.ANYHOST_VALUE + "/" + interfaze + "?" + Constants.CATEGORY_KEY + "=" + Constants.ROUTERS_CATEGORY + "&router=condition&runtime=" + isRuntime() + "&enabled=" + isEnabled() + "&priority=" + getPriority() + "&force=" + isForce() + "&dynamic=" + isDynamic() + "&name=" + getName() + "&" + Constants.RULE_KEY + "=" + URL.encode(getMatchRule() + " => " + getFilterRule()) diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java index 810fcd6b70ce53b52a97b9a5fc9b5cf8c5b6a539..0e0a0db238c31815b5cc51da35b01f1e1911af49 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java @@ -17,6 +17,7 @@ package org.apache.dubbo.admin.service.impl; +import org.apache.dubbo.admin.common.util.Tool; import org.apache.dubbo.config.ApplicationConfig; import org.apache.dubbo.config.ReferenceConfig; import org.apache.dubbo.config.RegistryConfig; @@ -47,9 +48,14 @@ public class GenericServiceImpl { public Object invoke(String service, String method, String[] parameterTypes, Object[] params) { ReferenceConfig reference = new ReferenceConfig<>(); + String group = Tool.getGroup(service); + String version = Tool.getVersion(service); + String interfaze = Tool.getInterface(service); reference.setGeneric(true); reference.setApplication(applicationConfig); - reference.setInterface(service); + reference.setInterface(interfaze); + reference.setVersion(version); + reference.setGroup(group); GenericService genericService = reference.get(); return genericService.$invoke(method, parameterTypes, params); } diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java index 98ef8438695ce6ec6eab60bb3c939b9f2d1cd1d3..3d94e7341b832ab9dd0e46aac2d829cd55eb88bb 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java @@ -21,6 +21,7 @@ import org.apache.dubbo.admin.common.util.Constants; import org.apache.dubbo.admin.common.util.Pair; import org.apache.dubbo.admin.common.util.ParseUtils; import org.apache.dubbo.admin.common.util.SyncUtils; +import org.apache.dubbo.admin.common.util.Tool; import org.apache.dubbo.admin.model.domain.Provider; import org.apache.dubbo.admin.model.dto.ServiceDTO; import org.apache.dubbo.admin.service.OverrideService; @@ -460,21 +461,12 @@ public class ProviderServiceImpl extends AbstractService implements ProviderServ for (Provider provider : providers) { String app = provider.getApplication(); String service = provider.getService(); - String group = null; - String version = null; - int i = service.indexOf("/"); - if (i >= 0) { - group = service.substring(0, i); - service = service.substring(i + 1); - } - i = service.lastIndexOf(":"); - if (i >= 0) { - version = service.substring(i + 1); - service = service.substring(0, i); - } + String group = Tool.getGroup(service); + String version = Tool.getVersion(service); + String interfaze = Tool.getInterface(service); ServiceDTO s = new ServiceDTO(); s.setAppName(app); - s.setService(service); + s.setService(interfaze); s.setGroup(group); s.setVersion(version); result.add(s); diff --git a/dubbo-admin-ui/src/components/test/ServiceTest.vue b/dubbo-admin-ui/src/components/test/ServiceTest.vue index 60fb681b9881f336d62eb1f5225b09c4ca7818d9..5ac926709464d33bd6921aeedf970cad1168ae1c 100644 --- a/dubbo-admin-ui/src/components/test/ServiceTest.vue +++ b/dubbo-admin-ui/src/components/test/ServiceTest.vue @@ -46,28 +46,6 @@ - - - - - - - - - - - - - - - - - - - - - -

{{$t('methods')}}