Commit Graph
100 Commits
Author SHA1 Message Date
Wouter BornandGitHub aef57edd73 Use workaround to fix high CPU usage by LinkedTransferQueue (#3756)
This is a workaround for JDK-8301341 by using the Java 11 LinkedTransferQueue with the QueueingThreadPoolExecutor in the Core and jUPnP.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-08-14 10:37:20 +02:00
Wouter BornandGitHub 04105c1b1a Link to Java 17 documentation (#3750)
This prevents issues because older documentation may not apply to Java 17.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-08-12 10:19:48 +02:00
Wouter BornandGitHub 17e9cf3850 ZipException workarounds (#3747)
* Use Karaf 4.4.3 compile dependency
* Disable this feature in itests

Signed-off-by: Wouter Born <github@maindrain.net>
2023-08-11 14:10:00 +02:00
Wouter BornandGitHub 3b91692be1 Fix build (#3726)
Signed-off-by: Wouter Born <github@maindrain.net>
2023-07-24 09:02:01 +02:00
Wouter BornandGitHub 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
Wouter BornandGitHub db97610111 Replace StringBuffer usages with StringBuilder (#3668)
See: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/StringBuilder.html

> This class provides an API compatible with StringBuffer, but with no guarantee of synchronization.
> This class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer was being used by a single thread (as is generally the case).
> Where possible, it is recommended that this class be used in preference to StringBuffer as it will be faster under most implementations.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-06-25 17:24:46 +02:00
Wouter BornandGitHub 3c6d855d4b Remove redundant public and abstract modifiers from interfaces (#3560)
* Remove redundant public modifiers from interfaces
* Remove redundant abstract modifiers from interfaces

Signed-off-by: Wouter Born <github@maindrain.net>
2023-04-20 20:22:58 +02:00
Wouter BornandGitHub 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
Wouter BornandGitHub b745d70d6d Add issue and pull request templates and configuration (#3463)
Signed-off-by: Wouter Born <github@maindrain.net>
2023-04-01 14:39:25 +02:00
Wouter BornandGitHub 41ff466d65 Upgrade maven-surefire-plugin to 3.0.0 (#3514)
This fixes deprecation warnings when runnings tests with Maven 3.9.x:

`[WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead.`

See: https://issues.apache.org/jira/browse/SUREFIRE-2154

Related to #3512

Signed-off-by: Wouter Born <github@maindrain.net>
2023-04-01 13:36:43 +02:00
Wouter BornandGitHub 0894d25448 Upgrade JUnit to 5.9.2 and Mockito to 4.11.0 (#3450)
For release notes, see:

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

Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-12 20:47:54 +01:00
Wouter BornandGitHub 0c792ec89a Upgrade XStream to 1.4.20 (#3446)
This addresses CVE-2022-40151 and CVE-2022-41966, see:

https://x-stream.github.io/changes.html#1.4.20

This version also fixes an issue with closing streams so the workaround in GenerateDefaultTranslationsMojoTest is no longer needed.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-12 12:22:33 +01:00
Wouter BornandGitHub 56f5550e6b Fix broken ProxyServletService (#3436)
Reverts the partially working Whiteboard config changes of #3252 back to a working implementation using the HttpService.
The configurable threading makes this a non-trivial Servlet for use with the Whiteboard.

Fixes openhab/openhab-webui#1782

Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-08 20:07:59 +01:00
Wouter BornandGitHub ac5bbb90b8 Upgrade JUPnP to 2.7.0 (#3421)
Fixes openhab/openhab-distro#1473

Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-05 09:55:06 +01:00
Wouter BornandGitHub d154c8bcf9 Remove org.openhab.core.addon.sample left-over (#3413)
Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-02 11:29:19 +01:00
Wouter BornandGitHub 59c5133815 Add Eclipse Add-on Service (#3406)
This service provides add-on information when debugging in Eclipse so it is possible to add Things based on the installed bindings and configure installed add-ons in the UI.
Replaces the Sample Add-on Service.

Also shows the "Add-on Management" configuration which allows for configuring if incompatible add-ons are included.

Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-02 07:41:49 +01:00
Wouter BornandGitHub ec3af50f11 Upgrade to Karaf 4.4.3 (#3252)
* Sync runtime dependencies with Karaf 4.4.3, most notably:
  * Jetty 9.4.50.v20221201
  * Pax Logging 2.2.0
  * Pax Web 8.0.15
* Use OSGi R8 as compile dependency
* Rework Servlets to use Http Whiteboard annotations in favor of proprietary `org.openhab.core.io.http.servlet` classes
* Resolve itest runbundles

Also-by: Jan N. Klug <github@klug.nrw>

Signed-off-by: Wouter Born <github@maindrain.net>
2023-03-01 13:09:07 +01:00
Wouter BornandGitHub 07d09c5a7a Update Jackson to 2.14.1 (#3284)
Updates Jackson from 2.12.7 to 2.14.1

For release notes, see:

https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.13
https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.14

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-30 22:46:51 +01:00
Wouter BornandGitHub 5e23b0e231 Fix Marketplace add-on range pattern matching (#3288)
* Fix Marketplace add-on range pattern matching

With this fix it will use the correct string for pattern matching add-on version ranges introduced in #2811.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-30 20:32:00 +01:00
Wouter BornandGitHub a3dc57784a Remove wrong DataAmount units (#3261)
These wrong DataAmount units were added in #3208 for backwards compatibility.
In OH4 we can clean them up because this major version allows for breaking changes.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-23 23:51:28 +01:00
Wouter BornandGitHub abbba4adc7 Use JavaSE-17 JVM (#3263)
For some reason Eclipse did not update these BOM .classpath files in #3250.
Related to #2994

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-23 16:44:52 +01:00
Wouter BornandGitHub 80770161ac Fix several compiler warnings (#3260)
Fixes a deprecation, unused imports and some raw type warning.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-23 16:41:46 +01:00
Wouter BornandGitHub 4a49cb419c Add missing new line to org.openhab.core.storage.json.tests/itest.bndrun (#3259)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-23 12:28:36 +01:00
Wouter BornandGitHub 0a755e8f08 Use HTTPS with website URL in pom.xml (#3256)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-22 21:43:38 +01:00
Wouter BornandGitHub 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
Wouter BornandGitHub 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
Wouter BornandGitHub 24cc559fa4 GitHub Actions workflow upgrades (#3218)
* Upgrade actions to fix deprecation warnings
* Use ubuntu-22.04 for builds

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-11 17:35:54 +01:00
Wouter BornandGitHub 2cb8f148ef Upgrade Californium to 2.7.4 (#3147)
For release notes see:

* https://projects.eclipse.org/projects/iot.californium/releases/2.7.4

Signed-off-by: Wouter Born <github@maindrain.net>
2022-12-05 17:44:17 +01:00
Wouter BornandGitHub 7b0b70ca4a Improve binding archetype for Crowdin usage (#3089)
With these changes the proper translations file will be created.
The updated comments should prevent review comments and rework.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-09-23 18:15:50 +02:00
Wouter BornandGitHub 149a9e9ee1 Upgrade Californium to 2.7.3 (#3085)
Upgrades Californium from 2.0.0 to 2.7.3 which has many fixes.

For release notes see:

* https://projects.eclipse.org/projects/iot.californium/governance

Replaces #3061, #3062

Signed-off-by: Wouter Born <github@maindrain.net>
2022-09-21 07:48:58 +02:00
Wouter BornandGitHub f69f6fa618 Add additional MqttBrokerConnectionConfig options (#3068)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-08-25 21:37:31 +02:00
Wouter BornandGitHub 9984237ce8 Add default translations for automation module types (#3035)
These were generated using openhab/openhab-core#2966.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-07-10 09:27:40 +02:00
Wouter BornandGitHub 03b13bd31e Move Eclipse m2e configuration to a profile (#3034)
This prevents the following warnings when executing: `mvn i18n:generate-default-translations`

[WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies could not be resolved: org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 was not found in https://openhab.jfrog.io/openhab/libs-snapshot during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of openhab-snapshot has elapsed or updates are forced

Signed-off-by: Wouter Born <github@maindrain.net>
2022-07-09 17:38:12 +02:00
Wouter BornandGitHub ca1711a2ea Upgrade i18n-maven-plugin to 3.3.0 (#3019)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-06-28 21:11:05 +02:00
Wouter BornandGitHub 6b224b7002 GitHub Actions workflow improvements (#3015)
* Upgrade actions to latest versions
* Upgrade Maven to 3.8.6
* Use Temurin JDK instead of Zulu JDK

The Temurin JDK is preinstalled in the [Ubuntu image](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md#java) whereas the Zulu JDK first need to be downloaded.
It should also perform better because the Temurin JDK is linked to glibc 2.12 whereas the Zulu JDK is linked to glibc 2.5.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-06-26 17:15:26 +02:00
Wouter BornandGitHub 5545004e09 Fix null analysis error in ThingMigrationOSGiTest (#3008)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-06-20 22:10:24 +02:00
Wouter BornandGitHub 916b6e9db1 Remove redundant @NonNullByDefault In Integration test (#3009)
Nullness default is redundant with a default specified for the enclosing type AutomationIntegrationJsonTest.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-06-20 22:09:30 +02:00
Wouter BornandGitHub 2b4e5af21e Revert "Exclude org.osgi.service.prefs to fix build (#3001)" (#3005)
This reverts commit af0566af95.
2022-06-17 12:50:35 +02:00
Wouter BornandGitHub af0566af95 Exclude org.osgi.service.prefs to fix build (#3001)
Someone added a dependency on a non-existing artifact in the new Equinox release and now many builds are broken because Xtext defines a version range for Equinox 😞, see:

* https://github.com/eclipse-equinox/equinox.bundles/issues/54
* https://github.com/eclipse/xtext/issues/2077

Signed-off-by: Wouter Born <github@maindrain.net>
2022-06-15 22:24:21 +02:00
Wouter BornandGitHub 226427d24e Upgrade SAT to 0.13.0 (#2978)
See the [0.13.0](https://github.com/openhab/static-code-analysis/milestone/20?closed=1) milestone for all changes in this release.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-05-24 14:04:37 +02:00
Wouter BornandGitHub 86ee4dc2b5 Fix null type mismatch errors (#2976)
This fixes the null type errors in Eclipse which were introduced by #2906.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-05-23 16:30:08 +02:00
Wouter BornandGitHub 4ab0f83e83 Upgrade to Karaf 4.3.7 (#2934)
* Syncs dependencies with Karaf 4.3.7
* Resolves itest runbundles for these new dependencies

Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-28 22:00:16 +02:00
Wouter BornandGitHub 8f7db68d1a Fix a few SAT findings (#2936)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-27 23:09:37 +02:00
Wouter BornandGitHub 13d2edb43e Add spaces to Magic service labels (#2935)
This adds some spaces to the Magic service labels so they look nicer in UIs.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-27 23:06:29 +02:00
Wouter BornandGitHub 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
Wouter BornandGitHub a4353ee5ca Fix UnitUtils.getDimensionName returns Angle instead of Dimensionless (#2895)
An Angle is also Dimensionless and because it is the first compatible unit it is always returned instead of any other Dimensionless unit.
With these changes `getDimensionName` will prefer the dimension of equal units over those of compatible units.

Fixes #2880

Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-14 22:57:18 +02:00
Wouter BornandGitHub 5df95cd8be Upgrade nrjavaserial to fix file descriptor leak (#2899)
Uses an openHAB 5.2.1.OH1 build based on the latest changes in the nrjavaserial master branch (https://github.com/NeuronRobotics/nrjavaserial/tree/7aa21d1dc8cecdc8daad3ebc40273cfb8179e9d2).
When there is an official release containing those changes we can upgrade to that.

Most importantly this fixes a file descriptor leak when checking lock dir permissions.
It also adds FreeBSD aarch64 (ARM64) support.

Fixes #1842

Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-08 07:42:45 +02:00
Wouter BornandGitHub b5de891ebd Update semantic metadata of group members when groups are added/removed (#2884)
* Update semantic metadata of group members when groups are added/removed

This fixes the issue that the semantic metadata is incorrect when defining items in files and groups in the UI.

Fixes #2117
2022-04-03 11:55:19 +02:00
Wouter BornandGitHub f0b53cea34 Fix i18n-maven-plugin project name (#2879)
This makes it follow the naming scheme as used with the other projects.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-29 17:05:58 +02:00
Wouter BornandGitHub f20799b69b Improve HostFragmentSupportTest (#2859)
* Remove duplications
* Better null handling
* Use constants
* Use default waitForAssert timeout (10s)

This may help to get the test more stable (#1089).

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-27 10:46:36 +02:00
Wouter BornandGitHub b5e0ccfa6a Add missing default translations for add-ons/marketplace configuration options (#2868)
This makes it possible to use Crowdin for translating the new configuration options introduced in #2811.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-23 17:45:23 +01:00
Wouter BornandGitHub 7fbd9768a7 Cleanup BundleVersion (#2861)
Fixes a few SAT findings in the BundleVersion class.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-21 08:19:27 +01:00
Wouter BornandGitHub a0cc58c807 Upgrade Eclipse OSGi system bundle to 3.17.200 in runtime BOM (#2849)
This prevents deprecation warnings when running the itests with Java 17:

WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.eclipse.osgi.internal.framework.SystemBundleActivator (file:org.openhab.core.tests/target/test/tmp/testing/itest/cnf/cache/6.2.0/org.openhab.core.bom.runtime-index/org.eclipse.osgi-3.16.300.v20210525-1715.jar)
WARNING: Please consider reporting this to the maintainers of org.eclipse.osgi.internal.framework.SystemBundleActivator
WARNING: System::setSecurityManager will be removed in a future release

See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=574729

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-18 07:44:47 +01:00
Wouter BornandGitHub 9e33db6702 Remove MQTT system broker leftovers (#2842)
The MqttService was used to keep track of the system MQTT brokers.
Since there are none it can be removed as well as the observer, tests, configuration and translations.

Fixes #2841

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-17 19:35:35 +01:00
Wouter BornandGitHub 7ae37f810b Fix typo in ScriptImpl exception message (#2847)
Fixes #2846

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-17 11:50:20 +01:00
Wouter BornandGitHub b62b2e1c90 Update bnd.bnd for CertificateGenerator package change (#2840)
There is also a bnd.bnd file referencing the CertificateGenerator so it also needs to be updated for the change in #2838

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-13 16:44:44 +01:00
Wouter BornandGitHub ba4e73ccf4 Run org.openhab.core tests in forks to reduce build time (#2837)
This saves about 1 minute when building this bundle.
Most bundles depend on org.openhab.core so cores would stay idle until this bundle is build in a parallel builds.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-13 12:11:11 +01:00
Wouter BornandGitHub 9eef6a3b6d Fix CertificateGenerator package (#2838)
The class is in a package that does not match the bundle name.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-13 10:42:06 +01:00
Wouter BornandGitHub 92a6c1c283 Fix trigger channels not found (#2833)
Trigger channel types failed to load because the item type became required with the changes in #2775.
Also adds a unit test for the ThingDescriptionReader to prevent future regressions.

Fixes #2831

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-12 21:49:25 +01:00
Wouter BornandGitHub e6ddeccd78 Add more null annotations to XML processing classes (#2775)
This adds null annotations to many XML processing classes and a few others.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-10 19:57:31 +01:00
Wouter BornandGitHub 7422a13e22 Remove temporary OSGi framework inclusion (#2820)
The itests are run using an R7 framework so the inclusion no longer seems required.
This also allows for easily customizing Import-Package headers in itest bundles.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-09 21:49:58 +01:00
Wouter BornandGitHub f664d756c7 Correct GHA build step condition (#2818)
Fixes that the wrong build step was made conditional in #2817.
It should conditionally add annotations.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-06 09:19:26 +01:00
Wouter BornandGitHub a54ef35adc Add Java 17 to GHA CI build matrix (#2817)
This adds Java 17 to the GitHub Actions CI build matrix so we can make sure the build keeps working with both Java 11 and Java 17.
It also updates the required Java version range used by the enforcer plugin so it is also possible to build with the supported Java versions.
Furthermore it prevents duplicate error annotations being added by only adding these in the Java 11 matrix build.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-05 17:24:10 +01:00
Wouter BornandGitHub 44f9baff18 Upgrade Xtext/Xtend to 2.26.0, LSP4J to 0.12.0 (#2786)
For release notes, see:

https://www.eclipse.org/Xtext/releasenotes.html#/releasenotes/2022/02/28/version-2-26-0

This release adds initial support for Java 17.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-03-05 11:28:56 +01:00
Wouter BornandGitHub 738149d44b Remove unused local variable (#2807)
Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-27 11:10:41 +01:00
Wouter BornandGitHub 9ff7ad43b9 Add more null annotations to automation bundles (#2763)
* Add more null annotations to automation bundles. This adds null annotations to many classes in the automation bundles and a few dimension classes.
* Further cleanup AutomationCommandExport
* Remove null from RuleStatusInfo JavaDocs. This should be clear from how the class is now annotated.
* Validate deserialized RuleStatusInfo
* Allow TriggerHandlerCallback to be triggered without providing a context

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-25 16:40:02 +01:00
Wouter BornandGitHub 2e0b242099 Fix rules stay uninitialized when using Java 17 (#2787)
On Java 17 there is no Nashorn scripting engine so it takes a bit longer before ScriptEngines are available.
Rules would stay uninitialized forever because the ScriptModuleTypeProvider did not notify its listeners whenever script.ScriptAction, script.ScriptCondition became available.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-20 20:42:32 +01:00
Wouter BornandGitHub 5e33cfc26a Fix test failures when building with Java 17 (#2788)
* Adds some --add-opens to maven-surefire-plugin for:
  * modbus transport tests (java.net)
  * tests using Gson/XStream (java.util)
* Only run ScriptScopeOSGiTest when Nashorn is available as it has been removed since JDK 15

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-20 20:40:10 +01:00
Wouter BornandGitHub c300410fd9 Support multi bundle bindings in i18n-maven-plugin (#2748)
* Support multi bundle bindings in i18n-maven-plugin

The plugin did not generate translations for bundles of bindings that do not have a binding.xml file.
With this change it should also be possible to generate the default translations of the modbus and mqtt bindings.

Related to openhab/openhab-addons#12220

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-20 11:57:18 +01:00
Wouter BornandGitHub f411561b70 Flush old JsonStorage to file before recreating a new one (#2778)
Fixes #2774

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-17 21:41:41 +01:00
Wouter BornandGitHub 92917946d4 Add even more null annotations (#2752)
This PR adds even more missing null annotations which did not fit in #2742 as it grew too big.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-17 21:30:51 +01:00
Wouter BornandGitHub 69c63703c3 Stop catching Throwables in DefaultMetricsRegistration (#2767)
Looks like this workaround introduced in #2480 is unnecessary nowadays because #2484 addressed the root cause.
This fixes the AvoidCatchingThrowable SAT findings.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-15 16:38:10 +01:00
Wouter BornandGitHub fb6ef20cd9 Move Java only tests from org.openhab.core.tests to org.openhab.core (#2768)
These tests only require Java and not OSGi.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-15 16:34:14 +01:00
Wouter BornandGitHub 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 BornandGitHub 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
Wouter BornandGitHub b5bf0b0157 Always run OSGi HTTP service on random port in itests (#2759)
It is probably always a good idea to run the OSGi HTTP service on a random available port in itests.
This fixes some stacktraces when running itests and it will also prevent future issues when tests using the HTTP service are written.

These stacktraces often show when running itests in parallel:

```
org.ops4j.pax.web.pax-web-runtime [org.ops4j.pax.web.service.internal.HttpServiceStarted] ERROR : Could not start the servlet context for context path []
java.io.IOException: Failed to bind to /0.0.0.0:8080
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
	at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
	at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
	at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
	at org.eclipse.jetty.server.Server.doStart(Server.java:401)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl$1.start(JettyServerImpl.java:350)
	at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:255)
	at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:226)
	at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:210)
	at org.ops4j.pax.web.service.internal.HttpServiceProxy.registerServlet(HttpServiceProxy.java:69)
	at org.openhab.core.io.http.servlet.BaseOpenHABServlet.activate(BaseOpenHABServlet.java:56)
	at org.openhab.core.io.http.servlet.OpenHABServlet.activate(OpenHABServlet.java:40)
...
```

Similar to: openhab/openhab-addons#11523

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-14 08:09:55 +01:00
Wouter BornandGitHub b36f292dcd Prevent JsonStorage backup corruption when disk is full (#2746)
Fixes #2267

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-10 19:27:56 +01:00
Wouter BornandGitHub d1a4d226b6 Upgrade XStream to 1.4.19 (#2738)
This addresses CVE-2021-43859, see:

https://x-stream.github.io/changes.html

Signed-off-by: Wouter Born <github@maindrain.net>
2022-02-06 21:33:10 +01:00
Wouter BornandGitHub ab929b50aa Upgrade to Karaf 4.3.6 (#2689)
* Syncs dependencies with Karaf 4.3.6
* Resolves itest runbundles for these new dependencies

Signed-off-by: Wouter Born <github@maindrain.net>
2022-01-16 11:55:04 +01:00
Wouter BornandGitHub 029151d787 Update org.openhab.core.io.http.auth .classpath (#2679)
This prevents local changes whenever you update this Maven project in Eclipse.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-01-11 07:46:00 +01:00
Wouter BornandGitHub 0a778df0ad Update groovy license headers to 2022 (#2675)
* Update groovy license headers to 2022
* Reuse existing header file and use Groovy 3.0.9

Updates the year in a few groovy file headers that were missed in #2671.

Signed-off-by: Wouter Born <github@maindrain.net>
2022-01-08 17:03:39 +01:00
Wouter BornandGitHub 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
Wouter BornandGitHub 3bcbaca6c0 Add i18n-maven-plugin dependency (#2632)
Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-22 20:25:46 +01:00
Wouter BornandGitHub b285e9be8f Upgrade to Karaf 4.3.4 (#2603)
* Syncs dependencies with Karaf 4.3.4
* Resolves itest runbundles for these new dependencies

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-18 10:59:35 +01:00
Wouter BornandGitHub 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 BornandGitHub 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
Wouter BornandGitHub 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
Wouter BornandGitHub a9504bfced Revert "Add i18n-maven-plugin dependency (#2584)" (#2585)
This reverts commit e0544e2cba.
2021-12-03 09:44:05 +01:00
Wouter BornandGitHub 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 BornandGitHub 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 BornandGitHub 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 BornandGitHub 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 BornandGitHub 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 BornandGitHub 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
Wouter BornandGitHub 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
Wouter BornandGitHub 3d722ec13b Upgrade UoM dependencies (#2573)
Signed-off-by: Wouter Born <github@maindrain.net>
2021-11-21 10:27:20 +01:00
Wouter BornandGitHub 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
Wouter BornandGitHub 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
Wouter BornandGitHub 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
Wouter BornandGitHub 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