You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by mi...@apache.org on 2018/11/02 08:44:17 UTC
[incubator-dubbo-ops] branch develop updated: put group and version
in service
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 <z8...@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