diff --git a/.gitignore b/.gitignore index 933119d..a7868ad 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,8 @@ out/ ApiTestManager/node_modules ApiTestManager/dist .cache +.env +CLAUDE.md + +src/main/generated +.claude \ No newline at end of file diff --git a/src/main/java/com/eactive/testmaster/api/controller/MockRouteMgmtController.java b/src/main/java/com/eactive/testmaster/api/controller/MockRouteMgmtController.java index 617b2f9..9b45d7a 100644 --- a/src/main/java/com/eactive/testmaster/api/controller/MockRouteMgmtController.java +++ b/src/main/java/com/eactive/testmaster/api/controller/MockRouteMgmtController.java @@ -8,6 +8,7 @@ import com.eactive.testmaster.api.entity.MockRoute; import com.eactive.testmaster.api.mapper.MockRouteMapper; import com.eactive.testmaster.api.repository.MockRouteGroupRepository; import com.eactive.testmaster.api.service.MockRouteService; +import java.util.Arrays; import java.util.List; import javax.annotation.PostConstruct; import org.apache.commons.lang3.StringUtils; @@ -66,6 +67,7 @@ public class MockRouteMgmtController { mav.addObject("pageable", pageable); mav.addObject("modelSearch", mockRouteSearch); mav.addObject("groupList", mockRouteGroupRepository.findAll()); + mav.addObject("methodList", Arrays.asList("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS")); return mav; } diff --git a/src/main/java/com/eactive/testmaster/api/dto/MockRouteSearch.java b/src/main/java/com/eactive/testmaster/api/dto/MockRouteSearch.java index 5e1bac0..257eb3e 100644 --- a/src/main/java/com/eactive/testmaster/api/dto/MockRouteSearch.java +++ b/src/main/java/com/eactive/testmaster/api/dto/MockRouteSearch.java @@ -12,13 +12,16 @@ public class MockRouteSearch implements BaseSearch { private String name; - private String group; + private List group; + + private List method; @Override public List buildSearchCondition() { List models = new ArrayList<>(); models.add(new ColumnSearchModel("name", SearchCondition.LIKE, name)); - models.add(new ColumnSearchModel("group", SearchCondition.EQUAL, group)); + models.add(new ColumnSearchModel("group", SearchCondition.IN, group)); + models.add(new ColumnSearchModel("method", SearchCondition.IN, method)); return models; } @@ -30,11 +33,19 @@ public class MockRouteSearch implements BaseSearch { this.name = name; } - public String getGroup() { + public List getGroup() { return group; } - public void setGroup(String group) { + public void setGroup(List group) { this.group = group; } + + public List getMethod() { + return method; + } + + public void setMethod(List method) { + this.method = method; + } } diff --git a/src/main/java/com/eactive/testmaster/loadtest/service/Console.java b/src/main/java/com/eactive/testmaster/loadtest/service/Console.java index de52cbf..f803374 100644 --- a/src/main/java/com/eactive/testmaster/loadtest/service/Console.java +++ b/src/main/java/com/eactive/testmaster/loadtest/service/Console.java @@ -7,7 +7,12 @@ public class Console { private static final Logger logger = LoggerFactory.getLogger(Console.class); - public void log(String message) { - logger.info(message); + public void log(Object... args) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < args.length; i++) { + if (i > 0) sb.append(" "); + sb.append(String.valueOf(args[i])); + } + logger.info(sb.toString()); } } diff --git a/src/main/java/com/eactive/testmaster/socket/NettySocketHandler.java b/src/main/java/com/eactive/testmaster/socket/NettySocketHandler.java index f605ec0..a7fbc92 100644 --- a/src/main/java/com/eactive/testmaster/socket/NettySocketHandler.java +++ b/src/main/java/com/eactive/testmaster/socket/NettySocketHandler.java @@ -5,7 +5,10 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.util.ReferenceCountUtil; +import com.eactive.testmaster.loadtest.service.Console; +import javax.script.Bindings; import javax.script.Invocable; +import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; @@ -23,6 +26,9 @@ public class NettySocketHandler extends ChannelInboundHandlerAdapter { ScriptEngineManager manager = new ScriptEngineManager(); this.engine = manager.getEngineByName("nashorn"); try { + Bindings bindings = engine.createBindings(); + bindings.put("console", new Console()); + engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE); engine.eval(scriptContent); } catch (ScriptException e) { logger.error("Failed to initialize script", e); diff --git a/src/main/java/com/eactive/testmaster/socket/controller/NettyTCPServerMgmtController.java b/src/main/java/com/eactive/testmaster/socket/controller/NettyTCPServerMgmtController.java index 7786391..8760d1a 100644 --- a/src/main/java/com/eactive/testmaster/socket/controller/NettyTCPServerMgmtController.java +++ b/src/main/java/com/eactive/testmaster/socket/controller/NettyTCPServerMgmtController.java @@ -2,7 +2,9 @@ package com.eactive.testmaster.socket.controller; import com.eactive.testmaster.socket.entity.NettyServerEntity; import com.eactive.testmaster.socket.service.NettyServerService; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.validation.Valid; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -40,9 +42,14 @@ public class NettyTCPServerMgmtController { Pageable pageable) { ModelAndView mav = new ModelAndView(NETTY_SERVER_LIST_VIEW); Page page = nettyServerService.findAll(serverSearch.buildSpecification(), pageable); + Map runningStatus = new HashMap<>(); + for (NettyServerEntity server : page.getContent()) { + runningStatus.put(server.getPort(), nettyServerService.isServerRunning(server.getPort())); + } mav.addObject("page", page); mav.addObject("pageable", pageable); mav.addObject("modelSearch", serverSearch); + mav.addObject("runningStatus", runningStatus); return mav; } diff --git a/src/main/java/com/eactive/testmaster/socket/service/NettyServerService.java b/src/main/java/com/eactive/testmaster/socket/service/NettyServerService.java index 4430b8f..1fc1bca 100644 --- a/src/main/java/com/eactive/testmaster/socket/service/NettyServerService.java +++ b/src/main/java/com/eactive/testmaster/socket/service/NettyServerService.java @@ -60,7 +60,11 @@ public class NettyServerService { existingServer.setPort(updatedServer.getPort()); existingServer.setActive(updatedServer.getActive()); existingServer.setName(updatedServer.getName()); - existingServer.setScript(updatedServer.getScript()); // Add this line to update the script + existingServer.setScript(updatedServer.getScript()); + existingServer.setPrefixSize(updatedServer.getPrefixSize()); + existingServer.setIncludePrefixLength(updatedServer.getIncludePrefixLength()); + existingServer.setServiceIdLength(updatedServer.getServiceIdLength()); + existingServer.setServiceIdPosition(updatedServer.getServiceIdPosition()); return repository.save(existingServer); } @@ -116,10 +120,9 @@ public class NettyServerService { // return repository.findByActive(true); // } -// @Transactional(readOnly = true) -// public boolean isServerRunning(Integer port) { -// return activeServers.containsKey(port); -// } + public boolean isServerRunning(Integer port) { + return activeServers.containsKey(port); + } // @Transactional(readOnly = true) // public Map getServerStatuses(List ports) { diff --git a/src/main/resources/templates/page/routes/mockRouteList.html b/src/main/resources/templates/page/routes/mockRouteList.html index 3e3f953..30e5bd1 100644 --- a/src/main/resources/templates/page/routes/mockRouteList.html +++ b/src/main/resources/templates/page/routes/mockRouteList.html @@ -14,25 +14,66 @@
-
+ -
- + - - - + +
+
+ + +
+ +
+
+ + +
+ +
+
@@ -41,10 +82,10 @@
- +
- +
@@ -123,7 +164,7 @@ - + @@ -133,7 +174,17 @@
@@ -145,9 +196,12 @@ diff --git a/src/main/resources/templates/page/socket/serverEdit.html b/src/main/resources/templates/page/socket/serverEdit.html index ad10273..a68186b 100644 --- a/src/main/resources/templates/page/socket/serverEdit.html +++ b/src/main/resources/templates/page/socket/serverEdit.html @@ -59,6 +59,46 @@ + +
+
Message Format
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
Server Script
diff --git a/src/main/resources/templates/page/socket/serverList.html b/src/main/resources/templates/page/socket/serverList.html index c3bcd96..d703dc9 100644 --- a/src/main/resources/templates/page/socket/serverList.html +++ b/src/main/resources/templates/page/socket/serverList.html @@ -92,6 +92,8 @@ + Started + Stopped