support * search
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java
index 412a797..c846ce6 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java
@@ -22,12 +22,15 @@
import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.ConfigDTO;
import org.apache.dubbo.admin.service.ManagementService;
+import org.apache.dubbo.admin.service.ProviderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.regex.Pattern;
@RestController
@@ -35,12 +38,14 @@
public class ManagementController {
private final ManagementService managementService;
+ private final ProviderService providerService;
private static Pattern CLASS_NAME_PATTERN = Pattern.compile("([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*");
@Autowired
- public ManagementController(ManagementService managementService) {
+ public ManagementController(ManagementService managementService, ProviderService providerService) {
this.managementService = managementService;
+ this.providerService = providerService;
}
@RequestMapping(value ="/config", method = RequestMethod.POST)
@@ -63,23 +68,32 @@
@RequestMapping(value = "/config/{key}", method = RequestMethod.GET)
public List<ConfigDTO> getConfig(@PathVariable String key, @PathVariable String env) {
- String config = managementService.getConfig(key);
+ Set<String> query = new HashSet<>();
List<ConfigDTO> configDTOs = new ArrayList<>();
- if (config == null) {
- return configDTOs;
- }
- ConfigDTO configDTO = new ConfigDTO();
- configDTO.setKey(key);
- configDTO.setConfig(config);
- configDTO.setPath(managementService.getConfigPath(key));
- if (Constants.GLOBAL_CONFIG.equals(key)) {
- configDTO.setScope(Constants.GLOBAL_CONFIG);
- } else if(CLASS_NAME_PATTERN.matcher(key).matches()){
- configDTO.setScope(Constants.SERVICE);
+ if (key.equals(Constants.ANY_VALUE)) {
+ query = providerService.findApplications();
+ query.add("global");
} else {
- configDTO.setScope(Constants.APPLICATION);
+ query.add(key);
}
- configDTOs.add(configDTO);
+ for (String q : query) {
+ String config = managementService.getConfig(q);
+ if (config == null) {
+ continue;
+ }
+ ConfigDTO configDTO = new ConfigDTO();
+ configDTO.setKey(q);
+ configDTO.setConfig(config);
+ configDTO.setPath(managementService.getConfigPath(q));
+ if (Constants.GLOBAL_CONFIG.equals(q)) {
+ configDTO.setScope(Constants.GLOBAL_CONFIG);
+ } else if(CLASS_NAME_PATTERN.matcher(q).matches()){
+ configDTO.setScope(Constants.SERVICE);
+ } else {
+ configDTO.setScope(Constants.APPLICATION);
+ }
+ configDTOs.add(configDTO);
+ }
return configDTOs;
}