Infrastructure

 

In addition to scopes there are several other important structural elements for organizing and maintaining setup information.

1  Index

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.

2  Location Catalog

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.

3  Catalog Selection

A catalog selection maintains an installation and provisioning history for the setup wizards. It maintains the following:

In other words, it maintains a persistent initial state for all the setup wizards. It is stored in the catalog selection resource.