Major
Detail
Major
Detail
Detail
#27122
Reconfiguring and exporting an inherited (modular) layout is not applied
Top-Logic is developed in a modular way, i.e. each module has its own sources and resources (e.g. layouts, application configuration, etc.). For deployment, this data is merged and made available together.
The developer, on the other hand, works with the unprocessed data. During the runtime of an application, access to the latest layout, for example, can become "sluggish", since in the worst case it is necessary to check in each module, for each theme, whether the corresponding file exists.
Top-Logic therefore has a cache for the file system (see tl:IDEFileSystemCache). For a relative path to webapp the cache has all path objects to existing files of the corresponding modules (sorted by module dependencies). This avoids searching for the appropriate file in all modules for each access in the worst case.
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 there is an error, because there a Path object is resolved with an absolute path (see resolve-API). This is wrong, the API should only be used with a relative path.
Test
- DeletemainTabbar.layout.xml from tl-demo (depends on #27109, because here the main tabbar was modularized).
- Log in and configure main tabbar by selecting tabs.
- Export layouts.
- Log in again without restarting.
- Error: No tabs are displayed (only after restart).