[ 
https://issues.apache.org/jira/browse/FELIX-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clement Escoffier updated FELIX-1906:
-------------------------------------

    Description: 
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 supports regular arguments (no arg, service object, service 
reference, service object + map, service object + dictionary ...)

  was:
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 ...)


> 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 supports 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.

Reply via email to