[ 
https://issues.apache.org/jira/browse/FELIX-2961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13037869#comment-13037869
 ] 

Felix Meschberger commented on FELIX-2961:
------------------------------------------

Actually I disagree (even after reading the mail thread again).

The spec states that the Component Name is to be used to get the applicable 
configuration from Configuration Admin. In you sample this would be "AAA" and 
not your Service PID value of "ZZZ". Hence the code works as designed and the 
configuration required is for "AAA". See Section 112.7, Deployment, of the 
Declarative Services specification.

Actually, IIRC as a consequence of the thread you refer to, the SCR plugin 
automatically sets the service.pid property in the component descriptor unless 
the component already sets this property itself.

> SCR & ConfigurationAdmin : service.pid resolution
> -------------------------------------------------
>
>                 Key: FELIX-2961
>                 URL: https://issues.apache.org/jira/browse/FELIX-2961
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>    Affects Versions:  scr-1.6.0
>            Reporter: Andrei Pozolotin
>
> hello!
> when I use config admin to control instaniation of scr component services, I 
> use this pattern:
> // 1) in config source bundle:
>                       Configuration config = 
> configAdmin.getConfiguration("ZZZ", null);
>                       Dictionary<String, String> props = 
> config.getProperties();
>                       config.update(props);
> //  2) in config target bundle:
> @Service
> @Component(name = "AAA", policy = ConfigurationPolicy.REQUIRE, immediate = 
> true)
> public class BucketPlugin implements PluginSpaceService {
>       @Property(name = "service.pid")
>       protected static final String PID = "ZZZ";
> // 3) despite the fact service.pid "looks good" in xml for the tagret 
> compenent:
>     <scr:component enabled="true" immediate="true" name="AAA" 
> configuration-policy="require">
>         <implementation class="com.ddfplus.core.space.BucketPlugin"/>
>         <service servicefactory="false">
>             <provide interface="com.ddfplus.api.plugin.PluginSpaceService"/>
>         </service>
>         <property name="service.pid" type="String" value="ZZZ"/>
> // 4) the scr fails to initialize the component; intitialzation works only 
> when 
> (scr.component.name == config.service.pid) and NOT when (config.service.pid 
> == scr.component.property.pid)
> // 5) if I look on the the config target in console (when I do manage to 
> inititialize it),
> it shows that again, actual service.pid comes from scr.component.name and not 
> from scr.component.property.service.pid
> thank you.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to