This document contains descriptions of some of the more interesting or significant changes made to PDE for the 3.3 release of Eclipse.
PDE |
|
Self-hosting with multiple versions of the same plug-in |
PDE now supports self-hosting scenarios that will allow you to develop
and run with multiple versions of the same plug-in in the workspace or
target platform.
Development scenarios where this new support is particularly useful include:
|
Content assist in plugin.xml |
Content assist (Ctrl+Space)
is now available on the plugin.xml source page to give you context-sensitive
information as you create extensions and extension points. Features include:
Note that the content assist can be activated without the need for a partial string. PDE uses extension point schemas to determine which elements and attributes are suitable for the current context.
|
Content assist in MANIFEST.MF |
Content assist (Ctrl+Space)
is now available on the MANIFEST.MF source page, including completion proposals
for:
|
Hyperlinking and open declarations |
Hyperlinking (i.e. the use of Ctrl+Left
to navigate from one editor to another) is now supported on the plug-in
manifest editor source page. The usage of the F3 key to
open declarations is also supported and provides the same functionality
as hyperlinking.
Hovering over attribute values on the plugin.xml page and pressing Ctrl+Left can be used to
Hyperlinking provides additional functionality on the MANIFEST.MF source page including:
|
Quick outline in plug-in editor source pages |
When editing a source in the plug-in manifest editor, pressing Ctrl+O or selecting Navigate > Quick Outline from the top level menu shows you a quick outline. The quick outline has many of the sizing and filtering options that are available in the Java editor's quick outline.
|
Code folding |
Folding is now supported on the plugin.xml and
MANIFEST.MF source pages of the plug-in manifest editor to make large files
more manageable.
The option to turn folding on and off can be found on the Plug-in Development > Editors preference page.
|
Code formatting |
Line wrapping introduced by some packaging tools
make the plug-in MANIFEST.MF file hard to read. PDE now provides a Format
action in the context menu of the MANIFEST.MF source page to format the
contents of the file into something more human-readable.
|
Field assist in Forms |
All fields denoting classes in the plug-in manifest
editor now support a field assist feature to help you complete the name
of a partially entered class name.
This feature works in a similar way to the content assist in the Java editor, and supports package names and CamelCase.
|
Field validation in plug-in and product editors |
PDE now validates plug-in and product editor
form fields while input is being entered.
During validation, form fields are decorated according to problem severity and provide status messages via tool tips. All status messages are qualified with a field label and rolled up into the form title header where they are available on mouse over.
As with source page validation, the problem severity used by field validation is configurable on the Plug-in Development > Compilers preference page. |
Hover support in plug-in manifest editors |
The source pages in the plug-in manifest editors now provide a number of useful hovers. Hovering over an attribute in the plugin.xml shows the schema description for that attribute, while hovering over a manifest header shows the Javadoc for that header.
The hover support has also improved on the Extensions page of the plug-in manifest editor. Hovering over a translated attribute now shows the actual substituted value for that attribute.
|
Filtered extensions |
The Extensions tab of the plug-in
manifest editor allows the filtering of the Extensions tree based on a text
filter. This function is particularly useful when searching for that one
contribution among a long list of extensions.
|
Target platform provisioning via file system |
PDE now allows the dynamic addition of plug-in locations to the target platform by simply pressing Add on the Plug-in Development > Target Platform preference page. PDE provides a file system provisioner to augment the content of the target platform with plug-ins located in the file system.
Additional types of provisioners (e.g. an Update Manager provisioner) can be declared via the org.eclipse.pde.ui.targetProvisioners extension point. |
Update site target provisioner |
You can now point to an update site, download plug-ins,
and install them into your target platform, all in a single step by using
the new Update Site Target Provisioning wizard.
The target provisioning wizards can be accessed via the Add button on the Plug-in Development > Target Platform preference page.
|
| Cheat sheet editor | Cheat sheets guide users through a series of steps to achieve an overall task. PDE now provides a cheat sheet editor to let you compose cheat sheets, complete with embedded workbench commands and links to the Help documentation. The editor also provides a Preview function that allows you to preview your work on the fly directly in the Cheat Sheets view. You can create a cheat sheet via File > New > Other> User Assistance > Cheat Sheets.
|
Composite cheat sheet editor |
Composite cheat sheets provide guidance through
a complex problem by breaking the problem into a set of smaller tasks.
PDE now provides a composite cheat sheet editor to let you visually compose cheat sheets, complete with a Preview feature. You can create a composite cheat sheet via File > New > Other > User Assistance > Cheat Sheets.
|
Command composer |
Cheat sheets support the embedding of workbench commands allowing you to execute commands such as opening a particular perspective or a wizard in a script-like fashion. The Command Composer dialog shows you a categorized list of available commands and their parameters, making it easy to compose, test, serialize, and embed commands into your cheat sheet. Command Composer can be invoked from the Command section of the cheat sheet editor.
|
Plug-in refactoring |
PDE now supports plug-in refactoring by providing
the ability to rename a plug-in ID and update all references to it in downstream
plug-ins.
The Rename function is available in the context menu of the Plug-ins view, the Plug-in Dependencies view and the MANIFEST.MF source page.
Plug-in refactoring may also take place as part of the regular project renaming action in the Package Explorer view (Refactor > Rename from the context menu) if the project name matches the plug-in ID. |
Plug-in manifest files participate in refactorings |
When you rename or move files and folders in
your plug-in project, PDE will now update references to these resources
in the plugin.xml and build.properties files.
|
| Launching OSGi frameworks | PDE now provides the If more than one OSGi framework is installed, the default can be set on the Plug-in Development > OSGi Frameworks preference page.
Testing against different OSGi frameworks is as easy as selecting that framework in the OSGi Framework launch configuration.
Note that PDE only provides the Equinox OSGi framework extension. |
PDE problem categories |
Problems in plug-in manifest files can now be
categorized, allowing you to easily spot fatal issues such as unsatisfied
constraints which may prevent your plug-in from compiling and running properly.
You can turn this feature on via Group by > PDE Problem Type from the drop down menu of the Problems view. |
Custom splash screen templates |
PDE now provides three templates for creating
custom splash screens, complete with code, images and XML markup:
This feature is available in the Templates section on the Splash page of the product configuration editor. Splash screen templates are also available in the New Extension wizard when generating a new org.eclipse.ui.splashHandlers extension on the Extensions page in the plug-in manifest editor.
|
Bundle a JRE in your RCP product |
When exporting an Eclipse product, you now have the option to bundle a JRE in a jre/ subdirectory inside the product. By default, this JRE will be used when the product runs. This feature is useful if you want your product with a specific JRE or if the end user of your product may not have a JRE installed on their system.
|
Bundling JREs for cross-platform Eclipse product export |
The Product editor now gives you the option
to bundle a JRE with your exported Eclipse product. JREs can be specified
on a per-platform basis.
|
Extensible launch shortcuts |
PDE now provides the org.eclipse.pde.ui.launchShortcuts extension
point to enable custom launch shortcuts and additional launch modes (e.g.
profile) to be integrated into the Testing section of
the plug-in manifest editor.
|
RCP templates for new application model |
The Eclipse 3.3 runtime defines a new application model that affords better control of an Eclipse application's lifecycle. When an Eclipse 3.3 target is specified in the New Plug-in Project wizard, the RCP application templates generated will use this new application model.
|
Hello, World - 3.3 edition |
In Eclipse 3.3, the Platform introduced a new way to contribute menu and toolbar items to the workbench. See this new support in action by selecting the Hello, World Command template in the New Plug-in Project wizard, available under File > New > Project > Plug-in Project.
|
Flag for non-exported packages in the MANIFEST.MF file |
PDE now provides a flag on the MANIFEST.MF file when the list of exported packages of the plug-in is incomplete. This feature is a useful reminder when you wish to expose all your plug-in code to downstream clients. By default, the severity of this flag is set to IGNORE, but it can be raised to WARNING or ERROR at a global level via the Plug-in Development > Compilers > Plug-ins > Non-exported Packages preference. It can also be set on a per-project basis on the Plug-in Development > Compilers property page of a plug-in project.
|
State of the plug-ins |
The Plug-in Dependencies view, available under Window > Show View > Other > PDE > Plug-in Dependencies, has been enhanced to show you the state of every plug-in you have in your development environment. For each plug-in, you get to see all its dependencies and the plug-ins supplying each of its imported packages. The view now also serves as a valuable diagnostic tool that shows you the unsatisfied constraints that may prevent your plug-in from running and which may cause a chain reaction affecting other plug-ins. New filtering capabilities include:
|
Analyze dependencies for JAR archives |
When creating a plug-in from existing JAR archives (File > New > Project > Plug-in
Development > Plug-in from existing JAR archives), PDE now computes
the dependencies required to run the code in the archive.
Plug-ins targeted to run with an OSGi framework will have their dependencies specified with Import-Package statements, while plug-ins targeted to run with Eclipse will have theirs specified with Require-Bundle statements.
|
Uses directive calculation |
PDE is now able to calculate the OSGi uses directive
for exported packages.
The uses directive is important because it models inter-package dependencies to ensure that consistent class spaces are calculated for each bundle. This helps prevent ClassCastExceptions when multiple versions of a package or bundle are installed in the Framework. The calculation can be initiated from the Organize Manifests wizard (PDE Tools > Organize Manifests... from the context menu of plug-in projects) or the Calculate Uses button in the Exported Packages section on the Runtime page of the plug-in manifest editor.
|
Multi-version support for build contributions |
Support has been added to allow for multiple versions of the same bundle to appear in a client's map file contribution to the build and therefore retrieved to be part of the same build. Clients wishing to take advantage of this functionality should specify a version in the map file as well as in the referencing feature. |
| New launcher for your product | When you export an Eclipse product that runs on top of Eclipse 3.3 via File > Export > Plug-in Development > Eclipse product, PDE will now customize the new Equinox launcher (described in a separate item) for your product. |
GET fetch support |
A new GET fetch factory was added to PDE Build which allows clients to specify URLs in their map files contributions to a build. The factory generates a call to the Ant Get task, and clients are able to specify whether or not the fetched file should be unzipped, which is especially useful for clients who are retrieving build input from an HTTP server. |
platform.xml handling |
In order to handle linked directories and extension locations while building, PDE Build now constructs its state by consulting the platform.xml file contained in the base location, if available. |