This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-ops.git
The following commit(s) were added to refs/heads/develop by this push: new 0946c9a put group and version in service 0946c9a is described below commit 0946c9ae1f313cf55fe427fd7c5f098d9b4190af Author: nzomkxia <z82507...@gmail.com> AuthorDate: Fri Nov 2 16:44:05 2018 +0800 put group and version in service --- .../dubbo/admin/controller/RoutesController.java | 14 +------ .../dubbo/admin/controller/ServiceController.java | 21 ++++------- .../java/org/apache/dubbo/admin/dto/RouteDTO.java | 17 --------- .../admin/governance/sync/util/SyncUtils.java | 2 - .../dubbo/admin/registry/common/domain/Route.java | 44 ++++++++-------------- .../src/components/ServiceDetail.vue | 44 +++++++++++++--------- .../src/components/ServiceSearch.vue | 20 ++++++++-- 7 files changed, 68 insertions(+), 94 deletions(-) diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/RoutesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/RoutesController.java index 148fc58..223a244 100644 --- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/RoutesController.java +++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/RoutesController.java @@ -50,14 +50,7 @@ public class RoutesController { } if (StringUtils.isNotEmpty(serviceName)) { //2.6 - String version = null; - String service = serviceName; - if (serviceName.contains(":") && !serviceName.endsWith(":")) { - version = serviceName.split(":")[1]; - service = serviceName.split(":")[0]; - routeDTO.setService(service); - routeDTO.setVersion(version); - } + routeDTO.setService(serviceName); Route route = convertRouteDTOtoRoute(routeDTO, null); routeService.createRoute(route); @@ -74,7 +67,6 @@ public class RoutesController { if (route == null) { throw new ResourceNotFoundException("Unknown ID!"); } - routeDTO.setVersion(route.getVersion()); routeDTO.setService(route.getService()); Route newRoute = convertRouteDTOtoRoute(routeDTO, id); routeService.updateRoute(newRoute); @@ -164,10 +156,8 @@ public class RoutesController { String[] conditions = routeDTO.getConditions(); String rule = parseCondition(conditions); route.setService(routeDTO.getService()); - route.setVersion(routeDTO.getVersion()); route.setEnabled(routeDTO.isEnabled()); route.setForce(routeDTO.isForce()); - route.setGroup(routeDTO.getGroup()); route.setDynamic(routeDTO.isDynamic()); route.setRuntime(routeDTO.isRuntime()); route.setPriority(routeDTO.getPriority()); @@ -184,11 +174,9 @@ public class RoutesController { routeDTO.setConditions(new String[]{route.getRule()}); routeDTO.setEnabled(route.isEnabled()); routeDTO.setForce(route.isForce()); - routeDTO.setGroup(route.getGroup()); routeDTO.setPriority(route.getPriority()); routeDTO.setRuntime(route.isRuntime()); routeDTO.setService(route.getService()); - routeDTO.setVersion(route.getVersion()); if (id != null) { routeDTO.setId(route.getHash()); } diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java index 4298065..ffba989 100644 --- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java +++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java @@ -19,6 +19,7 @@ package org.apache.dubbo.admin.controller; import com.alibaba.dubbo.common.Constants; import com.alibaba.dubbo.common.utils.StringUtils; +import com.sun.tools.classfile.ConstantPool; import org.apache.dubbo.admin.dto.ServiceDTO; import org.apache.dubbo.admin.dto.ServiceDetailDTO; import org.apache.dubbo.admin.governance.service.ConsumerService; @@ -52,12 +53,8 @@ public class ServiceController { for (Provider provider : allProviders) { Map<String, String> map = StringUtils.parseQueryString(provider.getParameters()); String app = provider.getApplication(); - String service = provider.getService(); - String group = null; - if (service.contains("/")) { - group = service.split("/")[0]; - service = service.split("/")[1]; - } + String service = map.get(Constants.INTERFACE_KEY); + String group = map.get(Constants.GROUP_KEY); String version = map.get(Constants.VERSION_KEY); String url = app + service + group + version; if (serviceUrl.contains(url)) { @@ -96,6 +93,7 @@ public class ServiceController { @RequestMapping(value = "/{service}", method = RequestMethod.GET) public ServiceDetailDTO serviceDetail(@PathVariable String service) { + service = service.replace("*", "/"); List<Provider> providers = providerService.findByService(service); List<Consumer> consumers = consumerService.findByService(service); @@ -109,15 +107,12 @@ public class ServiceController { private ServiceDTO createService(Provider provider, Map<String, String> map) { ServiceDTO serviceDTO = new ServiceDTO(); serviceDTO.setAppName(provider.getApplication()); - String service = provider.getService(); - String group = null; - if (service.contains("/")) { - group = service.split("/")[0]; - service = service.split("/")[1]; - } + String service = map.get(Constants.INTERFACE_KEY); + String group = map.get(Constants.GROUP_KEY); + String version = map.get(Constants.VERSION_KEY); serviceDTO.setService(service); serviceDTO.setGroup(group); - serviceDTO.setVersion(map.get(Constants.VERSION_KEY)); + serviceDTO.setVersion(version); return serviceDTO; } diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/RouteDTO.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/RouteDTO.java index caf1f06..a6e65d2 100644 --- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/RouteDTO.java +++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/RouteDTO.java @@ -20,22 +20,13 @@ package org.apache.dubbo.admin.dto; public class RouteDTO extends BaseDTO{ private String app; private String service; - private String group; private boolean dynamic; private int priority; private boolean enabled; private boolean force; private boolean runtime; - private String version; private String[] conditions; - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } public String getApp() { return app; @@ -53,14 +44,6 @@ public class RouteDTO extends BaseDTO{ this.service = service; } - public String getGroup() { - return group; - } - - public void setGroup(String group) { - this.group = group; - } - public boolean isDynamic() { return dynamic; } diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/governance/sync/util/SyncUtils.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/governance/sync/util/SyncUtils.java index ebaffbd..271e51d 100644 --- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/governance/sync/util/SyncUtils.java +++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/governance/sync/util/SyncUtils.java @@ -122,8 +122,6 @@ public class SyncUtils { r.setForce(url.getParameter(Constants.FORCE_KEY, false)); r.setDynamic(url.getParameter(Constants.DYNAMIC_KEY, false)); r.setRuntime(url.getParameter(Constants.RUNTIME_KEY, false)); - r.setGroup(url.getParameter(Constants.GROUP_KEY, (String)null)); - r.setVersion(url.getParameter(Constants.VERSION_KEY, (String)null)); r.setRule(url.getParameterAndDecoded(Constants.RULE_KEY)); return r; } diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/registry/common/domain/Route.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/registry/common/domain/Route.java index 45f63fc..d5531b3 100644 --- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/registry/common/domain/Route.java +++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/registry/common/domain/Route.java @@ -65,10 +65,6 @@ public class Route extends Entity { private boolean force; - private String version; - - private String group; - private boolean dynamic; private boolean runtime; @@ -146,22 +142,6 @@ public class Route extends Entity { this.runtime = runtime; } - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getGroup() { - return group; - } - - public void setGroup(String group) { - this.group = group; - } - public boolean isForce() { return force; } @@ -231,17 +211,25 @@ public class Route extends Entity { } public URL toUrl() { -// if (filterRule != null && filterRule.endsWith("null")) { -// filterRule = null; -// } else { -// filterRule = filterRule.trim(); -// } - return URL.valueOf(Constants.ROUTE_PROTOCOL + "://" + Constants.ANYHOST_VALUE + "/" + getService() + 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 + "?" + 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()) - + (getGroup() == null ? "" : "&" + Constants.GROUP_KEY + "=" + getGroup()) - + (getVersion() == null ? "" : "&" + Constants.VERSION_KEY + "=" + getVersion())); + + (group == null ? "" : "&" + Constants.GROUP_KEY + "=" + group) + + (version == null ? "" : "&" + Constants.VERSION_KEY + "=" + version)); } } diff --git a/dubbo-admin-frontend/src/components/ServiceDetail.vue b/dubbo-admin-frontend/src/components/ServiceDetail.vue index 2f65e49..b671b4e 100644 --- a/dubbo-admin-frontend/src/components/ServiceDetail.vue +++ b/dubbo-admin-frontend/src/components/ServiceDetail.vue @@ -28,7 +28,7 @@ hide-actions hide-headers > <template slot="items" slot-scope="props"> - <td>{{props.item.role}} </td> + <td>{{props.item.name}} </td> <td>{{props.item.value}}</td> </template> </v-data-table> @@ -183,26 +183,34 @@ }, mounted: function () { let query = this.$route.query - let app = '' - let service = '' + let meta = { + 'service': '', + 'app': '', + 'group': '', + 'version': '' + } + var vm = this Object.keys(query).forEach(function (key) { - if (key === 'app') { - app = query[key] - } - if (key === 'service') { - service = query[key] + if (key in meta) { + meta[key] = query[key] } }) - if (service !== '') { - this.detail(service) - let serviceItem = {} - serviceItem.role = 'Service Name' - serviceItem.value = service - this.basic.push(serviceItem) - let appItem = {} - appItem.role = 'Application Name' - appItem.value = app - this.basic.push(appItem) + let dataId = meta['service'] + if (meta['group'] !== '') { + dataId = meta['group'] + '*' + dataId + } + if (meta['version'] !== '') { + dataId = dataId + ':' + meta['version'] + } + + if (dataId !== '') { + this.detail(dataId) + Object.keys(meta).forEach(function (key) { + let item = {} + item.value = meta[key] + item.name = key.charAt(0).toUpperCase() + key.substr(1) + vm.basic.push(item) + }) } } } diff --git a/dubbo-admin-frontend/src/components/ServiceSearch.vue b/dubbo-admin-frontend/src/components/ServiceSearch.vue index 8c269fc..eb5ff46 100644 --- a/dubbo-admin-frontend/src/components/ServiceSearch.vue +++ b/dubbo-admin-frontend/src/components/ServiceSearch.vue @@ -69,8 +69,10 @@ <template slot="items" slot-scope="props"> <td >{{props.item.service}}</td> <td>{{props.item.group}}</td> + <td>{{props.item.version}}</td> <td>{{props.item.appName}}</td> - <td class="text-xs-center px-0"><v-btn small color='primary' :href='getHref(props.item.service, props.item.appName)'>Detail</v-btn></td> + <td class="text-xs-center px-0"><v-btn small color='primary' :href='getHref(props.item.service, props.item.appName, + props.item.group, props.item.version)'>Detail</v-btn></td> </template> </v-data-table> </template> @@ -103,6 +105,11 @@ align: 'left' }, { + text: 'Version', + value: 'version', + align: 'left' + }, + { text: 'Application', value: 'application', align: 'left' @@ -130,8 +137,15 @@ } }, methods: { - getHref: function (service, app) { - return '/#/serviceDetail?service=' + service + '&app=' + app + getHref: function (service, app, group, version) { + let query = 'service=' + service + '&app=' + app + if (group !== null) { + query = query + '&group=' + group + } + if (version != null) { + query = query + '&version=' + version + } + return '/#/serviceDetail?' + query }, submit () { let pattern = this.items[this.selected].value