[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [p2-dev] How to build an update site for a product?
|
I hoped some p2 experts might be able to answer this still-unanswered part of Samuel's question:
On Thu, Sep 9, 2010 at 8:39 AM, Samuel Wu <samuelwu@xxxxxxxxxx> wrote:
> [...] what are you going to do if you find you need to ship a
> new osgi runtime or webserver? Although the product package works as a stub
> and its size is small, it still has the chance to be updated. My question
> is how you are going to ship that update to the product. It's more
> important in your case because your customer has to pick up the product as
> a stub and reinstall the real features after the product update.
I've been playing around with shipping a small headless product that does nothing but replaces itself with a different product. I have a similar concern as I too would like to ship Equinox updates along with my app.
In my case, I'm using the lower-level org.eclipse.equinox.p2.planner.IProfileChangeRequest-based operations rather than the org.eclipse.equinox.p2.operations.ProfileChangeOperation-based operations so that I can perform IU removals with IU additions/updates in one fell swoop. I've got this working well now. But during my testing I made a mistake in having the replacement product specify a different version of the system bundle (org.eclipse.osgi). Installing this product and thenapplying the change with org.eclipse.equinox.internal.provisional.configurator.Configurator#applyConfiguration() led to an IllegalStateException:
java.lang.IllegalStateException: The System Bundle was updated. The framework must be restarted to finalize the configuration change
How do I cause a restart? Is there a generally accepted mechanism in OSGi, or is calling org.osgi.service.packageadmin.PackageAdmin#refreshPackages(null) sufficient?
Brian.