[MODEXPS-296] Introduce table to store configs and adjust ConfigsController to use it#352
Conversation
Code Review for MODEXPS-296: MapStruct IntegrationOverviewThis code review covers the integration of MapStruct library into the mod-data-export-spring project. The changes include adding MapStruct as a dependency, configuring annotation processors, and implementing object mappers using MapStruct annotations. The primary purpose appears to be replacing manual object mapping logic with compile-time generated mapping code for better performance and maintainability. Files Changed:
Files Added/Modified (via MapStruct):
Suggestions🔧 MapStruct Annotation Processor Order May Cause Build IssuesPriority: 🔥 Critical File: Details: The annotation processor path configuration in the maven-compiler-plugin defines the order of annotation processors. The current order places Lombok before the MapStruct binding, but for proper integration between Lombok and MapStruct, the lombok-mapstruct-binding should be specified as a path element with both groupId and artifactId, not just as a nested path within a dependency element. The current configuration has: <annotationProcessorPaths>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${mapstruct-binding.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>Issue: The first element uses Suggested Change: <annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${mapstruct-binding.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>This ensures consistent configuration and proper ordering. The lombok version should be explicitly specified (it's managed by Spring Boot parent, but being explicit here is better for the annotation processor path).
|
|



Purpose
[MODEXPS-296] Introduce table to store configs and adjust ConfigsController to use it
Approach
Index usage:
Pre-Merge Checklist:
Before merging this PR, please go through the following list and take appropriate actions.