enhancement
major
minor
defect
critical
major
minor
major
#30103
tl-maven-plugin: Schlägt das Zusammenführen der View-Overlays beim Bau einer Anwendung fehl, bleibt das Build grün
Fehler
Beim Bau einer Anwendung mit der Packaging tl-app führt TLAppWar die View-Overlays zusammen (TLAppWar.createLayouts → LayoutCreator.mergeViewOverlays → ViewOverlayMerger.mergeOverlaidViews). Schlägt das Zusammenführen fehl, wird der Fehler nur protokolliert, und das Build endet mit BUILD SUCCESS. In der Anwendung fehlt das Overlay dann ohne Hinweis.
Beispiel: Die Steueranwendung (tl-factory-app, Repository TopLogic/tl-factory) stellt ihre Einträge der Seitenleiste mit config:position="before" config:reference="system-separator" in die Shell WEB-INF/views/app.view.xml von tl-layout-view. Seit die Shell die Einträge in die Abschnitte application und system gliedert, gibt es diesen Anker nicht mehr. Das Build meldet:
ERROR com.top_logic.layout.view.ViewLoader - No corresponding ConfigurationItem found for reference 'system-separator', possible values are: application, system at file:///WEB-INF/views/app.view.xml line 41 column 15. ERROR com.top_logic.layout.view.ViewOverlayMerger - Failed to merge view overlays: /WEB-INF/views/app.view.xml [INFO] BUILD SUCCESS
Die laufende Anwendung zeigt danach keinen ihrer eigenen Einträge in der Seitenleiste. Aufgefallen ist das erst bei einer Prüfung im Browser.
Lösung
- Ein Fehler beim Zusammenführen der View-Overlays in TLAppWar lässt das Build fehlschlagen und nennt die betroffene View und die Ursache.
- Test: Eine Anwendung, deren Overlay einen nicht vorhandenen Bezug (config:reference) verwendet, baut nicht.
Das gleiche Verhalten bei ungültigen Layouts behebt #30107.