Just to recap then.
"eager" = restart all dependents when a prereq changes
"lazy" = wait until an explicit framework restart/refresh to hook the new
packages into the global namespace.
Is this close? Assuming it is,
What happens during the refresh? Is this effectively a framework restart
where everything is shutdown and restarted? If not, how do the dependents
of some updated bundle know to drop their references to old classes and get
new ones?
Jeff
"pkriens" <Peter.Kriens@xxxxxxxx> wrote in message
news:3E893936.8000104@xxxxxxxxxxx
Jeff McAffer wrote:
In OSGi (at least some older versions) the old bundle (B) would stay
around
until the framework was restarted or all dependent bundles were shutdown
and
restarted. Is this still the state of the art in OSGi?
In release 1 some frameworks refreshed "eagerly", restarting any
dependent bundles, other frameworks left the packages lying around and
resolved the problem lazy. In release 2 we mandate the lazy approach but
provide a special service, the PackageAdmin service that allows the
Management Agent to initiate a refresh (and expose the current status of
package sharing). The refresh can do a global refresh or for a set of
bundles.
The idea behind this is that a management agent can install several
bundles before it refreshes saving time and some error scenarios.
BTW, what stayed around were exported packages not the bundle.
Kind regards,
Peter Kriens
Jeff