[
https://issues.apache.org/jira/browse/OAK-7425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Davide Giannella updated OAK-7425:
----------------------------------
Fix Version/s: 1.16.0
> Add discovery mechanism for tooling implementations
> ---------------------------------------------------
>
> Key: OAK-7425
> URL: https://issues.apache.org/jira/browse/OAK-7425
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: segment-tar
> Reporter: Francesco Mari
> Assignee: Francesco Mari
> Priority: Major
> Labels: technical_debt
> Fix For: 1.14.0, 1.16.0
>
> Attachments: 001.patch
>
>
> 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.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)