1.add equals(),hashCode() to ServiceDTO 2.use admin Constants instead of dubbo-parent Constants (#231)
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
index 9f5c282..9eafa42 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
@@ -41,6 +41,13 @@
public static final String BALANCING = "balancing";
public static final String SERVICE = "service";
public static final String APPLICATION = "application";
+ public static final String PUNCTUATION_POINT = ".";
+ public static final String PUNCTUATION_SEPARATOR_POINT = "\\.";
+ public static final String INTERROGATION_POINT = "?";
+ public static final String ANY_VALUE = "*";
+ public static final String IP = "ip";
+ public static final String INTERFACE_KEY = "interface";
+ public static final String VERSION_KEY = "version";
public static final Set<String> CONFIGS = new HashSet<>();
static {
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
index e815669..bf82222 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
@@ -16,7 +16,7 @@
*/
package org.apache.dubbo.admin.controller;
-import org.apache.dubbo.admin.common.util.RouteRule;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.ConditionRouteDTO;
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
@@ -67,14 +67,14 @@
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public AccessDTO detailAccess(@PathVariable String id, @PathVariable String env) throws ParseException {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
AccessDTO accessDTO = routeService.findAccess(id);
return accessDTO;
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public void deleteAccess(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.deleteAccess(id);
}
@@ -93,7 +93,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public void updateAccess(@PathVariable String id, @RequestBody AccessDTO accessDTO, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
ConditionRouteDTO route = routeService.findConditionRoute(id);
if (Objects.isNull(route)) {
throw new ResourceNotFoundException("Unknown ID!");
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ConditionRoutesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ConditionRoutesController.java
index a5849e0..f764801 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ConditionRoutesController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ConditionRoutesController.java
@@ -21,6 +21,7 @@
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
import org.apache.dubbo.admin.common.exception.VersionValidationException;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.ConditionRouteDTO;
import org.apache.dubbo.admin.service.ProviderService;
import org.apache.dubbo.admin.service.RouteService;
@@ -61,7 +62,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public boolean updateRule(@PathVariable String id, @RequestBody ConditionRouteDTO newConditionRoute, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
ConditionRouteDTO oldConditionRoute = routeService.findConditionRoute(id);
if (oldConditionRoute == null) {
throw new ResourceNotFoundException("can not find route rule for: " + id);
@@ -89,7 +90,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ConditionRouteDTO detailRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
ConditionRouteDTO conditionRoute = routeService.findConditionRoute(id);
if (conditionRoute == null || conditionRoute.getConditions() == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -99,21 +100,21 @@
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public boolean deleteRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.deleteConditionRoute(id);
return true;
}
@RequestMapping(value = "/enable/{id}", method = RequestMethod.PUT)
public boolean enableRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.enableConditionRoute(id);
return true;
}
@RequestMapping(value = "/disable/{id}", method = RequestMethod.PUT)
public boolean disableRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.disableConditionRoute(id);
return true;
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
index 3d1221e..816e6b9 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
@@ -20,6 +20,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.BalancingDTO;
import org.apache.dubbo.admin.service.OverrideService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -65,7 +66,7 @@
if (id == null) {
throw new ParamValidationException("Unknown ID!");
}
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
BalancingDTO balancing = overrideService.findBalance(id);
if (balancing == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -98,7 +99,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public BalancingDTO detailLoadBalance(@PathVariable String id, @PathVariable String env) throws ParamValidationException {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
BalancingDTO balancingDTO = overrideService.findBalance(id);
if (balancingDTO == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -114,7 +115,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public boolean deleteLoadBalance(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
if (id == null) {
throw new IllegalArgumentException("Argument of id is null!");
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/OverridesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/OverridesController.java
index 96cb8dd..fb19178 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/OverridesController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/OverridesController.java
@@ -21,6 +21,7 @@
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
import org.apache.dubbo.admin.common.exception.VersionValidationException;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.DynamicConfigDTO;
import org.apache.dubbo.admin.service.OverrideService;
import org.apache.dubbo.admin.service.ProviderService;
@@ -61,7 +62,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public boolean updateOverride(@PathVariable String id, @RequestBody DynamicConfigDTO overrideDTO, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
DynamicConfigDTO old = overrideService.findOverride(id);
if (old == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -89,7 +90,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public DynamicConfigDTO detailOverride(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
DynamicConfigDTO override = overrideService.findOverride(id);
if (override == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -100,7 +101,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public boolean deleteOverride(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
overrideService.deleteOverride(id);
return true;
}
@@ -108,14 +109,14 @@
@RequestMapping(value = "/enable/{id}", method = RequestMethod.PUT)
public boolean enableRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
overrideService.enableOverride(id);
return true;
}
@RequestMapping(value = "/disable/{id}", method = RequestMethod.PUT)
public boolean disableRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
overrideService.disableOverride(id);
return true;
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 d080f2e..c3cd74f 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
@@ -25,7 +25,7 @@
import org.apache.dubbo.admin.model.dto.ServiceDetailDTO;
import org.apache.dubbo.admin.service.ConsumerService;
import org.apache.dubbo.admin.service.ProviderService;
-import org.apache.dubbo.common.Constants;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
@@ -55,30 +55,30 @@
@RequestParam String filter,@PathVariable String env) {
List<Provider> providers = new ArrayList<>();
- if (!filter.contains("*") && !filter.contains("?")) {
- if (pattern.equals("ip")) {
+ if (!filter.contains(Constants.ANY_VALUE) && !filter.contains(Constants.INTERROGATION_POINT)) {
+ if (Constants.IP.equals(pattern)) {
providers = providerService.findByAddress(filter);
- } else if (pattern.equals("service")) {
+ } else if (Constants.SERVICE.equals(pattern)) {
providers = providerService.findByService(filter);
- } else if (pattern.equals("application")) {
+ } else if (Constants.APPLICATION.equals(pattern)) {
providers = providerService.findByApplication(filter);
}
} else {
List<String> candidates = Collections.emptyList();
- if (pattern.equals("service")) {
- candidates = providerService.findServices();
- } else if (pattern.equals("application")) {
+ if (Constants.SERVICE.equals(pattern)) {
+ candidates = providerService.findServices();
+ } else if (Constants.APPLICATION.equals(pattern)) {
candidates = providerService.findApplications();
}
- filter = filter.toLowerCase().replace(".", "\\.");
- if (filter.startsWith("*")) {
- filter = "." + filter;
+ filter = filter.toLowerCase().replace(Constants.PUNCTUATION_POINT, Constants.PUNCTUATION_SEPARATOR_POINT);
+ if (filter.startsWith(Constants.ANY_VALUE)) {
+ filter = Constants.PUNCTUATION_POINT + filter;
}
Pattern regex = Pattern.compile(filter);
for (String candidate : candidates) {
Matcher matcher = regex.matcher(candidate);
if (matcher.matches() || matcher.lookingAt()) {
- if (pattern.equals("service")) {
+ if (Constants.SERVICE.equals(pattern)) {
providers.addAll(providerService.findByService(candidate));
} else {
providers.addAll(providerService.findByApplication(candidate));
@@ -106,7 +106,7 @@
@RequestMapping(value = "/{service}", method = RequestMethod.GET)
public ServiceDetailDTO serviceDetail(@PathVariable String service, @PathVariable String env) {
- service = service.replace("*", "/");
+ service = service.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
List<Provider> providers = providerService.findByService(service);
List<Consumer> consumers = consumerService.findByService(service);
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/TagRoutesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/TagRoutesController.java
index 40b81bf..54bfffe 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/TagRoutesController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/TagRoutesController.java
@@ -21,6 +21,7 @@
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
import org.apache.dubbo.admin.common.exception.VersionValidationException;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.TagRouteDTO;
import org.apache.dubbo.admin.service.ProviderService;
import org.apache.dubbo.admin.service.RouteService;
@@ -62,7 +63,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public boolean updateRule(@PathVariable String id, @RequestBody TagRouteDTO routeDTO, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
String app = routeDTO.getApplication();
if (providerService.findVersionInApplication(app).equals("2.6")) {
throw new VersionValidationException("dubbo 2.6 does not support tag route");
@@ -100,7 +101,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public TagRouteDTO detailRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
TagRouteDTO tagRoute = routeService.findTagRoute(id);
if (tagRoute == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -110,21 +111,21 @@
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public boolean deleteRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.deleteTagRoute(id);
return true;
}
@RequestMapping(value = "/enable/{id}", method = RequestMethod.PUT)
public boolean enableRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.enableTagRoute(id);
return true;
}
@RequestMapping(value = "/disable/{id}", method = RequestMethod.PUT)
public boolean disableRoute(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
routeService.disableTagRoute(id);
return true;
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
index 11ce807..08bb4ef 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
@@ -20,6 +20,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
+import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.common.util.ConvertUtil;
import org.apache.dubbo.admin.model.dto.AccessDTO;
import org.apache.dubbo.admin.model.dto.WeightDTO;
@@ -68,7 +69,7 @@
if (id == null) {
throw new ParamValidationException("Unknown ID!");
}
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
WeightDTO weight = overrideService.findWeight(id);
if (weight == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -123,7 +124,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public WeightDTO detailWeight(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
WeightDTO weightDTO = overrideService.findWeight(id);
if (weightDTO == null) {
throw new ResourceNotFoundException("Unknown ID!");
@@ -133,7 +134,7 @@
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public boolean deleteWeight(@PathVariable String id, @PathVariable String env) {
- id = id.replace("*", "/");
+ id = id.replace(Constants.ANY_VALUE, Constants.PATH_SEPARATOR);
overrideService.deleteWeight(id);
return true;
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceDTO.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceDTO.java
index 6e3fa50..3822291 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceDTO.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceDTO.java
@@ -17,6 +17,7 @@
package org.apache.dubbo.admin.model.dto;
+import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
public class ServiceDTO implements Comparable<ServiceDTO>{
@@ -71,4 +72,22 @@
}
return result;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ServiceDTO that = (ServiceDTO) o;
+ return Objects.equals(service, that.service) && Objects.equals(appName, that.appName) && Objects
+ .equals(group, that.group) && Objects.equals(version, that.version);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(service, appName, group, version);
+ }
}