You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2009/06/15 11:13:07 UTC

[jira] Updated: (FELIX-927) Allow bind and unbind methods to receive the service properties

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

Felix Meschberger updated FELIX-927:
------------------------------------

    Component/s:     (was: Declarative Services (SCR))
                 Specification compliance

> Allow bind and unbind methods to receive the service properties
> ---------------------------------------------------------------
>
>                 Key: FELIX-927
>                 URL: https://issues.apache.org/jira/browse/FELIX-927
>             Project: Felix
>          Issue Type: New Feature
>          Components: Specification compliance
>    Affects Versions: scr-1.0.6
>         Environment: OSGi RFC-0134, OSGi R4.2 Early Draft 2 (http://www.osgi.org/download/osgi-4.2-early-draft2.pdf) 
>            Reporter: Felix Meschberger
>             Fix For: scr-1.2.0
>
>
> A bind or unbind method must have one of the following prototypes:
>     protected void <method-name>(ServiceReference);
>     protected void <method-name>(<parameter-type>);
>     protected void <method-name>(<parameter-type>, Map);
> If the bind or unbind method has the third prototype, then the service object of the bound service is passed to the method as the first argument and a Map containing the service properties of the bound service is passed as the second argument. The method's first parameter type must be assignable from the type specified by the reference's interface attribute. That is, the service object of the bound service must be castable to the method's first parameter type.
> When searching for the bind or unbind method to call, SCR must look through the component implementation class hierarchy. The declared methods of each class are searched for a method with the specified name that takes one or two parameters. The method is searched for using the following priority:
> 1.The method takes a single parameter and the type of the parameter is org.osgi.framework.ServiceReference.
> 2.The method takes a single parameter and the type of the parameter is the type specified by the reference's interface attribute.
> 3.The method takes a single parameter and the type of the parameter is assignable from the type specified by the reference's interface attribute. If multiple methods match this rule, this implies the method name is overloaded and SCR may choose any of the methods to call.
> 4.The method takes two parameters and the type of the first parameter is the type specified by the reference's interface attribute and the type of the second parameter is java.util.Map
> 5.The method takes two parameters and the type of the first parameter is assignable from the type specified by the reference's interface attribute and the type of the second parameter is java.util.Map. If multiple methods match this rule, this implies the method name is overloaded and SCR may choose any of the methods to call.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.