Voraussetzungen

MLE basiert auf Spring Boot und setzt Java in Version 17 oder höher voraus. Ein Java-Applikationsserver ist nicht notwendig.

Sample Application starten

MLE wird mit einer Beispielanwendung (Maven-Modul de.faktorzehn.mle:mle-core-sample) ausgeliefert, die als Vorlage für kundenspezifische Implementierungen verwendet werden kann.

Die Beispielanwendung kann mit java -jar -Dspring.profiles.active=liquibase mle-core-sample.jar gestartet werden.

Nach erfolgreichem Start ist Swagger-UI mit den verfügbaren REST-Services unter http://localhost:8080/mle/swagger-ui verfügbar, die Benutzeroberfläche unter http://localhost:8080/mle/ui.

In der Beispielanwendung wird eine dateibasierte H2-Datenbank verwendet, die in der Datei ~/mleDS gespeichert wird.

Customizing

Ändern von Spring Property-Werten

Die einfachste Form der Anpassung besteht darin, lediglich Spring Property-Werte zu ändern, beispielsweise die Datenbank-Verbindungsparameter. Siehe dazu Kapitel Customizing/Properties.

Sample Application ersetzen

Als Grundlage für jegliche Anpassungen, welche über das einfache Ändern von Property-Werten hinaus gehen, muss die Sample Application projektspezifisch ersetzt werden. Dazu wird üblicherweise der Source Code des Moduls mle-core-sample in eine projektspezifische Kopie übertragen.

Domänenmodell erweitern

Das Domänenmodell von MLE ist mit Faktor-IPS modelliert und besteht aus dem Vertragsteil MajorLossEvent. Dieser kann durch Vererbung erweitert werden. Die Changelog-Datei für Liquibase des Domänenmodells befindet sich mit dem Namen coreChangelog.xml im Verzeichnis liquibase der jar-Datei des Maven-Moduls de.faktorzehn.mle:mle-core-business.

Geschäftslogik erweitern

Durch Spring Beans lässt sich die Geschäftslogik von MLE austauschen oder erweitern. Die Beans sind in den Spring-Konfigurationsklassen MleCoreBusinessAutoConfiguration und MleCoreExtMappingAutoConfiguration mit ConditionalOnMissingBean auto-konfiguriert. D.h. jede kundenspezifisch definierte Bean ersetzt automatisch ihr Pendant des MLE-Standards. Darüber hinaus definiert MleSampleApplication die IRuntimeRepository-Bean mit den Beispielwerten für MajorLossEventType.

Kundenspezifische MajorLossEventTypen definieren

Die Werte von MajorLossEventType lassen sich über einen IPS-Enum-Inhalt definieren, der über eine IRuntimeRepository-Bean zur Verfügung gestellt wird. Dies ist beispielhaft im Maven-Modul de.faktorzehn.mle:mle-core-sample umgesetzt.

REST-Services erweitern

Die von MLE angebotenen REST-Services sind im MleController des Maven-Moduls de.faktorzehn.mle:mle-core-extservices definiert. Die dazugehörigen DTOs und Mapper befinden sich in de.faktorzehn.mle:mle-core-extapi bzw. de.faktorzehn.mle:mle-core-extmapping.