enhancement
Problem
Schlägt die Java-Binding-Generierung fehl (Maven-Goal tl-maven-plugin:generate-java), endet der Build mit:
[ERROR] ... generate-java (generate-binding) ... failed.: InvocationTargetException: Aborting due to previous errors
Die eigentliche Ursache gibt der Generator zwar vorher aus, sie ist aber nicht als Fehler erkennbar:
- SyserrProtocol gibt Fehler- und Info-Meldungen unmarkiert aus (System.err.println bzw. System.out.println). Sie unterscheiden sich nur durch den Stream — in der zusammengeführten Maven-Konsole unsichtbar. Beispiel: No java implementation package found for module 'X'. sieht aus wie eine harmlose Info-Zeile.
- grep-/Log-Tooling kann diese Fehler nicht über ein [ERROR]-Muster finden.
Zusätzlich ein echter Bug: WrapperGenerator.generateMessages() meldet Fehler beim Erzeugen einer Messages-Datei nur über die Log4j-Logger-Fassade. Dadurch wird kein hasError im Protokoll gesetzt — der Generator läuft weiter und meldet Erfolg, obwohl eine Datei fehlt.
Lösung
- SyserrProtocol: jede Zeile mit Maven-Stil-Präfix versehen — [ERROR] für Fehler/Fatal, [INFO] für Info-Ausgabe. BufferingProtocol bleibt unberührt (es trennt Info/Error bereits strukturell; dessen Daten-API darf nicht verfälscht werden).
- WrapperGenerator.generateMessages(): Logger.error(...) auf _log.error(...) umstellen, damit der Fehler erkannt wird und korrekt zum Abbruch führt.
Betroffene Dateien
- com.top_logic.basic/src/main/java/com/top_logic/basic/SyserrProtocol.java
- com.top_logic.element/src/main/java/com/top_logic/element/model/generate/WrapperGenerator.java