Details

    • Sub-task
    • Status: Closed
    • High
    • Resolution: Fixed
    • None
    • 5.0.1
    • 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

          Activity

            People

              Unassigned Unassigned
              adouma Ate Douma
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: