Richard, 

Unfortunately I have seen many errors with bundles that assume they are lazily 
activated and actually fail if eagerly activated. While that is clearly an 
error, I tend to regard the Bundle-ActivationPolicy header as an expression of 
intended usage from the bundle author.

I do agree with you that in general, lazy activation is a hack... it 
complicates the bundle lifecycle and is too easily abused. I am much more a fan 
of the style of laziness supported by DS and iPOJO.

Neil 


On Wednesday, 11 January 2012 at 17:20, Richard S. Hall wrote:

> On 1/11/12 12:04 , Neil Bartlett wrote:
> > Guillaume,
> > 
> > In this case the bundle will be fully started, i.e. "forced" to start 
> > without regard for its policy. Because of this I recommend that you 
> > *always* start bundles with the START_ACTIVATION_POLICY flag.
> > 
> > I believe that it was discussed that the default behaviour of the zero-arg 
> > start() method should be changed to be equivalent to 
> > start(START_ACTIVATION_POLICY). However the old behaviour was kept for 
> > backwards compatibility reasons.
> 
> Not sure I agree with this. It is never wrong to start a bundle eagerly, 
> but it can lead to unexpected results if a bundle that provides a 
> service is started lazily...of course, you could argue that this bundle 
> shouldn't have a lazy policy, but that is a separate issue. My first 
> point remains, it is never incorrect to start a bundle eagerly.
> 
> In general, laziness is actually not that great since it hides 
> dependencies in class loads, rather than basing them on services.
> 
> -> richard
> 
> > 
> > Regards,
> > Neil
> > 
> > 
> > On Wednesday, 11 January 2012 at 16:55, Guillaume Sauthier (OW2) wrote:
> > 
> > > Another question related to the activation policy.
> > > What happen if the Bundle's manifest has the Bundle-ActivationPolicy 
> > > header but the Bundle.start() methods is called without arguments (no 
> > > options so no START_TRANSIENT and no START_LAZY_ACTIVATION) ?
> > > 
> > > --G
> > > 
> > > 2012/1/11 Guillaume Sauthier (OW2)<[email protected] 
> > > (mailto:[email protected])>
> > > > With Felix, we experienced that the Bundle triggering the class load 
> > > > can use the class loaded from the lazy Bundle, but the lazy Bundle was 
> > > > not activated after the class was loaded...
> > > > 
> > > > --G
> > > > 
> > > > 2012/1/11 Guillaume Sauthier (OW2)<[email protected] 
> > > > (mailto:[email protected])>
> > > > 
> > > > > Hi all
> > > > > 
> > > > > What happen when a Bundle with Bundle-ActivationPolicy: lazy in its 
> > > > > Manifest is being used while in the RESOLVED state ?
> > > > > In other words, the Bundle has not yet been started with 
> > > > > Bundle.start(START_LAZY_ACTIVATION), but another Bundle is being 
> > > > > activated and is using a class from the lazy Bundle.
> > > > > 
> > > > > The examples I found on the OSGi web site are only explaining 
> > > > > behaviors when the lazy bundle is activated because of a 
> > > > > Bundle.loadClass() while in STARTING state.
> > > > > 
> > > > > Thanks
> > > > > --G
> > > > 
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > OSGi Developer Mail List
> > > [email protected] (mailto:[email protected])
> > > https://mail.osgi.org/mailman/listinfo/osgi-dev
> > 
> > 
> > 
> > 
> > _______________________________________________
> > OSGi Developer Mail List
> > [email protected] (mailto:[email protected])
> > https://mail.osgi.org/mailman/listinfo/osgi-dev
> 
> 
> _______________________________________________
> OSGi Developer Mail List
> [email protected] (mailto:[email protected])
> https://mail.osgi.org/mailman/listinfo/osgi-dev



_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to