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 modified core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceMetaDataNotification.java (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/notification/impl/NotificationSenderTest.java (diff) The file was modified northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/notification/ResourceNotificationsTest.java (diff) The file was modified core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceDataNotification.java (diff) The file was modified northbound/websocket/src/main/java/org/eclipse/sensinact/northbound/ws/impl/WebSocketEndpoint.java (diff) The file was modified northbound/session/session-impl/src/test/java/org/eclipse/sensinact/nortbound/session/integration/SessionSubscribeTest.java (diff) The file was modified northbound/rest/src/main/java/org/eclipse/sensinact/northbound/rest/impl/RestNorthbound.java (diff) The file was modified core/api/src/main/java/org/eclipse/sensinact/core/notification/LifecycleNotification.java (diff) The file was modified core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceActionNotification.java (diff) The file was modified southbound/virtual/virtual-temperature-sensor/src/main/java/org/eclipse/sensinact/gateway/southbound/virtual/temperature/VirtualTemperatureDto.java (diff) The file was modified core/models/provider/src/main/resources/model/sensinact.genmodel (diff) The file was modified core/models/provider/src/main/resources/model/sensinact.ecore (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java (diff) The file was added core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModelBuilder.java The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceImpl.java (diff) The file was added core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFService.java The file was modified core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/SensinactEMFModelManager.java (diff) The file was modified core/api/src/main/java/org/eclipse/sensinact/core/model/Model.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceBuilderImpl.java (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java (diff) The file was added core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFServiceBuilder.java The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelBuilderImpl.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java (diff) The file was added core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModel.java The file was modified southbound/device-factory/parser-json/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/parser/json/JsonRecord.java (diff) The file was added southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java The file was modified southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java (diff) The file was modified southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java (diff) The file was modified southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientConfiguration.java (diff) The file was added southbound/mqtt/.gitignore The file was modified southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttDelayedStartTest.java (diff) The file was modified southbound/mqtt/pom.xml (diff) The file was modified southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java (diff) The file was modified southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttAuthTest.java (diff) The file was modified southbound/mqtt/mqtt-device-factory/tests.bnd (diff) The file was modified southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttTest.java (diff) The file was modified southbound/mqtt/mqtt-device-factory/integration-test.bndrun (diff) The file was modified southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java (diff) The file was modified southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java (diff) The file was added southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttWSDeviceFactoryTest.java The file was modified southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java (diff) The file was modified southbound/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 modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/model/impl/ModelBuildingTest.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java (diff) The file was modified core/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 modified core/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 modified core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/GenericDtoExtractorTest.java (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/CustomBaseValueDtoExtractorTest.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java (diff) The file was modified core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/NullAction.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/SensinactWhiteboard.java (diff) The file was modified core/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 modified core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/dto/EMFGenericDto.java (diff) The file was modified core/api/src/main/java/org/eclipse/sensinact/core/push/dto/GenericDto.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java (diff) The file was modified core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java (diff) The file was modified core/impl/src/test/java/org/eclipse/sensinact/core/integration/DataUpdateServiceTest.java (diff) The file was modified southbound/device-factory/device-factory-core/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/impl/FactoryParserHandler.java (diff) The file was modified southbound/history/timescale-provider/src/main/java/org/eclipse/sensinact/gateway/southbound/history/timescale/TimescaleHistoricalStore.java (diff)