diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/ServerFactory.java b/generator/src/main/java/com/reajason/javaweb/memshell/ServerFactory.java index eff0e82c..81a2c371 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/ServerFactory.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/ServerFactory.java @@ -235,7 +235,10 @@ public class ServerFactory { } toolMappingBuilder.addShellClass(shellType, shellClass); } - server.addToolMapping(shellTool, toolMappingBuilder.build()); + ToolMapping mapping = toolMappingBuilder.build(); + if (mapping.isNotEmpty()) { + server.addToolMapping(shellTool, mapping); + } } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java index cea48fb1..3885fb11 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java @@ -24,6 +24,10 @@ public class ToolMapping { this.shellClassMap = new LinkedHashMap<>(shellClassMap); } + public boolean isNotEmpty() { + return !shellClassMap.isEmpty(); + } + public Set getSupportedShellTypes() { return shellClassMap.keySet(); } diff --git a/generator/src/test/java/com/reajason/javaweb/memshell/ServerFactoryTest.java b/generator/src/test/java/com/reajason/javaweb/memshell/ServerFactoryTest.java new file mode 100644 index 00000000..9ba0811a --- /dev/null +++ b/generator/src/test/java/com/reajason/javaweb/memshell/ServerFactoryTest.java @@ -0,0 +1,27 @@ +package com.reajason.javaweb.memshell; + +import com.reajason.javaweb.Server; +import com.reajason.javaweb.memshell.server.AbstractServer; +import org.junit.jupiter.api.Test; + +import java.util.Set; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * @author ReaJason + * @since 2025/8/25 + */ +class ServerFactoryTest { + + @Test + void testSupportedTools() { + AbstractServer server = ServerFactory.getServer(Server.XXLJOB); + Set supportedShellTools = server.getSupportedShellTools(); + assertEquals(2, supportedShellTools.size()); + assertTrue(supportedShellTools.contains(ShellTool.Command)); + assertTrue(supportedShellTools.contains(ShellTool.Godzilla)); + } + +} \ No newline at end of file