[ 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: (was: 1.12.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 > > 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)