Scopes |
A
Each scope has the following properties:
scope
is the course-grained unit for grouping related tasks.
Scope are hierarchically structured and tasks are gathered from them based on this hierarchical structure.
They are stored in resources.
Scopes
attribute
which should be a lower case name,
i.e., like a single component of a qualified Java package name.
The hierarchical containment
structure of scopes
induces a qualified
name attribute,
based on the '.' separated names of the scopes,
hence the recommendation to use a lower case scope name.
label
attribute,
which should be a title case name that may include spaces and punctuation.
description
attribute
which description can be arbitrary descriptive log.
A product catalog
is a container
for products
as well as a container
for all the tasks to install any of those products.
For example,
there is an Eclipse product catalog
generated for all the packages available on Eclipse's download page.
In other words, you can use Oomph to install any version of any package that you'd normally download and unzip from Eclipse.org.
In the case of a product that has Oomph installed,
but wasn't actually installed by Oomph,
there always exists a synthetic so called self product catalog
that contains the self product.
It is stored in a project catalog resource.
A product
is a container
for product versions
as well as a container
for all the tasks to install any of those product versions.
For example,
there is a product in the Eclipse product catalog
for each Eclipse package.
In the case of a product that has Oomph installed,
but wasn't actually installed by Oomph,
there always exists a synthetic so called self product in the self product catalog
that contains a self product version.
A product version
is a container
for all the tasks to install a specific version of a product.
For example,
there is a product version in the Eclipse Standard product in the Eclipse product catalog
for installing the Eclipse Standard Luna package.
A project catalog
is a container
for projects
as well as a container
for both
the tasks to provision a workspace with any of those projects
and the tasks to install the tools needed to work with any of those projects.
For example,
there is an Eclipse project catalog for provisioning various projects hosted at Eclipse.org.
It is stored in a project catalog resource.
A project
is a container
for streams
as well as a container
for both
the tasks to provision a workspace with any of those streams
and the tasks to install the tools needed to work with any of those streams.
For example,
there is a project in the Eclipse project catalog for provisioning the Oomph project itself.
Projects can optionally {contain nested projects.
It is stored in a project resource.
nested
projects
which may be stored in a separate project resource or in the same resource as the containing
project.
A stream
is a container
for both
the tasks to provision a workspace with for that particular stream
and the tasks to install the tools needed to work with that particular stream.
For example,
there is a stream in the Oomph project in the Eclipse project catalog
for provisioning the source code of the Git master branch of the Oomph project.
An installation
is a container
for the tasks to provision a specific installed Eclipse product.
Its primary function,
however,
is that it specifies a reference to a product version.
The tasks gathered for that product version are performed to that installed product.
The installer wizard creates an instance based on the selected product version on the product page.
Even if the product installation hasn't been installed by Oomph,
when Oomph is present,
an installation instance is automatically created
to refer to the synthetic self product version.
A workspace
is a container
for the tasks to provision a specific Eclipse workspace.
Its primary function is that it specifies zero or more references to project streams.
The tasks gathered for each of those project streams are performed for that workspace
as well as for the installed product used to open that workspace.
The installer wizard creates an instance based on the selected project streams on the project page.
The installer and project wizards
A user
is a container
for the tasks to provision
every installed Eclipse product and every opened workspace ever used by the end-user.
It provides an opportunity to customize all aspects of a user's experience with all their Eclipse products and workspaces.
It also provides support for the following:
accepted license
of each of the tools automatically installed tools,
i.e., once a license is accepted,
it can be recorded to avoid any future prompts involving that particular license.
policy
with regard to handling of unsigned content,
i.e., once unsigned content is accepted,
that acceptance can be recorded to avoid any future prompts involving unsigned content.
attribute rules
,
that tailor where and how repositories, workspaces, and installations are physically stored.