- 1. Whats new in p2? A year later Pascal Rapicault IBM Rational
TM , p2 lead EclipseCon, March 2009
2. p2 is installing!
- An extensible provisioning platform
- Install and update technology since 3.4
-
- New UI, simplified workflow
-
- Manage Eclipse, RCP and more
-
-
- exe, ini, bundles, registry keys, native code,
-
- Shared bundles across Eclipse-based products
- A provisioning solution for OSGi systems
-
- Managing non-running instance
-
- Start level, framework extension
-
- Fine-grained dependency management
3. The year by numbers
- 650 bug / enhancements fixed (as of March 2009)
-
- Including the infamous, I cant cancel the download, The error
message is useless, TheUI sucks, etc
- 3 will be committers contributors from Cloudsmith and
EclipseSource
- A lot of users (everyone is a user!)
4. p2 in wild
- Installer for products (EPP Wizard, WindRiver, Motorola, IBM
Rational, etc.)
- Server managed deployment solution and distros (Genuitec,
EclipseSource, Cloudsmith)
- Remote management of device (EclipseSource)
- Provisioning of server side (EclipseSource)[1]
- Cloud provisioning (EclipseSource)
- Repository management (Sonatype)
[1] - Short talk on using p2 on the server
-http://www.eclipsecon.org/2009/sessions?id=423 5. Outline
- Update / Extend / Service
6. Enough concepts to follow
- Installable Units (aka IU, or Metadata)
-
- Metadata describing what to install
-
- Typically stored into a repository
-
- The actual bytes you want to install
-
- p2 offers acontinuum from initial installation to
serviceability
7. Update / Extend / Service Initial deployment Build and
publish Development 8. Updating, extending,
-
- External mode, the p2 plug-ins are external to the application
(e.g an installer)
-
- Co-hosted mode, the p2 plug-ins are in your application (e.g.
the Eclipse SDK). This mode still allows the application to be
externally managed.
-
- The p2.ui.* bundles, offering reusable and customizable
dialogs
-
- Agent running in the background checking for updates
-
- Command line using the director application
9. New GUI in 3.5
- Improved disconnected mode
- Improved general responsiveness
- Redesigned using the feedback from the UIUWG
10. The controlled mode
- Notice that the entry tochoose a site is not available.
- The preference page toadd repo is also removed.
11. Granularity of what is visible
- Installation history, and installed software page can be
removed
- Ability to only make the update command, or the an install
command.
12. Check for update on startup Details on UI customization
available at:
http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
13. Non UI things improved
- Transactional model of installation
-
- Error messages (in 3.5 M7)
- Modularity of the base exercised
14. Serviceability, the profile registry
- The profile registry reflects from a metadata standpoint
-
- What the user is currently running
-
- What the user has been running
-
-
- /p2/org.eclipse.equinox.p2.engine//
- A profile can be used to recreatethe users installation on
another machine.
15. Update / Extend / Service Initial deployment Build and
publish Development 16. Initial deployment
-
- p2 basic installer (~5/6M)
-
-
- Deployable using JavaWebStart
-
-
- Shopping cart approach to software selection.
-
- Home brewed p2-based installer
-
- The application results from a provisioning operation done at
build time.[3]
[1] EPP wizard - http://wiki.eclipse.org/EPP/Wizard [2] EPP
Wizard talk - http://www.eclipsecon.org/2009/sessions?id=426 [3]
Director application doc -
http://wiki.eclipse.org/Equinox_p2_director_application 17. EPP
Wizard The user picks its software in a shopping cart styleand a
custom p2 installer is built. 18. Initial deployment
-
- p2 basic installer (~5/6M)
-
-
- Deployable using JavaWebStart
-
-
- Shopping cart approach to software selection.
-
- Home brewed p2-based installer
-
- The application results from a provisioning operation done at
build time.[3]
[1] EPP wizard - http://wiki.eclipse.org/EPP/Wizard [2] EPP
Wizard talk - http://www.eclipsecon.org/2009/sessions?id=426 [3]
Director application doc -
http://wiki.eclipse.org/Equinox_p2_director_application 19. Update
/ Extend / Service Initial deployment Build and publish Development
20. Build, when the metadata comes to be
- PDE Build fully embraces p2
-
- Product build now produces a p2-enabled application
-
- Straight from the source to the repository
-
- Product can be published straight from repositories (given that
you have all the pieces in the repo).
-
-
- Separate the concerns of building and packaging
-
-
- Toward more incremental builds
-
-
- Faster way to produce products
-
- Can use repositories as build inputThis is the recommended
way.
-
- Can fetch directly from p2 repositories[1]
- The p2.publisher is responsible for metadata / artifact
generation
-
- Can be used independently of PDE Build.
[1] How to - http://wiki.eclipse.org/Equinox/p2/Build_Input See
also:Section on product
buildsfromhttp://www.eclipsecon.org/2009/sessions?id=560 21.
Repository management
- Everybody creates repos, they need to be managed
-
- You want to promote one build over another one
-
- You build more than you want to make available
-
- You want to replicate builds from one repository to
another
-
- Repository validation that everything is installable
-
- For every IU, each artifact is available
-
- IU comparison tools, to ensure that the metadata is not
changed
-
- Artifact comparison tool to ensure that one artifact has not
changed[1]
[1] Talk on versioning and provisioning -
http://www.eclipsecon.org/2009/sessions?id=585 22. Update / Extend
/ Service Initial deployment Build and publish Development 23.
Development time,where the metadata is authored (partially)
- The developer of a plug-in knows the most about it (start
level, file permission, )
-
- Things go into features,config.iniin the product, or in build
scripts.
-
- A way to augment / tweak the metadata being generated for
bundles, features and product files.
You need to be careful to separating the metadata that is
absolutely necessary from the things that are config specific [1]
p2.inf format -
http://wiki.eclipse.org/Equinox/p2/Engine/Touchpoint_Instructions
24. Future work
25. Summary
- Cover all aspects of the software lifecycle
- p2 is an powerful provisioning platform
- Enable the creation of comprehensive solutions
26. Thank you Tonight BOF
mailto:[email protected]://wiki.eclipse.org/Equinox/p2