Hi,

On Mon, May 4, 2009 at 8:23 AM, BlueDavy Lin <[email protected]> wrote:

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



Thanks for the quick reply. But my requirement is that the service should be
registered before the component is activated. in that case I have to put
cardinality as "1..1" right?

Thanks
Sameera

>
>
> 2009/5/4 Sameera Jayasoma <[email protected]>:
> > 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
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >
> >
>
>
>
> --
> =============================
> |     BlueDavy                                      |
> |     OSGi China User Group Director    |
> |     http://china.osgiusers.org               |
> |     http://blog.bluedavy.cn                   |
> =============================
> _______________________________________________
> equinox-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>



-- 
Sameera Jayasoma
Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://tech.jayasoma.org
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to