On Samba shares a single MODIFY event may result in different sequences of CREATE/DELETE/MODIFY events. Unfortunately this is not properly handled by the underlying library and we have to re-introduce our ugly workaround. The solution itself is a bit improved over the old one as it not only keeps the last event but determines the correct event by examining the sequence of received events.
Signed-off-by: Jan N. Klug <github@klug.nrw>
Also makes sure the `checkPrerequisites` job can't crash by catching `RuntimeException` during processing.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Refactor ThingManagerImpl
This
- moves config description URI to type-base class
- decouples the thing manager from bundle loading
- makes sure that all thing/channel-types and config descriptions are available when the thing is initialized
- enables thing type updates
Signed-off-by: Jan N. Klug <github@klug.nrw>
When calculating `.changedSince` the "then" state is queried via the `.historicState` method. Regardless of the `serviceId` used when calling `.changedSince` the historic state was always queried from the default persistence service.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Add an add-on service that provides add-ons in the addons-folder
* fix connection and countries
This is needed to show the add-ons from the addons in the UI.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Ensure metadata available at start-level 20
This makes the `MetadataRegistry` report when the elements of the `ManagedMetadataProvider` is available via a ready marker (like other registries).
Signed-off-by: Jan N. Klug <github@klug.nrw>
During startup most likely the item state is `UndefType.NULL` which results in no triggering. States are restored from persistence by directly setting the item state, not by an `ItemStateEvent` and were therefore missed. Since changing the trigger is not necessary when the state updates but does not change, the event listening was changed to `ItemStateChangedEvent` only.
Signed-off-by: Jan N. Klug <github@klug.nrw>
The `AccessController` and the `SecurityManager` is deprecated for removal in Java 17. We don't make use of the `SecurityManager` anyway, so we can safely remove it.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Raise source level to Java 17 (except for model classes)
* Remove Nashorn script engine
* Upgrade spotless and add jvm options
See https://github.com/diffplug/spotless/issues/834
* Add suppression for findBugs false positive error
* Upgrade xtext to 2.29.0
* Adjust JNA
* Resolve itests
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Fix wrong websocket topics
The topics of the websocket event did not follow the openHAB convention of starting with `openhab/` followed by the component.
Signed-off-by: Jan N. Klug <github@klug.nrw>
Reported on the forum. Due to selection of the `RoundingMode` instead of a `MathContext` the average calculation is returning unexpected results: 19.0 °C / 19.5 °C results in 19.3 °C (instead of 19.25 °C) which might be acceptable, but 19.5 °C / 19.5 °C results in 20 °C (instead of 19.5 °C) which is obviously not what we want or expect. Setting the `MathContext` fixes this problem. I also corrected the same calculation for non-dimensional groups.
Signed-off-by: Jan N. Klug <github@klug.nrw>
When updating file-based script transformations used in item state-descripting a CME can occur during reload. This is fixed by using thread-safe implementation of `HashMap`.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Fix missing stateDescriptionProvider in Group items
The stateDescriptionProvider was not properly passed to the base item. Because of that units set in the state description were not properly used when setting the group state after calculating aggregation functions.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Fix ItemStateCondition for PercentType values
Dimmer items return their state as PercentType. The code did not properly handle PercentType because PercentType is a subclass of DecimalType. One value was converted by casting the value to DecimalType (which leads to 40 for 40%) while the other one used `.as` (which results in 0.4 for 40%). A comparison than of "state <= 50" with state = 20 is therefore executed as "20 <= 0.5" which is not what the user would expect.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Fix missing initial thing status event
A thing always has a status. This status is not properly propagated to the event bus when the thing is added. This e.g. leads to a situation where a thing's first status that is received by am event subscriber is "INITIALIZING" instead of "UNINITIALIZED". The status should always be sent so that the thing lifecycle can properly be tracked by event listeners.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Improve FeatureInstaller
* Remove unnecessary synchronized and clean up processing
* Re-add refeshing bundles after all configuratzion changes are processed
* Prevent unnecessary refreshes
* Make JNA part of the tp
Signed-off-by: Jan N. Klug <github@klug.nrw>
When changing to addon.xml later, this can be extended to all add-ons. It is necessary to improve the UI code for changing add-on log levels.
Signed-off-by: Jan N. Klug <github@klug.nrw>
Instead of using the full id (`marketplace:123456`) the id without service prefix was used to lookup installed add-ons. This is not an issue if the network is available because then the information is request from the forum. If no network connection is present it obviously fails.
This also reduces the log level in the case of connection issues. ERROR is to much and the stack trace is not necessary.
Signed-off-by: Jan N. Klug <github@klug.nrw>
* Enhance transformation configuration
This is needed to give the users the best experience when editing transformations in UI.
Signed-off-by: Jan N. Klug <github@klug.nrw>
OH1 add-ons are not present in the OH3 distribution as they are not supported anyway, so we do not to filter them.
Signed-off-by: Jan N. Klug <github@klug.nrw>
Unlike the sitemap SSE subscriptions generic event subscriptions did not implement a connection lost monitor.
Signed-off-by: Jan N. Klug <github@klug.nrw>
Needed for Java 17 source level. This also removes build errors with wrong scope and an unused dependency.
Signed-off-by: Jan N. Klug <github@klug.nrw>