PDE/Target Definitions

Contents

Introduction

The Target Platform is a critical part of developing using PDE. It defines what your workspace will be built and launched against. In 3.5 the target platform had a complete facelift and improved models underneath. In 3.5 PDE also improved the p2 target provisioner which allows you to create a target that can grab bundles from remote update sites and repositories and add them to your target.

Developing a target platform can become very complex. This page will be used to collect known issues so that bug reports, workarounds and proper fixes can be developed.

The Basics

The Target Platform refers to the plug-ins which your workspace will be built and run against. It describes the platform that you are developing for. When developing with PDE, the target platform is used to:

Whereas the target platform refers to your currently active bundles, a Target Definition is a way of determining the plug-ins to add to the state. You can have multiple target definitions, but only one definition can be selected as the target platform.

The target platform and your target definitions are managed on the Target Platform Preference Page. This page lists all target definitions that PDE has access to and displays which definition is being used as your current target platform. Target definitions can be created and edited here using the Target Definition Content Wizard. To make for easier sharing among a development team, targets can also be created and edited in the workspace as XML files with the extension ".target". These files can be edited using the target definition editor and can be created using the New Target Definition Wizard.[1]

Examples

This section will contain examples of how different target definitions can be created. Some examples we should include are:

Default definition for Eclipse platform developers

Downloading a premade target definition file

Pointing at an install or a folder (the old way)

Pointing to a simple site, where using default include options works

Complex site-based target, where using default include options causes error

Going forward we will add information collected here to improve the official user help doc.

Known Issues

If you have an issue, feel free to add it here. Make sure to link to the bug report and provide any workarounds available.

Redownloading of Bundles

Each Eclipse workspace has its own cache (aka bundle pool) of the target bundles. However on every new workspace the target bundles will be downloaded again.

Future p2 version will consider additional artifact repositories. Once that it is enabled, the bundle pool can be added for the current running Eclipse IDE as well as the PDE target bundle pool for all known “recently used” workspaces. The net effect is that you pick features from one metadata repo and the content, if already local, is just copied. No downloading. Of course, new content is still downloaded as needed.

We are looking at exposing some preferences to allow additional artifact repositories to be listed. Makes sense, just need to put a UI on it.

Sidenote: People have suggested that PDE manage just one artifact repository/bundle pool for all target definitions for all workspaces. This would save disk space for sure but introduces some additional complexity in managing concurrent repo access as well as garbage collection. It would be great but for now, this is the next best thing.

Can you think of additional improvements? Please post your thoughts on [1].

Links

Links to specific project's target definition help, links to how to generate metadata, and other useful links.