David Jencks created FELIX-5079:
-----------------------------------
Summary: [DS] Not enough configuration listeners to deal with
regions
Key: FELIX-5079
URL: https://issues.apache.org/jira/browse/FELIX-5079
Project: Felix
Issue Type: Bug
Components: Declarative Services (SCR)
Affects Versions: scr-2.0.2
Reporter: David Jencks
Assignee: David Jencks
We implemented the global extender flag that lets DS deal with components in
all regions (or in more spec terms all bundles everywhere in the framework
regardless of visibility to the DS bundle) but there is only one
ConfigurationListener registered with the DS bundle context. Obviously if
there are different CA's in different regions this won't work.
Another twist is that (apparently, according to Tom Watson) just because a
bundle A can see a particular CA instance B does not mean that B can see a
ConfigurationListener registered by A.
This might work:
1. When a bundle to be extended arrives, and it has configurable components in
it, we register a ServiceTracker for config admin with that bundle.
2. When the service tracker detects a CA, we check that it is a CA compatible
with the DS CA class, and whether we already know about it.
3. if it's our kind of CA and we don't know about it, then we register a
ConfigurationListener with the CA's bundle.
4. When the last service tracker knowing about a particular CA indicates the CA
is leaving we unregister the ConfigurationListener (or when the last bundle
using that CA stops)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)