[ https://issues.apache.org/jira/browse/OAK-3145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Egli resolved OAK-3145. ------------------------------ Resolution: Fixed Resolved with http://svn.apache.org/r1693398 and http://svn.apache.org/r1693399 in the trunk. Marking resolved for now (in trunk ie 1.3.4) - if this has to go to 1.2 branch as well we can do that in the same or in another ticket > 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 > > Attachments: OAK-3145.patch, OAK-3145.v2.patch > > > 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)