jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Egli (JIRA)" <j...@apache.org>
Subject [jira] [Created] (OAK-3145) Allow plugging in additional jcr-descriptors
Date Mon, 27 Jul 2015 08:35:04 GMT
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)

Mime
View raw message