Migration to 2025.06-ext2 (from base version)

Where we started

We from the <PROJECT_NAME> team (Digitalisierung mit A12 in Schleswig-Holstein) upgraded our “Webtool” application to the latest A12 version - in order to take advantage of the latest A12 features, in particular modelling features.
As our “Webtool” allows power users to create their own applications by modelling them and uploading those model into the Webtool, additional modelling capabilities directly benefit our customers.

We migrated to 2025.06 (base version) earlier this year. See AASH: Upgrade to A12 2025.06

What we did to upgrade

For this minor upgrade, there was no script support so we

  • Upgraded the version numbers in our build.gradle
  • rebuild our package.json from the latest project template.
  • migrated all models using the upgrade feature of SME

For the most part, that did the trick, except some hick-ups.

Backend adaptions

Spring boot complained about now having two instances of documentSerializer beans, so we had to implement an explicit constructor and use the @Qualifier annotation in every @Component that uses the DocumentV2Serializer.
Also the ListIProblemReporter appears to have fallen out of favour when using the serialiser.

Frontend adaptions

It took us a moment to fix the package.json / package-lock.json versions for the A12 DnD support.

FieldBasedFiltering.toOperators() now takes a ModelState instead of DocumentModel as parameter. This caused some ripple effects throughout our frontend classes.

Thanks to Stefan Wulf for helping us with the npm and frontend stuff, which reduced our efforts in this area by about one order of magnitude.

Model migration

Though the migration of about 100 models worked fine (using the SME), for ominous reasons one Overview model escaped the version update.

Duration of migration

Overall, the migration went rather smoothly (thanks to Stefan, again), and we were done in less than two days.

Official complaint :warning:

Deprecation of DocumentService.load()

Please take back the depreciation of the DocumentService.load(DocRef) method. This method is useful, handy and does exactly what is needed. We use it all over the place. More than that, it does exactly what is mentioned in the deprecation message. So why tf do you want to get rid of it?
Or do you really want force each and every project to create their own utility class?

Hi @juergen-smooth-ice ,

Thanks for the feedback! We will keep the DocumentService.load(DocRef)for convenience reasons. The deprecation annotation will be removed in A12S-6578 in the next breaking release!

Cheers,

Tomas

@tomas-thin-gale Thanks a lot! :heart: