Skip to content

Commit c56b5df

Browse files
committed
Merge commit '26bb4ec356040e1666d9ab922ab1116c529b43c7'
2 parents 62595f9 + 26bb4ec commit c56b5df

File tree

80 files changed

+1764
-470
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+1764
-470
lines changed

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
# Change Log
22

3-
## 4.1.1
3+
## 4.2.0-beta.1
4+
* Set default log level to DEBUG [1582c81](1582c81a3bf31e627492c6be7e217e44d2f55de6)
5+
* Fix empty value list for aggregation [2e70c12](2e70c12940b34f8890b9a8c828285290ee0f233c)
6+
* Fix higher spatial unit aggregation [f8b4d32](f8b4d32f94595914c65c6303b6919e3a589b5536)
7+
* Increase minor version [3f8d5c7](3f8d5c72d010c905c7c4e361fd618bd52b287712)
8+
* Implement further agregation functions and add tests [b19e2af](b19e2af397881d59369deae73949dc73dbd5e076)
9+
* Refactor unit tests and add tests for aggregation count [3d439d7](3d439d75d1853b6725990dcff59a1be6c74b39b4)
10+
* Add aggregation type to models [b313283](b313283ae302721ff566f1921f302a0fb5d8d3c8)
11+
* Fix count aggregation [c24693f](c24693f23dfd782bd003be2d682e316bc2d4222c)
12+
* Adjust docker test setup [b0bc09b](b0bc09b42175a170ffb31862b2241041f86b3823)
13+
* Include successfully aggregated features in response [56335a7](56335a7636a7577e806b7f7f4ca02dab9dce0151)
14+
* Take into account results for aggregations in response and monitor [460c434](460c43444772e1463fa82e042d906b84a306ce16)
15+
* Implement aggregation unit tests [09c66bf](09c66bfc7b0c169ac41d3a021231ebfec37ef25a)
16+
* Implement count aggregation [cf081ad](cf081ad657ffcee15a576359be0696faecf73175)
17+
* Fix tests [200a3c6](200a3c670c25e1daad8a70a2de5e08f458d7dd27)
18+
* Introduce aggregation for higher spatial units [1f89cf5](1f89cf5f551cc4625d5c0453411b1585e492a45e)
19+
* Replace deprecated mock annotation [7b2a86b](7b2a86b83c037609f8cea0563e1658f7a68172a9)
20+
* Refactor DataSourceRetrieverRepository [be426e5](be426e5e94f60ae1827b39fedc454ab809bcdfae)
21+
* Refactor controller classes [38b6c0d](38b6c0d59c017c6716877cdd0acbea64c2c302b1)
22+
* Regenerate API classes for introducing required POST body constraint [1ef3e3d](1ef3e3dc26cd7102edbad8f9d7c039f46dac8b6a)
23+
* Generate models for new aggregation parameter [07f32d9](07f32d9ccd2576faa103ab2e4d39e0dbe381d62b)
424
* Change model class generation config and regenerate models [9538269](9538269c5d6bbd75952a043d1aedf599471b840c)
525
* Update API client classes [6241bf2](6241bf2e9142034cd66c8b2df9fec1f4d691c9db)
626
* Regenerate model classes [da681a5](da681a5fd250920a432fab2905116c6254edd1c3)

docker/config/data-management.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ DB_SCHEMA_INDICATORS=public # only relevant with GeoServer connection
4848
# Keycloak #
4949
#####################
5050
KEYCLOAK_RESOURCE=kommonitor-data-management # client/resource id of data management component in Keycloak realm
51-
KEYCLOAK_CLI_SECRET=data-management-secret
51+
KEYCLOAK_CLI_SECRET=keycloak-cli-secret
5252

5353
#####################
5454
# Swagger-UI #

docker/docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ services:
5151
- "8085:8085"
5252
networks:
5353
- kommonitor
54+
volumes:
55+
- ./storage/database/data:/var/lib/postgresql/data
5456
links:
5557
- kommonitor-db
5658
env_file:

docker/realms/realm-export.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@
698698
"enabled": true,
699699
"alwaysDisplayInConsole": false,
700700
"clientAuthenticatorType": "client-secret",
701-
"secret": "**********",
701+
"secret": "keycloak-cli-secret",
702702
"redirectUris": [],
703703
"webOrigins": [],
704704
"notBefore": 0,

kommonitor-datamanagement-api-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.n52.kommonitor</groupId>
77
<artifactId>kommonitor-importer</artifactId>
8-
<version>4.1.1</version>
8+
<version>4.2.0-beta.1</version>
99
</parent>
1010

