Details
Description
DefinitionMergeService does nothing with .meta:order-before for config nodes that already exist, and it naively copies this property for any newly-created config nodes.
- Handle the case of a pure reordering, with no other changes to a config node.
- When attempting to add a .meta:order-before to a config node, suppress any reference to nodes that are "downstream" in the module dependency hierarchy – i.e. will not be known to the ConfigurationTreeBuilder when processing the (proposed) .meta:order-before.
- When adding (or attempting to add) a .meta:order-before to a config node, update the .meta:order-before of all siblings that are located in other ConfigDefinitions to match the new intended ordering.
- Implement new unit tests for these cases and/or update existing tests to include them.