Allows calling a method when service properties of an already injected service
are modified
-------------------------------------------------------------------------------------------
Key: FELIX-1906
URL: https://issues.apache.org/jira/browse/FELIX-1906
Project: Felix
Issue Type: Improvement
Components: iPOJO
Affects Versions: iPOJO-1.4.0
Reporter: Clement Escoffier
Assignee: Clement Escoffier
Fix For: iPOJO-1.6.0
iPOJO provides bind and unbind callback to notify the arrival and the departure
of a service. Currently, service modification was mapped as follows:
- if the service was not matching and now matches : call bind
- if the service was matching and now does no more match : call unbind
- if a service was matching and still matches : ignore
The issue modifies the third case to call a 'modify' callback.
Service dependencies will support a new 'type' : modify; such as in
<component
classname="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
name="ObjectModifyCheckServiceProvider" architecture="true">
<requires field="fs">
<callback type="bind" method="objectBind" />
<callback type="unbind" method="objectUnbind" />
<callback type="modified" method="objectModify" />
</requires>
<provides />
</component>
The equivalent annotation will be also provided:
@Bind(id="mod")
public void bindMod() { }
@Unbind(id="mod")
public void unbindMod() { }
@Modified(id="mod")
public void modifyMod() { }
So, the new mapping will be:
- if the service was not matching and now matches : call bind
- if the service was matching and now does no more match : call unbind
- if a service was matching and still matches : modified method called
The callback support regular arguments (no arg, service object, service
reference, service object + map, service object + dictionary ...)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.