Description
The UpdaterEngine is deprecated and absolutely unmaintainable, we have to get rid of it somehow. However there is still one use case for which we don't yet have good replacement: namespace updaters, i.e. the ability to make backwards incompatible changes to a node type.
The updater engine solves this by using an intermediate migration namespace. This idea is something like the following.
- remap the old namespace uri of the node type you want to update to a temporary prefix.
- register the new namespace uri of the node type you want to update with the existing prefix.
- register the new node type in the new namespace.
- migrate all nodes of the old type and set the new primary type
We could simply retain this mechanism but clean it up, provide a new implementation, perhaps making use of the new NodeUpdateVisitor interface, and perhaps move it out of the repository project and make it available as a stand-alone tool, perhaps a function of the existing checker tool.