[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] policy="dynamic" in Declarative Services.

if u want to the component isn't deactivated,u should set the bound
service cardinality to "0..1"

2009/5/4 Sameera Jayasoma <sameera.madushan@xxxxxxxxx>:
> Hi devs,
>
> Even though I have used the value "dynamic" for the "policy" attribute in
> the "reference" element, the component is deactivated once the bound service
> is unregistered. Here is the component.xml I am using.
>
> <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0";>
>     <scr:component enabled="true" name="carbon.core.dscomponent">
>         <implementation
> class="org.wso2.carbon.core.internal.CarbonCoreDSComponent"/>
>         <property name="service.pid" value="carbon.core.dscomponent"/>
>         <reference name="registry.service"
> interface="org.wso2.carbon.registry.core.service.RegistryService"
> cardinality="1..1" policy="dynamic" bind="setRegistryService"
> unbind="unsetRegistryService"/>
>     </scr:component>
> </components>
>
> Here is the component implementation class.
>
> public class CarbonCoreDSComponent{
>
>     private static Log log = LogFactory.getLog(CarbonCoreDSComponent.class);
>     private BundleContext bundleContext;
>
>     protected void activate(ComponentContext ctxt) {
>         log.info("******* Carbon Core bundle is activated ******* ");
>     }
>
>     protected void deactivate(ComponentContext ctxt) {
>         log.info("******* Carbon Core bundle is deactivated ******* ");
>     }
>
>     protected void setRegistryService(RegistryService registryService) {
>         System.out.println("--------------------Set Registry Service");
>     }
>
>     protected void unsetRegistryService(RegistryService registryService) {
>         System.out.println("--------------------Unset Registry
> Service");
>     }
> }
>
> When I stop the bundle which registers the
> "org.wso2.carbon.registry.core.service.RegistryService", following out put
> is generated.
>
> ******* Carbon Core bundle is deactivated *******
> {org.wso2.carbon.core.internal.CarbonCoreDSComponent}
> --------------------Unset Registry Service
>
> This mean carbon.core bundle is deactivated right?
>
> Expected behavior: When the RegisterService is unregisterd, only the unbind
> method should be called. But here first the bundle is deactivated and then
> the unbind method is called.
>
> Any solution would be greatly appreciated.
>
> Thanks
> --
> Sameera Jayasoma
> WSO2 Inc.
> Oxygenating the Web Service Platform.
> http://wso2.org/
>
> blog: http://tech.jayasoma.org
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>



-- 
=============================
|     BlueDavy                                      |
|     OSGi China User Group Director    |
|     http://china.osgiusers.org               |
|     http://blog.bluedavy.cn                   |
=============================