Enterprise software
From Java 6 to Java 21: modernising a platform that could not stop
- three generations of migration
- Java 6 → 21
- question types in the builder
- 18 types
- in the form interface
- 5 languages

The challenge
The vendor had a working product with live corporate customers — and a stack that no longer attracted developers: Java 6, an old Spring, an ExtJS interface. Rewriting from scratch meant leaving those customers without new features for a year. Freezing development meant losing them.
What we did
First we simply kept it alive
We took over support of the legacy Java 6 version — fixes, small features, customer escalations. While the product kept running, we learned it from the inside.
Migration in three steps
Java 6 → Java 12 → Java 21, together with the move to a current Spring. Each step shipped as its own release, after which the system ran in production.
A new interface instead of ExtJS
The web client was rewritten in Angular with an entirely new UI, keeping the workflows users already knew.
A form builder with eighteen question types
From text and lookups to photos, signatures, QR codes and geo-stamps. Every question carries its own translations, so an inspector sees their own language in each country.
Versioning and publication
A form has a version, an approval status and a publication queue — only approved revisions reach the devices.
Multi-tenancy and corporate sign-in
Tenants, login journals and system settings live in a separate console; sign-in runs through LDAP with a one-time code as the second check, and roles carry granular permissions.
The result
The product moved onto a current stack and a new interface without dropping out of the market. The vendor keeps selling and supporting it, and hiring developers for it became realistic again.


