separate version and group for service test #313
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 d7b85d4..2d4916a 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 static Map<String, String> 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<String, String> ret = new HashMap<String, String>();
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 @@
return org.apache.dubbo.admin.common.util.Constants.SERVICE;
}
}
-
-// public static <T extends BaseDTO> 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 extends BaseDTO> 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 e3e042b..c8a04b2 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 @@
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 @@
@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<Provider> providers = providerService.findByService(service);
List<Consumer> 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 93d9835..c08c7e0 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 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<String, String> param = StringUtils.parseQueryString(parameters);
param.put(Constants.CATEGORY_KEY, Constants.CONSUMERS_CATEGORY);
if (group != null) {
@@ -222,7 +213,7 @@
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 ff79fad..fe96aff 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 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 @@
sb.append(Constants.ANYHOST_VALUE);
}
sb.append("/");
- sb.append(path);
+ sb.append(interfaze);
sb.append("?");
Map<String, String> 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 5547bc4..1bb7fa1 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 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 810fcd6..0e0a0db 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 Object invoke(String service, String method, String[] parameterTypes, Object[] params) {
ReferenceConfig<GenericService> 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 98ef843..3d94e73 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.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 @@
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 60fb681..5ac9267 100644
--- a/dubbo-admin-ui/src/components/test/ServiceTest.vue
+++ b/dubbo-admin-ui/src/components/test/ServiceTest.vue
@@ -46,28 +46,6 @@
</v-card>
</v-flex>
</v-layout>
- <!--<v-flex xs12>-->
- <!--<search v-model="filter" :label="$t('placeholders.searchService')"-->
- <!--:hint="$t('testModule.searchServiceHint')"-->
- <!--:submit="search"></search>-->
- <!--</v-flex>-->
- <!--<v-flex xs12>-->
- <!--<v-autocomplete-->
- <!--flat-->
- <!--hide-no-data-->
- <!--v-model="service"-->
- <!--:loading="loading"-->
- <!--:search-input.sync="filter"-->
- <!--:hint="$t('testModule.searchServiceHint')"-->
- <!--:items="services"-->
- <!--item-value="service"-->
- <!--item-text="service"-->
- <!--:label="$t('placeholders.searchService')"-->
- <!--persistent-hint-->
- <!--@keyup.enter="search"-->
- <!--clearable-->
- <!--></v-autocomplete>-->
- <!--</v-flex>-->
<v-flex xs12>
<h3>{{$t('methods')}}</h3>
</v-flex>