[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [p2-dev] Follow up: Updating to a certain version

Hi Thomas,


I’m sending you an example of our updater.

The repository is a System property. You can construct it another way that suits you.


If you have questions, I will be happy to help.






From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Thomas Kratz
Sent: Monday, May 17, 2010 12:19 PM
To: P2 developer discussions
Subject: Re: [p2-dev] Follow up: Updating to a certain version


Hi Elena,

thanks again for your feedback. without that I would be lost :)

If I get it right this would certainly match my needs, I could at least update the core product this way. Would be great if you could give me some more examples on how to get the IUs and if there's more stuff needed around.


2010/5/17 Yaneva, Elena <elena.yaneva@xxxxxxx>

Hi Thomas,


Maybe what you can do is create an update plan, yourself and pass it directly to the P2 engine in order the update to be performed.

IEngine engine = (IEngine) agent.getService(IEngine.SERVICE_NAME);

engine.perform(plan, null);

In order to create the plan, you need to get the InstallableUnit(your product) both from the profile and from the repository and decide, whether to add it to the plan for update or no(based on the versions).

IProvisioningPlan plan = engine.createPlan(profile, provisioningContext);

plan.updateInstallableUnit(oldIUFromProfile, newIUFromRepo)


If this approach is ok for your scenario, I can send you how I have done It in our Updater.




From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Thomas Kratz
Sent: Monday, May 17, 2010 11:24 AM
To: p2-dev
Subject: [p2-dev] Follow up: Updating to a certain version


Hi all,

I've been having a tough time with p2, but most of the trouble where caused by myself. Thanks for the help so far, at leat I have the UI up now and thanks to finding out that p2.data.area=@config/../p2 I now know that this wont work when you change the osgi.configuration.area. Really had a fight with this.

But I still need your help with understanding the API. I want to to a headless Update on Startup, and I looked into the prestartupade and the cloud example. As far as I can see the Policy in the cloud example is useful only to the p2 UI.

What I need to achieve is that I only update to a certain osgi version, because client and server need to stay in sync and I cannot know when the server gets updated. So the client asks the server for its version at startup (simply policy, versions have to match) and then I want to update to the same version on the client side. I did some diving into the API but I didn't see any starting point where to place such a restriction on the UpdateOperation. I can see the available Updates after the resolve, but looking at the "Update" I don't understand how I should select the right one because there so little info exposed in there.

If you could give me a starting point, wether to place a query upfront the resolve operation or wether to select the right update afterwards this would be of great help to me.

If I need to give any further information please let me know.

Regards Thomas

p2-dev mailing list


Attachment: UpdateActivator.java
Description: UpdateActivator.java