Newly registered services must not immediately bound for static references
--------------------------------------------------------------------------
Key: FELIX-1413
URL: https://issues.apache.org/jira/browse/FELIX-1413
Project: Felix
Issue Type: Bug
Components: Declarative Services (SCR), Specification compliance
Affects Versions: scr-1.0.8
Reporter: Felix Meschberger
Assignee: Felix Meschberger
Fix For: scr-1.2.0
Consider a static component references with mulitplie cardinality, that is 0..n
or 1..n.
If the component is satisified and active, all services existing at the time of
activation are bound. If now a service is registered matching the component's
reference this newly registered service must not be bound to the component.
Only if the component is reactivated for another reason (e.g. reconfiguration
or removal of a statically bound service) may the newly registered service be
bound. This is comparable to optional package imports: such imports are only
wired to newly installed bundles when the importing bundle is explicitly
rewired.
In other words here is what may happen :
(1) Component C is enabled, satisfied and activated. All services bound. C
has static, multiple reference to Service type TS
(2) Service S of type TS is registered
(3) The service is *not* bound
(4) Component C is deactivated (e.g. for reconfiguration)
(5) Component C is still satisifed and activated. Now Service S is bound
In current versions (1.0.8 and earlier) scr is immediately reactivating the
component to bind the new Service S in step 3; which is wrong.
See also the discussion on the OSGi dev list "Questions on DS Spec" [1] for
full details.
[1] http://www.mail-archive.com/[email protected]/msg00883.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.