[ https://issues.apache.org/jira/browse/FELIX-4957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Ziegeler reopened FELIX-4957: ------------------------------------- > [DS][RFC-212] Various issues with field references > -------------------------------------------------- > > Key: FELIX-4957 > URL: https://issues.apache.org/jira/browse/FELIX-4957 > Project: Felix > Issue Type: Bug > Components: Declarative Services (SCR) > Reporter: Carsten Ziegeler > Assignee: Carsten Ziegeler > Fix For: scr-2.0.0 > > > 1. The DS spec states that non-volatile fields with dynamic references is an > error. These fields must not be injected. See 112.3.8.1: > "For a dynamic reference, the field must be declared with the volatile > modifier so that field value changes made by SCR are visible to other > threads. If the field is not declared with the volatile modifier, SCR must > log an error message with the Log Service, if present, and the field must not > be modified." > 2. When a field with a dynamic reference holds the service properties of the > referenced service, the field must be modified when the referenced service's > properties are changed. > See 112.3.8.1: "For a dynamic reference with unary cardinality, SCR must set > the field with initial bound service, if any, before the component instance > is activated. When there is a new bound service or the service properties of > the bound service are modified and the field holds service properties, SCR > must replace the field value. " > 3. When a component uses a static field reference holding properties for the > referenced service and these service properties change, DS must reactivate > the component to inject the updated service properties. > See 112.3.8.1: "For a static reference, SCR must set the value of the field > before the component instance is activat- ed and must not change the field > while the component is active." > So the component must be reactivated to receive the updated service > properties. > 4. When a final field is used as a reference, DS must activate the component > but not set the field value. > See 112.3.8.1: "If the field is declared with the final modifier, SCR must > log an error message with the Log Service, if present, and the field must not > be modified." > 5. If a field reference is optional and there is no bound service, DS must > null the field. > See 112.3.8.1: "If the reference has optional cardinality and there is no > bound service, SCR must set the field value to null." -- This message was sent by Atlassian JIRA (v6.3.4#6332)