Details
-
Sub-task
-
Status: Closed
-
High
-
Resolution: Fixed
-
None
-
None
-
None
-
Platform163: GA!
Description
To further harden and remove unnecessary 'noise' for Hippo Configuration Management and configuration change detection, we can drop SNS and orderable children support from the Jackrabbit defined rep:root nodetype.
The rep:root nodetype is defined in the jackrabbit-core buildin_nodetypes.cnd resouce:
[rep:root] > nt:unstructured + jcr:system (rep:system) = rep:system mandatory IGNORE
To remove the SNS and orderable children support, which rep:root inherits from nt:unstructured, we can modify the nodetype to:
[rep:root] > nt:base + jcr:system (rep:system) = rep:system mandatory IGNORE - * (UNDEFINED) multiple - * (UNDEFINED) + * (nt:base) = nt:unstructured VERSION
And that's all to it. Technically.
There is no API or spec compliance problem with this change (the JCR spec clearly states the root nodetype is implementation specific).
And neither is or should there be a problem for prope Hippo CMS usage, as Hippo CMS projects should not need SNS support or orderability for root nodes.
Practically however we (only) have several unit-tests which currently expect/rely on the SNS 'feature', and the same applies for Jackrabbit itself (unit-tests relying on root SNS support).
Our own unit-tests (a handful) are easily fixable, but changing the Jackrabbit unit-tests would be too invasive to be practical.
Therefore a more feasible approach to implement the rep:root nodetype change will be doing so dynamically, at startup, by overwriting the Jackrabbit NodeTypeRegistry.loadBuiltInNodeTypeDefs(NodeTypeDefStore store) method in HippoNodeTypeRegistry.
I've already got a working prototype patch for this change which I'll attach to this issue later.
The only other changes then needed is fixing the existing unit-tests which current depend/expect root node SNS support.
As the latter can be fixed right now, just make them not require root node SNS support, those will be done first, while the rep:root nodetype change can be done afterwards.
Attachments
Issue Links
- testing discovered
-
ESSENTIALS-1085 Incorrect XmlInstruction implementation of setting overwrite=true
- Closed
- waits for
-
CMS-10820 Remove usage and dependency on root node SNS support (unit-tests only)
- Closed
-
ESSENTIALS-1084 Remove usage and dependency on root node SNS support (unit-tests only)
- Closed
-
HSTTWO-4085 Remove usage and dependency on root node SNS support (unit-tests only)
- Closed
-
REPO-1722 Remove usage and dependency on root node SNS support (unit-tests only)
- Closed