If you can't read please download the document
Upload
susanfmccourt
View
4.814
Download
0
Embed Size (px)
DESCRIPTION
EclipseCon 2010 presentationhttp://www.eclipsecon.org/2010/sessions/?page=sessions&id=1079
Citation preview
2. Simplifying RCP Update and Install
3. What are we doing about it? 4. How do p2 and p2/Mylyn Discovery fit together? 5. Examples and Demos 6. RCP Install/Update in 3.5
7. Configurable policy to control aspects of UI 8. Building blocks (wizards, pages, viewers, etc.) to customize the experience SDK UI must support a diverse set of users
9. Plug-in developers, update site producers, end users 10. Product branding has not been critical path RCP users not served well out of the box 11. RCP Developers' Reaction to 3.5
12. p2 API is too complex 13. Critical pieces (branding) are missing 14. Customization examples aren't enough/aren't hitting the right use cases We need a bolt-on self update feature that can handle the 80% case without writing Java code 15. When a product supports add-ons, our users expect the Firefox Install experience 16. Deliverables in 3.6
17. Refactor the 80% case out of the UI code Metadata enhancements to support branding Enhance the story for RCP self-update 18. Move Mylyn Discovery to p2
19. 'Install New Software...' is still the default to support plug-in developer use cases 20. API:R3.5 Headless Update 21. API:R3.6 Headless Update 22. API:Branding Metadata
23. Discovery can happen in different ways
24. Aggregators design catalogs (rankings, search, tags, ...) 25. Different restrictions in different deployments Once an item has been installed, we need to retain its branding identity
26. Update notifications 27. RCP Mail Update Example Snapshot of demo, give demo 28. RCP Example: Good ol' RCP Code Snapshot of demo, give demo Need a status line and progress indicator public void preWindowOpen() { IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); configurer.setInitialSize(new Point(600, 400)); configurer.setShowCoolBar(true); configurer.setShowStatusLine(true); configurer.setShowProgressIndicator(true); } Define menus and locations for additions protected void fillMenuBar(IMenuManager menuBar) { ... MenuManager toolsMenu = new MenuManager("&Tools", M_TOOLS);toolsMenu.add(preferencesAction); toolsMenu.add(new Separator()); toolsMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); } 29. RCP Example: Menu Snapshot of demo, give demo Contribute the menu 30. RCP Example: Update Command Snapshot of demo, give demo Contribute the command and handler 31. RCP Self-Update in 3.5
32. RCP Example: Update Code Snapshot of demo, give demo The update code // create the update operation.The defaults are fine. UpdateOperation operation =getProvisioningUI().getUpdateOperation( null ,null ); // check for updatesoperation.resolveModal( null ); if (UpdateSingleIUWizard. validFor (operation)) { // Special case for only updating a single root UpdateSingleIUWizard wizard = new UpdateSingleIUWizard(getProvisioningUI(), operation); WizardDialog dialog =newWizardDialog(getShell(), wizard); dialog.create(); dialog.open(); } else { // Open the normal version of the update wizardgetProvisioningUI().openUpdateWizard( false , operation, null); } 33. RCP Example: Branding Metadata Snapshot of demo, give demo Define a document suitable for displaying in a browser that describes your update.Refer to it in the metadata. 34. RCP Self-Update in 3.6
35. RCP Install
Move Mylyn Discovery to p2
Look for integration but avoid temptation
36. Fight complexity
37. User configurability 38. Extension Install 39. Motivation
40. Users had trouble getting connectors
41. The default p2 installer is geared towards advanced users 42. Extension Install in 2008 43. How can we improve?
44. Install embedded into regular workflow 45. Support for product information 46. Extension Install Today 47. Using p2 Discovery in Your App
How can I use this?
48. Front-end for branded extension catalogs 49. Simplified p2 Front-end
50. Catalog-based Discovery
51. PDE tooling is used for editing Existing Implementations
52. Subversive connector installer 53. SpringSource Tool Suite extensions page 54. Integrating p2 Discovery 55. Remote Catalogs http://.../directory.xml http://eclipse.../catalog.jar http://tasktop.../catalog.jar 56. Catalog Tooling 57. Catalog Item Descriptor 58.
59. Extensible data model 60. Viewer based UI Existing Implementations
Build Your Own p2 UI 61. Outlook
62. Integrate discovery with P2 license and install wizard 63. P2 Project http://wiki.eclipse.org/Equinox_p2_User_Interface http://wiki.eclipse.org/Equinox/p2/Discovery Mylyn Discovery http://wiki.eclipse.org/Mylyn/Discovery Marketplace Client http://eclipse.org/mpc Questions?