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


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.

Reply via email to