Plug-in Development Environment

Plug-in spy

Ever wondered where the source is for something you're looking at in Eclipse? Wonder no more. Select what you're interested in and invoke Plug-in Spy by pressing Alt+Shift+F1. Plug-in Spy currently supports inspection of:

  • Selections
  • Editors
  • Views
  • Dialogs
  • Dialog Pages
  • Preference Pages
  • Wizards
  • Active Help Context Identifiers
  • Launch Configuration Tabs

Press Alt+Shift+F1 to invoke the Plug-in Spy

To save time, PDE Spy includes hyperlinks directly to a contributing plug-in's MANIFEST.MF. By clicking the link, PDE will open the Plug-in Manifest editor on that plug-in.

API analysis

Integrated tooling assists developers with API maintenance. Developers can add special Javadoc tags to document API restrictions and specify an API baseline for binary compatibility checks.

Code is analyzed during incremental and full builds and problems are reported (quick fixes are provided where possible):

  • Binary incompatibilities between releases
  • Illegal use of APIs based on restrictions
  • Leaking non-API types from an API package
  • Incorrect plug-in version numbers
  • Missing or incorrect @since tags

Problem and quick fix for a missing @since tag

Problem severities can be configured for the workspace and overridden per project at a fine grained level, and specific problems can be filtered from the workspace (problem filters can be shared in CVS).

Improved self-hosting

PDE supports the ability to compile runtime workspace plug-ins against the launching workspace.

Internal extension points

Extension points can be marked as internal. Clients using the extension point will be notified when they are using an internal extension point.

Internal extension points

Enhanced target provisioner

A new target provisioner lets you add plug-ins to your target platform from a p2 repository or an update site. Press Add on the Plug-in Development > Target Platform preference page to access the wizard.

Target Provisioner Wizard

Product editor enhancements

The product editor was enhanced to allow for per-platform configuration files (config.ini) and the ability to version product definitions.

Product editor with per-platform configuration files

Schema identifier attribute

Extension point authors can define attributes that reference other attributes. This is accomplished by setting your extension point attributes as type identifier and choosing the attribute it references. An example of this would be the org.eclipse.ui.handlers extension point. The commandId attribute references commands defined in the org.eclipse.ui.commands extension point.

Defining an identifier attribute

Extension developers contributing a handler can then select from all valid identifiers for the commandId attribute. Warnings are issued for identifiers that don't exist to prevent the common mistake of a misspelled identifier.

Referencing an identifier attribute

Support for other OSGi frameworks

PDE, in conjunction with Equinox, now supports development against different types of system bundles (i.e., other OSGi framework implementations).

Open plug-in artifact

Find extension references, extension point declarations, exported packages, and plug-ins all in one place. Simply type Ctrl+Shift+A, enter the id, and let PDE do the work. The dialog includes filters for extensions and extension points to help you quickly and easily find what you are looking for.

Open Plug-in Artifact

Context help editor

There is a new Context Help editor available to assist clients creating context-specific help for their applications.

Context Help Editor

Error log enhancements

The Error Log view has been enhanced to support text filtering, grouping by session or plug-in, and to display logs from runtime workspaces.

Error Log View

Flexible plug-in project conversion

In order to encourage clients to not use embedded JARs, it's now easier to convert an existing JAR to a plug-in project. To do this, simply select the JAR within your project that you want to convert and run PDE Tools > Convert Jars to Plug-in Projects.

Bundle-ActivationPolicy support

To further align with OSGi R4.1, PDE now supports the Bundle-ActivationPolicy manifest header, the replacement for the now-deprecated Eclipse-LazyStart header.

Bundle Activation Policy

Greater simplification and customizability in headless builds

Setting up a headless build has been simplified. A build can be set up with only the single build.properties configuration file. The allElements.xml file is not needed unless the added customization it provides is desired.

