The old packages from uninstalled and updated bundles remain available
until refreshPackages() is called per the spec; however, the spec also
states that new bundles should not be wired to these old packages. Felix'
resolving was wiring to the old packages. Related to this, Felix previously
associated "isRemovalPending()" with a bundle as a whole, but to fix the
resolver to wire only to new packages the "isRemovalPending()" must be
associated with the modules underlying bundles.
Thus, for example, if a bundle is updated, the module associated with the
old version is marked for removal (and thus its exported packages are
marked for removal), but the module associated with its new version is
not marked for removal. As a result, the resolver is able to correctly
avoid wiring new bundles to old packages.
git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@423428 13f79535-47bb-0310-9956-ffa450edef68
6 files changed