[
https://issues.apache.org/jira/browse/OAK-7510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16598798#comment-16598798
]
Alex Deparvu commented on OAK-7510:
-----------------------------------
trying to apply [~tmueller] idea, I ran into another bump.
It seems there's yet another component that will bypass the initial hooks and
inject some property [0], the ClusterRepositoryInfo, this one seems segment-tar
specific.
The timing is interesting as it comes as soon as the NodeStore is available in
OSGi which can be before the init hooks run [1], and I can't tell if this is ok
or not, it feels like it should come after.
Nevertheless I think I found a way around this and will update the patch soon.
[0]
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java#L82
[1]
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java#L374
> Run repository initializers with hooks
> --------------------------------------
>
> Key: OAK-7510
> URL: https://issues.apache.org/jira/browse/OAK-7510
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core
> Reporter: Alex Deparvu
> Assignee: Alex Deparvu
> Priority: Major
> Labels: modularization
> Fix For: 1.10
>
>
> Currently the repository initializers (RepositoryInitializer and
> WorkspaceInitializer) run when the repo boots without any hooks [0] which
> means that current RepositoryInitializers need to setup custom Roots (roots
> with hardcoded editor providers like NamespaceEditorProvider and
> TypeEditorProvider) on top of the provided builders to be able to setup
> properly. I'm looking at the InitialContent [1] and the CugConfiguration [2]
> in the context of installing node types.
> I would like to look into removing the hardcoded providers and trying to run
> all existing editors over the content produced by the initializers.
> As an added benefit this will allow decoupling of hard dependencies between
> components (see for example OAK-7499)
> [0]
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java#L687
>
> [1]
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java#L134
> [2]
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java#L162
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)