PDE Build has been enhanced to allow custom steps during the assembly and packaging phases of a headless build. A template customAssembly.xml script is provided with the available targets.

Individual Source Bundles in Eclipse SDK

The Eclipse SDK ships with individual source bundles instead of the old source plug-ins. This makes shipping source simpler and more flexible. See the wiki page for details on converting your build to use the new source format.

Plug-ins and execution environments

PDE now supports the Bundle Required Execution Environment, and surfaces it in the New Plug-in Project wizard.

Bundle Required Execution Environment

Bundle operations

The Plug-in Registry view now includes advanced bundle-related operations:

  • Start
  • Stop
  • Enable
  • Disable

These advanced operations are disabled by default; toggle the Show Advanced Operations menu item to turn them on.

Bundle Operations

Extension point renaming

PDE now supports renaming extension point ids and updating all referencing extensions found in the workspace.

The Rename function is available in the context menu in the All Extension Points section and the plugin.xml source page of the plug-in manifest editor.

Rename extension point

PDE Quickfix for Java file issues

To assist plug-in developers, extra validation was added to help with access restriction issues that could be solved by exporting a package. For example, say you have two plug-ins: a and b. If a attempts to use a class from b and b doesn't export the package containing the class, you'll receive a warning and applicable quickfix.

PDE Export Quickfix

Quickfixes are now provided to aid users in adding dependencies to their plug-in that will attempt to resolve unresolved classes. If any plug-ins export a package that matches an unresolved class's package, PDE creates Quickfixes to add the package to an Import-Package statement or require the bundle directly through a Require-Bundle entry.

PDE Unresolved Quickfix

Drag and drop in plug-in manifest editor

Drag and drop support has been implemented in the following sections of the plug-in manifest editor to support reordering:

  • All Extensions
  • Required Plug-ins
  • Execution Environments
  • Automated Management of Dependencies
  • Classpath

Drag and drop

Note: The drag and drop support in the All Extensions section is "schema aware".

Highlight externalized strings in XML editors

PDE highlights externalized strings within all XML editor source pages in purple, by default.
Externalized string are highlighted

An Externalized strings preference has been added to the Plug-in Development > Editors preference page to customize the highlight color:

Preference for highlight color

Cheat sheet editor enhancements

The simple cheat sheet editor has been revamped to include the following enhancements:

  • Custom XML formatting and XML comments preserved on save
  • New Source page with a dedicated Outline view
  • XML Syntax highlighting
  • Quick outline (Ctrl+O)
  • Drag and drop support
  • Clipboard operation support (cut, copy and paste)
  • Hyperlinking
  • Selection synchronization between Definition and Source pages
  • Browse button for Help section

Simple Cheet Sheet Editor

New projects can now be added to working sets

The New Plug-in Project wizard now has additional input fields to specify the working sets to which the new project gets added.

Add project to working set(s) on creation

Table of contents authoring

Tables of contents allow you to organize your Eclipse product's contribution to online help documentation. PDE now provides an editor to help you easily create, modify and visualize tables of contents for your Eclipse product.

Creating a table of contents is now as easy as dragging and dropping documentation files from the Package Explorer into the editor.

The editor also comes with a rich source page that features syntax highlighting, hyperlink navigation (Ctrl+Left) and a quick outline (Ctrl+O).

You can create a table of contents via File > New > Other > User Assistance > Help Table of Contents.

Table of Contents Editor

Preview changes in PDE wizards

You can now preview changes made by the Organize Manifests and the Externalize Strings wizards before they are applied to the plug-in manifest files.

Much like the refactoring wizards provided by JDT, the previews allow you to select only the changes you wish to apply.

Both wizards can be invoked from the PDE Tools context menu of plug-in projects.

Preview changes

Structural compare for plugin.xml files

When comparing two versions of a plugin.xml file, the new structure compare views will let you easily see what extensions and extension points have been added, removed, and modified.

Structural compare

Previous     Next