1111
<artifactId>kommonitor-data-management-api-client</artifactId>

kommonitor-importer-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.n52.kommonitor</groupId>
55
<artifactId>kommonitor-importer</artifactId>
6-
<version>4.1.1</version>
6+
<version>4.2.0-beta.1</version>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>
99

kommonitor-importer-api/src/main/java/org/n52/kommonitor/importer/api/ConvertersApiController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public ResponseEntity<ConverterType> getConverterByName(
5151
LOG.info("Recevied 'getConverterByName' request for name: {}", name);
5252

5353
Optional<AbstractConverter> converterOpt = converterRepository.getConverter(name);
54-
if (!converterOpt.isPresent()) {
54+
if (converterOpt.isEmpty()) {
5555
throw new ResourceNotFoundException(AbstractConverter.class, name);
5656
}
5757
return new ResponseEntity<ConverterType>(encoder.encode(converterOpt.get()), HttpStatus.OK);

kommonitor-importer-api/src/main/java/org/n52/kommonitor/importer/api/DatasourceTypesApiController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ public ResponseEntity<DataSourceType> getSupportedDataSourceTypeByType(
5151
@PathVariable("type") String type) {
5252
LOG.info("Recevied 'getSupportedDataSourceTypeByType' request for type: {}", type);
5353

54-
Optional<AbstractDataSourceRetriever> retrieverOpt = retrieverRepository.getDataSourceRetriever(type);
55-
if (!retrieverOpt.isPresent()) {
54+
Optional<AbstractDataSourceRetriever<?>> retrieverOpt = retrieverRepository.getDataSourceRetriever(type);
55+
if (retrieverOpt.isEmpty()) {
5656
throw new ResourceNotFoundException(AbstractDataSourceRetriever.class, type);
5757
}
5858
return new ResponseEntity<DataSourceType>(encoder.encode(retrieverOpt.get()), HttpStatus.OK);

kommonitor-importer-api/src/main/java/org/n52/kommonitor/importer/api/GeoresourcesApi.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import java.util.Optional;
3838
import jakarta.annotation.Generated;
3939

40-
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2025-09-01T10:33:50.760291700+02:00[Europe/Berlin]", comments = "Generator version: 7.15.0")
40+
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2025-09-04T08:36:34.666758+02:00[Europe/Berlin]", comments = "Generator version: 7.15.0")
4141
@Validated
4242
@Tag(name = "georesources", description = "Additional georesources that are necessary for the computation of indicators (e.g. land use, locations of schools, streets/ways)")
4343
public interface GeoresourcesApi {
@@ -47,7 +47,7 @@ public interface GeoresourcesApi {
4747
* POST /georesources : Import a new geo-resource
4848
* Import a geo-resource dataset for a certain period of time. Parses Input source, extracts relevant data, performs schema mapping to KomMonitor data model and calls POST /georesources of KomMonitor Data Management API
4949
*
50-
* @param importGeoresourcePOSTInputType Definitions to create georesources (optional)
50+
* @param importGeoresourcePOSTInputType Definitions to create georesources (required)
5151
* @return List of created feature IDs (status code 200)
5252
* or Bad Request (status code 400)
5353
* or Unauthenticated (status code 401)
@@ -79,7 +79,7 @@ public interface GeoresourcesApi {
7979
)
8080

8181
ResponseEntity<ImportResponseType> importGeoresource(
82-
@Parameter(name = "ImportGeoresourcePOSTInputType", description = "Definitions to create georesources") @Valid @RequestBody(required = false) @Nullable ImportGeoresourcePOSTInputType importGeoresourcePOSTInputType
82+
@Parameter(name = "ImportGeoresourcePOSTInputType", description = "Definitions to create georesources", required = true) @Valid @RequestBody ImportGeoresourcePOSTInputType importGeoresourcePOSTInputType
8383
) throws Exception;
8484

8585

@@ -88,7 +88,7 @@ ResponseEntity<ImportResponseType> importGeoresource(
8888
* POST /georesources/update : Update a georesource
8989
* Update a georesource dataset for a certain period of time. Parses Input source, extracts relevant data, performs schema mapping to KomMonitor data model and calls PUT /georesources of KomMonitor Data Management API
9090
*
91-
* @param updateGeoresourcePOSTInputType Definitions to update georesources (optional)
91+
* @param updateGeoresourcePOSTInputType Definitions to update georesources (required)
9292
* @return List of created feature IDs (status code 200)
9393
* or Bad Request (status code 400)
9494
* or Unauthenticated (status code 401)
@@ -120,7 +120,7 @@ ResponseEntity<ImportResponseType> importGeoresource(
120120
)
121121

122122
ResponseEntity<ImportResponseType> updateGeoresource(
123-
@Parameter(name = "UpdateGeoresourcePOSTInputType", description = "Definitions to update georesources") @Valid @RequestBody(required = false) @Nullable UpdateGeoresourcePOSTInputType updateGeoresourcePOSTInputType
123+
@Parameter(name = "UpdateGeoresourcePOSTInputType", description = "Definitions to update georesources", required = true) @Valid @RequestBody UpdateGeoresourcePOSTInputType updateGeoresourcePOSTInputType
124124
) throws Exception;
125125

126126
}

kommonitor-importer-api/src/main/java/org/n52/kommonitor/importer/api/GeoresourcesApiController.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
import org.n52.kommonitor.importer.api.exceptions.ImportException;
99
import org.n52.kommonitor.importer.api.handler.AbstractRequestHandler;
1010
import org.n52.kommonitor.importer.api.handler.RequestHandlerRepository;
11-
import org.n52.kommonitor.importer.converter.ConverterRepository;
1211
import org.n52.kommonitor.importer.exceptions.ImportParameterException;
13-
import org.n52.kommonitor.importer.io.datasource.DataSourceRetrieverRepository;
1412
import org.n52.kommonitor.models.ImportGeoresourcePOSTInputType;
1513
import org.n52.kommonitor.models.ImportResponseType;
1614
import org.n52.kommonitor.models.UpdateGeoresourcePOSTInputType;
@@ -29,12 +27,6 @@ public class GeoresourcesApiController implements GeoresourcesApi {
2927

3028
private static final Logger LOG = LoggerFactory.getLogger(GeoresourcesApiController.class);
3129

32-
@Autowired
33-
private ConverterRepository converterRepository;
34-
35-
@Autowired
36-
private DataSourceRetrieverRepository retrieverRepository;
37-
3830
@Autowired
3931
private RequestHandlerRepository requestHandlerRepository;
4032

@@ -48,28 +40,30 @@ public GeoresourcesApiController(ObjectMapper objectMapper, HttpServletRequest r
4840
this.request = request;
4941
}
5042

43+
@Override
5144
public ResponseEntity<ImportResponseType> importGeoresource(
5245
@Parameter(description = "feature data", required = true)
5346
@Valid @RequestBody ImportGeoresourcePOSTInputType featureData) throws ImportException, ImportParameterException {
5447
LOG.info("Received 'importGeoresource' request for dataset name: {}", featureData.getGeoresourcePostBody().getDatasetName());
5548
LOG.debug("'importGeoresource' POST request body: {}", featureData);
5649

57-
Optional<AbstractRequestHandler> requestHandlertOpt = requestHandlerRepository.getRequestHandler(featureData);
58-
if (!requestHandlertOpt.isPresent()) {
50+
Optional<AbstractRequestHandler<ImportGeoresourcePOSTInputType>> requestHandlerOpt = requestHandlerRepository.getRequestHandler(featureData);
51+
if (requestHandlerOpt.isEmpty()) {
5952
throw new ImportException(String.format("No request handler found for request type '%s'", featureData.getClass()));
6053
}
61-
return requestHandlertOpt.get().handleRequest(featureData, featureData.getDataSource(), featureData.getConverter());
54+
return requestHandlerOpt.get().handleRequest(featureData, featureData.getDataSource(), featureData.getConverter());
6255
}
6356

6457
@Override
6558
public ResponseEntity<ImportResponseType> updateGeoresource(@Valid UpdateGeoresourcePOSTInputType featureData) throws ImportException, ImportParameterException {
6659
LOG.info("Received 'updateGeoresource' request for Georesource: {}", featureData.getGeoresourceId());
6760
LOG.debug("'updateGeoresource' POST request body: {}", featureData);
6861

69-
Optional<AbstractRequestHandler> requestHandlertOpt = requestHandlerRepository.getRequestHandler(featureData);
70-
if (!requestHandlertOpt.isPresent()) {
62+
Optional<AbstractRequestHandler<UpdateGeoresourcePOSTInputType>> requestHandlerOpt = requestHandlerRepository.getRequestHandler(featureData);
63+
64+
if (requestHandlerOpt.isEmpty()) {
7165
throw new ImportException(String.format("No request handler found for request type '%s'", featureData.getClass()));
7266
}
73-
return requestHandlertOpt.get().handleRequest(featureData, featureData.getDataSource(), featureData.getConverter());
67+
return requestHandlerOpt.get().handleRequest(featureData, featureData.getDataSource(), featureData.getConverter());
7468
}
7569
}

0 commit comments

Comments
 (0)