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/Director application

The director application is a headless way of performing some of the p2 operations such as installing or uninstalling installable units. Given the appropriate metadata, this application is capable on provisioning a complete installation from scratch or simply extending your application.

Depending on the needs, this application can be executed inside or outside of the application being provisioned


Terminology

Director application 
the application performing p2 operations such as install or uninstall. This application is provided by the org.eclipse.equinox.p2.director.app bundle.
Provisioning operation 
an operation installing, uninstalling features.
Target product 
the installation targeted by the provisioning operation.

Running inside the target application

In this mode, the provisioning operation happens from within the targeted produced that you are provisioning. It is equivalent to starting up the targeted product and using the p2 UI to perform the equivalent operation.

This means that the target application has to be in a runnable state and that it has to contain the director application bundle. Also since the target product will have run, cache files will have been created in the configuration folder (e.g. configuration/org.eclipse.osgi).

The following example shows the command line used to install CDT into the SDK.

   <targetProductFolder>/eclipse.exe 
   -application org.eclipse.equinox.p2.director.app.application 
   -metadataRepository file:d:/tmp/cdt/site.xml 
   -artifactRepository file:d:/tmp/cdt/site.xml
   -installIU org.eclipse.cdt.feature.group

Note that this mode is equivalent to the former update manager command line application (http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/update_standalone.html).

Provisioning without running the target application

In this case the provisioning operation is happening "outside" of the "targeted product" and it running in a completely separate process. To emphasize, the "targeted product" is *not* started. This allows to both modify an existing installation and create a complete installation from scratch given proper metadata.

Installing / uninstalling IUs from an existing installation

Installing a complete system

Arguments

-application org.eclipse.equinox.p2.director.app.application 
the application ID.
-metadataRepository 
the metadata repository where the installable unit to be installed is found.
-artifactRepository 
the artifact repositiry where the artifacts will be found.
-installIU 
the identifier of the installable unit to install. If you are looking to install a feature, the identifier of the feature has to be suffixed with ".feature.group".

Back to the top