on Feb 16th, 2009Extending p2 for fun and profit
On Monday March 23rd at EclipseCon, I’m helping to deliver a tutorial on one of the most significant platform-level changes made in the Eclipse Ganymede release. The tutorial is on p2, the new provisioning platform. The tutorial is being prepared and presented by many of the core p2 developers, including Pascal Rapicault (p2 team lead), Jeff McAffer (Equinox co-lead and Eclipse PMC member) and Andrew Niefer (King of PDE Build). As the new-kid-on-the-block, I hope to bring a different spin to the tutorial. Over the past 3 months I have been learning the ins-and-outs of p2, understanding the difference between and UIs and IUs, and even hacking code in the IU UI
. I understand how daunting new technology can be, especially technology littered with acronyms and unfamiliar metaphors.
Over the next few weeks, I will be putting together content for this tutorial, but first I would like to hear from you. What would you like to see in a p2 tutorial? What are the most important concepts that we should cover?
Related posts:



while it’s certainly not a “most important” concept, i would really like to know how to bootstrap a p2 installer from webstart
Hi Ian,
Great idea, asking for input before the tutorial. I’m thinking about attending, and what I’d love to see is how to implement the simple “update on startup” scenario. This would be something like Sparkle on OS X. This is the scenario that almost every RCP developer I know wants to implement, and it might be small enough in scope to present in a tutorial.
Thanks for asking!
— Patrick
Hi,
Looking forward to this tutorial. Should be very interesting. I’ve already had quite a few…uh..struggles with P2.
What I’d like to see in this tutorial is how to programmatically perform touchpoint operations and use the P2 API to (say) add or remove program arguments from within the program itself.
To be more clear, here’s a use case: I want to give users an option of enabling/disabling a feature from within Eclipse. To do this, requires the changing of the config.ini. Currently, I am doing the parsing and hacking of the config.ini myself, but this feels icky. It seems much more appropriate to use P2 (which did the original changing of the config.ini).
Good luck working on this!
I’m very much interested in an example of using p2 to select and install new IUs to an Equinox-hosted OSGi application, as well as update existing IUs.
Thanks for planning on doing this tutorial. I hope it will not be the plain old step-by-step tutorial. The problem with them is that they don’t explain the purpose of the actions taken and never go into details. I hope you can explain the foundation of how the technology works, the main components of it and how to use it: which files to edit, how to edit them and what command to issue to take to get the job done. If p2 is usable without GUI, it would be the best to explain the use without GUI as the basis for the tutorial. GUI tends to change frequently and is difficult to find.
Hi Ian,
ist there any powerpoint available about this presentation??
I really would have loved to attend…
We have a RCP application and are trying to use P2 for auto-updates. Currently, I don’t know how to change the P2 related settings pro grammatically, specifically auto-update settings, as well as updates sites. For some reason, P2 isn’t picking up the update site listed for the installed feature.