From e9f7a9140b78d0897738b6c7860d539fd93606f1 Mon Sep 17 00:00:00 2001 From: Kaidong Wu Date: Thu, 23 May 2024 13:19:26 +0800 Subject: [PATCH] feat(agent-backend): adds wildcard character support for startContract.path in cmconfig.json --- .../java/org/bdware/server/CMHttpServer.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/bdware/server/CMHttpServer.java b/src/main/java/org/bdware/server/CMHttpServer.java index cd814d9..79efeb4 100644 --- a/src/main/java/org/bdware/server/CMHttpServer.java +++ b/src/main/java/org/bdware/server/CMHttpServer.java @@ -50,6 +50,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.util.Date; +import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -166,6 +167,21 @@ public class CMHttpServer { private static void startByPath(JsonObject jo) { String path = jo.get("path").getAsString(); + if (path.indexOf('*') != -1) { + int split = Math.max(path.lastIndexOf('/'), 0); + String dirPath = path.substring(0, split), filePath = path.substring(split); + String[] fileName = + (filePath.startsWith("/") ? filePath.substring(1) : filePath).split("\\*"); + File dir = new File(dirPath); + for (File file : Objects.requireNonNull(dir.listFiles())) { + LOGGER.warn(file.getName()); + if (file.getName().startsWith(fileName[0]) + && file.getName().endsWith(fileName[fileName.length - 1])) { + path = file.getAbsolutePath(); + break; + } + } + } File f = new File(path); if (!f.getName().endsWith(".ypk") || !f.exists()) return; @@ -340,7 +356,7 @@ public class CMHttpServer { } private void loadStartContractConfiguration() { - if (cmdConf.startContract != null && cmdConf.startContract.size() > 0) { + if (cmdConf.startContract != null && !cmdConf.startContract.isEmpty()) { ContractManager.scheduledThreadPool.schedule(() -> { for (JsonElement je : cmdConf.startContract) { try {