Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
JCR Base 2.0.6
-
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
Attachments
Issue Links
- relates to
-
SLING-1626 Launchpad: NamespaceException: sling: is not a registered namespace prefix
- Closed