NDW Location Services accessibility map API https://www.ndw.nu/
  • Java 97.5%
  • Gherkin 1.4%
  • Shell 0.7%
  • ANTLR 0.2%
  • Dockerfile 0.1%
Find a file
NDW Locatie Services e0ac526de2 Merged PR 151207: Update dependency nu.ndw.nls.geometry:nls-geometry to v7
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [nu.ndw.nls.geometry:nls-geometry](https://github.com/ndwnu/nls-geometry) | compile | major | `6.0.8` → `7.0.0` |

---

### Release Notes

<details>
<summary>ndwnu/nls-geometry (nu.ndw.nls.geometry:nls-geometry)</summary>

### [`v7.0.0`](https://github.com/ndwnu/nls-geometry/blob/HEAD/CHANGELOG.md#700---2026-08-31)

Upgraded to GeoTools 35.x

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or PR is renamed to start with "rebase!".

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).



Related work items: #118278
2026-09-01 11:46:37 +00:00
acceptance-test Incremented project version to 6.1.14-SNAPSHOT [skip ci] 2026-09-01 09:27:00 +00:00
accessibility Incremented project version to 6.1.14-SNAPSHOT [skip ci] 2026-09-01 09:27:00 +00:00
backend Incremented project version to 6.1.14-SNAPSHOT [skip ci] 2026-09-01 09:27:00 +00:00
docker Update all non-major dependencies 2026-08-22 02:07:50 +00:00
docs Merged PR 146104: 120041 Add XOR-based travel direction logic for edge accessibility and update related tests 2026-08-04 08:07:52 +00:00
job Incremented project version to 6.1.14-SNAPSHOT [skip ci] 2026-09-01 09:27:00 +00:00
scripts #112367 Add support for RoadChanges cache: new DTOs, services, configurations, and test cases; refactor NetworkDataService methods for consistency. 2026-03-27 14:58:04 +01:00
specification Incremented project version to 6.1.14-SNAPSHOT [skip ci] 2026-09-01 09:27:00 +00:00
trafficsignclient Incremented project version to 6.1.14-SNAPSHOT [skip ci] 2026-09-01 09:27:00 +00:00
.gitignore [#104226] Cleanup. fixed initialize cache. simplified configurations. Fixed performance test. Fixed acceptance test data. Code cleanup / fixed sonar remarks. Fixed broken unit tests. 2026-07-13 09:07:12 +02:00
.trivyignore [#86506] Fixed code conventions. code cleanup, removed duplicated code. updated trivy ignore. 2026-04-30 10:11:31 +02:00
azure-pipelines.yaml #116302 Handle RetryException in cache clean-up, adjust test coverage exclusions, and add a test case for switchActiveVersion retry scenario. 2026-06-04 10:18:44 +02:00
CHANGELOG.md [#118633] - Updated application version and changelog 2026-08-20 15:53:27 +02:00
docker-compose.yml Update all non-major dependencies 2026-09-01 02:04:41 +00:00
LICENCE #72501 Configure push to GitHub and add open-source information 2024-05-22 12:29:50 +02:00
lombok.config #113655 WIP: Spring boot 4 migration 2026-05-13 10:48:35 +02:00
Makefile [#104226] Fixed bug in make file 2026-07-14 09:12:38 +02:00
pom.xml Merged PR 151207: Update dependency nu.ndw.nls.geometry:nls-geometry to v7 2026-09-01 11:46:37 +00:00
README.md Merged PR 146104: 120041 Add XOR-based travel direction logic for edge accessibility and update related tests 2026-08-04 08:07:52 +00:00
renovate.json #62204 Set up project structure based on nls-project-template 2023-10-31 09:54:41 +01:00

Introduction

This project is used for calculating road accessibility given certain traffic sign restrictions based on vehicle characteristics. Its main functional modules are a rest api service called backend and a jobs module subdivided into multiple more specialised submodules.

Techincal details

Module setup :

  • Specification (API YAML definition)
  • Backend REST API
  • accessibility shared core module
  • Job module for various jobs that need to be in the background.

GitHub vs Azure DevOps

This project is maintained by Nationaal Dataportaal Wegverkeer (NDW)

  • It is primarily maintained within Azure Devops and mirrored to https://github.com/ndwnu/nls-accessibility-map
  • It works within NDW infrastructure, with some of its constraints;
  • This repository contains functionality only, data is gathered from APIs/database, but not included;
  • Pipelines are not designed to be used within GitHub;
  • GitHub wiki and issues aren't enabled.

Structure

The specification module only versions the API YAML and this JAR is used by the openapi-generator-maven-plugin to generate controllers for the backend application.

Development

Execute make start-infra Run the backend and the jobs through IntelliJ. Make sure you use at least the profiles acceptance-test,dev Run any component test.

Running with representative data locally

A common pitfall is to connect your dev environment to the staging database, but this should not be done, as this will also update the active cache versions in the staging database, which will then break the staging environment. It's better to copy the staging disk caches to your local caches and then point to it in your local database:

  1. copy data to local disk kubectl cp nls-accessibility-map-api-5<some-pod-id>:cache
  2. copy staging active_versions table to local and make sure your application runs with the same cache_version
  3. in src/main/resources/data copy the municipalities.yml to municipalities-<your-profile>.yml
  4. in src/main/resources/data copy the road-operators.yml to road-operators-<your-profile>.ymlFirst run make start-infra. Then run the job initializeCache with profiles acceptance-test,dev,job-initialize-cache,local-<your_name>-staging. Put the staging credentials in local-<your_name>-staging profile. Example:
spring:
  datasource:
    url: jdbc:postgresql://nls-postgres-staging.postgres.database.azure.com:5432/nls-maps?ApplicationName=nls-accessibility-map-job&stringtype=unspecified
    username: nls
    password: <redacted>

Window Times

In the traffic sign API, traffic signs have text signs and some text signs are of type 'TIJD' and they have a field called 'openingHours'. This field will be using the OSM standard for opening hours: https://wiki.openstreetmap.org/wiki/Key:opening_hours

Pretty printing geojson

jq . c6WindowTimeSegments.geojson | sponge c6WindowTimeSegments.geojson

Resetting the nwb updates tracking key

For receiving nwb network updates there is an event stream configured. By renaming stream-tracking-name in the application yaml, all events will be received again. Example:

nu:
  ndw:
    nls:
      accessibilitymap:
        messaging:
          stream-queues:
            updateRoadSection:
              stream-tracking-name: nls-accessibility-map-api-listener-20260528

Also the 'MessagingBeansRegistrarTest' class MESSAGE_LISTENER_NAME property needs to be updated

Caches

The backend application and the analysis jobs require the following caches to be available:

  • network
  • speedLimits
  • trafficSigns

Without them, the backend application will start, but will not become healthy until the caches become available. The jobs module contains jobs that keep the caches up to date, InitializeCacheCommand should always run after deployment as it will verify that the required caches are available and will rebuild any missing caches. Caches are stored on a shared persistent volume claim and database table active_version points to the active version on disk.

Incompatible cache versions

When using rolling updates, there will be a brief moment where the old and new application will run alongside of each other. By incrementing the cache-version, you isolate the caches and prevent that the old and new deployment use each others caches. If the cache format changes, the cache-version should be incremented in the application.yaml configuration of the jobs and backend applications. A new PersistentVolumeClaim should be used for the deployment to separate the old caches from the new caches. After deployment, the InitializeCacheCommand should automatically run and initialize the new caches after which the backend should become healthy. With rolling updates, this should cause zero downtime. Don't forget to delete the old persistent storage.