Commit Graph

157 Commits

Author SHA1 Message Date
lolodomo
5f8658d0ae
[REST] Check a label is provided when creating a new semantic tag (#3734)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2023-08-16 17:48:09 +02:00
Florian Hotze
e1741cf61d
[rest] Add caching for TagResource & De-duplicate code for caching (#3729)
* [rest] Add caching for TagResource
* [core] Add & use RegistryChangedRunnableListener class

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2023-07-25 20:59:39 +02:00
Kai Kreuzer
5692232e2b Apply spotless
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2023-07-24 01:11:37 +02:00
openhab-bot
fd93f0a766 [unleash-maven-plugin] Preparation for next development cycle. 2023-07-23 17:14:35 +00:00
Florian Hotze
72ec0f3517
[rest] Add missing fields to /rest/items?staticDataOnly=true resource (#3712)
Fixes #https://github.com/openhab/openhab-webui/issues/1958.

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2023-07-21 13:35:38 +02:00
Mark Herwege
f0c00959aa
[rest] add unit to item response (#3654)
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2023-07-14 20:01:22 +02:00
lolodomo
e9719eb577
Make firmwareStatus field not final in DTO object (#3687)
Fix #3679

If not, calls of method limitToFields by PR #3335 fails when the list of
fields does not contain firmwareStatus.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2023-07-05 21:02:24 +02:00
lolodomo
f86635fe96
[rest] Add semantic tag registry + API to manage user tags (#3646)
* Add semantic tag registry + REST API to manage user tags

Related to #3619

New registry for semantic tags.
New default semantic tags provider for all built-in semantic tags.
New managed provider to add/remove/update user semantic tags.
Storage of user semantic tags in a JSON DB file.
New REST API to add/remove/update user tags in the semantic model.
New REST API to get a sub-tree of the semantic tags.

Semantic tag class annotations are removed.

Semantic tag classes are now created at runtime.
Classes Locations, Equipments, Points and Properties are removed

Static methods SemanticTags.add removed
The adding of semantic tag classes is now managed only by the tag registry.

Avoids calling static method SemanticTags.getById when possible

SemanticsMetadataProvider service now requires semanticTagRegistry to start.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2023-06-16 16:38:03 +02:00
Yannick Schaus
6e83d3f8de
"Cacheability" option for critical REST resources (#3335)
* Closes #3329.

This implements a new optional `cacheable` parameter for these REST endpoints:
- `/rest/items`
- `/rest/things`
- `/rest/rules`

When this parameter is set, a flat list of all elements excluding
non-cacheable fields (e.g. "state", "transformedState", "stateDescription",
"commandDescription" for items, "statusInfo", "firmwareStatus",
"properties" for things, "status" for rules) will be retrieved along with
a `Last-Modified` HTTP response header. When unknown, the Last-Modified
header will be set to the date of the request.

Also only when this parameter is set, and a `If-Modified-Since` header is
found in the request, that header will be compared to the last known
modified date for the corresponding cacheable list. The last modified date
will be reset when any change is made on the elements of the underlying
registry. If the `If-Modified-Since` date is equal or more recent than the
last modified date, then a 304 Not Modified response with no content will
be served instead of the usual 200 OK, informing the client that its
cache is still valid at the provided date.

All other request parameters will be ignored except for "metadata" in the
`/rest/items` endpoint. When a metadata selector is set, the resulting
item list will be considered like a completely different resource, i.e.
it will have its own last modified date. Regarding metadata, the approach
to invalidating last modified dates is very conservative: when any metadata
is changed, all cacheable lists of items will have their last modified date
reset even if the change was in a metadata namespace that wasn't requested.

This also implements the abovedescribed behavior for the
`/rest/ui/components/{namespace}` endpoint, but no `cacheable` parameter
is necessary. The last modified date is tracked by namespace.

Signed-off-by: Yannick Schaus <github@schaus.net>
2023-06-15 20:16:14 +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
2e00efc9bb
Allow managing persistence configurations and enable filters (#2871)
* Allow managing persistence configurations

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-05-07 20:33:28 +02:00
Holger Friedrich
5e0a4ff25a
Reduce SAT warnings (#3586)
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2023-05-01 09:08:26 +02:00
jimtng
bc922022c3
[REST] List semantic tags (#3559)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2023-04-20 22:20:30 +02:00
Holger Friedrich
769aa562a1
Code cleanup: Use Java 17 features (#3522)
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2023-04-16 21:43:59 +02:00
spacemanspiff2007
e535510483
Return item metadata by default (#3311) 2023-04-12 22:16:59 +02:00
jimtng
c8cc05d24b
[REST] Sort profile-type resources by their label (#3491)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2023-03-29 08:49:04 +02:00
J-N-K
9289fd5a78
Bump spotless and fix formatting (#3469)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-03-20 23:14:59 +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
J-N-K
a91b7f6425
Fix configuration for marketplace-services (#3357)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-02-06 19:37:56 +01:00
J-N-K
673827733a
Fixes and enhancements for add-on services (#3293)
* 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>
2023-01-21 22:07:48 +01:00
J-N-K
3d54ee54d2
Introduce metadata for all add-ons (#3050)
* Introduce addon.xml

Signed-off-by: Jan N. Klug <github@klug.nrw>
2023-01-15 15:31:42 +01:00
stefan-hoehn
084f9779a7
Add method to get namespaces to MetadataRegistry and ItemResource (#3298)
* add retrieve namespaces for item

Signed-off-by: Stefan Höhn <stefan.hoehn@nfon.com>
2023-01-03 18:27:17 +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
687688db7e
Update Eclipse .classpath files (#3250)
Also adds some missing files for recently added projects.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-22 14:14:35 +01:00
J-N-K
3fc4d23734
Fix spotless and resolve itests (#3239)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-12-19 11:09:31 +01:00
openhab-bot
35254b3a0a [unleash-maven-plugin] Preparation for next development cycle. 2022-12-18 23:08:22 +00:00
Дилян Палаузов
e556fdf81b
Fix a/an typos (#3181)
* Typos a/an
* Fix typo generation in generateTagClasses.groovy

Signed-off-by: Wouter Born <github@maindrain.net>
2022-11-29 20:57:48 +01:00
J-N-K
d9bf8f7a15
[rest] add semantics query endpoint to item resource (#2985)
* [rest] add semantics query to item resource

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-10-30 15:50:36 +01:00
Christoph Weitkamp
5e72011d91
Check for an existing thing handler before updating config (#3080)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-09-10 20:22:18 +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
b6acaf7887
[rest] Allow bulk deletion of metadata (#2984)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-07-18 08:50:30 +02:00
Kai Kreuzer
61fd47c853
Apply spotless and resolver (#3018)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2022-06-27 13:41:28 +02:00
openhab-bot
8944bdbbe4 [unleash-maven-plugin] Preparation for next development cycle. 2022-06-26 16:37:00 +00:00
J-N-K
7027e1e139
[test] Allow intercepting logs and make assertions for log messages (#2939)
* [test] Allow intercepting logs and make assertions for log messages

Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-05-25 21:13:40 +02:00
J-N-K
6c72972b16
Prevent non-profile links for trigger channels (#2771)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-05-25 18:09:59 +02:00
J-N-K
a42e798c8d
Fix "recursive membership detected" for plain items (#2918)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-04-24 14:38:41 +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
Christoph Weitkamp
3c494677b7
Improve description of REST API for deleting data from persistence (#2870)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-03-25 18:43:01 +01:00
J-N-K
ea68ae0163
[rest] Allow binary MediaType for RawType item states (#2825)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-03-13 16:27:26 +01:00
Christoph Weitkamp
355c1345ea
[rest] Improve metadata query parameter description (#2790)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-02-20 17:48:01 +01:00
Christoph Weitkamp
7997e2636a
Prevent errors in log when client closes the HTTP connection (#2781)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-02-20 11:18:32 +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
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
e1962843d5
fix recursive membership throws StackOverflowException on REST API call (#2736)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-02-06 21:19:36 +01:00
Christoph Weitkamp
b849dd144a
Fixed wrong openAPI schema for /inbox (#2709)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-01-26 12:01:26 +01:00
Christoph Weitkamp
0dbc2b2ef4
[rest] Do not reuse FilterCriteria instance for more than one query (#2668)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2022-01-15 17:07:25 +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
Wouter Born
0bdaeef789
[persistence] Use ZonedDateTime instead of Date in ModifiablePersistenceService interface (#2660)
If PRs are created to implement this interface, it would be better if we can prevent the propagation of old APIs like Date.

Related to:

* https://github.com/openhab/openhab-addons/pull/11922
* https://github.com/openhab/openhab-addons/pull/11923
* https://github.com/openhab/openhab-core/issues/2618#issuecomment-1003544762

Signed-off-by: Wouter Born <github@maindrain.net>
2022-01-02 20:45:10 +01:00
Christoph Weitkamp
adde43c311
Prevent errors in log when client closes the HTTP connection (#2655)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-30 11:37:00 +01:00
Christoph Weitkamp
646640094a
Prevent errors in log when there is a connection timeout (#2654)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-30 10:10:38 +01:00