This document describes the main requirements of Eclipse Pulsar which main feature is the QuickInstall view. The QuickInstall feature will not have all requirements implemented and it will provide only some basic features, like list, install and uninstal SDKs.
Below image presents the initial view of the QuickInstall feature and the information that will be available there. It is important to highlight that when the "Install" action is executed, a usual update process will be started based on P2 UI flow.
It is important to highlight that part of the information presented on QuickInstall view is local (internal of pulsar) and another part is online (that depends on SDK Providers sites). The offline information [REQ1] is related to SDK Providers (the root node of Mobile SDK Tree) and the online information [REQ2] is related to the SDKs categories and installable units (the children of Mobile SDK Tree).
If some of the concepts described here are not clear, please refer to the definition session at the Use Case document.
QuickInstall feature aims at solving some specific problems. Those problems are listed below and the feature requirements and design need to answer each of them.
- Improved User Experience: QuickInstall needs to provide a better user experience on the process of identifying new Mobile SDKs and downloading them;
- Reuse current P2 Provisioning Mechanism: QuickInstall must not provide a new provisioning protocol. It must reuse P2 as it is and focus only on improving the user experience;
- Reuse current P2 UI Flow: QuickInstall must focus only on Mobile SDK discovery. The other execution flows must reuse as much as possible the current P2 UI flow (that minimizes the effort to implement the solution as a whole).
[REQ1] List Repositories
The QuickInstall UI shall ask the QuickInstall services for the list of metadata repositories that are registered locally. For each repository it shall query its content to identify the SDKs that are available. The SDK providers URLs initially will be hardcoded in the pulsar core plugin.
SDK Repository Information:
- Metadata repository URL: The URL where the metadata descriptor (content.xml or content.jar) is located. This is an internal information used by QuickInstall download the metadata descriptor.
- Artifacts repository URL: The URL where the artifacts descriptor (artifacts.xml or artifacts.jar) is located. This is an internal information used by QuickInstall download the artifacts descriptor.
- Repository name: The SDK repository name. This information will be the root node presented in QuickInstall view.
- Repository icon: The icon that represents the SDK provider. The icon must have 16 x 16 pixels, and if the icon is not available a default "folder" image will be presented.
- Repository information: Group a set of information that will be presented on the right side of QuickInstall view when the end-user selects one available repository. The set of information that must be provided are listed below:
- Repository image: The image (banner) that represents the SDK provider information. This banner must have 350 x 50 pixels.
- Repository URL: The SDK provider URL where the end-user can find more information about the SDK provider. This URL is opened in a view into the Pulsar itself.
- Repository description: A brief description that will be presented to the user about the SDK provider.
The QuickInstall view must list the repositories sorted by the repository name ignoring the case. Even that metadata/artifacts repository has no content to be downloaded, the SDK repository name will be listed on QuickInstall view.
[REQ2] Query SDK Provider Repository
The QuickInstall UI shall ask the QuickInstall services for the detailed information of this repository. This request must return information such as the available categories and installable units for each category.
This information is presented on the UI to the user. The user is then able to select one SDK to be installed and then press "Install" to start the download / install process.
If the provider repository requires authentication, a password dialog will be presented to the user enter the required information (login/password). If the user cancels the operation, only the repository name will be presented in QuickInstall view (no categories neither installable units will be available).
There are some properties that must be added to the installable units in order to provide the visibility of them on the QuickInstall view. The properties values are described at SDK Provider Technical Requirements.
[REQ3] Install SDK
When the user selects an uninstalled SDK and presses "Install" action, the QuickInstall view will send a request to P2 to start the install process. The usual P2 UI flow must be followed:
SDK installation phases:
- User Authentication
- When the SDK Provider Server requires an authentication;
- Review license agreement
- The feature EULA is presented to the user
- Download SDK
- The SDK and SDK extensions are downloaded
- Install SDK
- Call the installer executable
- Install the installable units in pulsar profile.
The install action will be available only for uninstalled SDKs.
[REQ4] Uninstall SDK
When the user selects an installed SDK and presses "Uninstall" action, the QuickInstall view will send a request to P2 to start the uninstall process; In this initial version, only installable units are removed on the uninstall process.
The uninstall action will be available only for installed SDKs. Another action that will be available only for installed SDKs is the SDK details action, that opens the MTJ's Devices Management preferences page.
[REQ5] Refresh SDK list
The user can update the repositories and SDKs list using the "Refresh" action.
- Update is not available.
- Doesn't filter by repository.