Commit Graph

1796 Commits

Author SHA1 Message Date
Jonathan Gilbert
2883dfbc3e
Made script file watchers reusable in preparation for language-specific versions (#2593)
Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2021-12-12 13:48:38 +01:00
Christoph Weitkamp
8f23e2f04a
Added nullness annotations to Addon related classes (#2605)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-12 10:07:05 +01:00
J-N-K
8a29b07855
[marketplace] add a 3rd Party marketplace (#2592)
* [marketplace] add a 3rd Party compatible marketplace

This adds a new marketplace addon provider which allows to add marketplaces maintained by 3rd party organizations (similar to alternative app stores on your smartphone). The configuration allows one or multiple marketplaces which provide their addons via JSON files (instead of a topic in the community forum).

Signed-off-by: Jan N. Klug <jan.n.klug@rub.de>
2021-12-11 16:15:45 +01:00
Christoph Weitkamp
793ced6286
Added basic time-related classes for usage in script and ruled (#2587)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-10 23:41:08 +01:00
Yannick Schaus
f641d1d6ec
[marketplace] Add add-on handler for block libraries (#2598)
Related to https://github.com/openhab/openhab-webui/pull/1225.

This add-on handler supports installing block libraries in the
UIComponentRegistry, `ui:blocks` namespace.

It is very similar to the CommunityUIWidgetAddonHandler, as the format
is the same, so are the features and implementation, the only
differences being:

- Supported content type: `application/vnd.openhab.uicomponent;type=blocks`
  (vs. `application/vnd.openhab.uicomponent;type=widget`)
- Discourse category nb.: 76 (vs. 75)
- Inferred Add-on type: "automation" (vs. "ui")

Signed-off-by: Yannick Schaus <github@schaus.net>
2021-12-10 23:35:25 +01:00
Wouter Born
0028a3c792
Downgrade Aries JAX-RS Whiteboard from 2.0.1 to 2.0.0 (#2599)
It causes unneccessary bundle refreshes whenever add-ons are installed/uninstalled.
As a result the UI does not get properly notified of installation changes.

Fixes #2580
Reverts the Aries JAX-RS Whiteboard upgrade of #2532

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-10 23:34:01 +01:00
Wouter Born
69043bea74
Use Accept-Language header for locale in ConfigurableServiceResource (#2602)
Most RESTResources already use the LocaleService to get the locale based on the Accept-Language header and use the system locale only as fallback.
Because the ConfigurableServiceResource does not do this, it results in mixed up languages whenever your browser locale is not the same as the configured system locale.

See:

* https://community.openhab.org/t/language-support-question-regional-settings-language-vs-browser-language/128010
* https://github.com/openhab/openhab-webui/issues/1083

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-10 23:33:13 +01:00
Christoph Weitkamp
f30beb5aeb
Added item name to error message (#2594)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-07 17:06:19 +01:00
Wouter Born
044aad891e
Remove unnecessary executable permissions (#2591)
These files are marked as executable for no good reason at all.

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-05 19:58:23 +01:00
Christoph Weitkamp
eb982f430d
Fixed nullness anotations for TriggerHandlerCallback (#2589)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-04 17:48:18 +01:00
Christoph Weitkamp
3493c85e19
Added nullness anotations to TimerImpl and synchronize reschedule method (#2588)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-03 14:33:04 +01:00
Christoph Weitkamp
07ee8e6ffc
Added nullness anotations to ChannelEventTriggerHandler (#2586)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-03 14:32:05 +01:00
Wouter Born
a9504bfced
Revert "Add i18n-maven-plugin dependency (#2584)" (#2585)
This reverts commit e0544e2cba.
2021-12-03 09:44:05 +01:00
Christoph Weitkamp
674db6c744
Added variable 'triggeringChannel' to DSL rules (#2567)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-12-02 22:08:17 +01:00
Wouter Born
e0544e2cba
Add i18n-maven-plugin dependency (#2584)
When the plugin dependency is managed you can also use the plugin without adding GAV parameters to commands.

E.g. it allows for using it with:

```
mvn i18n:generate-default-translations
```

Related to #2544

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-02 08:04:43 +01:00
Wouter Born
bb3224a434
Add i18n-maven-plugin to make internationalization easier (#2544)
* Add i18n-maven-plugin to make internationalization easier

This plugin simplifies generating the default translation .properties files from the add-on XML information files.

It reuses the same XStream parsing classes that are used by openhab-core for parsing the binding/config/thing XML files.
It will also keep any existing default translations already present in property files for translations using `@text/`.
Furthermore it will nicely group and sort the translations.

After building this Maven plugin you can use it on add-ons using:

`mvn org.openhab.core.tools:i18n-maven-plugin:3.2.0-SNAPSHOT:generate-default-translations`

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-01 18:52:03 +01:00
Wouter Born
8c1fe60abc
Fix IllegalStateException in IconServlet (#2577)
Fixes #2529

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-28 22:01:00 +01:00
Wouter Born
ca063a3a2f
Update bnd to 6.1.0 (#2583)
For release notes, see:

https://github.com/bndtools/bnd/wiki/Changes-in-6.1.0

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-28 21:57:31 +01:00
Wouter Born
31cae197f3
Use Maven 3.8.4 in GHA CI builds (#2582)
This new version fixes a few regressions, see:

https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12350685

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-28 20:29:40 +01:00
Wouter Born
bb97d85d3b
Fix ConcurrentModificationException in ExpiringUserSecurityContextCache (#2579)
The issue occurs when expired entries are removed from the cache.
Also adds some unit tests in which the same issue could be reproduced.

Fixes #2528

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-26 23:06:34 +01:00
jimtng
a4b737c401
Add Timer.isCancelled() method (#2570)
Signed-off-by: Jimmy Tanagra <jimmy@tanagra.id.au>
2021-11-23 21:51:51 +01:00
J-N-K
3e8b664085
[marketplace] avoid collisions with multiple AddonProviders (#2564)
* [marketplace] avoid collisions with multiple AddonProviders

The current implementation could result in collision of file-path and failed in determining the installation status if other AddonProviders re-use the marketplace addon handlers.

Signed-off-by: Jan N. Klug <jan.n.klug@rub.de>
2021-11-23 21:49:35 +01:00
Wouter Born
66c391a2c1
Upgrade JUnit and Mockito dependencies (#2574)
Upgrades:

* JUnit from 5.7.0 to 5.8.1.
* Mockito from 3.7.0 to 4.1.0.

For release notes, see:

* https://junit.org/junit5/docs/current/release-notes/index.html
* https://github.com/mockito/mockito/releases

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-23 20:27:17 +01:00
openhab-bot
598245b919
New Crowdin updates (#2566)
* New translations audio.properties (Hungarian)
* New translations DefaultSystemChannels.properties (German)
* New translations inbox.properties (Hungarian)
* New translations magic.properties (Hebrew)
* New translations magic.properties (Hungarian)
* New translations magic.properties (Italian)
* New translations marketplace.properties (Hungarian)
* New translations sitemap.properties (Hungarian)

* Fixed unit tests

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-11-21 13:06:09 +01:00
Wouter Born
3d722ec13b
Upgrade UoM dependencies (#2573)
Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-21 10:27:20 +01:00
Wouter Born
54cd303b57
Update Jackson to 2.12.5 (#2572)
Updates Jackson from 2.12.3 to 2.12.5.

For all bug fixes, see:

* https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.12.4
* https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.12.5

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-21 10:19:03 +01:00
Christoph Weitkamp
fea3615109
Added Magic Button triggering some events every 5 seconds (#2569)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-11-18 16:03:06 +01:00
Wouter Born
f9d201c35b
Use POM packaging with index BOMs (#2561)
Looks like only the POM dependencies are used by the indexer, so the JAR is unused and useless as this warning correctly indicates when you build them:

```
[WARNING] JAR will be empty - no content was marked for inclusion!
```

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-15 21:14:18 +01:00
Jan Vybíral
a32844358b
Prevent shutdown of shared thread pool (#760) (#2531)
Fixes #760

Signed-off-by: Jan Vybíral <jan.vybiral1@gmail.com>
2021-11-15 21:13:31 +01:00
Yannick Schaus
d4f62ed024
Add compilation errors & SAT GitHub annotations (#2543)
Signed-off-by: Yannick Schaus <github@schaus.net>
2021-11-13 22:13:28 +01:00
Wouter Born
917e268e68
[discovery] Add ser2net mDNS USB serial discovery (#2519)
* Add ser2net mDNS USB serial discovery

* Add support for using multiple UsbSerialDiscovery services
* Add Ser2NetUsbSerialDiscovery that can use mDNS to discover ser2net RFC2217 serial ports
* Use discovered USB ports in SerialConfigOptionProvider

mDNS discovery is supported in ser2net 4.3.0 and newer.
E.g. you can install a ser2net version that provides this using APT in Ubuntu 21.04 and Debian 11.

Example ser2net YAML configuration that allows a serial port to be discovered using mDNS discovery:

%YAML 1.1
---
connection: &con01
  accepter: telnet(rfc2217),tcp,2222
  connector: serialdev,/dev/ttyUSB0
  options:
    mdns: true
    mdns-sysattrs: true
    mdns-name: devicename

Closes #1511

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-12 23:27:50 +01:00
jimtng
5d5b7665b4
[automation] Make LifecycleScriptExtensionProvider and its Disposable interface public (#2565)
Signed-off-by: Jimmy Tanagra <jimmy@tanagra.id.au>
2021-11-12 21:02:27 +01:00
lolodomo
998ce26ef5
[core] Added basic exception classes which supports internationalization (#2549)
* New exception class that incorporates support for internationalization
* Add ConnectionException, CommunicationException and ConfigurationException

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2021-11-12 20:58:53 +01:00
jimtng
8343703406
Fix NPE on WatchQueueReader (#2563)
Signed-off-by: Jimmy Tanagra <jimmy@tanagra.id.au>
2021-11-11 09:43:24 +01:00
openhab-bot
85b0910ef1
New translations marketplace.properties (French) (#2559) 2021-11-05 19:24:21 +01:00
Wouter Born
f1319c283a
Suppress bnd warnings for unused imports/exports (#2560)
Ignores warnings like:

```
Warning:  /home/runner/work/openhab-addons/openhab-addons/bom/runtime-index/pom.xml [0:0]: Unused Export-Package instructions: [org.openhab.*]
Warning:  /home/runner/work/openhab-addons/openhab-addons/bom/runtime-index/pom.xml [0:0]: Unused Import-Package instructions: [io.swagger.v3.oas.annotations.*,
```

These are safe to ignore because the import/export packages are globally defined and not every bundle imports/exports all these packages.

The `skipIfEmpty` configuration furthermore prevents warnings when the bnd-maven-plugin runs on projects that don't have any code like BOMs.

More important compiler/SAT warnings standout more when there are there are fewer useless warnings.

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-05 13:56:25 +01:00
Wouter Born
cd29a16609
GitHub Actions workflow improvements (#2557)
* Checkout merged branches for pull requests
* Echo the mvn command used for builds
* Use more functions in maven-build so it is similar to what will be used for add-on builds

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-04 14:36:18 +01:00
Christoph Weitkamp
4bc8027461
Added GHA build badge (#2558)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-11-04 09:23:09 +01:00
lolodomo
089b9d22ce
mDNS / UPnP discovery internationalization (#2547)
* mDNS / UPnP discovery internationalization

Related to #2546

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2021-11-03 21:35:13 +01:00
Wouter Born
c4837b2c8b
WebClientFactoryImpl deprecation and blocking test fixes (#2551)
Update the WebClientFactoryImpl so it no longer uses a deprecated WebSocketClient constructor.
Use a workaround so WebClientFactoryImplTest.tearDown() cannot block forever when the commonWebSocketClient is stopped when it has not yet been fully started.

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-03 21:17:58 +01:00
Christoph Weitkamp
70555c5020
Removed failing offset test (#2555)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-11-03 15:33:43 +01:00
spacemanspiff2007
abb17c1658
[rest] Align item endpoint with items endpoint (#2533)
Add option to skip members, e.g. if the goal of the request to just get the metadata of a group item

Signed-off-by: spacemanspiff2007 <git@sgerber.de>
2021-11-02 08:25:18 +01:00
Wouter Born
287a2eb0c9
Upgrade SAT to 0.12.0 (#2554)
See the [0.12.0 milestone](https://github.com/openhab/static-code-analysis/milestone/18?closed=1) for all changes in this release.

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-02 08:17:50 +01:00
Wouter Born
ccc21ac87d
Exclude logback-classic from org.apache.aries.jax.rs.whiteboard (#2552)
There should only be one SLF4J binding used for logging and we already use slf4j-simple.

This fixes the following warning when running unit tests:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/wouter/.m2/repository/org/slf4j/slf4j-simple/1.7.32/slf4j-simple-1.7.32.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/wouter/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]

Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-01 17:27:20 +01:00
Wouter Born
1db273efb6
Configure default timeout of 15 minutes for all testable and lifecycle methods (#2550)
This helps to identify what tests cause builds to fail and it will more quickly end builds.

For instance the WebClientFactoryImplTest currently often hangs on my local builds.
With this configuration in place it is easy to see and it will timeout after 15 minutes:

[ERROR] Tests run: 5, Failures: 0, Errors: 1, Skipped: 4, Time elapsed: 900.207 s <<< FAILURE! - in org.openhab.core.io.net.http.internal.WebClientFactoryImplTest
[ERROR] org.openhab.core.io.net.http.internal.WebClientFactoryImplTest.testGetClients  Time elapsed: 900.194 s  <<< ERROR!
java.util.concurrent.TimeoutException: tearDown() timed out after 15 minutes

See: https://junit.org/junit5/docs/current/user-guide/#writing-tests-declarative-timeouts

Signed-off-by: Wouter Born <github@maindrain.net>
2021-10-31 10:08:47 +01:00
openhab-bot
4ef1255e02
New Crowdin updates (#2545)
* New translations brokerConnectionInstance.properties (Portuguese, Brazilian)

* New translations sitemap.properties (Portuguese, Brazilian)

* New translations marketplace.properties (Portuguese, Brazilian)
2021-10-30 23:58:54 +02:00
Wouter Born
bf81eaa1c2
Fix/suppress PMD CompareObjectsWithEquals findings (#2548)
Newer PMD versions discover more CompareObjectsWithEquals findings.

Related to https://github.com/openhab/static-code-analysis/pull/423

Signed-off-by: Wouter Born <github@maindrain.net>
2021-10-30 19:37:34 +02:00
openhab-bot
40e23e23ca
New translations brokerConnectionInstance.properties (Russian) (#2523) 2021-10-27 22:39:05 +02:00
Wouter Born
dc9c649824
Add GitHub Actions CI build (#2541)
This PR adds a CI build using GitHub Actions.
Besides having a backup for Jenkins, it will also make it easy for contributors to use a GitHub Actions build with their fork.

It features the following:

* Uncluttered simple build progress like we used with Travis CI
* Uploads the full build log and SAT summary report so they can be downloaded for further analysis
* Uses a Maven repository cache to speed up builds (first build takes a bit longer)
* Has some maven.wagon configuration options to prevent Maven Central artifact download issues from Azure
* Uses a matrix so we can easily add builds for other OS-es or newer Java LTS versions in the future

Signed-off-by: Wouter Born <github@maindrain.net>
2021-10-27 09:56:50 +02:00
Christoph Weitkamp
f694535598
Log item name in warnings of ItemStateConditionHandler (#2540)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-10-25 22:14:06 +02:00