dubbo2.7.3条件路由配置不生效 fix #500 (#501)
* dubbo2.7.3条件路由配置不生效 fix #500
* dubbo2.7.3 应用粒度的权重配置不生效 fix 504
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
index 141caa8..adb1b7c 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
@@ -28,15 +28,18 @@
public static final String DEFAULT_ROOT = "dubbo";
public static final String PATH_SEPARATOR = "/";
public static final String GROUP_KEY = "group";
- public static final String CONFIG_KEY = "config";
+ public static final String CONFIG_KEY = "config/dubbo";
public static final String DUBBO_PROPERTY = "dubbo.properties";
public static final String PROVIDER_SIDE = "provider";
public static final String CONSUMER_SIDE = "consumer";
public static final String CATEGORY_KEY = "category";
public static final String ROUTERS_CATEGORY = "routers";
public static final String CONDITION_ROUTE = "condition_route";
+ public static final String CONDITION_RULE_SUFFIX = ".condition-router";
public static final String CONFIGURATOR = "configurators";
+ public static final String CONFIGURATOR_RULE_SUFFIX = ".configurators";
public static final String TAG_ROUTE = "tag_route";
+ public static final String TAG_RULE_SUFFIX = ".tag-router";
public static final String COMPATIBLE_CONFIG = "compatible_config";
public static final String WEIGHT = "weight";
public static final String BALANCING = "balancing";
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java
index a0a49fa..e63e846 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java
@@ -515,7 +515,7 @@
}
private String getPath(String key) {
key = key.replace("/", "*");
- return prefix + Constants.PATH_SEPARATOR + key + Constants.PATH_SEPARATOR + Constants.CONFIGURATOR;
+ return prefix + Constants.PATH_SEPARATOR + key + Constants.CONFIGURATOR_RULE_SUFFIX;
}
private void unregisterWeight(WeightDTO weightDTO) {
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java
index f7280cf..bbc1b25 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java
@@ -329,9 +329,9 @@
private String getPath(String key, String type) {
key = key.replace("/", "*");
if (type.equals(Constants.CONDITION_ROUTE)) {
- return prefix + Constants.PATH_SEPARATOR + key + Constants.PATH_SEPARATOR + "condition-router";
+ return prefix + Constants.PATH_SEPARATOR + key + Constants.CONDITION_RULE_SUFFIX;
} else {
- return prefix + Constants.PATH_SEPARATOR + key + Constants.PATH_SEPARATOR + "tag-router";
+ return prefix + Constants.PATH_SEPARATOR + key + Constants.TAG_RULE_SUFFIX;
}
}
diff --git a/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ConditionRoutesControllerTest.java b/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ConditionRoutesControllerTest.java
index ad7a340..6cd7359 100644
--- a/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ConditionRoutesControllerTest.java
+++ b/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ConditionRoutesControllerTest.java
@@ -37,15 +37,8 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.*;
import static org.mockito.Mockito.when;
public class ConditionRoutesControllerTest extends AbstractSpringIntegrationTest {
@@ -118,7 +111,7 @@
+ "priority: 0\n"
+ "runtime: false\n"
+ "scope: service";
- String path = "/dubbo/config/" + service + "/condition-router";
+ String path = "/dubbo/config/dubbo/" + service + ".condition-router";
zkClient.create().creatingParentContainersIfNeeded().forPath(path);
zkClient.setData().forPath(path, content.getBytes());
@@ -152,7 +145,7 @@
+ "priority: 0\n"
+ "runtime: false\n"
+ "scope: service";
- String path = "/dubbo/config/" + service + "/condition-router";
+ String path = "/dubbo/config/dubbo/" + service + ".condition-router";
zkClient.create().creatingParentContainersIfNeeded().forPath(path);
zkClient.setData().forPath(path, content.getBytes());
@@ -183,7 +176,7 @@
+ "priority: 0\n"
+ "runtime: false\n"
+ "scope: service";
- String path = "/dubbo/config/" + service + "/condition-router";
+ String path = "/dubbo/config/dubbo/" + service + ".condition-router";
zkClient.create().creatingParentContainersIfNeeded().forPath(path);
zkClient.setData().forPath(path, content.getBytes());
@@ -218,7 +211,7 @@
+ "priority: 0\n"
+ "runtime: false\n"
+ "scope: service";
- String path = "/dubbo/config/" + service + "/condition-router";
+ String path = "/dubbo/config/dubbo/" + service + ".condition-router";
zkClient.create().creatingParentContainersIfNeeded().forPath(path);
zkClient.setData().forPath(path, content.getBytes());
@@ -245,7 +238,7 @@
+ "priority: 0\n"
+ "runtime: false\n"
+ "scope: service";
- String path = "/dubbo/config/" + service + "/condition-router";
+ String path = "/dubbo/config/dubbo/" + service + ".condition-router";
zkClient.create().creatingParentContainersIfNeeded().forPath(path);
zkClient.setData().forPath(path, content.getBytes());
@@ -274,7 +267,7 @@
+ "priority: 0\n"
+ "runtime: false\n"
+ "scope: service";
- String path = "/dubbo/config/" + service + "/condition-router";
+ String path = "/dubbo/config/dubbo/" + service + ".condition-router";
zkClient.create().creatingParentContainersIfNeeded().forPath(path);
zkClient.setData().forPath(path, content.getBytes());
diff --git a/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ManagementControllerTest.java b/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ManagementControllerTest.java
index b832b57..462285b 100644
--- a/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ManagementControllerTest.java
+++ b/dubbo-admin-server/src/test/java/org/apache/dubbo/admin/controller/ManagementControllerTest.java
@@ -21,6 +21,7 @@
import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.ConfigDTO;
import org.apache.dubbo.admin.service.ProviderService;
+import org.apache.dubbo.common.utils.StringUtils;
import org.junit.After;
import org.junit.Test;
import org.springframework.boot.test.mock.mockito.MockBean;
@@ -36,8 +37,7 @@
import java.util.stream.Collectors;
import static org.hamcrest.Matchers.hasSize;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.*;
import static org.mockito.Mockito.when;
public class ManagementControllerTest extends AbstractSpringIntegrationTest {
@@ -64,11 +64,11 @@
assertEquals(responseEntity.getStatusCode(), HttpStatus.CREATED);
assertEquals(responseEntity.getBody(), true);
- byte[] bytes = zkClient.getData().forPath(getPath("dubbo"));
+ byte[] bytes = zkClient.getData().forPath(getPath(""));
String config = new String(bytes);
assertEquals(configDTO.getConfig(), config);
- zkClient.delete().forPath(getPath("dubbo"));
+ zkClient.delete().forPath(getPath(""));
}
@Test
@@ -188,7 +188,7 @@
}
private String getPath(String key) {
- return "/dubbo/" + Constants.CONFIG_KEY + Constants.PATH_SEPARATOR + key + Constants.PATH_SEPARATOR
- + Constants.DUBBO_PROPERTY;
+ key = StringUtils.isNotEmpty(key) ? key + Constants.PATH_SEPARATOR + Constants.DUBBO_PROPERTY : Constants.DUBBO_PROPERTY;
+ return "/dubbo/" + Constants.CONFIG_KEY + Constants.PATH_SEPARATOR + key;
}
}