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
       },