You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Jürgen Albert (Jira)" <ji...@apache.org> on 2023/01/27 22:04:00 UTC
[jira] [Created] (FELIX-6589) update method with constructor injection does not work
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)