Skip to content
Success

Changes

Summary

  1. Include the model name in topic notifications (commit: 9d68852) (details)
  2. use real eClass from service not from reference (commit: 4410aac) (details)
  3. fixed NPE due to missing service EClass (commit: a648fd6) (details)
  4. Fixed wrong import (commit: 48dcadf) (details)
  5. Added support for WebSocket MQTT brokers (commit: bcf6224) (details)
  6. Ignore Moquette and Paho files (commit: 639c440) (details)
  7. Upgrade to Moquette 0.17 (commit: 21a3fa0) (details)
  8. Updated MQTT device factory tests for WS support (commit: 5bd0ac6) (details)
  9. Avoid trying to reconnect a null MQTT client (commit: 79587d0) (details)
  10. Implement model deletion in the Model Manager (commit: d221b61) (details)
  11. Expose #getProviders(String modelPackageUri, String model) from the twin (commit: 6eebd84) (details)
  12. Add support for nullable data which should not create a resource (commit: 068be10) (details)
  13. Reinstate final modifier for GenericDto (commit: 61101a6) (details)
  14. Fix missing check in SetValueCommand (commit: c9be1b3) (details)
  15. removed renaming in Device Factory (commit: ec12f6b) (details)
  16. Fix logging of errors (commit: 81e9e2e) (details)
Commit 9d68852a61656138c22694f9e0988f6b0a9a1e95 by timothyjward
Include the model name in topic notifications

Filtering at the model level is extremely useful as it permits efficient tracking of multiple providers using the same model. The model URI is required to ensure strict uniqueness, however the model uri is difficult to represent in topic syntax, and would need large amounts of escaping. The trade off is therefore to allow the model name to be used in the topic for rapid checking, with the filter being available for more precise matching if needed.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 9d68852)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceMetaDataNotification.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/notification/impl/NotificationSenderTest.java (diff)
The file was modifiednorthbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/notification/ResourceNotificationsTest.java (diff)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceDataNotification.java (diff)
The file was modifiednorthbound/websocket/src/main/java/org/eclipse/sensinact/northbound/ws/impl/WebSocketEndpoint.java (diff)
The file was modifiednorthbound/session/session-impl/src/test/java/org/eclipse/sensinact/nortbound/session/integration/SessionSubscribeTest.java (diff)
The file was modifiednorthbound/rest/src/main/java/org/eclipse/sensinact/northbound/rest/impl/RestNorthbound.java (diff)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/notification/LifecycleNotification.java (diff)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceActionNotification.java (diff)
The file was modifiedsouthbound/virtual/virtual-temperature-sensor/src/main/java/org/eclipse/sensinact/gateway/southbound/virtual/temperature/VirtualTemperatureDto.java (diff)
Commit 4410aac42c5a5724db1a96b563512940ce02aeb6 by Guido Grune
use real eClass from service not from reference

