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
