[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] policies wrt use of Bundle-ActivationPolicy

Hi Richard,

On 3/13/2012 11:58 AM, Richard S. Hall wrote:
<stuff deleted>

However, I can talk about general OSGi policy: If your bundle is expected to provide functionality to client bundles and client bundles can reasonably expect to obtain (or witness or whatever) your provided functionality without being required to explicitly class load from your bundle, then you should not use lazy policy. Does that make sense?

Yes. The functionality at issue here is remote services/RSA...where the service hosts expect to be able to call


bundleContext.registerService(...)

and have some topology manager be previously started...and with service hook export the service for remote access as part of the registerService call.

On the service consumer side it's trickier, because in at least some cases people expect to have the remote service be discovered (via some network discovery provider) as soon as things start. This is also the case in [1], for example.


The simplest example is a bundle that provides a service and imports its service package. If this bundle is lazy, then its service will never be provided because an explicit class load will never be triggered on it. This is not limited to providing services, though. For extenders, if they are lazily started but extendees do not explicitly load classes from the extender, then extensions may never be processed.

yes...this is exactly the case with remote services I would say.


You just need to think of how your bundles are or can be used to know if lazy policy is right for them.

Right...I agree...thanks. I hope that's what we're doing with [1]. The tricky bit (as usual) is knowing how/can people are using our stuff.


Scott