Modulare Anwendung mit Java 9, Maven und eclipse (Beispiel zu einem Vortrag auf der Jax)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cb-api
cb-gui
cb-sessions
cb-speaker
.gitignore
LICENSE.md
README.md
loesungsansatz.png
pom.xml
preview.png
run.bat
runConfigurations.png

README.md

ConferenceBoard

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:


Von der Konsole aus Bauen und Starten

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

Von eclipse aus Bauen und Starten

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:


Links