Skip to content

Changes

Started 2 yr 4 mo ago
Took 5.9 sec
SensorThings MQTT: Queue notifications to keep their order

Integration tests were failing because sensiNact notifications and their
handling were done in (at least) 2 threads, meaning that the order of
sending of notification couldn't be guaranteed.

This commit uses a single thread that handles the publication of
messages in the same order as the notifications, still using multiple
threads to handle notifications and payload generation.
(commit: 8c06435)
thomas.calmant at
Package regsitration and Model Package Uri

Signed-off-by: Juergen Albert <j.albert@data-in-motion.biz>
(commit: b36801f)
northbound/websocket/integration-test.bndrun core/impl/src/main/java/org/eclipse/sensinact/core/command/impl/ActionHandler.java distribution/features/core-feature/src/main/resources/core-feature.json pom.xml core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/AbstractResourceMethod.java examples/model-based/src/main/java/org/eclipse/sensinact/prototype/resource/ResourceModelProvider.java southbound/http/http-device-factory/integration-test.bndrun core/api/src/main/java/org/eclipse/sensinact/core/twin/SensinactDigitalTwin.java northbound/sensorthings/rest.gateway/integration-test.bndrun core/api/src/main/java/org/eclipse/sensinact/core/notification/AbstractResourceNotification.java core/emf-api/dependency-check.bndrun distribution/features/core-feature/src/test/java/org/eclipse/sensinact/gateway/feature/integration/core/CoreFeatureTest.java core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java northbound/sensorthings/mqtt/integration-test.bndrun southbound/virtual/virtual-temperature-sensor/integration-test.bndrun northbound/sensorthings/mqtt/src/test/java/org/eclipse/sensinact/gateway/northbound/sensorthings/mqtt/integration/InsecureMqttNotificationsTest.java core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/ModelPackageUri.java core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelBuilderImpl.java northbound/query-handler/integration-test.bndrun core/impl/src/main/java/org/eclipse/sensinact/core/notification/impl/NotificationAccumulatorImpl.java core/impl/src/main/java/org/eclipse/sensinact/core/twin/impl/SensinactResourceImpl.java core/impl/src/test/java/org/eclipse/sensinact/core/twin/impl/SensinactTwinTest.java southbound/mqtt/mqtt-device-factory/integration-test.bndrun core/impl/src/test/java/org/eclipse/sensinact/core/command/impl/WhiteboardImplTest.java southbound/virtual/virtual-temperature-sensor/src/test/java/org/eclipse/sensinact/gateway/southbound/virtual/temperature/integration/TemperatureSensorTest.java core/api/src/main/java/org/eclipse/sensinact/core/command/ResourceCommand.java core/impl/src/main/java/org/eclipse/sensinact/core/notification/impl/ImmediateNotificationAccumulator.java core/impl/src/test/java/org/eclipse/sensinact/core/model/nexus/impl/SubscriptionTest.java core/impl/src/test/java/org/eclipse/sensinact/core/command/impl/GatewayThreadImplTest.java core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/SensinactWhiteboard.java core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/verb/ACT.java distribution/launcher/pom.xml core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java core/impl/src/test/java/org/eclipse/sensinact/core/integration/notification/SubscribeTest.java core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/verb/GET.java core/api/src/main/java/org/eclipse/sensinact/core/notification/NotificationAccumulator.java core/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java core/impl/src/main/java/org/eclipse/sensinact/core/command/impl/ResourcePushHandler.java core/impl/integration-test.bndrun distribution/launcher/export.bndrun southbound/history/timescale-provider/src/main/java/org/eclipse/sensinact/gateway/southbound/history/timescale/TimescaleDatabaseWorker.java core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/emf/EMFUtil.java core/impl/src/test/java/org/eclipse/sensinact/core/model/nexus/impl/NexusTest.java southbound/history/timescale-provider/integration-test.bndrun core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/RegistryKey.java northbound/filters/ldap/integration-test.bndrun core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/emf/compare/EMFCompareUtil.java core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/GetMethod.java core/api/src/main/java/org/eclipse/sensinact/core/push/dto/BaseValueDto.java core/impl/src/main/java/org/eclipse/sensinact/core/twin/impl/SensinactDigitalTwinImpl.java northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/notification/ResourceNotificationsTest.java core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/SetMethod.java core/impl/src/main/java/org/eclipse/sensinact/core/twin/impl/SensinactProviderImpl.java northbound/security/openid-connect/integration-test.bndrun core/api/dependency-check.bndrun core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetMetadataCommand.java northbound/sensorthings/rest.gateway/src/test/java/org/eclipse/sensinact/sensorthings/sensing/rest/integration/ObservationHistoryTest.java southbound/history/timescale-provider/src/test/java/org/eclipse/sensinact/gateway/southbound/history/timescale/integration/TimescaleHistoryTest.java core/impl/src/main/java/org/eclipse/sensinact/core/notification/impl/AbstractNotificationAccumulatorImpl.java southbound/http/http-callback-whiteboard/integration-test.bndrun core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/ActMethod.java core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/verb/UriParam.java core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/verb/SET.java southbound/history/timescale-provider/src/main/java/org/eclipse/sensinact/gateway/southbound/history/timescale/TimescaleHistoricalStore.java northbound/rest/integration-test.bndrun core/impl/src/test/java/org/eclipse/sensinact/core/notification/impl/NotificationSenderTest.java core/api/src/main/java/org/eclipse/sensinact/core/model/SensinactModelManager.java core/models/provider/src/main/resources/model/sensinact.ecore northbound/sensorthings/mqtt/pom.xml core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java core/models/provider/src/main/resources/model/sensinact.genmodel core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/twin/SensinactEMFDigitalTwin.java core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/AnnotationBasedDtoExtractorTest.java core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java core/impl/src/main/java/org/eclipse/sensinact/core/command/impl/ResourcePullHandler.java
j.albert at
Update the osgi-test version to 1.3.0-SNAPSHOT

This upgrade improves the lifecycle of osgi-test considerably, particularly for configurations. It allows some test tidy-up, as well as preparing for more stable tests with the new OSGi Technology Jakarta REST implementation

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 0a4ee42)
northbound/filters/ldap/src/test/java/org/eclipse/sensinact/northbound/filters/ldap/integration/LdapFilterTest.java northbound/query-handler/src/test/java/org/eclipse/sensinact/northbound/query/test/integration/MissingEntityTest.java southbound/http/http-callback-whiteboard/integration-test.bndrun southbound/history/timescale-provider/src/test/java/org/eclipse/sensinact/gateway/southbound/history/timescale/integration/TimescaleHistoryTest.java southbound/http/http-callback-whiteboard/pom.xml northbound/rest/integration-test.bndrun northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/MissingEntityTest.java northbound/query-handler/src/test/java/org/eclipse/sensinact/northbound/query/test/integration/ResourceAccessTest.java pom.xml northbound/websocket/integration-test.bndrun southbound/virtual/virtual-temperature-sensor/src/test/java/org/eclipse/sensinact/gateway/southbound/virtual/temperature/integration/TemperatureSensorTest.java northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/notification/ResourceNotificationsTest.java southbound/virtual/virtual-temperature-sensor/integration-test.bndrun northbound/sensorthings/mqtt/integration-test.bndrun southbound/http/http-device-factory/integration-test.bndrun southbound/http/http-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/http/factory/integration/HttpDeviceFactoryTest.java northbound/filters/ldap/integration-test.bndrun northbound/security/openid-connect/integration-test.bndrun southbound/history/timescale-provider/tests.bnd southbound/mqtt/mqtt-device-factory/integration-test.bndrun northbound/websocket/src/test/java/org/eclipse/sensinact/northbound/websocket/integration/WebSocketTest.java northbound/filters/ldap/src/test/java/org/eclipse/sensinact/northbound/filters/ldap/integration/LdapComponentTest.java core/impl/src/test/java/org/eclipse/sensinact/core/integration/metrics/MetricsTest.java northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/ResourceAccessTest.java northbound/websocket/src/test/java/org/eclipse/sensinact/northbound/websocket/integration/SecureWebSocketTest.java northbound/sensorthings/rest.gateway/integration-test.bndrun southbound/history/timescale-provider/integration-test.bndrun northbound/query-handler/integration-test.bndrun southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/SecureAccessTest.java core/impl/src/test/java/org/eclipse/sensinact/core/integration/session/AdminServiceTest.java southbound/http/http-callback-whiteboard/src/test/java/org/eclipse/sensinact/gateway/southbound/http/callback/integration/HttpCallbackWhiteboardTest.java core/impl/integration-test.bndrun northbound/query-handler/src/test/java/org/eclipse/sensinact/northbound/query/test/integration/DescriptionsTest.java core/impl/src/test/java/org/eclipse/sensinact/core/integration/notification/SubscribeTest.java northbound/sensorthings/rest.gateway/src/test/java/org/eclipse/sensinact/sensorthings/sensing/rest/integration/ObservationHistoryTest.java northbound/sensorthings/rest.gateway/src/test/java/org/eclipse/sensinact/sensorthings/sensing/rest/integration/AbstractIntegrationTest.java
timothyjward at
Added ability to configure logging (via logback) for JUnit tests in all projects that currently have tests.

Signed-off-by: David Leangen <osgi@leangen.net>
(commit: a165d94)
osgi at
Reduce the verbosity of integration test logging

Ensure that the test-logback.xml is used in the integration tests, and that we use the jul-to-slf4j bridge where appropriate

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: aa0e8fc)
timothyjward at
Improve reliability of sensorthings MQTT tests

