From 2d1e6f8f50146f2ef4ba3ad48ce48e78de91384f Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Sun, 29 Aug 2021 14:16:42 +0200 Subject: [PATCH] Fixed issue where external pages are not set --- hal-core/src/se/hal/HalServer.java | 10 +++++----- hal-core/src/se/hal/daemon/HalExternalWebDaemon.java | 12 +++++++++--- hal-core/src/se/hal/plugin.json | 1 - 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/hal-core/src/se/hal/HalServer.java b/hal-core/src/se/hal/HalServer.java index de6d582f..0bc5bc21 100644 --- a/hal-core/src/se/hal/HalServer.java +++ b/hal-core/src/se/hal/HalServer.java @@ -67,6 +67,9 @@ public class HalServer { logger.info("Working directory: " + FileUtil.find(".").getAbsolutePath()); + httpExternal = new HalExternalWebDaemon(); + registerDaemon(httpExternal); + // ------------------------------------ // Initialize Plugins // ------------------------------------ @@ -107,9 +110,6 @@ public class HalServer { for (Iterator it = pluginManager.getSingletonIterator(HalDaemon.class); it.hasNext(); ) { HalDaemon daemon = it.next(); registerDaemon(daemon); - - if (daemon instanceof HalExternalWebDaemon) // Keep a reference of the external web server - httpExternal = (HalExternalWebDaemon) daemon; } // ------------------------------------ @@ -198,7 +198,7 @@ public class HalServer { /** * Registers the given page with the external Hal web server. - * Note: as this page will most likely be accessible trough the internet it needs to be robust and secure. + * Note: as this page will most likely be accessible through the internet it needs to be robust and secure. * * @param url is the web path to the page. * @param page is the page to register with the server. @@ -210,7 +210,7 @@ public class HalServer { /** * Registers the given page with the external Hal web server. - * Note: as this page will most likely be accessible trough the internet it needs to be robust and secure. + * Note: as this page will most likely be accessible through the internet it needs to be robust and secure. * * @param page is the page to register with the server. */ diff --git a/hal-core/src/se/hal/daemon/HalExternalWebDaemon.java b/hal-core/src/se/hal/daemon/HalExternalWebDaemon.java index 80274644..b86fdae9 100644 --- a/hal-core/src/se/hal/daemon/HalExternalWebDaemon.java +++ b/hal-core/src/se/hal/daemon/HalExternalWebDaemon.java @@ -14,6 +14,7 @@ import zutil.net.http.HttpServer; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.cert.X509Certificate; +import java.util.HashMap; import java.util.concurrent.ScheduledExecutorService; import java.util.logging.Logger; @@ -24,10 +25,12 @@ import static se.hal.HalContext.CONFIG_HTTP_EXTERNAL_PORT; public class HalExternalWebDaemon implements HalDaemon { private static final Logger logger = LogUtil.getLogger(); + private HalAcmeDataStore acmeDataStore = new HalAcmeDataStore(); private HttpServer httpExternal; private String externalServerUrl; - private HalAcmeDataStore acmeDataStore = new HalAcmeDataStore(); private X509Certificate certificate; + private HashMap pageMap = new HashMap<>(); + @Override public void initiate(ScheduledExecutorService executor) { @@ -83,6 +86,10 @@ public class HalExternalWebDaemon implements HalDaemon { private void startHttpServer() throws GeneralSecurityException, IOException { httpExternal = new HttpServer(HalContext.getIntegerProperty(CONFIG_HTTP_EXTERNAL_PORT), acmeDataStore.getDomainKeyPair().getPrivate(), certificate); + + for (String url : pageMap.keySet()) { + httpExternal.setPage(url, pageMap.get(url)); + } httpExternal.start(); logger.info("External https server up and running at: " + externalServerUrl); @@ -90,7 +97,6 @@ public class HalExternalWebDaemon implements HalDaemon { public void setPage(String url, HttpPage page) { - if (httpExternal != null) - httpExternal.setPage(url, page); + pageMap.put(url, page); } } diff --git a/hal-core/src/se/hal/plugin.json b/hal-core/src/se/hal/plugin.json index 88c2a685..c1958105 100644 --- a/hal-core/src/se/hal/plugin.json +++ b/hal-core/src/se/hal/plugin.json @@ -8,7 +8,6 @@ {"se.hal.intf.HalAbstractControllerManager": "se.hal.EventControllerManager"}, {"se.hal.intf.HalAbstractControllerManager": "se.hal.SensorControllerManager"}, - {"se.hal.intf.HalDaemon": "se.hal.daemon.HalExternalWebDaemon"}, {"se.hal.intf.HalDaemon": "se.hal.daemon.HalMulticastDnsDaemon"}, {"se.hal.intf.HalDaemon": "se.hal.daemon.SensorDataAggregatorDaemon"}, {"se.hal.intf.HalDaemon": "se.hal.daemon.SensorDataCleanupDaemon"},