|Re: [equinox-dev] Bundle lazy activation|
They are in âlazyâ state after refresh. I assumed itâs the same as âstartingâ and naming difference is just console sugar. Is it actually?
My expectation here is that lazy activation (transition to âstartingâ state) happens after bundle.start() method is called.
As far as I know bundle state transition resolve -> active should happen only after explicit start call. ÂI still donât see on which of the steps Iâm performing Âthis explicit call could happen.
Or you mean that equinox refresh command does âstartâ under the hood? Is there more information on equinox compatibility option you mentioned (source pointers would do as well)?
I checked the bug you pointed to â just to be clear- Âmy test playground contains only equinox and the attached bundles so I think that simple configurator and p2 shouldnât be a concern (this time J) and itâs more pure framework question.
(Iâm not sure Iâm able to get the context just by reading the bug comments but it seems it describes a weak point in sc, so Iâll ask the p2 guys for more information)
Why this seems a problem from my point of view: first load of a class should not start a bundle â otherwise one may not be able to use a bundle as a library just for class loading but would be forced to pay the activation price.
To be sure I understand correctly â you say that implicit bundle activation after installation is equinox feature and itâs enabled by setting bundle-activationPolicy to lazy?
Thanks for the help,
From the console, what state are the bundles in after calling refresh? I suspect they are in the STARTING (actually lazy starting) state. This means they are waiting for the first class load and then will be acivated. In equinox we have had lazy activation since day one, before it was in the OSGi specification. As such we do have a compatibility option which is enabled by default that marks any lazy activate for start once it is installed. Also see p2 bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=177641.