* Upgrade to the released osgi-test 1.3.0
* Upgrade to Moquette 0.17.0
* Use Configuration annotations in SensorThings MQTT integration tests
* Update to non-deprecated configuration properties for Moquette

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: d694802)
timothyjward at
Make the sensiNact build more CI friendly

Since Maven 3.5.0 poms have had the ability to be [CI-friendly](https://maven.apache.org/maven-ci-friendly.html) allowing a more flexible approach to releasing without the need to edit POM files. This also impacts the creation of our feature files, which can now flexibly alter the versions of the bundles they deploy to match what's being built in by CI. The end result should be a much simpler time when we want to tag or release any particular commit.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 75ebfda)
southbound/http/http-device-factory/pom.xml northbound/security/pom.xml core/api/pom.xml distribution/features/core-feature/pom.xml distribution/pom.xml northbound/websocket/pom.xml core/impl/pom.xml southbound/device-factory/parser-json/pom.xml distribution/features/pom.xml southbound/device-factory/parser-csv/pom.xml northbound/sensorthings/mqtt/pom.xml pom.xml core/models/pom.xml distribution/features/northbound-rest-feature/src/main/resources/northbound-rest-feature.json southbound/mqtt/pom.xml core/emf-api/pom.xml southbound/virtual/pom.xml distribution/features/northbound-websocket-feature/pom.xml southbound/history/history-api/pom.xml southbound/history/pom.xml distribution/features/northbound-ogc-sensorthings-mqtt-feature/src/main/resources/northbound-ogc-sensorthings-mqtt-feature.json distribution/features/northbound-oidc-authenticator-feature/src/main/resources/northbound-oidc-authenticator-feature.json northbound/filters/pom.xml core/annotation/pom.xml distribution/features/jakarta-servlet-whiteboard-feature/src/main/resources/jakarta-servlet-whiteboard-feature.json distribution/launcher/pom.xml examples/pull-based/pom.xml distribution/features/northbound-rest-feature/pom.xml northbound/gogo-shell/pom.xml northbound/sensorthings/rest.gateway/pom.xml distribution/features/northbound-websocket-feature/src/main/resources/northbound-websocket-feature.json examples/action/pom.xml examples/model-based/pom.xml northbound/session/session-impl/pom.xml southbound/history/timescale-provider/pom.xml distribution/features/virtual-temperature-sensor-feature/src/main/resources/virtual-temperature-sensor-feature.json northbound/filters/ldap/pom.xml examples/push-based/pom.xml northbound/query-handler/pom.xml examples/writable/pom.xml distribution/features/gogo-shell-feature/pom.xml northbound/security/security-api/pom.xml northbound/security/openid-connect/pom.xml southbound/mqtt/mqtt-device-factory/pom.xml distribution/features/northbound-oidc-authenticator-feature/pom.xml distribution/features/timescale-history-provider-feature/src/main/resources/timescale-history-provider-feature.json northbound/session/session-api/pom.xml southbound/device-factory/device-factory-core/pom.xml northbound/pom.xml distribution/features/gogo-shell-feature/src/main/resources/gogo-shell-feature.json distribution/features/jakarta-rest-whiteboard-feature/src/main/resources/jakarta-rest-whiteboard-feature.json southbound/http/http-callback-whiteboard/pom.xml core/models/provider/pom.xml southbound/device-factory/pom.xml distribution/features/timescale-history-provider-feature/pom.xml distribution/features/virtual-temperature-sensor-feature/pom.xml northbound/sensorthings/filter/pom.xml examples/reflective/pom.xml northbound/sensorthings/rest.api/pom.xml distribution/features/northbound-ogc-sensorthings-feature/pom.xml distribution/test-utils/pom.xml examples/generic/pom.xml core/geo-json/pom.xml core/models/metadata/pom.xml distribution/features/jakarta-rest-whiteboard-feature/pom.xml northbound/session/pom.xml southbound/virtual/virtual-temperature-sensor/pom.xml northbound/sensorthings/dto/pom.xml southbound/http/pom.xml examples/pom.xml sensinact-bom/pom.xml northbound/filters/filters.core/pom.xml northbound/rest/pom.xml northbound/sensorthings/pom.xml distribution/features/jakarta-servlet-whiteboard-feature/pom.xml distribution/features/northbound-ogc-sensorthings-mqtt-feature/pom.xml examples/notification/pom.xml southbound/pom.xml distribution/assembly/pom.xml southbound/mqtt/mqtt-client/pom.xml distribution/features/core-feature/src/main/resources/core-feature.json core/pom.xml distribution/features/northbound-ogc-sensorthings-feature/src/main/resources/northbound-ogc-sensorthings-feature.json
timothyjward at