Commit Graph

131 Commits

Author SHA1 Message Date
Wouter Born
26a958cd4d
Use static inner classes (#4002)
A static inner class does not keep an implicit reference to its enclosing instance.
This prevents a common cause of memory leaks and uses less memory per instance of the class.

Signed-off-by: Wouter Born <github@maindrain.net>
2024-01-03 12:35:26 +01:00
Wouter Born
10c0cf8211
Simplify assertions (#3996)
* Simplify assertions

Using the appropriate assertion methods results in less and easier to read code as well as better error messages when assertions fail.

Signed-off-by: Wouter Born <github@maindrain.net>
2024-01-03 12:24:50 +01:00
Wouter Born
58a106d36d
Use diamond operator (#4001)
Often the type can be inferred so the diamond operator can be used to simplify the code.

Signed-off-by: Wouter Born <github@maindrain.net>
2024-01-03 08:22:43 +01:00
Wouter Born
dc5f50db63
Fix assertEquals order (#3995)
The first parameter should be the expected value and the second parameter the actual value.

Signed-off-by: Wouter Born <github@maindrain.net>
2024-01-02 22:27:53 +01:00
Wouter Born
89b67adbd7
Use isEmpty instead of 0 comparisons (#3999)
`isEmpty()` expresses the intent more clearly and is therefore preferred.
Counting the number of elements can also be an expensive operation e.g. when using linked lists.

Signed-off-by: Wouter Born <github@maindrain.net>
2024-01-02 18:47:36 +01:00
Wouter Born
ba5647b871
More code cleanups (#3975)
While cleaning up the code I found a some more code to cleanup:

* Remove unnecessary boxing
* Use `contains(..)` instead of `indexOf(..) != -1`
* Use `assertInstanceOf` in tests
* Make expensive trace logging conditional
* Remove redundant constructor
* Replace `collect(Collectors.toUnmodifiableList())` with `toList()`
* Replace `filter(..).count() == 0L` with `noneMatch(..)`
* Replace `filter(..).count() > 0` with `anyMatch(..)`

Signed-off-by: Wouter Born <github@maindrain.net>
2023-12-28 13:15:50 +01:00
J-N-K
cdbca4dd0a
Allow sending TimeSeries for items (#3597)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-11-07 20:08:41 -08:00
Wouter Born
e8e1c9fe73
Simplify code that creates List, Map and Set objects (#3836)
Simplifies the code by using List.of, List.copyOf etc. where possible which results in less code and imports.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-10-09 18:00:00 +02:00
Wouter Born
09b3160a55
Simplify code using Stream.toList (#3831)
Stream.toList was introduced in Java 16 and creates an unmodifiable List so it can be used to simplify code whenever the List is not expected to be modified.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-10-09 09:20:08 +02:00
J-N-K
af4fce1e4f
Fix CommunicationManager command handling (#3714)
* Fix CommunicationManager

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-09-13 22:27:12 +02:00
Wouter Born
c39d15ade6
Cleanup code (#3787)
This code cleanup fixes various warnings in Eclipse.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-08-30 22:50:17 +02:00
Wouter Born
5daf4ff076
Fix SAT and null analysis issues (#3781)
Signed-off-by: Wouter Born <github@maindrain.net>
2023-08-27 11:15:15 +02:00
J-N-K
5a00bfdc41
Align system-channel-types for electricity (#3707)
* Align system-channel-types for electricity

These are only used by one binding at the moment and it's very inconsistent to have power, voltage and current with the "electric" prefix and energy with "electrical".

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-07-18 09:05:42 +02:00
Wouter Born
3396ff7758
Use Eclipse formatter 4.25 with Spotless (#3710)
Fixes #3515

Signed-off-by: Wouter Born <github@maindrain.net>
2023-07-18 09:03:16 +02:00
J-N-K
9ef076dc6a
[uom] Add unit metadata for NumberItem (#3481)
* Add defaultUnit metadata for NumberItem

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-05-09 22:42:25 +02:00
J-N-K
8e1a2cfd0a
Add an AbstractStorageBasedTypeProvider (#3407)
* Add an AbstractDynamicTypeProvider

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-05-07 21:51:10 +02:00
J-N-K
960cf0c179
Improve thing updates (#3576)
* Improve thing updates

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-05-07 20:46:42 +02:00
Holger Friedrich
33233982b3
Code cleanup: Use Java 17 features (#3580)
* Code cleanup: Use Java 17 features

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2023-04-30 18:37:48 +02:00
Kai Kreuzer
ac0f512178
Consider auto-update veto from channel types (#3575)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2023-04-24 20:14:20 +02:00
Wouter Born
4851bfbcae
Fix recently introduced SAT issues (#3516)
* Fix recently introduced SAT issues

Signed-off-by: Wouter Born <github@maindrain.net>
2023-04-01 17:18:22 +02:00
J-N-K
4182980ec8
Add ItemStateUpdatedEvent and enable group channel-links (#3141)
* Add (Group)ItemStateUpdatedEvent

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-03-31 23:01:40 +02:00
Andrew Fiddian-Green
73b8a3ae32
Fix channel order in REST API (#3448)
* Fix sort order of Things in UI
* Add itest for channel order

Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
2023-03-13 17:26:34 +01:00
J-N-K
d0a0e6d399
Add support for channel-groups to update instructions (#3391)
* Add support for channel-groups to update instructions

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-03-07 21:57:39 +01:00
J-N-K
dff6f9b984
Refactor XML handling (#3385)
* Refactor XML handling for things
* integrate config.xml and improve naming

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-02-23 20:06:29 +01:00
Kai Kreuzer
fafadd4b83
Add nullable annotation to avoid error marker in Eclipse (#3376)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2023-02-16 23:40:53 +01:00
J-N-K
d7fa5534bf
Refactor ThingManagerImpl (#3330)
* 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>
2023-02-15 22:03:59 +01:00
Cody Cutrer
8be306a5bc
Cleanup event filtering and improve EventFilter usage (#3295)
* don't use event.topics OSGi service property
* use TopicPrefixEventFilter

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2023-01-03 16:30:12 +01:00
J-N-K
8d64ecfd8d
Update license header to 2023 (#3294)
* Update license header to 2023

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-01-03 09:45:42 +01:00
Wouter Born
7888da1684
Fix some recently introduced SAT and NPE issues (#3251)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-22 15:11:49 +01:00
J-N-K
4a84b80c2c
Fix missing initial thing status event (#3072)
* 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>
2022-09-20 21:04:52 +02:00
Christoph Weitkamp
cda7b098bd
[thing] Added default channel types for electrical energy (#3079)
* Added default channel types for electrical energy

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-09-11 14:39:36 +02:00
J-N-K
ae3d7c749c
Add REST support for deleting links and removing orphaned links (#2970)
* add link remove for item to registry

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-07-19 09:24:47 +02:00
J-N-K
d74277f798
Use ThingStorageEntity instead of ThingImpl/BridgeImpl for storage (#2914)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-06-18 14:31:45 +02:00
Gaël L'hopital
af6a6c6ac4
Adding missing system channels descriptions. (#2912)
* Adding missing system channels descriptions.
Removing some redundant null checks of the same package.

Signed-off-by: clinique <gael@lhopital.org>
2022-04-22 23:02:24 +02:00
Wouter Born
05fdc81b27
Improve test stability and OS compatibility (#2878)
This fixes the build being broken when building on Windows.
It also contains many fixes for timing issues which seem to impact macOS and Windows more than Linux.

* Fix .gitattributes and add *.xml_gen to fix line ending issues on Windows
* Derive fork count from CPU details in org.openhab.core tests for more stable tests on machines with fewer cores
* Adjust SafeCallerImplTest timings
* Increase ExecUtilTest timeout
* Increase SchedulerImplTest timeouts
* Increase AudioConsoleTest serveStream timeout
* Increase AudioServletTest serveStream timeout
* Increase SchedulerImplTest test timeouts
* Increase ExpireManagerTest timeout used for checking published events
* Increase PeriodicSchedulerImplTest max allowed delta
* Increase SchedulerImplTest timeouts
* Fix BundleInfoReader file stream not closed causing temp dir deletion issues on Windows
* Fix GenerateDefaultTranslationsMojoTest Windows line endings issues
* Fix GenerateDefaultTranslationsMojoTest Windows temp dir deletion problem
* Fix GenericItemProviderTest tearDown sometimes fails because of queued events
* Fix ChannelLinkNotifierOSGiTest wait for channel link events
* Fix ChannelCommandDescriptionProviderOSGiTest fails if provider not immediately registered
* Fix ChannelStateDescriptionProviderOSGiTest fails if provider not immediately registered
* Fix GenericItemChannelLinkProviderTest not waiting for async updated state to become true
* Fix GenericThingProviderTest failing due to events of previous test
* Fix InboxOSGiTest sometimes fails because of queued events
* Fix ScriptEngineOSGiTest failing because items are not yet added to registry
* Fix ThingManagerOSGiTest failing due to async handleRemoval call

Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-14 23:00:33 +02:00
J-N-K
afd8768340
Extend ProfileContext to allow data type changing profiles (#2852)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-04-14 22:52:52 +02:00
J-N-K
2a3e2e5567
Reduce Mockito warnings (#2893)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-04-03 22:36:55 +02:00
Gaël L'hopital
847aa349d8
Adding Indoor Temperature as system channel type (#2866)
Signed-off-by: Gaël L'hopital <gael@lhopital.org>
2022-03-26 12:29:03 +01:00
J-N-K
c2ba4dcd16
Fix build in localized environments (#2855)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-03-20 10:28:28 +01:00
J-N-K
45b5c6772a
Improve ThingManagerOSGiTest (#2858)
This change ensures that the storage of bridge and thing are done before the initialization is reported.

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-03-19 21:09:02 +01:00
J-N-K
2686102f20
[thing] Show config validation messages in thing status (#2829)
* Show config validation messages in thing status

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-03-17 11:49:08 +01:00
J-N-K
437b31dbe9
Fix things in REMOVING state initialize instead of getting removed (#2828)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-03-14 15:49:26 +01:00
J-N-K
192e4a2347
Add a profile for linking trigger channels to String items (#2769)
* Add a profile for linking trigger channels to String items

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-02-23 21:17:11 +01:00
Christoph Weitkamp
44da7a4e0e
Avoid URISyntaxException in tests (#2770)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-02-15 17:33:59 +01:00
Wouter Born
3d7be0ffa7
Avoid throwing raw exception types (#2747)
* Avoid throwing raw exception types

This fixes all 36 AvoidThrowingRawExceptionTypes SAT findings.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-14 16:14:25 +01:00
Wouter Born
ad936cd83f
Add more null annotations (#2742)
* Add more null annotations
* Fix mock name

Adds null annotations to most of the tests as well as a few other classes.
Also fixes a few other SAT findings.
Fixes ~300 SAT findings in total.


Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-14 11:33:50 +01:00
J-N-K
d6f63e7500
[thing] Fix removal of thing properties (single and bulk) (#2735)
* fix removal of thing properties (single and bulk)

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-02-07 19:32:22 +01:00
J-N-K
61f5e7f57d
[config] Enable config validation for updates by handler (#2712)
* Enable config validation for updates by handler

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-02-01 10:10:37 +01:00
J-N-K
1fff165cb0
[thing] Enable config validation for thing creation and update (#2682)
* Enable config validation for thing creation and update

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-01-20 10:20:16 +01:00
Christoph Weitkamp
cabb3f7315
Update license headers to 2022 (#2671)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-01-07 13:16:42 +01:00