Bietet ein Basismodul die Konfiguration einer Komponente an (z.B. die Komponente zur Administration der Nutzer), so ist es z.Z. schwer möglich diese Komponente in seinem Projekt anders zu konfigurieren. Soll eine Eigenschaft "foo" der Komponente geändert werden, muß in dem Basismodul ein Template eingeführt (oder angepasst) werden und dieses Property "foo" gesetzt werden. Dann muß in dem Projekt dieses Template referenziert werden und das Property gesetzt werden. Noch schlimmer ist das Vorgehen, die Layout-Datei in sein eigenes Projekt zu kopieren und anzupassen.
Verbesserung
Es soll möglich sein, zu einer Layout-Datei eine Overlay-Datei angeben zu können in der für eine Komponente, identifiziert durch ihren Namen, ein Konfigurationsschnipsel eingetragen ist, der die Komponente den Wünschen entsprechend modifiziert. Siehe LayoutStructure.
Code-Migration
- Die unbenutzten Properties "compoundMaster" und "sizeAttribute" in Layout-Templates werden entfernt.
- Die Properties "parentName" und "projectTreeName" in Layout-Templates und masterFrame.xml's müssen entfernt werden.
- Layouts neu generieren (Ant layout_setup).
- Es entsteht ein neuer Ordner WEB-INF/layouts/my.project.name, in dem sich alle Teil-Layouts der Anwendung befinden.
- Dieser Ordner enthält auch alle administrativen Layouts (die eigentlich schon durch Basiskomponenten definiert sind. Diese sollten in einem Folge-Refactoring nach Update auf #24407 entfernt werden (siehe Migrationsanweisung dort).
- Komponentennamen, die Komponenten unterschiedlicher *.layout.xml-Dateien referenzieren, müssen qualifiziert werden (aus myComponentName wird `my/component.layout.xml#myComponentName).
- Gleiches gilt für alle Komponenten-Referenzen aus nicht Layout-XML-Dateien (geskriptete Tests, Test-Templates, Relation.xml's, Role-Profile-Definitionen, ViewStateConfiguration.xml's und Aufrufe von ComponentName#newName(String)).
- Für XML-Dateien kann die Launch-Konfiguration "Migration #23037 UpdateComponentName" angepasst und mit den XML-Dateien oder Ordnern gestartet werden.
- Mit dem Ant-Target "z_create_qualified_name_mapping" kann ein Mapping erstellt werden, das zu einem lokalen Kompontennamen den qualifizierten Komponentennamen enthält, um die Umstellung zu vereinfachen.
Offene Punkte
- Der Hauptreiter kann nicht konfiguriert werden, da dann das ganze MainLayout ausgetauscht wird.
Test
Kein zusätzlicher Test.