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