Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-1548

Move bundle event handling to Loader (from AbstractSlingRepository)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • JCR Base 2.0.6
    • JCR Base 2.1.0
    • JCR
    • None

    Description

      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.

      Attachments

        1. SLING-1548.patch
          14 kB
          Felix Meschberger

        Issue Links

          Activity

            People

              fmeschbe Felix Meschberger
              fmeschbe Felix Meschberger
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: