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/10/19 02:44:56 UTC
[incubator-dubbo-ops] branch develop updated: fix #144
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 baed592 fix #144
baed592 is described below
commit baed59289632443158a12134ae51caea0edc118e
Author: nzomkxia <z8...@gmail.com>
AuthorDate: Fri Oct 19 10:44:44 2018 +0800
fix #144
---
.../dubbo/admin/controller/RoutesController.java | 117 ++++++++++-----------
.../java/org/apache/dubbo/admin/dto/RouteDTO.java | 9 ++
.../src/components/governance/RoutingRule.vue | 1 +
3 files changed, 67 insertions(+), 60 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 888fe5c..4a1e847 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
@@ -17,12 +17,10 @@
package org.apache.dubbo.admin.controller;
-import org.apache.dubbo.admin.dto.BaseDTO;
import org.apache.dubbo.admin.dto.RouteDTO;
import org.apache.dubbo.admin.governance.service.ProviderService;
import org.apache.dubbo.admin.governance.service.RouteService;
import org.apache.dubbo.admin.registry.common.domain.Route;
-import org.apache.dubbo.admin.util.MD5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -52,19 +50,11 @@ public class RoutesController {
if (serviceName.contains(":") && !serviceName.endsWith(":")) {
version = serviceName.split(":")[1];
service = serviceName.split(":")[0];
+ routeDTO.setService(service);
+ routeDTO.setVersion(version);
}
- String[] conditions = routeDTO.getConditions();
- String rule = parseCondition(conditions);
- Route route = new Route();
- route.setService(service);
- route.setVersion(version);
- route.setEnabled(routeDTO.isEnabled()); route.setForce(routeDTO.isForce());
- route.setGroup(routeDTO.getGroup());
- route.setDynamic(routeDTO.isDynamic());
- route.setRuntime(routeDTO.isRuntime());
- route.setPriority(routeDTO.getPriority());
- route.setRule(rule);
+ Route route = convertRouteDTOtoRoute(routeDTO, null);
routeService.createRoute(route);
} else {
@@ -79,18 +69,9 @@ public class RoutesController {
if (route == null) {
//TODO Exception
}
- String[] conditions = routeDTO.getConditions();
- String rule = parseCondition(conditions);
- Route newRoute = new Route();
- newRoute.setService(route.getService());
- newRoute.setVersion(route.getVersion());
- newRoute.setEnabled(routeDTO.isEnabled());
- newRoute.setForce(routeDTO.isForce());
- newRoute.setGroup(routeDTO.getGroup());
- newRoute.setDynamic(routeDTO.isDynamic());
- newRoute.setRuntime(routeDTO.isRuntime());
- newRoute.setPriority(routeDTO.getPriority());
- newRoute.setRule(rule);
+ routeDTO.setVersion(route.getVersion());
+ routeDTO.setService(route.getService());
+ Route newRoute = convertRouteDTOtoRoute(routeDTO, id);
routeService.updateRoute(newRoute);
return true;
}
@@ -109,16 +90,7 @@ public class RoutesController {
}
List<RouteDTO> routeDTOS = new ArrayList<>();
for (Route route : routes) {
- RouteDTO routeDTO = new RouteDTO();
- routeDTO.setDynamic(route.isDynamic());
- 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.setId(route.getHash());
+ RouteDTO routeDTO = convertRoutetoRouteDTO(route, route.getHash());
routeDTOS.add(routeDTO);
}
return routeDTOS;
@@ -130,16 +102,7 @@ public class RoutesController {
if (route == null) {
// TODO throw exception
}
- RouteDTO routeDTO = new RouteDTO();
- routeDTO.setDynamic(route.isDynamic());
- 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.setId(route.getHash());
+ RouteDTO routeDTO = convertRoutetoRouteDTO(route, id);
return routeDTO;
}
@@ -168,28 +131,62 @@ public class RoutesController {
StringBuilder then = new StringBuilder();
for (String condition : conditions) {
condition = condition.trim();
- if (condition.contains("=>") && !condition.endsWith("=>")) {
- String consumer = condition.split("=>")[0].trim();
- String provider = condition.split("=>")[1].trim();
- if (when.length() != 0) {
- when.append(" & ").append(consumer);
- } else {
- when.append(consumer);
+ if (condition.contains("=>")) {
+ String[] array = condition.split("=>", 2);
+ String consumer = array[0].trim();
+ String provider = array[1].trim();
+ if (consumer != "") {
+ if (when.length() != 0) {
+ when.append(" & ").append(consumer);
+ } else {
+ when.append(consumer);
+ }
}
-
- if (then.length() != 0) {
- then.append(" & ").append(provider);
- } else {
- then.append(provider);
+ if (provider != "") {
+ if (then.length() != 0) {
+ then.append(" & ").append(provider);
+ } else {
+ then.append(provider);
+ }
}
}
}
return (when.append(" => ").append(then)).toString();
}
- public static void main(String[] args) {
- String a = "fwjiojie =>";
- a.split("=>", 2);
+ private Route convertRouteDTOtoRoute(RouteDTO routeDTO, String id) {
+ Route route = new Route();
+ 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());
+ route.setRule(rule);
+ if(id != null) {
+ route.setHash(id);
+ }
+ return route;
}
+ private RouteDTO convertRoutetoRouteDTO(Route route, String id) {
+ RouteDTO routeDTO = new RouteDTO();
+ routeDTO.setDynamic(route.isDynamic());
+ 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());
+ }
+ return routeDTO;
+ }
}
\ No newline at end of file
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 10196a4..caf1f06 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
@@ -26,8 +26,17 @@ public class RouteDTO extends BaseDTO{
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;
}
diff --git a/dubbo-admin-frontend/src/components/governance/RoutingRule.vue b/dubbo-admin-frontend/src/components/governance/RoutingRule.vue
index bb45a64..00c8990 100644
--- a/dubbo-admin-frontend/src/components/governance/RoutingRule.vue
+++ b/dubbo-admin-frontend/src/components/governance/RoutingRule.vue
@@ -199,6 +199,7 @@
this.ruleText = this.template
this.updateId = ''
this.service = ''
+ this.application = ''
this.dialog = false
this.readonly = false
},