Skip to content
Success

Changes

Summary

  1. Implement the expand query for SensorThings northbound (commit: 79ed936) (details)
Commit 79ed936acb54a0e967160420560a37f864f12751 by timothyjward
Implement the expand query for SensorThings northbound

This commit adds a backing implementation for the expand query for the SensorThings REST API. This is a pervasive change which requires us to carry context throughout the query so as to attach additional data structures based on the filter content.

* All queries now use full ProviderSnapshot instances so that we don't have to re-query for other resource data when filling in expansions
* Limited bulk data is included in expansions to prevent the JSON size exploding
* Data context is mapped by id to ensure we can expand values in lists
* All context is carried outside the DTO to avoid unnecessary fields appearing in the JSON output

Note that we require that all ids are able to be turned into strings. This is currently true throughout the gateway.

Signed-off-by: Tim Ward <timothyjward@apache.org>
(commit: 79ed936)
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/FeaturesOfInterestAccessImpl.java
The file was addednorthbound/sensorthings/rest.api/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/filters/ExpansionSettingsImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/test/java/org/eclipse/sensinact/sensorthings/sensing/rest/integration/TestUtils.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/LocationsAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/SensorsAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.api/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/filters/CountFilter.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/ObservedPropertiesAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.api/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/IFilterConstants.java
The file was modifiednorthbound/sensorthings/rest.api/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/filters/ExpandFilter.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/DtoMapper.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/DatastreamsAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/ObservationsAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/test/java/org/eclipse/sensinact/sensorthings/sensing/rest/integration/ObservationHistoryTest.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/ThingsAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/RootResourceAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/HistoricalLocationsAccessImpl.java
The file was modifiednorthbound/sensorthings/rest.gateway/src/test/java/org/eclipse/sensinact/sensorthings/sensing/rest/integration/FiltersTest.java
The file was addednorthbound/sensorthings/rest.api/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/ExpansionSettings.java
The file was addednorthbound/sensorthings/rest.gateway/src/main/java/org/eclipse/sensinact/sensorthings/sensing/rest/impl/AbstractAccess.java