From ded778fd11433e3d4ce393250672bd790040c0f5 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Tue, 10 Nov 2020 18:36:02 +0100 Subject: [PATCH] Fixed build dependency issues by moving hal core into hal-core folder/subproject --- build.gradle | 30 ++-- hal-core/build.gradle | 7 + .../resource}/web/css/bootstrap-switch.css | 0 .../web/css/bootstrap-switch.min.css | 0 .../resource}/web/css/bootstrap-theme.css | 0 .../resource}/web/css/bootstrap-theme.min.css | 0 .../resource}/web/css/bootstrap.css | 0 .../resource}/web/css/bootstrap.min.css | 0 .../resource}/web/css/c3.css | 0 .../resource}/web/css/c3.min.css | 0 .../resource}/web/css/hal.css | 0 .../resource}/web/css/jquery.filer.css | 0 .../resource}/web/event_config.tmpl | 0 .../resource}/web/event_detail.tmpl | 0 .../resource}/web/event_overview.tmpl | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../resource}/web/img/lightbulb_off.svg | 0 .../resource}/web/img/lightbulb_on.svg | 0 .../resource}/web/img/temperature.svg | 0 .../resource}/web/js/bootstrap-switch.js | 0 .../resource}/web/js/bootstrap-switch.min.js | 0 .../resource}/web/js/bootstrap.js | 0 .../resource}/web/js/bootstrap.min.js | 0 .../resource}/web/js/c3.LICENSE | 0 {resource => hal-core/resource}/web/js/c3.js | 0 .../resource}/web/js/c3.min.js | 0 .../resource}/web/js/d3.LICENSE | 0 {resource => hal-core/resource}/web/js/d3.js | 0 .../resource}/web/js/d3.min.js | 0 {resource => hal-core/resource}/web/js/hal.js | 0 .../resource}/web/js/jquery-1.11.3.min.js | 0 .../resource}/web/js/jquery.filer.js | 0 .../resource}/web/js/jquery.filer.min.js | 0 .../resource}/web/js/moment.js | 0 .../resource}/web/js/svg.draggable.js | 0 .../resource}/web/js/svg.draggable.min.js | 0 {resource => hal-core/resource}/web/js/svg.js | 0 .../resource}/web/js/svg.min.js | 0 .../resource}/web/js/svg.title.js | 0 .../resource}/web/main_alerts.tmpl | 0 .../resource}/web/main_index.tmpl | 0 {resource => hal-core/resource}/web/map.tmpl | 0 .../resource}/web/pc_heatmap.tmpl | 0 .../resource}/web/pc_overview.tmpl | 0 .../resource}/web/plugin_config.tmpl | 0 .../resource}/web/property_config.tmpl | 0 .../resource}/web/sensor_config.tmpl | 0 .../resource}/web/sensor_detail.tmpl | 0 .../resource}/web/sensor_overview.tmpl | 0 .../resource}/web/trigger.tmpl | 0 .../resource}/web/user_config.tmpl | 0 .../src}/se/hal/ControllerManager.java | 0 {src => hal-core/src}/se/hal/HalContext.java | 0 hal-core/src/se/hal/HalServer.java | 166 ++++++++++++++++++ .../src}/se/hal/TriggerManager.java | 0 .../src}/se/hal/action/SendEventAction.java | 0 .../daemon/SensorDataAggregatorDaemon.java | 0 .../hal/daemon/SensorDataCleanupDaemon.java | 0 .../se/hal/intf/HalAbstractController.java | 0 .../src}/se/hal/intf/HalAction.java | 0 .../hal/intf/HalAutoScannableController.java | 0 {src => hal-core/src}/se/hal/intf/HalBot.java | 0 .../src}/se/hal/intf/HalDaemon.java | 0 .../src}/se/hal/intf/HalDeviceData.java | 0 .../se/hal/intf/HalDeviceReportListener.java | 0 .../src}/se/hal/intf/HalEventConfig.java | 0 .../src}/se/hal/intf/HalEventController.java | 0 .../src}/se/hal/intf/HalEventData.java | 0 .../se/hal/intf/HalEventReportListener.java | 0 .../src}/se/hal/intf/HalJsonPage.java | 0 .../src}/se/hal/intf/HalSensorConfig.java | 0 .../src}/se/hal/intf/HalSensorController.java | 0 .../src}/se/hal/intf/HalSensorData.java | 0 .../se/hal/intf/HalSensorReportListener.java | 0 .../src}/se/hal/intf/HalSpeechToText.java | 0 .../src}/se/hal/intf/HalTextToSpeech.java | 0 .../src}/se/hal/intf/HalTrigger.java | 0 .../src}/se/hal/intf/HalWebPage.java | 0 .../src}/se/hal/page/EventConfigWebPage.java | 0 .../se/hal/page/EventOverviewWebPage.java | 0 .../src}/se/hal/page/HalAlertManager.java | 0 .../src}/se/hal/page/MapJsonPage.java | 0 .../src}/se/hal/page/MapWebPage.java | 0 .../src}/se/hal/page/PluginConfigWebPage.java | 0 .../se/hal/page/PropertyConfigWebPage.java | 0 .../src}/se/hal/page/SensorConfigWebPage.java | 0 .../src}/se/hal/page/SensorJsonPage.java | 0 .../se/hal/page/SensorOverviewWebPage.java | 0 .../src}/se/hal/page/TriggerWebPage.java | 0 .../src}/se/hal/page/UserConfigWebPage.java | 0 {src => hal-core/src}/se/hal/plugin.json | 0 .../src}/se/hal/struct/AbstractDevice.java | 0 .../src}/se/hal/struct/Action.java | 0 .../se/hal/struct/ClassConfigurationData.java | 0 .../src}/se/hal/struct/Event.java | 0 .../src}/se/hal/struct/PluginConfig.java | 0 .../src}/se/hal/struct/Sensor.java | 0 .../src}/se/hal/struct/Trigger.java | 0 .../src}/se/hal/struct/TriggerFlow.java | 0 {src => hal-core/src}/se/hal/struct/User.java | 0 .../struct/devicedata/DimmerEventData.java | 0 .../struct/devicedata/HumiditySensorData.java | 0 .../struct/devicedata/LightSensorData.java | 0 .../PowerConsumptionSensorData.java | 0 .../struct/devicedata/SwitchEventData.java | 0 .../devicedata/TemperatureSensorData.java | 0 .../src}/se/hal/trigger/DateTimeTrigger.java | 0 .../src}/se/hal/trigger/DeviceTrigger.java | 0 .../src}/se/hal/trigger/EventTrigger.java | 0 .../src}/se/hal/trigger/SensorTrigger.java | 0 .../src}/se/hal/trigger/TimerTrigger.java | 0 .../hal/util/AggregateDataListSqlResult.java | 0 .../src}/se/hal/util/DeviceDataSqlResult.java | 0 .../se/hal/util/DeviceNameComparator.java | 0 .../se/hal/util/HistoryDataListSqlResult.java | 0 .../src}/se/hal/util/UTCTimePeriod.java | 0 .../src}/se/hal/util/UTCTimeUtility.java | 0 .../se/hal/EventControllerManagerTest.java | 0 .../se/hal/SensorControllerManagerTest.java | 0 .../test}/se/hal/TriggerManagerTest.java | 0 .../SensorDataAggregationDeamonTest.java | 0 .../test}/se/hal/util/TimePeriodTest.java | 0 .../test}/se/hal/util/TimeUtilityTest.java | 0 plugins/hal-assistant-google/build.gradle | 1 + plugins/hal-mqtt/build.gradle | 2 +- plugins/hal-netscan/build.gradle | 2 +- plugins/hal-nutups/build.gradle | 2 +- plugins/hal-powerchallenge/build.gradle | 2 +- plugins/hal-raspberry/build.gradle | 1 + plugins/hal-tellstick/build.gradle | 1 + plugins/hal-zigbee/build.gradle | 2 +- plugins/hal-zwave/build.gradle | 1 + settings.gradle | 2 + src/se/hal/HalServer.java | 159 ----------------- 138 files changed, 195 insertions(+), 183 deletions(-) create mode 100644 hal-core/build.gradle rename {resource => hal-core/resource}/web/css/bootstrap-switch.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/bootstrap-switch.min.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/bootstrap-theme.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/bootstrap-theme.min.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/bootstrap.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/bootstrap.min.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/c3.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/c3.min.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/hal.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/css/jquery.filer.css (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/event_config.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/event_detail.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/event_overview.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/fonts/glyphicons-halflings-regular.eot (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/fonts/glyphicons-halflings-regular.svg (100%) rename {resource => hal-core/resource}/web/fonts/glyphicons-halflings-regular.ttf (100%) rename {resource => hal-core/resource}/web/fonts/glyphicons-halflings-regular.woff (100%) rename {resource => hal-core/resource}/web/fonts/glyphicons-halflings-regular.woff2 (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/img/lightbulb_off.svg (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/img/lightbulb_on.svg (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/img/temperature.svg (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/bootstrap-switch.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/bootstrap-switch.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/bootstrap.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/bootstrap.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/c3.LICENSE (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/c3.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/c3.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/d3.LICENSE (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/d3.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/d3.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/hal.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/jquery-1.11.3.min.js (100%) rename {resource => hal-core/resource}/web/js/jquery.filer.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/jquery.filer.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/moment.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/svg.draggable.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/svg.draggable.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/svg.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/svg.min.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/js/svg.title.js (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/main_alerts.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/main_index.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/map.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/pc_heatmap.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/pc_overview.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/plugin_config.tmpl (100%) rename {resource => hal-core/resource}/web/property_config.tmpl (100%) rename {resource => hal-core/resource}/web/sensor_config.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/sensor_detail.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/sensor_overview.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/trigger.tmpl (100%) mode change 100755 => 100644 rename {resource => hal-core/resource}/web/user_config.tmpl (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/ControllerManager.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/HalContext.java (100%) mode change 100755 => 100644 create mode 100644 hal-core/src/se/hal/HalServer.java rename {src => hal-core/src}/se/hal/TriggerManager.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/action/SendEventAction.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/daemon/SensorDataAggregatorDaemon.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/daemon/SensorDataCleanupDaemon.java (100%) rename {src => hal-core/src}/se/hal/intf/HalAbstractController.java (100%) rename {src => hal-core/src}/se/hal/intf/HalAction.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalAutoScannableController.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalBot.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalDaemon.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalDeviceData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalDeviceReportListener.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalEventConfig.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalEventController.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalEventData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalEventReportListener.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalJsonPage.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalSensorConfig.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalSensorController.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalSensorData.java (100%) rename {src => hal-core/src}/se/hal/intf/HalSensorReportListener.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalSpeechToText.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalTextToSpeech.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalTrigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/intf/HalWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/EventConfigWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/EventOverviewWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/HalAlertManager.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/page/MapJsonPage.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/page/MapWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/PluginConfigWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/PropertyConfigWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/SensorConfigWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/SensorJsonPage.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/page/SensorOverviewWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/TriggerWebPage.java (100%) rename {src => hal-core/src}/se/hal/page/UserConfigWebPage.java (100%) rename {src => hal-core/src}/se/hal/plugin.json (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/AbstractDevice.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/Action.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/ClassConfigurationData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/Event.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/PluginConfig.java (100%) rename {src => hal-core/src}/se/hal/struct/Sensor.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/Trigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/TriggerFlow.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/User.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/devicedata/DimmerEventData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/devicedata/HumiditySensorData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/devicedata/LightSensorData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/devicedata/PowerConsumptionSensorData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/devicedata/SwitchEventData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/struct/devicedata/TemperatureSensorData.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/trigger/DateTimeTrigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/trigger/DeviceTrigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/trigger/EventTrigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/trigger/SensorTrigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/trigger/TimerTrigger.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/util/AggregateDataListSqlResult.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/util/DeviceDataSqlResult.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/util/DeviceNameComparator.java (100%) rename {src => hal-core/src}/se/hal/util/HistoryDataListSqlResult.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/util/UTCTimePeriod.java (100%) mode change 100755 => 100644 rename {src => hal-core/src}/se/hal/util/UTCTimeUtility.java (100%) mode change 100755 => 100644 rename {test => hal-core/test}/se/hal/EventControllerManagerTest.java (100%) mode change 100755 => 100644 rename {test => hal-core/test}/se/hal/SensorControllerManagerTest.java (100%) mode change 100755 => 100644 rename {test => hal-core/test}/se/hal/TriggerManagerTest.java (100%) mode change 100755 => 100644 rename {test => hal-core/test}/se/hal/daemon/SensorDataAggregationDeamonTest.java (100%) mode change 100755 => 100644 rename {test => hal-core/test}/se/hal/util/TimePeriodTest.java (100%) mode change 100755 => 100644 rename {test => hal-core/test}/se/hal/util/TimeUtilityTest.java (100%) mode change 100755 => 100644 delete mode 100755 src/se/hal/HalServer.java diff --git a/build.gradle b/build.gradle index 5b949830..1adbabc7 100644 --- a/build.gradle +++ b/build.gradle @@ -3,14 +3,20 @@ plugins { id 'application' } -allprojects { - apply plugin: 'java' +// ------------------------------------ +// Hal common configuration +// ------------------------------------ +allprojects { repositories { mavenLocal() mavenCentral() jcenter() } +} + +subprojects { + apply plugin: 'java-library' dependencies { implementation 'se.koc:zutil:1.0.0-SNAPSHOT' @@ -41,7 +47,9 @@ allprojects { // ------------------------------------ dependencies { - implementation 'org.xerial:sqlite-jdbc:3.32.3.2' + project.subprojects.each { subProject -> + runtime subProject + } } distributions { @@ -50,26 +58,10 @@ distributions { from 'hal.conf.example' from 'hal-default.db' from 'logging.properties' - - project.subprojects.each { sub -> - into('lib') { - from sub.jar - } - } } } } application { mainClass = 'se.hal.HalServer' -} - -// ------------------------------------ -// Hal plugin common configuration -// ------------------------------------ - -subprojects { - dependencies { - implementation project(':') - } } \ No newline at end of file diff --git a/hal-core/build.gradle b/hal-core/build.gradle new file mode 100644 index 00000000..8433b860 --- /dev/null +++ b/hal-core/build.gradle @@ -0,0 +1,7 @@ +// ------------------------------------ +// Hal core configuration +// ------------------------------------ + +dependencies { + implementation 'org.xerial:sqlite-jdbc:3.32.3.2' +} diff --git a/resource/web/css/bootstrap-switch.css b/hal-core/resource/web/css/bootstrap-switch.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/bootstrap-switch.css rename to hal-core/resource/web/css/bootstrap-switch.css diff --git a/resource/web/css/bootstrap-switch.min.css b/hal-core/resource/web/css/bootstrap-switch.min.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/bootstrap-switch.min.css rename to hal-core/resource/web/css/bootstrap-switch.min.css diff --git a/resource/web/css/bootstrap-theme.css b/hal-core/resource/web/css/bootstrap-theme.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/bootstrap-theme.css rename to hal-core/resource/web/css/bootstrap-theme.css diff --git a/resource/web/css/bootstrap-theme.min.css b/hal-core/resource/web/css/bootstrap-theme.min.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/bootstrap-theme.min.css rename to hal-core/resource/web/css/bootstrap-theme.min.css diff --git a/resource/web/css/bootstrap.css b/hal-core/resource/web/css/bootstrap.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/bootstrap.css rename to hal-core/resource/web/css/bootstrap.css diff --git a/resource/web/css/bootstrap.min.css b/hal-core/resource/web/css/bootstrap.min.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/bootstrap.min.css rename to hal-core/resource/web/css/bootstrap.min.css diff --git a/resource/web/css/c3.css b/hal-core/resource/web/css/c3.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/c3.css rename to hal-core/resource/web/css/c3.css diff --git a/resource/web/css/c3.min.css b/hal-core/resource/web/css/c3.min.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/c3.min.css rename to hal-core/resource/web/css/c3.min.css diff --git a/resource/web/css/hal.css b/hal-core/resource/web/css/hal.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/hal.css rename to hal-core/resource/web/css/hal.css diff --git a/resource/web/css/jquery.filer.css b/hal-core/resource/web/css/jquery.filer.css old mode 100755 new mode 100644 similarity index 100% rename from resource/web/css/jquery.filer.css rename to hal-core/resource/web/css/jquery.filer.css diff --git a/resource/web/event_config.tmpl b/hal-core/resource/web/event_config.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/event_config.tmpl rename to hal-core/resource/web/event_config.tmpl diff --git a/resource/web/event_detail.tmpl b/hal-core/resource/web/event_detail.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/event_detail.tmpl rename to hal-core/resource/web/event_detail.tmpl diff --git a/resource/web/event_overview.tmpl b/hal-core/resource/web/event_overview.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/event_overview.tmpl rename to hal-core/resource/web/event_overview.tmpl diff --git a/resource/web/fonts/glyphicons-halflings-regular.eot b/hal-core/resource/web/fonts/glyphicons-halflings-regular.eot old mode 100755 new mode 100644 similarity index 100% rename from resource/web/fonts/glyphicons-halflings-regular.eot rename to hal-core/resource/web/fonts/glyphicons-halflings-regular.eot diff --git a/resource/web/fonts/glyphicons-halflings-regular.svg b/hal-core/resource/web/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from resource/web/fonts/glyphicons-halflings-regular.svg rename to hal-core/resource/web/fonts/glyphicons-halflings-regular.svg diff --git a/resource/web/fonts/glyphicons-halflings-regular.ttf b/hal-core/resource/web/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from resource/web/fonts/glyphicons-halflings-regular.ttf rename to hal-core/resource/web/fonts/glyphicons-halflings-regular.ttf diff --git a/resource/web/fonts/glyphicons-halflings-regular.woff b/hal-core/resource/web/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from resource/web/fonts/glyphicons-halflings-regular.woff rename to hal-core/resource/web/fonts/glyphicons-halflings-regular.woff diff --git a/resource/web/fonts/glyphicons-halflings-regular.woff2 b/hal-core/resource/web/fonts/glyphicons-halflings-regular.woff2 old mode 100755 new mode 100644 similarity index 100% rename from resource/web/fonts/glyphicons-halflings-regular.woff2 rename to hal-core/resource/web/fonts/glyphicons-halflings-regular.woff2 diff --git a/resource/web/img/lightbulb_off.svg b/hal-core/resource/web/img/lightbulb_off.svg old mode 100755 new mode 100644 similarity index 100% rename from resource/web/img/lightbulb_off.svg rename to hal-core/resource/web/img/lightbulb_off.svg diff --git a/resource/web/img/lightbulb_on.svg b/hal-core/resource/web/img/lightbulb_on.svg old mode 100755 new mode 100644 similarity index 100% rename from resource/web/img/lightbulb_on.svg rename to hal-core/resource/web/img/lightbulb_on.svg diff --git a/resource/web/img/temperature.svg b/hal-core/resource/web/img/temperature.svg old mode 100755 new mode 100644 similarity index 100% rename from resource/web/img/temperature.svg rename to hal-core/resource/web/img/temperature.svg diff --git a/resource/web/js/bootstrap-switch.js b/hal-core/resource/web/js/bootstrap-switch.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/bootstrap-switch.js rename to hal-core/resource/web/js/bootstrap-switch.js diff --git a/resource/web/js/bootstrap-switch.min.js b/hal-core/resource/web/js/bootstrap-switch.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/bootstrap-switch.min.js rename to hal-core/resource/web/js/bootstrap-switch.min.js diff --git a/resource/web/js/bootstrap.js b/hal-core/resource/web/js/bootstrap.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/bootstrap.js rename to hal-core/resource/web/js/bootstrap.js diff --git a/resource/web/js/bootstrap.min.js b/hal-core/resource/web/js/bootstrap.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/bootstrap.min.js rename to hal-core/resource/web/js/bootstrap.min.js diff --git a/resource/web/js/c3.LICENSE b/hal-core/resource/web/js/c3.LICENSE old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/c3.LICENSE rename to hal-core/resource/web/js/c3.LICENSE diff --git a/resource/web/js/c3.js b/hal-core/resource/web/js/c3.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/c3.js rename to hal-core/resource/web/js/c3.js diff --git a/resource/web/js/c3.min.js b/hal-core/resource/web/js/c3.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/c3.min.js rename to hal-core/resource/web/js/c3.min.js diff --git a/resource/web/js/d3.LICENSE b/hal-core/resource/web/js/d3.LICENSE old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/d3.LICENSE rename to hal-core/resource/web/js/d3.LICENSE diff --git a/resource/web/js/d3.js b/hal-core/resource/web/js/d3.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/d3.js rename to hal-core/resource/web/js/d3.js diff --git a/resource/web/js/d3.min.js b/hal-core/resource/web/js/d3.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/d3.min.js rename to hal-core/resource/web/js/d3.min.js diff --git a/resource/web/js/hal.js b/hal-core/resource/web/js/hal.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/hal.js rename to hal-core/resource/web/js/hal.js diff --git a/resource/web/js/jquery-1.11.3.min.js b/hal-core/resource/web/js/jquery-1.11.3.min.js similarity index 100% rename from resource/web/js/jquery-1.11.3.min.js rename to hal-core/resource/web/js/jquery-1.11.3.min.js diff --git a/resource/web/js/jquery.filer.js b/hal-core/resource/web/js/jquery.filer.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/jquery.filer.js rename to hal-core/resource/web/js/jquery.filer.js diff --git a/resource/web/js/jquery.filer.min.js b/hal-core/resource/web/js/jquery.filer.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/jquery.filer.min.js rename to hal-core/resource/web/js/jquery.filer.min.js diff --git a/resource/web/js/moment.js b/hal-core/resource/web/js/moment.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/moment.js rename to hal-core/resource/web/js/moment.js diff --git a/resource/web/js/svg.draggable.js b/hal-core/resource/web/js/svg.draggable.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/svg.draggable.js rename to hal-core/resource/web/js/svg.draggable.js diff --git a/resource/web/js/svg.draggable.min.js b/hal-core/resource/web/js/svg.draggable.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/svg.draggable.min.js rename to hal-core/resource/web/js/svg.draggable.min.js diff --git a/resource/web/js/svg.js b/hal-core/resource/web/js/svg.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/svg.js rename to hal-core/resource/web/js/svg.js diff --git a/resource/web/js/svg.min.js b/hal-core/resource/web/js/svg.min.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/svg.min.js rename to hal-core/resource/web/js/svg.min.js diff --git a/resource/web/js/svg.title.js b/hal-core/resource/web/js/svg.title.js old mode 100755 new mode 100644 similarity index 100% rename from resource/web/js/svg.title.js rename to hal-core/resource/web/js/svg.title.js diff --git a/resource/web/main_alerts.tmpl b/hal-core/resource/web/main_alerts.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/main_alerts.tmpl rename to hal-core/resource/web/main_alerts.tmpl diff --git a/resource/web/main_index.tmpl b/hal-core/resource/web/main_index.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/main_index.tmpl rename to hal-core/resource/web/main_index.tmpl diff --git a/resource/web/map.tmpl b/hal-core/resource/web/map.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/map.tmpl rename to hal-core/resource/web/map.tmpl diff --git a/resource/web/pc_heatmap.tmpl b/hal-core/resource/web/pc_heatmap.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/pc_heatmap.tmpl rename to hal-core/resource/web/pc_heatmap.tmpl diff --git a/resource/web/pc_overview.tmpl b/hal-core/resource/web/pc_overview.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/pc_overview.tmpl rename to hal-core/resource/web/pc_overview.tmpl diff --git a/resource/web/plugin_config.tmpl b/hal-core/resource/web/plugin_config.tmpl similarity index 100% rename from resource/web/plugin_config.tmpl rename to hal-core/resource/web/plugin_config.tmpl diff --git a/resource/web/property_config.tmpl b/hal-core/resource/web/property_config.tmpl similarity index 100% rename from resource/web/property_config.tmpl rename to hal-core/resource/web/property_config.tmpl diff --git a/resource/web/sensor_config.tmpl b/hal-core/resource/web/sensor_config.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/sensor_config.tmpl rename to hal-core/resource/web/sensor_config.tmpl diff --git a/resource/web/sensor_detail.tmpl b/hal-core/resource/web/sensor_detail.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/sensor_detail.tmpl rename to hal-core/resource/web/sensor_detail.tmpl diff --git a/resource/web/sensor_overview.tmpl b/hal-core/resource/web/sensor_overview.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/sensor_overview.tmpl rename to hal-core/resource/web/sensor_overview.tmpl diff --git a/resource/web/trigger.tmpl b/hal-core/resource/web/trigger.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/trigger.tmpl rename to hal-core/resource/web/trigger.tmpl diff --git a/resource/web/user_config.tmpl b/hal-core/resource/web/user_config.tmpl old mode 100755 new mode 100644 similarity index 100% rename from resource/web/user_config.tmpl rename to hal-core/resource/web/user_config.tmpl diff --git a/src/se/hal/ControllerManager.java b/hal-core/src/se/hal/ControllerManager.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/ControllerManager.java rename to hal-core/src/se/hal/ControllerManager.java diff --git a/src/se/hal/HalContext.java b/hal-core/src/se/hal/HalContext.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/HalContext.java rename to hal-core/src/se/hal/HalContext.java diff --git a/hal-core/src/se/hal/HalServer.java b/hal-core/src/se/hal/HalServer.java new file mode 100644 index 00000000..414f206b --- /dev/null +++ b/hal-core/src/se/hal/HalServer.java @@ -0,0 +1,166 @@ +package se.hal; + + +import se.hal.intf.HalDaemon; +import se.hal.intf.HalWebPage; +import se.hal.intf.HalJsonPage; +import se.hal.page.*; +import se.hal.struct.Event; +import se.hal.struct.PluginConfig; +import se.hal.struct.Sensor; +import se.hal.struct.TriggerFlow; +import zutil.db.DBConnection; +import zutil.io.file.FileUtil; +import zutil.log.LogUtil; +import zutil.net.http.HttpServer; +import zutil.net.http.page.HttpFilePage; +import zutil.net.http.page.HttpRedirectPage; +import zutil.plugin.PluginData; +import zutil.plugin.PluginManager; + +import java.sql.SQLException; +import java.util.*; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Main class for Hal + */ +public class HalServer { + private static final Logger logger = LogUtil.getLogger(); + + private static ScheduledExecutorService daemonExecutor; + private static List daemons = new ArrayList<>(); + + private static HttpServer http; + private static List pages = new ArrayList<>(); + + private static PluginManager pluginManager; + + + + public static void main(String[] args) throws InterruptedException { + try { + // init logging + LogUtil.readConfiguration("logging.properties"); + + // init DB and other configurations + HalContext.initialize(); + DBConnection db = HalContext.getDB(); + + // ------------------------------------ + // Init Plugins + // ------------------------------------ + + logger.info("Looking for plugins."); + pluginManager = new PluginManager(); + + // Disable plugins based on settings + for (PluginData plugin : getPlugins()) { + PluginConfig pluginConfig = PluginConfig.getPluginConfig(db, plugin.getName()); + + if (pluginConfig != null && !pluginConfig.isEnabled()) { + logger.info("Disabling plugin '" + plugin.getName() + "'."); + plugin.setEnabled(false); + } + } + + // ------------------------------------ + // Init Managers + // ------------------------------------ + + logger.info("Initializing managers."); + + HalAlertManager.initialize(); + ControllerManager.initialize(pluginManager); + TriggerManager.initialize(pluginManager); + + // ------------------------------------ + // Import sensors,events and triggers + // ------------------------------------ + + logger.info("Initializing Sensors and Events."); + + for (Sensor sensor : Sensor.getLocalSensors(db)) { + ControllerManager.getInstance().register(sensor); + } + for (Event event : Event.getLocalEvents(db)) { + ControllerManager.getInstance().register(event); + } + // Import triggers + for (TriggerFlow flow : TriggerFlow.getTriggerFlows(db)) { + TriggerManager.getInstance().register(flow); + } + + // ------------------------------------ + // Init daemons + // ------------------------------------ + + logger.info("Initializing daemons."); + + // We set only one thread for easier troubleshooting + daemonExecutor = Executors.newScheduledThreadPool(1); + for (Iterator it = pluginManager.getSingletonIterator(HalDaemon.class); it.hasNext(); ) { + HalDaemon daemon = it.next(); + logger.info("Registering daemon: " + daemon.getClass()); + registerDaemon(daemon); + } + + // ------------------------------------ + // Init http server + // ------------------------------------ + + logger.info("Initializing HTTP Server."); + + HalWebPage.getRootNav().createSubNav("Sensors"); + HalWebPage.getRootNav().createSubNav("Events").setWeight(100); + HalWebPage.getRootNav().createSubNav("Settings").setWeight(200); + + http = new HttpServer(HalContext.getIntegerProperty(HalContext.PROPERTY_HTTP_PORT)); + http.setDefaultPage(new HttpFilePage(FileUtil.find("resource/web/"))); + http.setPage("/", new HttpRedirectPage("/map")); + http.setPage(HalAlertManager.getInstance().getUrl(), HalAlertManager.getInstance()); + for (Iterator it = pluginManager.getSingletonIterator(HalJsonPage.class); it.hasNext(); ) + registerPage(it.next()); + for (Iterator it = pluginManager.getSingletonIterator(HalWebPage.class); it.hasNext(); ) + registerPage(it.next()); + http.start(); + + } catch (Exception e) { + logger.log(Level.SEVERE, "Startup failed.", e); + System.exit(1); + } + } + + + public static void setPluginEnabled(String name, boolean enabled) throws SQLException { + DBConnection db = HalContext.getDB(); + PluginConfig pluginConfig = PluginConfig.getPluginConfig(db, name); + + if (pluginConfig == null) + pluginConfig = new PluginConfig(name); + + logger.info("Plugin '" + name + "' has been " + (enabled ? "enabled" : "disabled") + ", change will take affect after restart."); + pluginManager.getPluginData(name).setEnabled(enabled); + + pluginConfig.setEnabled(enabled); + pluginConfig.save(db); + } + + public static List getPlugins() { + return pluginManager.toArray(); + } + + + public static void registerDaemon(HalDaemon daemon){ + daemons.add(daemon); + daemon.initiate(daemonExecutor); + } + + public static void registerPage(HalWebPage page){ + pages.add(page); + http.setPage(page.getId(), page); + } +} diff --git a/src/se/hal/TriggerManager.java b/hal-core/src/se/hal/TriggerManager.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/TriggerManager.java rename to hal-core/src/se/hal/TriggerManager.java diff --git a/src/se/hal/action/SendEventAction.java b/hal-core/src/se/hal/action/SendEventAction.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/action/SendEventAction.java rename to hal-core/src/se/hal/action/SendEventAction.java diff --git a/src/se/hal/daemon/SensorDataAggregatorDaemon.java b/hal-core/src/se/hal/daemon/SensorDataAggregatorDaemon.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/daemon/SensorDataAggregatorDaemon.java rename to hal-core/src/se/hal/daemon/SensorDataAggregatorDaemon.java diff --git a/src/se/hal/daemon/SensorDataCleanupDaemon.java b/hal-core/src/se/hal/daemon/SensorDataCleanupDaemon.java similarity index 100% rename from src/se/hal/daemon/SensorDataCleanupDaemon.java rename to hal-core/src/se/hal/daemon/SensorDataCleanupDaemon.java diff --git a/src/se/hal/intf/HalAbstractController.java b/hal-core/src/se/hal/intf/HalAbstractController.java similarity index 100% rename from src/se/hal/intf/HalAbstractController.java rename to hal-core/src/se/hal/intf/HalAbstractController.java diff --git a/src/se/hal/intf/HalAction.java b/hal-core/src/se/hal/intf/HalAction.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalAction.java rename to hal-core/src/se/hal/intf/HalAction.java diff --git a/src/se/hal/intf/HalAutoScannableController.java b/hal-core/src/se/hal/intf/HalAutoScannableController.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalAutoScannableController.java rename to hal-core/src/se/hal/intf/HalAutoScannableController.java diff --git a/src/se/hal/intf/HalBot.java b/hal-core/src/se/hal/intf/HalBot.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalBot.java rename to hal-core/src/se/hal/intf/HalBot.java diff --git a/src/se/hal/intf/HalDaemon.java b/hal-core/src/se/hal/intf/HalDaemon.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalDaemon.java rename to hal-core/src/se/hal/intf/HalDaemon.java diff --git a/src/se/hal/intf/HalDeviceData.java b/hal-core/src/se/hal/intf/HalDeviceData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalDeviceData.java rename to hal-core/src/se/hal/intf/HalDeviceData.java diff --git a/src/se/hal/intf/HalDeviceReportListener.java b/hal-core/src/se/hal/intf/HalDeviceReportListener.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalDeviceReportListener.java rename to hal-core/src/se/hal/intf/HalDeviceReportListener.java diff --git a/src/se/hal/intf/HalEventConfig.java b/hal-core/src/se/hal/intf/HalEventConfig.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalEventConfig.java rename to hal-core/src/se/hal/intf/HalEventConfig.java diff --git a/src/se/hal/intf/HalEventController.java b/hal-core/src/se/hal/intf/HalEventController.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalEventController.java rename to hal-core/src/se/hal/intf/HalEventController.java diff --git a/src/se/hal/intf/HalEventData.java b/hal-core/src/se/hal/intf/HalEventData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalEventData.java rename to hal-core/src/se/hal/intf/HalEventData.java diff --git a/src/se/hal/intf/HalEventReportListener.java b/hal-core/src/se/hal/intf/HalEventReportListener.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalEventReportListener.java rename to hal-core/src/se/hal/intf/HalEventReportListener.java diff --git a/src/se/hal/intf/HalJsonPage.java b/hal-core/src/se/hal/intf/HalJsonPage.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalJsonPage.java rename to hal-core/src/se/hal/intf/HalJsonPage.java diff --git a/src/se/hal/intf/HalSensorConfig.java b/hal-core/src/se/hal/intf/HalSensorConfig.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalSensorConfig.java rename to hal-core/src/se/hal/intf/HalSensorConfig.java diff --git a/src/se/hal/intf/HalSensorController.java b/hal-core/src/se/hal/intf/HalSensorController.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalSensorController.java rename to hal-core/src/se/hal/intf/HalSensorController.java diff --git a/src/se/hal/intf/HalSensorData.java b/hal-core/src/se/hal/intf/HalSensorData.java similarity index 100% rename from src/se/hal/intf/HalSensorData.java rename to hal-core/src/se/hal/intf/HalSensorData.java diff --git a/src/se/hal/intf/HalSensorReportListener.java b/hal-core/src/se/hal/intf/HalSensorReportListener.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalSensorReportListener.java rename to hal-core/src/se/hal/intf/HalSensorReportListener.java diff --git a/src/se/hal/intf/HalSpeechToText.java b/hal-core/src/se/hal/intf/HalSpeechToText.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalSpeechToText.java rename to hal-core/src/se/hal/intf/HalSpeechToText.java diff --git a/src/se/hal/intf/HalTextToSpeech.java b/hal-core/src/se/hal/intf/HalTextToSpeech.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalTextToSpeech.java rename to hal-core/src/se/hal/intf/HalTextToSpeech.java diff --git a/src/se/hal/intf/HalTrigger.java b/hal-core/src/se/hal/intf/HalTrigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/intf/HalTrigger.java rename to hal-core/src/se/hal/intf/HalTrigger.java diff --git a/src/se/hal/intf/HalWebPage.java b/hal-core/src/se/hal/intf/HalWebPage.java similarity index 100% rename from src/se/hal/intf/HalWebPage.java rename to hal-core/src/se/hal/intf/HalWebPage.java diff --git a/src/se/hal/page/EventConfigWebPage.java b/hal-core/src/se/hal/page/EventConfigWebPage.java similarity index 100% rename from src/se/hal/page/EventConfigWebPage.java rename to hal-core/src/se/hal/page/EventConfigWebPage.java diff --git a/src/se/hal/page/EventOverviewWebPage.java b/hal-core/src/se/hal/page/EventOverviewWebPage.java similarity index 100% rename from src/se/hal/page/EventOverviewWebPage.java rename to hal-core/src/se/hal/page/EventOverviewWebPage.java diff --git a/src/se/hal/page/HalAlertManager.java b/hal-core/src/se/hal/page/HalAlertManager.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/page/HalAlertManager.java rename to hal-core/src/se/hal/page/HalAlertManager.java diff --git a/src/se/hal/page/MapJsonPage.java b/hal-core/src/se/hal/page/MapJsonPage.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/page/MapJsonPage.java rename to hal-core/src/se/hal/page/MapJsonPage.java diff --git a/src/se/hal/page/MapWebPage.java b/hal-core/src/se/hal/page/MapWebPage.java similarity index 100% rename from src/se/hal/page/MapWebPage.java rename to hal-core/src/se/hal/page/MapWebPage.java diff --git a/src/se/hal/page/PluginConfigWebPage.java b/hal-core/src/se/hal/page/PluginConfigWebPage.java similarity index 100% rename from src/se/hal/page/PluginConfigWebPage.java rename to hal-core/src/se/hal/page/PluginConfigWebPage.java diff --git a/src/se/hal/page/PropertyConfigWebPage.java b/hal-core/src/se/hal/page/PropertyConfigWebPage.java similarity index 100% rename from src/se/hal/page/PropertyConfigWebPage.java rename to hal-core/src/se/hal/page/PropertyConfigWebPage.java diff --git a/src/se/hal/page/SensorConfigWebPage.java b/hal-core/src/se/hal/page/SensorConfigWebPage.java similarity index 100% rename from src/se/hal/page/SensorConfigWebPage.java rename to hal-core/src/se/hal/page/SensorConfigWebPage.java diff --git a/src/se/hal/page/SensorJsonPage.java b/hal-core/src/se/hal/page/SensorJsonPage.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/page/SensorJsonPage.java rename to hal-core/src/se/hal/page/SensorJsonPage.java diff --git a/src/se/hal/page/SensorOverviewWebPage.java b/hal-core/src/se/hal/page/SensorOverviewWebPage.java similarity index 100% rename from src/se/hal/page/SensorOverviewWebPage.java rename to hal-core/src/se/hal/page/SensorOverviewWebPage.java diff --git a/src/se/hal/page/TriggerWebPage.java b/hal-core/src/se/hal/page/TriggerWebPage.java similarity index 100% rename from src/se/hal/page/TriggerWebPage.java rename to hal-core/src/se/hal/page/TriggerWebPage.java diff --git a/src/se/hal/page/UserConfigWebPage.java b/hal-core/src/se/hal/page/UserConfigWebPage.java similarity index 100% rename from src/se/hal/page/UserConfigWebPage.java rename to hal-core/src/se/hal/page/UserConfigWebPage.java diff --git a/src/se/hal/plugin.json b/hal-core/src/se/hal/plugin.json old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/plugin.json rename to hal-core/src/se/hal/plugin.json diff --git a/src/se/hal/struct/AbstractDevice.java b/hal-core/src/se/hal/struct/AbstractDevice.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/AbstractDevice.java rename to hal-core/src/se/hal/struct/AbstractDevice.java diff --git a/src/se/hal/struct/Action.java b/hal-core/src/se/hal/struct/Action.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/Action.java rename to hal-core/src/se/hal/struct/Action.java diff --git a/src/se/hal/struct/ClassConfigurationData.java b/hal-core/src/se/hal/struct/ClassConfigurationData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/ClassConfigurationData.java rename to hal-core/src/se/hal/struct/ClassConfigurationData.java diff --git a/src/se/hal/struct/Event.java b/hal-core/src/se/hal/struct/Event.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/Event.java rename to hal-core/src/se/hal/struct/Event.java diff --git a/src/se/hal/struct/PluginConfig.java b/hal-core/src/se/hal/struct/PluginConfig.java similarity index 100% rename from src/se/hal/struct/PluginConfig.java rename to hal-core/src/se/hal/struct/PluginConfig.java diff --git a/src/se/hal/struct/Sensor.java b/hal-core/src/se/hal/struct/Sensor.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/Sensor.java rename to hal-core/src/se/hal/struct/Sensor.java diff --git a/src/se/hal/struct/Trigger.java b/hal-core/src/se/hal/struct/Trigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/Trigger.java rename to hal-core/src/se/hal/struct/Trigger.java diff --git a/src/se/hal/struct/TriggerFlow.java b/hal-core/src/se/hal/struct/TriggerFlow.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/TriggerFlow.java rename to hal-core/src/se/hal/struct/TriggerFlow.java diff --git a/src/se/hal/struct/User.java b/hal-core/src/se/hal/struct/User.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/User.java rename to hal-core/src/se/hal/struct/User.java diff --git a/src/se/hal/struct/devicedata/DimmerEventData.java b/hal-core/src/se/hal/struct/devicedata/DimmerEventData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/devicedata/DimmerEventData.java rename to hal-core/src/se/hal/struct/devicedata/DimmerEventData.java diff --git a/src/se/hal/struct/devicedata/HumiditySensorData.java b/hal-core/src/se/hal/struct/devicedata/HumiditySensorData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/devicedata/HumiditySensorData.java rename to hal-core/src/se/hal/struct/devicedata/HumiditySensorData.java diff --git a/src/se/hal/struct/devicedata/LightSensorData.java b/hal-core/src/se/hal/struct/devicedata/LightSensorData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/devicedata/LightSensorData.java rename to hal-core/src/se/hal/struct/devicedata/LightSensorData.java diff --git a/src/se/hal/struct/devicedata/PowerConsumptionSensorData.java b/hal-core/src/se/hal/struct/devicedata/PowerConsumptionSensorData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/devicedata/PowerConsumptionSensorData.java rename to hal-core/src/se/hal/struct/devicedata/PowerConsumptionSensorData.java diff --git a/src/se/hal/struct/devicedata/SwitchEventData.java b/hal-core/src/se/hal/struct/devicedata/SwitchEventData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/devicedata/SwitchEventData.java rename to hal-core/src/se/hal/struct/devicedata/SwitchEventData.java diff --git a/src/se/hal/struct/devicedata/TemperatureSensorData.java b/hal-core/src/se/hal/struct/devicedata/TemperatureSensorData.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/struct/devicedata/TemperatureSensorData.java rename to hal-core/src/se/hal/struct/devicedata/TemperatureSensorData.java diff --git a/src/se/hal/trigger/DateTimeTrigger.java b/hal-core/src/se/hal/trigger/DateTimeTrigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/trigger/DateTimeTrigger.java rename to hal-core/src/se/hal/trigger/DateTimeTrigger.java diff --git a/src/se/hal/trigger/DeviceTrigger.java b/hal-core/src/se/hal/trigger/DeviceTrigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/trigger/DeviceTrigger.java rename to hal-core/src/se/hal/trigger/DeviceTrigger.java diff --git a/src/se/hal/trigger/EventTrigger.java b/hal-core/src/se/hal/trigger/EventTrigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/trigger/EventTrigger.java rename to hal-core/src/se/hal/trigger/EventTrigger.java diff --git a/src/se/hal/trigger/SensorTrigger.java b/hal-core/src/se/hal/trigger/SensorTrigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/trigger/SensorTrigger.java rename to hal-core/src/se/hal/trigger/SensorTrigger.java diff --git a/src/se/hal/trigger/TimerTrigger.java b/hal-core/src/se/hal/trigger/TimerTrigger.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/trigger/TimerTrigger.java rename to hal-core/src/se/hal/trigger/TimerTrigger.java diff --git a/src/se/hal/util/AggregateDataListSqlResult.java b/hal-core/src/se/hal/util/AggregateDataListSqlResult.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/util/AggregateDataListSqlResult.java rename to hal-core/src/se/hal/util/AggregateDataListSqlResult.java diff --git a/src/se/hal/util/DeviceDataSqlResult.java b/hal-core/src/se/hal/util/DeviceDataSqlResult.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/util/DeviceDataSqlResult.java rename to hal-core/src/se/hal/util/DeviceDataSqlResult.java diff --git a/src/se/hal/util/DeviceNameComparator.java b/hal-core/src/se/hal/util/DeviceNameComparator.java similarity index 100% rename from src/se/hal/util/DeviceNameComparator.java rename to hal-core/src/se/hal/util/DeviceNameComparator.java diff --git a/src/se/hal/util/HistoryDataListSqlResult.java b/hal-core/src/se/hal/util/HistoryDataListSqlResult.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/util/HistoryDataListSqlResult.java rename to hal-core/src/se/hal/util/HistoryDataListSqlResult.java diff --git a/src/se/hal/util/UTCTimePeriod.java b/hal-core/src/se/hal/util/UTCTimePeriod.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/util/UTCTimePeriod.java rename to hal-core/src/se/hal/util/UTCTimePeriod.java diff --git a/src/se/hal/util/UTCTimeUtility.java b/hal-core/src/se/hal/util/UTCTimeUtility.java old mode 100755 new mode 100644 similarity index 100% rename from src/se/hal/util/UTCTimeUtility.java rename to hal-core/src/se/hal/util/UTCTimeUtility.java diff --git a/test/se/hal/EventControllerManagerTest.java b/hal-core/test/se/hal/EventControllerManagerTest.java old mode 100755 new mode 100644 similarity index 100% rename from test/se/hal/EventControllerManagerTest.java rename to hal-core/test/se/hal/EventControllerManagerTest.java diff --git a/test/se/hal/SensorControllerManagerTest.java b/hal-core/test/se/hal/SensorControllerManagerTest.java old mode 100755 new mode 100644 similarity index 100% rename from test/se/hal/SensorControllerManagerTest.java rename to hal-core/test/se/hal/SensorControllerManagerTest.java diff --git a/test/se/hal/TriggerManagerTest.java b/hal-core/test/se/hal/TriggerManagerTest.java old mode 100755 new mode 100644 similarity index 100% rename from test/se/hal/TriggerManagerTest.java rename to hal-core/test/se/hal/TriggerManagerTest.java diff --git a/test/se/hal/daemon/SensorDataAggregationDeamonTest.java b/hal-core/test/se/hal/daemon/SensorDataAggregationDeamonTest.java old mode 100755 new mode 100644 similarity index 100% rename from test/se/hal/daemon/SensorDataAggregationDeamonTest.java rename to hal-core/test/se/hal/daemon/SensorDataAggregationDeamonTest.java diff --git a/test/se/hal/util/TimePeriodTest.java b/hal-core/test/se/hal/util/TimePeriodTest.java old mode 100755 new mode 100644 similarity index 100% rename from test/se/hal/util/TimePeriodTest.java rename to hal-core/test/se/hal/util/TimePeriodTest.java diff --git a/test/se/hal/util/TimeUtilityTest.java b/hal-core/test/se/hal/util/TimeUtilityTest.java old mode 100755 new mode 100644 similarity index 100% rename from test/se/hal/util/TimeUtilityTest.java rename to hal-core/test/se/hal/util/TimeUtilityTest.java diff --git a/plugins/hal-assistant-google/build.gradle b/plugins/hal-assistant-google/build.gradle index 31ca0b6a..31f0f1e1 100644 --- a/plugins/hal-assistant-google/build.gradle +++ b/plugins/hal-assistant-google/build.gradle @@ -1,3 +1,4 @@ dependencies { + implementation project(':hal-core') implementation 'com.google.actions:actions-on-google:1.8.0' } diff --git a/plugins/hal-mqtt/build.gradle b/plugins/hal-mqtt/build.gradle index 2e3ca6ab..81fb360f 100644 --- a/plugins/hal-mqtt/build.gradle +++ b/plugins/hal-mqtt/build.gradle @@ -1,3 +1,3 @@ dependencies { - + implementation project(':hal-core') } diff --git a/plugins/hal-netscan/build.gradle b/plugins/hal-netscan/build.gradle index 2e3ca6ab..81fb360f 100644 --- a/plugins/hal-netscan/build.gradle +++ b/plugins/hal-netscan/build.gradle @@ -1,3 +1,3 @@ dependencies { - + implementation project(':hal-core') } diff --git a/plugins/hal-nutups/build.gradle b/plugins/hal-nutups/build.gradle index 2e3ca6ab..81fb360f 100644 --- a/plugins/hal-nutups/build.gradle +++ b/plugins/hal-nutups/build.gradle @@ -1,3 +1,3 @@ dependencies { - + implementation project(':hal-core') } diff --git a/plugins/hal-powerchallenge/build.gradle b/plugins/hal-powerchallenge/build.gradle index 2e3ca6ab..81fb360f 100644 --- a/plugins/hal-powerchallenge/build.gradle +++ b/plugins/hal-powerchallenge/build.gradle @@ -1,3 +1,3 @@ dependencies { - + implementation project(':hal-core') } diff --git a/plugins/hal-raspberry/build.gradle b/plugins/hal-raspberry/build.gradle index 67e8afe0..1a7bc3d3 100644 --- a/plugins/hal-raspberry/build.gradle +++ b/plugins/hal-raspberry/build.gradle @@ -1,4 +1,5 @@ dependencies { + implementation project(':hal-core') implementation 'com.pi4j:pi4j-core:1.1' implementation 'com.pi4j:pi4j-device:1.1' implementation 'com.pi4j:pi4j-gpio-extension:1.1' diff --git a/plugins/hal-tellstick/build.gradle b/plugins/hal-tellstick/build.gradle index 0c3a0b10..b6d73c32 100644 --- a/plugins/hal-tellstick/build.gradle +++ b/plugins/hal-tellstick/build.gradle @@ -1,3 +1,4 @@ dependencies { + implementation project(':hal-core') implementation 'com.fazecast:jSerialComm:1.3.11' } diff --git a/plugins/hal-zigbee/build.gradle b/plugins/hal-zigbee/build.gradle index 2e3ca6ab..81fb360f 100644 --- a/plugins/hal-zigbee/build.gradle +++ b/plugins/hal-zigbee/build.gradle @@ -1,3 +1,3 @@ dependencies { - + implementation project(':hal-core') } diff --git a/plugins/hal-zwave/build.gradle b/plugins/hal-zwave/build.gradle index a16699a2..1b85747c 100644 --- a/plugins/hal-zwave/build.gradle +++ b/plugins/hal-zwave/build.gradle @@ -1,3 +1,4 @@ dependencies { + implementation project(':hal-core') implementation 'com.github.zgmnkv:zwave4j:0.3' } diff --git a/settings.gradle b/settings.gradle index 6bec40a4..1443b8da 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,6 +2,8 @@ import static groovy.io.FileType.* rootProject.name = "Hal" +include "hal-core" + new File(rootDir, "plugins").traverse(type: DIRECTORIES) {dir-> if (new File(dir, '/build.gradle').exists()) { include "plugins:${dir.getName()}" diff --git a/src/se/hal/HalServer.java b/src/se/hal/HalServer.java deleted file mode 100755 index c2c488ed..00000000 --- a/src/se/hal/HalServer.java +++ /dev/null @@ -1,159 +0,0 @@ -package se.hal; - - -import se.hal.intf.HalDaemon; -import se.hal.intf.HalWebPage; -import se.hal.intf.HalJsonPage; -import se.hal.page.*; -import se.hal.struct.Event; -import se.hal.struct.PluginConfig; -import se.hal.struct.Sensor; -import se.hal.struct.TriggerFlow; -import zutil.db.DBConnection; -import zutil.io.file.FileUtil; -import zutil.log.LogUtil; -import zutil.net.http.HttpServer; -import zutil.net.http.page.HttpFilePage; -import zutil.net.http.page.HttpRedirectPage; -import zutil.plugin.PluginData; -import zutil.plugin.PluginManager; - -import java.sql.SQLException; -import java.util.*; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.logging.Logger; - -/** - * Main class for Hal - */ -public class HalServer { - private static final Logger logger = LogUtil.getLogger(); - - private static ScheduledExecutorService daemonExecutor; - private static List daemons = new ArrayList<>(); - - private static HttpServer http; - private static List pages = new ArrayList<>(); - - private static PluginManager pluginManager; - - - - public static void main(String[] args) throws Exception { - // init logging - LogUtil.readConfiguration("logging.properties"); - - // init DB and other configurations - HalContext.initialize(); - DBConnection db = HalContext.getDB(); - - // ------------------------------------ - // Init Plugins - // ------------------------------------ - - logger.info("Looking for plugins."); - pluginManager = new PluginManager(); - - // Disable plugins based on settings - for (PluginData plugin : getPlugins()) { - PluginConfig pluginConfig = PluginConfig.getPluginConfig(db, plugin.getName()); - - if (pluginConfig != null && !pluginConfig.isEnabled()){ - logger.info("Disabling plugin '" + plugin.getName() + "'."); - plugin.setEnabled(false); - } - } - - // ------------------------------------ - // Init Managers - // ------------------------------------ - - logger.info("Initializing managers."); - - HalAlertManager.initialize(); - ControllerManager.initialize(pluginManager); - TriggerManager.initialize(pluginManager); - - // ------------------------------------ - // Import sensors,events and triggers - // ------------------------------------ - - logger.info("Initializing Sensors and Events."); - - for(Sensor sensor : Sensor.getLocalSensors(db)){ - ControllerManager.getInstance().register(sensor); - } - for(Event event : Event.getLocalEvents(db)){ - ControllerManager.getInstance().register(event); - } - // Import triggers - for(TriggerFlow flow : TriggerFlow.getTriggerFlows(db)){ - TriggerManager.getInstance().register(flow); - } - - // ------------------------------------ - // Init daemons - // ------------------------------------ - - logger.info("Initializing daemons."); - - // We set only one thread for easier troubleshooting - daemonExecutor = Executors.newScheduledThreadPool(1); - for (Iterator it = pluginManager.getSingletonIterator(HalDaemon.class); it.hasNext(); ) { - HalDaemon daemon = it.next(); - logger.info("Registering daemon: " + daemon.getClass()); - registerDaemon(daemon); - } - - // ------------------------------------ - // Init http server - // ------------------------------------ - - logger.info("Initializing HTTP Server."); - - HalWebPage.getRootNav().createSubNav("Sensors"); - HalWebPage.getRootNav().createSubNav("Events").setWeight(100); - HalWebPage.getRootNav().createSubNav("Settings").setWeight(200); - - http = new HttpServer(HalContext.getIntegerProperty(HalContext.PROPERTY_HTTP_PORT)); - http.setDefaultPage(new HttpFilePage(FileUtil.find("resource/web/"))); - http.setPage("/", new HttpRedirectPage("/map")); - http.setPage(HalAlertManager.getInstance().getUrl(), HalAlertManager.getInstance()); - for (Iterator it = pluginManager.getSingletonIterator(HalJsonPage.class); it.hasNext(); ) - registerPage(it.next()); - for (Iterator it = pluginManager.getSingletonIterator(HalWebPage.class); it.hasNext(); ) - registerPage(it.next()); - http.start(); - } - - - public static void setPluginEnabled(String name, boolean enabled) throws SQLException { - DBConnection db = HalContext.getDB(); - PluginConfig pluginConfig = PluginConfig.getPluginConfig(db, name); - - if (pluginConfig == null) - pluginConfig = new PluginConfig(name); - - logger.info("Plugin '" + name + "' has been " + (enabled ? "enabled" : "disabled") + ", change will take affect after restart."); - pluginManager.getPluginData(name).setEnabled(enabled); - - pluginConfig.setEnabled(enabled); - pluginConfig.save(db); - } - - public static List getPlugins() { - return pluginManager.toArray(); - } - - - public static void registerDaemon(HalDaemon daemon){ - daemons.add(daemon); - daemon.initiate(daemonExecutor); - } - - public static void registerPage(HalWebPage page){ - pages.add(page); - http.setPage(page.getId(), page); - } -}