[
https://issues.apache.org/jira/browse/SLING-1548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Edelson resolved SLING-1548.
-----------------------------------
Resolution: Fixed
applied a modified version of Felix's patch in r991929
> Move bundle event handling to Loader (from AbstractSlingRepository)
> -------------------------------------------------------------------
>
> Key: SLING-1548
> URL: https://issues.apache.org/jira/browse/SLING-1548
> Project: Sling
> Issue Type: Bug
> Components: JCR
> Affects Versions: JCR Base 2.0.6
> Reporter: Felix Meschberger
> Assignee: Felix Meschberger
> Fix For: JCR Base 2.1.0
>
> Attachments: SLING-1548.patch
>
>
> I am looking at a strange situation starting Sling Trunk build. Not all
> namespace prefixes seem to be registered in the Loader class of the JCR Base
> bundle.
> IMHO the setup in the JCR Base Bundle between the AbstractSlingRepository and
> the Loader is not optimal:
> * AbstractSlingRepository implements SynchronousBundleListener
> to just forward the events to the Loader
> * There is a time gap between the time the Loader class is
> instantiated (and handling a set of bundles) and the time
> AbstractSlingRepository is registered as a bundle listener
> * There is a bug in the Loader constructor preventing all
> just INSTALLED bundles from being registered by the BundleListener
> only handles the INSTALLED (and UNINSTALLED and UPDATED) events.
> The last part will certainly miss some bundles.
> I suggest we change this setup such, that the Loader itself is the bundle
> listener handles the events itself. The AbstractSlingRepository just sets up
> the loader and uses it.
> As a result handling events is completely where it should be (in the Loader)
> and the AbstractSlingRepository does not leak implementation detail (being a
> bundle listener) to downstream extensions of the class.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.