Stefan Egli created OAK-3145: -------------------------------- Summary: Allow plugging in additional jcr-descriptors Key: OAK-3145 URL: https://issues.apache.org/jira/browse/OAK-3145 Project: Jackrabbit Oak Issue Type: Improvement Components: core Affects Versions: 1.3.3 Reporter: Stefan Egli Assignee: Stefan Egli Priority: Minor Fix For: 1.3.4
The current way oak compiles the JCR descriptors is somewhat hard-coded and does not allow an easy way to extend it. Currently oak-jcr's {{RepositoryImpl.determineDescriptors()}} uses oak-core's {{ContentRepositoryImpl.createDescriptors()}} ones and overwrites a few (in {{JCRDescriptorsImpl}}). The result of this is then put into the {{RepositoryImpl.descriptors}} field - which is subsequently used. While these descriptors can explicitly be overwritten via {{put}}, that all has to happen within overwriting code of the {{RepositoryImpl}} hierarchy. There's no plug-in mechanism. Using the whiteboard pattern there should be a mechanism that allows to provide services that implement {{Descriptors.class}} which could then be woven into the {{GeneralDescriptors}} in use by {{ContentRepositorImpl}} for example. The plugin mechanism would thus allow hook in Descriptors as 'the base' which are still overwritten by oak-core/oak-jcr's own defaults (to ensure the final say is with oak-core/oak-jcr) - as opening up such a Descriptors-plugin mechanism could potentially be used by 3rd party code too. PS: this is a spin-off of OAK-2844 -- This message was sent by Atlassian JIRA (v6.3.4#6332)