Bundles are updated...

BootstrapInstaller.java:615

 installedBundle.update(ins);

My reading of the OSGi spec is that this should fire the UPDATED event
regardless of the previous state of the bundle (i.e. STOPPED in this case),
but maybe that's a misread on my part.

Justin

On Tue, Jan 18, 2011 at 5:01 AM, Ian Boston <[email protected]> wrote:

> Hi,
> If I upgrade a bundle when the OSGi container is not running then the
> ContentLoader service doesn't recognise that the bundle has been upgraded.
>
> Upgrading can be achieved in the bootstrap by deleting
> sling/felix/bundle0/bootstrapinstaller.ser before startup.
> The bundles that have been upgraded cause a new version to appear in
> sling/felix/bundle*/versionx.y with the other bundle files being updated.
> The bootstrap loader is quite precise, only upgrading those bundles that are
> really new. (later version or if SNAPSHOT, later Bnd-LastModified time)
>
> However, since the OSGi UPDATED event never fires the
> ContentLoaderServiceImpl does not upgrade the bundle or its content.
>
> AFAICT, the SGI UPDATED event never fires, because the bundle is simply
> started, and not updated.
>
> I wonder if, at line 146 in ContentLoaderSeriviceImpl, there is a way of
> correctly setting isUpdate when the bundle was upgraded with the OSGi
> container not running ?
>
> ContentLoaderSeriviceImpl:147 is
> final boolean isUpdate =
> this.updatedBundles.remove(bundle.getSymbolicName());
>
> Ian

Reply via email to