From 7f22b2dee2cbbccf22496480674363ea3c793f7a Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Sat, 5 Dec 2020 01:00:08 +0100 Subject: [PATCH] Some bugfixes --- .../resource/resource/web/plugin_config.tmpl | 2 +- hal-core/src/se/hal/HalServer.java | 18 ++++++++++++------ .../src/se/hal/page/PluginConfigWebPage.java | 9 ++------- hal-core/src/se/hal/plugin.json | 4 ++-- .../devicedata/TemperatureSensorData.java | 2 +- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/hal-core/resource/resource/web/plugin_config.tmpl b/hal-core/resource/resource/web/plugin_config.tmpl index 18954e1d..94ddfeca 100644 --- a/hal-core/resource/resource/web/plugin_config.tmpl +++ b/hal-core/resource/resource/web/plugin_config.tmpl @@ -10,7 +10,7 @@ Name Version Description - Actions + Enable {{#plugins}} diff --git a/hal-core/src/se/hal/HalServer.java b/hal-core/src/se/hal/HalServer.java index 4bd4b417..df468abd 100644 --- a/hal-core/src/se/hal/HalServer.java +++ b/hal-core/src/se/hal/HalServer.java @@ -18,7 +18,6 @@ import zutil.net.http.page.HttpRedirectPage; import zutil.plugin.PluginData; import zutil.plugin.PluginManager; -import java.io.File; import java.sql.SQLException; import java.util.*; import java.util.concurrent.Executors; @@ -42,7 +41,7 @@ public class HalServer { - public static void main(String[] args) throws InterruptedException { + public static void main(String[] args) { try { // init logging LogUtil.readConfiguration("logging.properties"); @@ -61,10 +60,10 @@ public class HalServer { pluginManager = new PluginManager(); // Disable plugins based on settings - for (PluginData plugin : getPlugins()) { + for (PluginData plugin : getAllPlugins()) { PluginConfig pluginConfig = PluginConfig.getPluginConfig(db, plugin.getName()); - if (pluginConfig != null && !pluginConfig.isEnabled()) { + if (pluginConfig != null && !pluginConfig.isEnabled() && !plugin.getName().equals("Hal-Core")) { logger.info("Disabling plugin '" + plugin.getName() + "'."); plugin.setEnabled(false); } @@ -138,7 +137,10 @@ public class HalServer { } - public static void setPluginEnabled(String name, boolean enabled) throws SQLException { + public static void enablePlugin(String name, boolean enabled) throws SQLException { + if (name.equals("Hal-Core")) + throw new IllegalArgumentException("Hal-Core cannot be disabled as it is critical component of Hal."); + DBConnection db = HalContext.getDB(); PluginConfig pluginConfig = PluginConfig.getPluginConfig(db, name); @@ -152,10 +154,14 @@ public class HalServer { pluginConfig.save(db); } - public static List getPlugins() { + public static List getEnabledPlugins() { return pluginManager.toArray(); } + public static List getAllPlugins() { + return pluginManager.toArrayAll(); + } + public static void registerDaemon(HalDaemon daemon){ daemons.add(daemon); diff --git a/hal-core/src/se/hal/page/PluginConfigWebPage.java b/hal-core/src/se/hal/page/PluginConfigWebPage.java index fbe62f1e..1c6fcc3a 100644 --- a/hal-core/src/se/hal/page/PluginConfigWebPage.java +++ b/hal-core/src/se/hal/page/PluginConfigWebPage.java @@ -7,14 +7,9 @@ import se.hal.intf.HalWebPage; import se.hal.page.HalAlertManager.AlertLevel; import se.hal.page.HalAlertManager.AlertTTL; import se.hal.page.HalAlertManager.HalAlert; -import se.hal.struct.devicedata.SwitchEventData; -import zutil.ObjectUtil; -import zutil.db.DBConnection; import zutil.io.file.FileUtil; import zutil.parser.Templator; -import zutil.plugin.PluginManager; -import java.util.HashMap; import java.util.Map; public class PluginConfigWebPage extends HalWebPage { @@ -35,7 +30,7 @@ public class PluginConfigWebPage extends HalWebPage { if (request.containsKey("action")) { String name = request.get("action_id"); - HalServer.setPluginEnabled(name, + HalServer.enablePlugin(name, (request.containsKey("enabled") && "on".equals(request.get("enabled")))); HalAlertManager.getInstance().addAlert(new HalAlert( @@ -43,7 +38,7 @@ public class PluginConfigWebPage extends HalWebPage { } Templator tmpl = new Templator(FileUtil.find(TEMPLATE)); - tmpl.set("plugins", HalServer.getPlugins()); + tmpl.set("plugins", HalServer.getAllPlugins()); tmpl.set("controllers", ControllerManager.getInstance().getControllers()); return tmpl; } diff --git a/hal-core/src/se/hal/plugin.json b/hal-core/src/se/hal/plugin.json index fa9f4635..3057eb0c 100644 --- a/hal-core/src/se/hal/plugin.json +++ b/hal-core/src/se/hal/plugin.json @@ -1,11 +1,11 @@ { "version": 1.0, - "name": "Hal Core", + "name": "Hal-Core", + "description": "Plugin contains core logic for running Hal.", "interfaces": [ {"se.hal.intf.HalDaemon": "se.hal.daemon.SensorDataAggregatorDaemon"}, {"se.hal.intf.HalDaemon": "se.hal.daemon.SensorDataCleanupDaemon"}, - {"se.hal.intf.HalJsonPage": "se.hal.page.MapJsonPage"}, {"se.hal.intf.HalJsonPage": "se.hal.page.SensorJsonPage"}, diff --git a/hal-core/src/se/hal/struct/devicedata/TemperatureSensorData.java b/hal-core/src/se/hal/struct/devicedata/TemperatureSensorData.java index ec7c5815..60c5a860 100644 --- a/hal-core/src/se/hal/struct/devicedata/TemperatureSensorData.java +++ b/hal-core/src/se/hal/struct/devicedata/TemperatureSensorData.java @@ -32,6 +32,6 @@ public class TemperatureSensorData extends HalSensorData { @Override public String toString(){ - return temperature+" \u00b0C"; + return temperature + " C"; } }