The premise of the architecture was to ensure seperation of concerns. In the dataprocessing module all reading of files is handled. A reader interface was created to easily enable different data formats in the future. A reader is supposed to read in a file and then return a StringArray of data entries. The service component then takes in a list of data entries, converts them to records of service specific types, and then performs the business logic. The controller is responsible for calling the service and the reader in order to create the solution. The MainApplication only has to obtain a controller implementation in order to perform the different tasks. Controllers are obtained by different ControllerFactories.
This project uses Java 21
After installing Maven 3.x or by calling the included Maven wrapper (mvnw and mvnw.cmd, depending on your operating system) you should be able to
- Build & test your project
-
mvn verify - Then to run the main class de.bcxp.challenge.App
-
mvn exec:java - To remove the compilation output
-
mvn clean
