Change
Handling of system topics in modules
Issue description
This issue describes the motivation of the current implementation in great detail, since it is not straightforward – the initial approach was different and turned out to have some problems.
Developer comments
There is several ways a system topic can become a piece in a module.
1. by being associated, e.g. when subtyping Topincs file
1. by being used as a scoping topic, e.g. the language english in name, or
1. by being mentioned in a source code file, e.g. a user group in a CSS file.
There is two overlapping requirements which need to be considered, so that a module can be imported without any problems.
1. The topic map has to be imported into the target store so that the functionality is identical to the origin store.
1. Any mention of a topic in a source code file has to be mapped to the new store.
The initial approach was to simply remove system topic maps from the module topic map and use the (meta) topic references in the jtm. This works well, but then the second requirement from above cannot be fullfilled. Let us consider a CSS file specifying some style for the user group user. In the origin store it has the id ID1 and in the target strore ID2. When trying to map the CSS file, so that it works in the target store, the id map looks for locators steming from the module origin. Therefore the system topics must be present in the module topic map, but only a minimal topic containing nothing but the subject identifiers. No other information is relevant acutally. Actually only a "glue" topic needs to be present, one that contains at least two subject identifiers.
It was considered that the new subject identifiers from the module origin are to be removed after they have done their job in the source code mapping. But this is uncecessry as it is only some additional subject identifiers.
|
Work sessions
Start |
2024-08-05T15:37:08
|
End |
2024-08-05T16:46:44
|
Participant |
Robert Cerny
|
|
We are sorry
This page cannot be displayed in your browser. Use Firefox, Opera, Safari, or Chrome instead.