major
minor
major
minor
minor
#27122
Reconfiguring and exporting an inherited (modular) layout is not applied
Top-Logic is developed using a modular approach, meaning that each module has its own sources and resources (e.g., layouts, application configuration, etc.). For deployment, this data is merged and provided as a single unit.
The developer, on the other hand, works with the raw data. During an application’s runtime, accessing the latest layout, for example, can become “slow,” since—in the worst case—each module must check for each theme to see if the corresponding file exists.
Top-Logic therefore maintains a cache for the file system (see tl:IDEFileSystemCache). For a relative path to ` webapp`, the cache contains all path objects pointing to existing files in the corresponding modules (sorted according to module dependencies). This prevents the system from having to search all modules for the appropriate file every time it is accessed—even in the worst-case scenario.
When creating a new file (e.g., a layout), the path is added to the cache. When inserting the path at the correct position in the cache, an error occurs because a Path object with an absolute path is resolved there (see resolve-API). This is incorrect; the API should only be used with a relative path.
Test
- Delete `mainTabbar.layout.xml ` from `tl-demo` (depends on #27109, since the main tab bar was modularized there).
- Log in and configure the main tab bar by selecting tabs.
- Export layouts.
- Log in again without restarting.
- Error: No tabs are displayed (they only reappear after a restart).