Infrastructure |
In addition to scopes there are several other important structural elements for organizing and maintaining setup information.
An index
is a container
for product catalogs
as well as a container
for project catalogs.
It also provides access
to all task models.
All available products and projects are reachable from the index.
All the setup wizards are driven by this information.
The index also maintains references
to dynamic Ecore models that provide additional task implementations.
It is stored in the installation resource.
A location catalog
maintains an index of all installations and workspaces
installed and provisioned by Oomph,
including any installation where Oomph is installed,
and any workspace opened by any installation with Oomph installed.
It maintains a two-way map,
i.e., for each installation, the workspaces it has opened are recorded
and for each workspace, the installations that have opened it are recorded
.
Each time a product with Oomph installed is started,
its installation-workspace pair is added to the maps.
The installation-to-workspace map is ordered,
so the most recently installed or started installation is moved to the front
and its workspace is moved to the front of the list associated with that installation.
Similarly, the workspace-to-installation map is ordered,
so the most recently provisioned or opened workspace is moved to the front
and the installation that opened it is moved to the front of the list associated with that workspace.
It is stored in the location resource.
A catalog selection
maintains an installation and provisioning history for the setup wizards.
It maintains the following:
selected subset
of the index's available product catalogs displayed in the product page.
most recently selected
product version of each product displayed in the product product page.
selected subset
of the index's available project catalogs displayed in the project page.
most recently selected
stream of each project ever chosen in the project page.
The most recently selected
streams chosen by the project page.