The QuickInstall feature is an eclipse view that is implemented on top of eclipse P2 bundles. It doesn't add new features when compared to P2, it just provide a simplified UI that focus only on accessing the content that is provided by the Pulsar Server. On its first release, instead of connecting to the Pulsar Server, the QuickInstall View will have a list of the available SDKProvider Repositories hard-coded.
It is important to highlight that this is just a document with some thoughts about a posible solution on how to implement the quickinstall view. The main motivation of this document is to give some insights about how to start the development. The initial solution that is described here can and probably will need to be modified once the code is started.
High Level Design
The figure below presents a high-level view of the quickinstall feature. It initially focus on the main classes that will be available on the Quickinstall core plugin.
As any eclipse component, there are two main plugins:
- UI: present the user interactive graphical components. Please refer to Quickinstall requirements for details on the UI;
- Core: abstract the access to P2 and provide only the services that are needed by the UI.
The Core plugin have a main facade, QInstallCore that provide access to the main quickinstall services:
- getSDKRepositories: returns a list os SDK Repositories from where it is possible to query the SDK categories and then the SDKs that are available to download. It is important to highlight that this method must filter the SDKs that are already installed and, if there is more then one version on one specific IU, it must retuns only the latest one.
- install: only the user selects on the UI the SDKs that he wants to install, he will press "install". This action must call this service and will send the list of instalable units selected by the user to the P2 UI and start the provisioning process.
1. How to keep the hard-coded SDK Provider Repositories? currently all repositories are saved on a global preferences storage. we can have the repositories hardcoded and them add them to the preferences if they are not yet there.
2. If the repositories are saved on the preferences, what happen if the user removes them? we can add them again everytime the quickinstall is started
3. If the repositories are saved on the preferences, the SDKs will also be available on the usual "Install New Software..." dialog. Is there a problem with that? this is more a rquirements question, but if the preferences are used, i think that there is no way to avoid that
4. How to call the P2 UI do start the provisioning process? it is still necessary to study p2 code to understand better how to do this. currently yhis is not yet clear. the same is also valid to all other interactions with p2 API.