Bei dieser Anwendung handelt es sich um ein Beispiel für eine auf Java-Modulen basierten Anwendung. Es handelt sich um ein Tool zur Verwaltung von Sessions und Speakern einer Konferenz. Die Anwendung ist im Zuge eines Vortrages auf der JAX 2017 entstanden und basiert auf einer Java 9 Vorabversion (jdk-9_166), der eclipse Vorabversion Oxygen Release Milestone 6 (4.7.0 M6) und Maven 3.3.9. Da zum Zeitpunkt der Programmerstellung Java 9 noch nicht final war, könnten zu einem späteren Zeitpunkt der Verwendung noch Anpassungen notwendig sein.
Die Anwendung besteht aus den folgenden vier Modulen:
- GUI-Modul (de.javaakademie.cb.gui)
- Speaker-Modul (de.javaakademie.cb.speaker)
- Sessions-Modul (de.javaakademie.cb.sessions)
- API-Modul (de.javaakademie.cb.api)
Das GUI-Modul fungiert dabei als Servie-Consumer, die beiden Module Speaker und Sessions als Service-Provider-Module und das API-Modul enthält das Service-Provider-Interface (SPI). Das Model wurde der einfachheit halber ebenfalls im API-Modul verpackt, um das Beispiel übersichtlicher zu halten, anstatt hierfür ein eigenes Modul anzulegen. Die Oberfläche der Anwendung wurde mit JavaFX umgesetzt.
Die Module sind orientierend an einer Schichtenarchitektur und den Fachdomänen wie folgt geschnitten:
Kompilieren und Bauen der Anwendung:
cd [Projektverzeichnis]
mvn clean install
Starten der Anwendung
java -p modules -m de.javaakademie.cb.gui/de.javaakademie.cb.gui.App
Im Verzeicnis des GUI-Moduls liegt die Datei App.launch für zusätzliche "Run Configurations". Mit dieser Datei können die Configurations in eclipse imoprtiert werden oder manuell eingegeben werden:


