mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
refactor: simplify config api
This commit is contained in:
@@ -6,6 +6,7 @@ import com.reajason.javaweb.memshell.ServerFactory;
|
||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||
import com.reajason.javaweb.memshell.server.AbstractServer;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import com.reajason.javaweb.probe.generator.response.ResponseBodyGenerator;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -22,7 +23,12 @@ import java.util.*;
|
||||
@CrossOrigin("*")
|
||||
public class ConfigController {
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #config()} for memshell configuration and
|
||||
* {@link #getProbeResponseBodyServers()} for probe ResponseBody servers.
|
||||
*/
|
||||
@RequestMapping("/servers")
|
||||
@Deprecated(since = "2.9.0", forRemoval = false)
|
||||
public Map<String, List<String>> getServers() {
|
||||
Map<String, List<String>> servers = new LinkedHashMap<>();
|
||||
List<String> supportedServers = ServerFactory.getSupportedServers();
|
||||
@@ -34,7 +40,11 @@ public class ConfigController {
|
||||
return servers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #getPackerTree()} for parent/child packer metadata.
|
||||
*/
|
||||
@RequestMapping("/packers")
|
||||
@Deprecated(since = "2.9.0", forRemoval = false)
|
||||
public List<String> getPackers() {
|
||||
return Arrays.stream(Packers.values())
|
||||
.filter(packers -> packers.getParentPacker() == null)
|
||||
@@ -56,9 +66,14 @@ public class ConfigController {
|
||||
.toList();
|
||||
}
|
||||
|
||||
@RequestMapping("/probe/response-body/servers")
|
||||
public List<String> getProbeResponseBodyServers() {
|
||||
return ResponseBodyGenerator.getSupportedServers();
|
||||
}
|
||||
|
||||
@RequestMapping
|
||||
public Map<String, Map<?, ?>> config() {
|
||||
Map<String, Map<?, ?>> coreMap = new HashMap<>(16);
|
||||
Map<String, Map<?, ?>> coreMap = new LinkedHashMap<>(16);
|
||||
List<String> supportedServers = ServerFactory.getSupportedServers();
|
||||
for (String supportedServer : supportedServers) {
|
||||
AbstractServer server = ServerFactory.getServer(supportedServer);
|
||||
@@ -82,4 +97,4 @@ public class ConfigController {
|
||||
commandConfigVO.setImplementationClasses(Arrays.stream(CommandConfig.ImplementationClass.values()).toList());
|
||||
return commandConfigVO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+31
-9
@@ -1,9 +1,12 @@
|
||||
package com.reajason.javaweb.boot.controller;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import com.reajason.javaweb.memshell.ServerFactory;
|
||||
import com.reajason.javaweb.probe.generator.response.ResponseBodyGenerator;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.client.RestClient;
|
||||
@@ -22,6 +25,12 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
public class ConfigControllerIntegrationTest {
|
||||
|
||||
private static final ParameterizedTypeReference<Map<String, Object>> MAP_TYPE = new ParameterizedTypeReference<>() {
|
||||
};
|
||||
|
||||
private static final ParameterizedTypeReference<List<String>> STRING_LIST_TYPE = new ParameterizedTypeReference<>() {
|
||||
};
|
||||
|
||||
@LocalServerPort
|
||||
private int port;
|
||||
|
||||
@@ -36,31 +45,44 @@ public class ConfigControllerIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void testConfigEndpoint() {
|
||||
ResponseEntity<Map> response = restClient.get()
|
||||
ResponseEntity<Map<String, Object>> response = restClient.get()
|
||||
.uri("/api/config")
|
||||
.retrieve()
|
||||
.toEntity(Map.class);
|
||||
.toEntity(MAP_TYPE);
|
||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||
assertNotNull(response.getBody());
|
||||
assertEquals(ServerFactory.getSupportedServers(), List.copyOf(response.getBody().keySet()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigServersEndpoint() {
|
||||
ResponseEntity<Map> response = restClient.get()
|
||||
ResponseEntity<Map<String, Object>> response = restClient.get()
|
||||
.uri("/api/config/servers")
|
||||
.retrieve()
|
||||
.toEntity(Map.class);
|
||||
.toEntity(MAP_TYPE);
|
||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||
assertNotNull(response.getBody());
|
||||
assertEquals(ServerFactory.getSupportedServers(), List.copyOf(response.getBody().keySet()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigPackersEndpoint() {
|
||||
ResponseEntity<List<String>> response = restClient.get()
|
||||
.uri("/api/config/packers")
|
||||
.retrieve()
|
||||
.toEntity(STRING_LIST_TYPE);
|
||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||
assertNotNull(response.getBody());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigPackersEndpoint() {
|
||||
ResponseEntity<List> response = restClient.get()
|
||||
.uri("/api/config/packers")
|
||||
public void testConfigProbeResponseBodyServersEndpoint() {
|
||||
ResponseEntity<List<String>> response = restClient.get()
|
||||
.uri("/api/config/probe/response-body/servers")
|
||||
.retrieve()
|
||||
.toEntity(List.class);
|
||||
.toEntity(STRING_LIST_TYPE);
|
||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||
assertNotNull(response.getBody());
|
||||
assertEquals(ResponseBodyGenerator.getSupportedServers(), response.getBody());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user