[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Question about Bundle-ActivationPolicy: lazy and Activators

> On 7 Oct 2015, at 09:24, Lars Vogel <lars.vogel@xxxxxxxxxxx> wrote:
> 
> Thanks Neil.
> 
> So to summaries: without the "lazy" flag my activator is only started
> if I do this explicit, i.e., it is not started without my code.

Technically, OSGi never starts a bundle unless somebody calls the Bundle.start() method. In an Eclipse application, the âsomebodyâ who starts most of the bundles is p2 (org.eclipse.equinox.simpleconfigurator).

P2 calls start(Bundle.START_ACTIVATION_POLICY) on all bundles that have Bundle-ActivationPolicy: lazy in their manifest. All other bundles are not started at all.

> So to
> ensure the Activator runs, the flag is needed. (Unless I would start
> the bundles somewhere in my code).

This only ensures that the activator runs if you know that a class will be loaded from the bundle. Aside from that, the only way to really *ensure* that a bundle is started is to edit configuration/config.ini.


> 
> Best regards, Lars
> 
> On Wed, Oct 7, 2015 at 10:13 AM, Neil Bartlett <njbartlett@xxxxxxxxx> wrote:
>> It depends what you want to achieve.
>> 
>> If you want the activator to run lazily, only when a class is loaded from the bundle for some other reason (eg because it contributes an extension) then that is exactly what BAP:lazy does.
>> 
>> If you don't have that class loading trigger, then you will have to find a way to start the bundle non-lazily (in this case the BAP:lazy is not needed, but also doesn't hurt anything). Unfortunately in Eclipse it's very hard to actually start a bundle, because the platform doesn't want you to.
>> 
>> Neil
>> 
>> 
>>> On 7 Oct 2015, at 08:58, Lars Vogel <lars.vogel@xxxxxxxxxxx> wrote:
>>> 
>>> Hi,
>>> 
>>> I have a plug-in with an activator. It also sets the
>>> Bundle-ActivationPolicy: lazy policy set, even though it provides no
>>> declarative services nor any others services.
>>> 
>>> id State       Bundle
>>> 208 ACTIVE      org.eclipse.ui.cheatsheets_3.4.200.N20151006-2000
>>> osgi> services 208
>>> "No registered services."
>>> 
>>> Do I still have to set the Bundle-ActivationPolicy: lazy policy set?
>>> The Activator is definitely used in the code.
>>> 
>>> Best regards, Lars
>>> 
>>> --
>>> Eclipse Platform UI and e4 project co-lead
>>> CEO vogella GmbH
>>> 
>>> Haindaalwisch 17a, 22395 Hamburg
>>> Amtsgericht Hamburg: HRB 127058
>>> GeschÃftsfÃhrer: Lars Vogel, Jennifer Nerlich de Vogel
>>> USt-IdNr.: DE284122352
>>> Fax (032) 221739404, Email: lars.vogel@xxxxxxxxxxx, Web: http://www.vogella.com
>>> _______________________________________________
>>> equinox-dev mailing list
>>> equinox-dev@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>> _______________________________________________
>> equinox-dev mailing list
>> equinox-dev@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> 
> 
> 
> -- 
> Eclipse Platform UI and e4 project co-lead
> CEO vogella GmbH
> 
> Haindaalwisch 17a, 22395 Hamburg
> Amtsgericht Hamburg: HRB 127058
> GeschÃftsfÃhrer: Lars Vogel, Jennifer Nerlich de Vogel
> USt-IdNr.: DE284122352
> Fax (032) 221739404, Email: lars.vogel@xxxxxxxxxxx, Web: http://www.vogella.com
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/equinox-dev