Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-7425

Add discovery mechanism for tooling implementations

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 1.38.0
    • Component/s: segment-tar
    • Labels:

      Description

      This issue proposes an idea for discovering implementations of tooling for the Segment Store. Developing a tool for the Segment Store should include the following step.

      • The tool compiles against the NodeStore API and the API exposed through the oak-segment-tar-tool-api. In particular, the tool uses the ToolingSupportFactory and related interfaces to instantiate a NodeStore and, optionally, a NodeState for the proc tree.
      • The tool runs with an implementation-dependent uber-jar in the classpath. The uber-jar includes the ToolingSupportFactory API, its implementation, and every other class required for the implementation to work. No other JARs is required to use the ToolingSupportFactory API. The tool uses the Java's ServiceLoader to instantiate an implementation of ToolingSupportFactory. The uber-jar is the oak-segment-tar-tool module.

      The patch falls short of fully implementing the use case because oak-segment-tar-tool-api is not versioned independently from Oak. This can't happen at the moment because oak-store-spi and its dependencies are not independently versioned either. The workflow described above could still work, but only because the NodeStore and NodeState API are quite stable. A cleaner solution to dependency management is required in the long run.

        Attachments

        1. 001.patch
          12 kB
          Francesco Mari

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                frm Francesco Mari
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: