[
https://issues.apache.org/jira/browse/FELIX-2961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038240#comment-13038240
]
Andrei Pozolotin commented on FELIX-2961:
-----------------------------------------
Felix:
since the "pid vs name problem" is decided;
I have only "small one" left: do you think there is a way SCR plugin could
accept "component name"
// on target comonent:
@Component(name = PluginSpaceService.PID)
public class BucketPlugin implements PluginSpaceService {
in such a way that it does not have to be a compile-time constant (required by
annotation)?
say, similar to how you handle same problem for @Property
@Property(name = "service.pid")
protected static final String PID = "ZZZ";
thank you
Andrei
> 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