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.

I suspect you are seeing a case where the two lazy activation bundles you
installed being marked for using the lazy start policy upon installation
which makes them ready to start as soon as they get their first class load.

Tom




                                                                                
                                              
  From:       "Todorova, Katya" <[email protected]>                        
                                              
                                                                                
                                              
  To:         Equinox development mailing list <[email protected]>,       
                                              
                                                                                
                                              
  Date:       09/28/2011 06:08 AM                                               
                                              
                                                                                
                                              
  Subject:    [equinox-dev] Bundle lazy activation                              
                                              
                                                                                
                                              





Hi guys,

I’m experiencing a strange bundle “auto start” behavior – let’s have two
bundles which are declared to be lazy activated, first providing a class
referenced by the second one.
After installing them  and calling refresh, I start the “consumer” (via
console command) which in turn activates the other one. I checked the spec
and it says:
“A lazy activation policy indicates that the bundle, once started, must not
be activated until it receives the first request to load a class”

I’m confused because I haven’t started the provider explicitly and I
expected it to be in resolved state and not to be activated at all. Do I
miss something?
Test bundles attached.

Thank you,
Katya
 [attachment "TestLazy_1.0.0.201109281137.jar" deleted by Thomas
Watson/Austin/IBM] [attachment "TestLazyConsumer_1.0.0.201109281137.jar"
deleted by Thomas Watson/Austin/IBM]
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

<<inline: graycol.gif>>

<<inline: ecblank.gif>>

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

Reply via email to