Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Equinox p2 Concepts

The following is a set of terms and concepts that are prevalent in the Equinox Provisioning work. Some of the terms here are duplicates of those on the general provisioning terminology page.

Agent
The provisioning infrastructure on client machines is generally referred to as the agent. Agents can manage themselves as well as other profiles. An agent may run separate from any other Eclipse system being managed or may be embedded inside of another Eclipse system. Agents can manage many profiles (see below) and indeed, a given system may have many agents running on it.
Installable Units (IUs)Installable_Units
Installable Units are metadata that describe things that can be installed. The are not the things themselves. So an IU for a bundle is not the bundle but a description of the bundle: its name, version, capabilities, requirements, etc.. The bundle JAR is an artifact.
Metadata Repository
A metadata repository holds installable units.
Artifact
Artifacts are the actual content being installed or managed. Bundle JARs are an example of an artifact.
Artifact Repository
Artifact repositories hold artifacts
Profile
Profiles are the target of install/management operations. They are a list of IUs that go together to make up a system. They are roughly equivalent to the traditional Eclipse configurations. When an IU is installed it is added to a profile. That profile can then be run and the artifacts associated with the installed IUs executed (or whatever). Later the IU can be uninstalled or updated in that profile. The exact same IU can be installed simultaneously in many profiles.
Mirroring
The basic operation of distribution is mirroring. The key here is that metadata and artifacts are not downloaded, they are mirrored. The subtle distinction is that local mirrors are a) simple caches of something that is remote and b) potential sources of further mirroring. This means that locally held information can be deleted and replaced as needed by re-mirroring. Similarly, having local copies act as mirrors opens the path to natural peer-to-peer distribution. Note that metadata and artifacts are quite separate and having an IU mirrored in one repo does not imply that the associated artifacts are in/near/beside/... that repo.
Garbage Collection
Element of repositories (metadata and artifact) can be garbage collected by tracing reachability from a set of known roots. For example, the set of all profiles managed by an agent transitively identifies all IUs that are currently of direct interest to the provisioning agent. Similarly, the IUs identify the artifacts required to run the profiles. Any IUs or artifacts that are not in the transitive list are garbage and can be collected.

Back to the top