From 11a70c5a875d600a552c8bd8a7c336bcf7295416 Mon Sep 17 00:00:00 2001 From: Chinmay Pendharkar Date: Mon, 7 Oct 2024 11:58:17 +0800 Subject: [PATCH] fix(agent): improving serve store API to support directory listings --- src/main/java/org/arl/fjage/Agent.java | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/arl/fjage/Agent.java b/src/main/java/org/arl/fjage/Agent.java index ab106133..cd27eee3 100644 --- a/src/main/java/org/arl/fjage/Agent.java +++ b/src/main/java/org/arl/fjage/Agent.java @@ -703,16 +703,32 @@ public Store getStore() { /** * Serve the Agent's store over HTTP. * - * @param enable true to enable, false to disable + * @param directoryListing true to enable directory listing, false otherwise * @return true if successful, false otherwise */ - public boolean serveStore(boolean enable){ + public boolean enableServeStore(boolean directoryListing){ WebServer webServer = getWebServer(); if (webServer != null) { String path = "store/" + this.getClass().getCanonicalName().replace(".", "/"); - if (webServer.hasContext(path) == enable) return true; - if (enable) webServer.add("/"+path, new File(path+"/")); - else webServer.remove("/"+path); + if (webServer.hasContext(path)) return false; + webServer.add("/"+path, new File(path+"/"), new WebServer.WebServerOptions().directoryListed(directoryListing)); + return true; + } + log.warning("No web server found"); + return false; + } + + /** + * Stop serving the Agent's store over HTTP. + * + * @return true if successful, false otherwise + */ + public boolean disableServeStore(){ + WebServer webServer = getWebServer(); + if (webServer != null) { + String path = "store/" + this.getClass().getCanonicalName().replace(".", "/"); + if (!webServer.hasContext(path)) return false; + webServer.remove("/"+path); return true; } log.warning("No web server found");