StefanSchubert / sabi

Seawater Aquarium Business Intelligence (sabi) aims to gain knowledge from aquarists for aquarists based on collected seawater parameters.
https://sabi-project.net
MIT License
4 stars 3 forks source link

Refactoring Task: Replacing manual mapping by introducing mapstruts #139

Closed StefanSchubert closed 9 months ago

StefanSchubert commented 1 year ago

I started with a manual mapping approach since I wanted to keep the delivery artefacts for the runtime environment rather small.

In the meantime I had contact with the mapstruts solution and liked the way of defining only the mapping interface while the implementation is being generated at build time (just like JPA repositories).

So there is a nicer solution and I also liked to have this project as a free available blueprint for some other software projects.

Meaning the task is to eliminate the manual mapping impl from the sabi backend module. And replacing it with mapstructs. It's a while ago, it might be that the frontend module needs to be upgraded, too. So this should also be checked out.

StefanSchubert commented 11 months ago

I found a false assumption, I made in the past years here:

* Since we have very few attributes per class and the targeted runtime environment of a pi at the beginning,
* I decided to spare the libs for bean mappings like dozer or MapStruts, to gain a slim jar file.

Mapstructs (like lombok) jar is not required at runtime. You can set the dependency as provided. In fact it is used only a build time to write the required boilerplate code via AnnotationProcessing step through the maven compile plugin.