On Fri, Mar 5, 2010 at 10:53 AM, Guillaume Nodet <[email protected]> wrote: > That reminds me of a problem I've hit recently, for which I'd be > interested to have more information on. > When you install a bundle, the information must be persisted by the > framework so that it will still be installed when you *restart* the > framework. > Now my question, is what means *restart* ? > If the framework is nicely shutdown (using systemBundle.stop() for > example), then restarted, I assume it must work. > Now, what if the process is abruptly killed or if > java.lang.Runtime.halt() is called after returning from the call ? > > I've had the problem because equinox actually persists the system > changes asynchronously. Unfortunately if another bundle persists some > information using > BundleContext#getDataFile() > things can become out of sync. > > For example, consider the following bundle activator: > > public void start(BundleContext context) throws Exception > { > String location = "http://host/bundle.jar"; > File persist = bundleContext.getDataFile("installed"); > if (!persist.exists()) { > bundleContext.installBundle(location); > OutputStream os = new FileOutputStream(persist); > os.write(location.getBytes()); > os.close(); > } > } > > Consider that as a dummy initial provisioning system. > > Now, your hope would be that if the installed file exists, the bundle > is installed, right ? Unfortunately, there's no guarantee around > that. > Actually, I think Felix guarantee that, but Equinox does not, and if > you kill the process right after the activator has been called, upon > restart, the bundle will not be installed anymore.
>From my understanding of the spec this is not the expected behavior. The bundle should have been in the cache directly after the installBundle method returned. regards, Karl > Is that an expected behavior ? Thoughts ? > > On Thu, Mar 4, 2010 at 12:27, Neil Bartlett <[email protected]> wrote: >> David, >> >> That is the default behaviour of OSGi: bundles remain installed and in >> the same state across restarts of the framework. The way your >> framework is launched should have no effect on this behaviour. >> >> Neil >> >> On Thu, Mar 4, 2010 at 11:20 AM, David Conde <[email protected]> wrote: >>> Hi, >>> >>> >>> >>> I would like to know if there is any OSGI launcher which allow to remain >>> installed after being shut down these bundles which were installed by >>> programming but were not included in the installation folders of the >>> launchers. Is there any launcher which allow me to install bundles using >>> BundleContext and I can have these installed bundles after shut down the >>> launcher? >>> >>> >>> >>> Thank you in advance >>> >>> >>> >>> David >>> >>> _______________________________________________ >>> OSGi Developer Mail List >>> [email protected] >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >>> >> _______________________________________________ >> OSGi Developer Mail List >> [email protected] >> https://mail.osgi.org/mailman/listinfo/osgi-dev >> > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com > _______________________________________________ > OSGi Developer Mail List > [email protected] > https://mail.osgi.org/mailman/listinfo/osgi-dev > -- Karl Pauls [email protected] _______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