Signed-off-by: Guido Grune <g.grune@datainmotion.com>
(commit: 4410aac)
The file was modifiedcore/models/provider/src/main/resources/model/sensinact.genmodel (diff)
The file was modifiedcore/models/provider/src/main/resources/model/sensinact.ecore (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java (diff)
Commit a648fd6334494a065bf1355a64b37a945dcffeed by j.albert
fixed NPE due to missing service EClass

Signed-off-by: Juergen Albert <j.albert@data-in-motion.biz>
(commit: a648fd6)
The file was addedcore/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModelBuilder.java
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceImpl.java (diff)
The file was addedcore/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFService.java
The file was modifiedcore/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/SensinactEMFModelManager.java (diff)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/model/Model.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceBuilderImpl.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java (diff)
The file was addedcore/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFServiceBuilder.java
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelBuilderImpl.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java (diff)
The file was addedcore/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModel.java
The file was modifiedsouthbound/device-factory/parser-json/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/parser/json/JsonRecord.java (diff)
Commit bcf62248b324ea9ac0c998311802771aa62466f1 by thomas.calmant
Added support for WebSocket MQTT brokers

Including client authentication
(commit: bcf6224)
The file was addedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java
The file was modifiedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java (diff)
The file was modifiedsouthbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java (diff)
The file was modifiedsouthbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientConfiguration.java (diff)
The file was addedsouthbound/mqtt/.gitignore
The file was modifiedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttDelayedStartTest.java (diff)
The file was modifiedsouthbound/mqtt/pom.xml (diff)
The file was modifiedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java (diff)
The file was modifiedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttAuthTest.java (diff)
The file was modifiedsouthbound/mqtt/mqtt-device-factory/tests.bnd (diff)
The file was modifiedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttTest.java (diff)
The file was modifiedsouthbound/mqtt/mqtt-device-factory/integration-test.bndrun (diff)
The file was modifiedsouthbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java (diff)
The file was modifiedsouthbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java (diff)
Commit 5bd0ac64fe42679f53052062d08496c362b0091f by thomas.calmant
Updated MQTT device factory tests for WS support
(commit: 5bd0ac6)
The file was addedsouthbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttWSDeviceFactoryTest.java
The file was modifiedsouthbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java (diff)
Commit 79587d09e665043bd54730da0aff1c64bd4ec194 by thomas.calmant
Avoid trying to reconnect a null MQTT client
(commit: 79587d0)
The file was modifiedsouthbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java (diff)
Commit d221b6126804814251557f7d4cda8d11e7c9300d by timothyjward
Implement model deletion in the Model Manager

The model manager API provides a deletion method, but this was not implemented. This commit implements deletion logic, which delegates to the Model Nexus. The Model Nexus:

1. Finds the Model
2. If found it deletes any and all providers using the model, then it deletes the model from its owning EPackage
3. If the EPackage is now empty of models then the EPackage is removed from the Model Nexus

The ModelImpl has also been updated to check the the model is still registered before allowing any action. This prevents deleted models from being used after they are deleted.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: d221b61)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/model/impl/ModelBuildingTest.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/model/nexus/impl/NexusTest.java (diff)
Commit 6eebd84301fc3794c5a9dd773c3bcde0d8733afe by timothyjward
Expose #getProviders(String modelPackageUri, String model) from the twin

The method getProviders(String, String) existed in the EMF Twin, but not the base twin. As we already use the model package uri extensively in that interface we should expose it here as well.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 6eebd84)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/twin/SensinactDigitalTwin.java (diff)
Commit 068be1017ad07f297a0316652e66e9dec2412304 by timothyjward
Add support for nullable data which should not create a resource

In some cases null is a valid value to return, but should not be used to initialize a resource. For example if a DTO contains some optional resources which may never be set for some providers, but will be set for others, and those resources may be null, then this was not previously possible

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 068be10)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/GenericDtoExtractorTest.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/CustomBaseValueDtoExtractorTest.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java (diff)
The file was modifiedcore/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/NullAction.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/SensinactWhiteboard.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/command/impl/WhiteboardImplTest.java (diff)
Commit 61101a6c9a361235909f11624cf1e8ea199fb126 by timothyjward
Reinstate final modifier for GenericDto

The EMF dto altered the GenericDto so that it could extend it. The GenericDto was intentionally final to prevent usage mistakes in the API. There are few fields and we should copy them.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 61101a6)
The file was modifiedcore/emf-api/src/main/java/org/eclipse/sensinact/core/emf/dto/EMFGenericDto.java (diff)
The file was modifiedcore/api/src/main/java/org/eclipse/sensinact/core/push/dto/GenericDto.java (diff)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java (diff)
Commit c9be1b379b44dcb0c5400ff44d4664ab3202c764 by timothyjward
Fix missing check in SetValueCommand

The UPDATE_IF_PRESENT logic would always run even if the data value was not null. This has been fixed and regression tests added for all NullAction behaviours.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: c9be1b3)
The file was modifiedcore/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java (diff)
The file was modifiedcore/impl/src/test/java/org/eclipse/sensinact/core/integration/DataUpdateServiceTest.java (diff)
Commit ec12f6bd8fb171106dde6afa780a780e1dde1b22 by j.albert
removed renaming in Device Factory

Signed-off-by: Juergen Albert <j.albert@data-in-motion.biz>
(commit: ec12f6b)
The file was modifiedsouthbound/device-factory/device-factory-core/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/impl/FactoryParserHandler.java (diff)
Commit 81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8 by Guido Grune
Fix logging of errors

Signed-off-by: Guido Grune <g.grune@datainmotion.com>
(commit: 81e9e2e)
The file was modifiedsouthbound/history/timescale-provider/src/main/java/org/eclipse/sensinact/gateway/southbound/history/timescale/TimescaleHistoricalStore.java (diff)