Home
Enterprise Maven MasterclassMaven Masterclass
Entstehung & Reifegrad

Wie diese 25 Master entstanden sind

Die Nummern 01–25 waren als Prozess-Schritte gedacht („Master 1, Master 2, …"). Daraus wurde ein gemischter Stand: halbfertige Gerüste, vollständig ausgebaute Module und eigenständige Referenzsysteme. Diese Seite rekonstruiert den tatsächlichen Ablauf aus der Git-Historie und ersetzt die nie gesetzten Git-Tags durch eine erzählte Zeitleiste.

Dokument: Prozess-ChronikGrundlage: 29 Commits, 0e8ddf7 … 32a4d08Import: 03.08.2026Stand: 10.09.2026

Was die Nummern 01–25 bedeuten – und was nicht

Merksatz: NN_ ist die Lernreihenfolge, nicht die Baureihenfolge. Am Ordnernamen ist der Reifegrad eines Moduls nicht ablesbar.
1

Import war ein Big Bang

Alle 25 Modulordner sind am 03.08.2026 in einem einzigen Commit gelandet (0e8ddf7). Es gibt keinen Git-Zustand „nur Modul 1–7 fertig".

2

Danach 5 Ausbau-Phasen

27 weitere Commits an zwei Tagen (03.–04.08.) plus die Migration am 10.09. Der erkennbare Prozess steckt in diesen Phasen, nicht in den Modulnummern.

3

Reifegrad quer zur Nummer

Die „eigenständigen" Module 07–13 stehen in der Mitte; die zuletzt ausgebauten Skelette 16–25 stehen am Ende. Nummer und Reife hängen nicht zusammen.

Der eigentliche Bau-Prozess („Master 1, dann Master 2 …") ist in den Quellprojekten passiert, aus denen dieser HTML-Only-Auszug gezogen wurde. Dieses Repo ist eine Momentaufnahme davon – deshalb kann jeder Tag hier nur nachträglich gesetzt werden.

Reifegrad der Module

Gemessen am tatsächlichen Inhalt (Dateizahlen aus dem Arbeitsbaum, Testzahlen aus den Änderungs-Logs). Drei Einordnungen: halbfertig → ausgebaut, vollständig, eigenständig.

GruppeModulepom / java / TestklassenHTMLEinordnung
Fundament01–0528–62 / 46–71 / ~112–28Lehrmodule, Code kompiliert, kaum verifiziert
Fundament+0683 / 228 / 115großes Spring/Jakarta-Runtime-Showcase, 1 Test
Fachsystem07–1340–73 / 132–281 / 3–612–22eigenständig — je eigener mvn-ws-impl-*-Workspace + *-reference-application; PostgreSQL-Testcontainers echt (07/08/09/10/13). Breite, aber dünn getestet.
Legacy1435 / 104 / 111Lehrmodul ACL/Strangler, ungetestet
Legacy Deep Dive2412 / 136 / 40119vollständig — 111 Tests, JaCoCo-Gates (85–93 % Line), 6+ echte Bugs behoben, mvn verify mit Docker nachgewiesen
Plattform-Doku150 / 0 / 029reines Doku-Modul, kein Code
Runtime-Skelett16–23, 2512 (25: 6) / 20–55 / 7–258–17halbfertig → ausgebaut — startete als leere pom.xml-Hüllen, in zwei Pässen zu Hexagonal/DDD-Aggregaten befüllt (Phase 1 + 2)
Kein Modul hängt per Maven von einem anderen ab. Die einzige Kopplung sind HTML-Querlinks: Modul 16 verlinkt auf ../07…../25, Modul 15 auf 23/24.
Entscheidung (2026-09-10): Die Fachsysteme 07–13 bleiben im Masterclass-Repo – keine Heraustrennung in ein eigenes Projekt. Für ein Lern-Repo lohnt der Aufwand (groupId-Normalisierung, Querlinks aus Modul 15/16 nachziehen) nicht; die 25 Master bleiben eine Einheit.
Aufgeräumt (2026-09-10): Alle 7 reference-application-POMs tragen jetzt einheitlich com.aydin.enterprise.masterN – vorher wichen otc- (…otc) und cbs-reference-application (…cbs) ab. Dabei fiel ein echter Bug auf: Modul 11 verwies auf einen nicht existierenden Parent (master-11-erp-platform statt 11-impl-erp-enterprise-erp) – behoben, mvn validate läuft jetzt durch. Die Java-Paketnamen der refapps (com.aydin.his, com.aydin.telco, …) bleiben uneinheitlich – separates Thema.

Bau-Zeitleiste

Jede Phase verweist auf echte Commits. Zum Nachsehen: git show <hash> bzw. git log 0e8ddf7..32a4d08.

  1. Phase 0 — Import

    2026-08-03 · 0e8ddf7, 9e4b0cc

    Alle 25 Modulordner auf einmal aus den Quellprojekten als HTML-Only-Auszug übernommen, danach das README mit Modulindex. Ausgangslage: 01–14 mit Code, 15 nur Doku, 16–23 als leere Maven-Hüllen, 24 als aufgeblähtes Legacy-Konstrukt, 25 mit nicht baubarem Reactor.

  2. Phase 1 — Skelette mit lauffähigem Code füllen

    2026-08-03 / 04 · de55d77592a351 (9 Commits)

    Modul 16 → 23 und 25: je ~9 leere Submodule bekommen echtes, kompilierendes Java und einen runnable-smoke mit STATUS=OK. Reihenfolge exakt 16, 17, 18, 19, 20, 21, 22, 23, 25. Modul 25: „Non-resolvable parent POM" behoben, fehlende Tests ergänzt.

  3. Phase 2 — Ausbaustufe 2: Hexagonal / DDD

    2026-08-04 · c732fe88c81ecc (9 Commits)

    Dieselben Module, gleiche Reihenfolge: je ein echtes Domain-Aggregat mit Invariante, ein Application-Service und ein formaler Port (Dependency Inversion), ohne den nach außen sichtbaren Contract zu brechen. Testzahlen steigen deutlich – z. B. Modul 16 → 66, Modul 18 → 33, Modul 19 und 23 → 28.

  4. Phase 3 — Modul 24 echt verifiziert

    2026-08-04 · 9db59c7c8b73b9 (5 Commits)

    Modul 24 (Legacy Deep Dive) zum ersten Mal mit echtem Maven/Docker gebaut. Zuerst 4 falsch berechnete Erwartungswerte und ein Namenskollisions-Bug, dann weitere: 85 → 95 → 108 → 111 Tests, JaCoCo-Line-Coverage auf 85–93 % gehoben, PostgreSQL-Testcontainers-Fehler behoben (zweiter echter Bug: mehrdeutige Spring-Konstruktoren), „künstliche Legacy-Aufblähung" entfernt.

  5. Phase 4 — Referenzimplementierungen 07–13 verdrahtet

    2026-08-04 · daa6783, b817d3b

    Modul 07/08/09/10/13: PostgreSQL-Testcontainers echt angebunden, mehrere echte Bugs behoben, je eine README.md für die *-reference-application. Modul 11/12 (ERP, Telco) blieben auf dem Import-Stand.

  6. Phase 5 — Migration ins Workspace

    2026-09-10 · 32a4d08

    Branch mastermain, Governance-Dateien (project.yaml, AGENTS.md, Validator, .gitleaks.toml), Prüf-Artefakte aus dem Repo entfernt. Offen: Rename auf enterprise-maven-masterclass, Default-Branch-Umstellung, Push von main.

Die HTML-Aufbereitung selbst (Quellpfad-Verlinkung, Markdown-Bereinigung, „1430 verlinkte Codepfade, 106 bereinigte Seiten", v1–v17) passierte vor dem Import in den Quellprojekten und ist hier nicht als eigene Commits sichtbar – nur ihr Ergebnis.

Warum es keine Git-Tags gibt – und was stattdessen gilt

Dieses Repo hat 0 Tags, und die Historie gibt keine sinnvollen her: Alle 25 Module sind in einem Commit gelandet. Ein Tag module-13 könnte nur auf denselben Commit zeigen wie module-01.

Was den Tag ersetzt

Optional: echte Meilensteine taggen

Falls git checkout-bare Marken gewünscht sind, lassen sich 6 echte Commits annotiert taggen – ohne erfundene Historie:

VorschlagCommitZustand
import0e8ddf7alle 25 Module, HTML-only
skelette-gefuellt9b428a8Modul 16–23 + 25 lauffähig (Phase 1)
hexagonal8c81eccAusbaustufe 2 abgeschlossen (Phase 2)
modul24-verifiziert5fdea0f111 Tests, mvn verify nachgewiesen
referenz-implsb817d3b07–13 Testcontainers verdrahtet
migration32a4d08main + Governance
Nicht empfohlen: ein synthetischer Neuaufbau (--orphan, Modul 01 → Tag → Modul 02 → Tag …). Das wäre erfundene Historie, würde die 27 echten Bugfix-Commits samt ihren Meldungen verwerfen und einen Force-Push über das bereits auf GitHub liegende Repo erzwingen.

Belege

Zusammenhänge 1–25

Fachliche und technische Beziehungen der Master untereinander.

Öffnen

Projekt & Qualität

Prüfberichte, Releases, gezielte Nachweise.

Öffnen

Master 1–25 Kurzübersicht

Alle Module mit Direktlinks zu Lehrbuch und Runnable.

Öffnen

⌂ Cockpit