Jürgen Albert created FELIX-6589:
------------------------------------
Summary: update method with constructor injection does not work
Key: FELIX-6589
URL: https://issues.apache.org/jira/browse/FELIX-6589
Project: Felix
Issue Type: Bug
Components: Declarative Services (SCR)
Affects Versions: scr-2.2.6
Reporter: Jürgen Albert
I have a scenario, where I use constructor injection and on one of the
references I get an update method is defined. When the properties of the
registered service change the update method is never called however.
When I move the Reference from the constructor to a usual bind method, or even
with a duplicated on it works like a charm.
The Constructor looks as follows:
{code:java}
public DefaultResourceSetFactoryComponent(ComponentContext ctx,
@Reference(name="resourceFactoryRegistry",
unbind="unsetResourceFactoryRegistry", updated =
"modifiedResourceFactoryRegistry")
ServiceReference<Resource.Factory.Registry>
resourceFactoryRegistryReference
) {
{code}
The bind method that works looks as follows:
{code:java}
@Reference(policy=ReferencePolicy.STATIC,
unbind="unsetResourceFactoryRegistry", updated =
"modifiedResourceFactoryRegistry")
public void setResourceFactoryRegistry(Resource.Factory.Registry
resourceFactoryRegistry, Map<String, Object> properties) {
{code}
Both update methodes are mentioned correctly in the resulting component xml.
I also played around with ComponentServiceObjects, ServiceReference and the
service itself. Result stays the same.
If the Spec says that this is the correct behavior that I can't fin the passage.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)