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

David Jencks closed FELIX-6105.
-------------------------------

> [DS] SCR does not add the component bundle location to the Configuration 
> objects
> --------------------------------------------------------------------------------
>
>                 Key: FELIX-6105
>                 URL: https://issues.apache.org/jira/browse/FELIX-6105
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>            Reporter: Esin Yakub
>            Priority: Major
>
> The SCR runtime does not set the bundle location of the configuration 
> consuming component to the Configuration object. This is the case in the 
> ManagedService-s and makes them more resilient to any external actions.
> With Felix SCR currently if you have a component requiring a configuration 
> PID (the component is activated successfully) and you get the configuration 
> PID using the ConfigurationAdmin service without specifying "null" for the 
> bundle location you will end up sending a 
> ConfigurationEvent.CM_LOCATION_CHANGED event which in hand will trigger a 
> component destruction.
> Sample service:
> {code:java}
> import org.osgi.service.component.annotations.Activate;
> import org.osgi.service.component.annotations.Component;
> import org.osgi.service.component.annotations.ConfigurationPolicy;
> import org.osgi.service.component.annotations.Deactivate;
> @Component(
>         configurationPid = "com.softwareag.dummy.pid",
>         configurationPolicy = ConfigurationPolicy.REQUIRE,
>         immediate = true)
> public class Dummy{
>     @Activate
>     public void activate() {
>         System.out.println("Dummy is active");
>     }
>     @Deactivate
>     public void deactivate() {
>         System.out.println("Dummy is deactivated");
>     }
> }
> {code}
> Sample snippet for consumer:
> {code:java}
> ...
> Configuration ssoConf = 
> configAdmin.getConfiguration("com.softwareag.dummy.pid");
> System.out.println("Bundle location for the dummy configuration is: " + 
> ssoConf.getBundleLocation());
> }
> {code}
> If the bundle location in the configuration is null the second snippet sets 
> the bundle location and deactivates the component.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to