## What's New in 3.1

This document contains descriptions of some of the more interesting or significant changes made to PDE for the 3.1 release of Eclipse since 3.0.

## PDE

Bundle manifests for plug-ins | In Eclipse 3.1, it is strongly recommended that plug-ins contain an OSGi bundle manifest.mf. In addition to faster startup and classloading, this format will allow you to take advantage of many of the new runtime capabilities such as fine control over what packages you want to expose to clients. The option to create a manifest.mf in the New Plug-in Project creation wizard is now on by default. You can create a bundle manifest.mf for an existing plug-in on the Overview page of the plug-in manifest editor.
PDE enforces code accessibility | The plug-in's manifest.mf file allows you to control on a per-package basis the visibility of your plug-in's code to downstream plug-ins. PDE manages each plug-in's Java classpath and checks these visibility rules at compile time. This means no one will never be caught by surprise by classloading errors at runtime, and will always be aware when they are referencing internal (discouraged) types. For full details, refer to the Access Restrictions document.
Creating a rich client application | The New Plug-in Project wizard gives you the option to create a rich client application.
RCP templates | The New Plug-in Project wizard provides ready-to-run RCP templates. The templates range from a minimal Hello RCP template to a rich, fully-branded RCP mail template.
Build an Eclipse product with a single click | You can now create and manage an Eclipse product in a *.product file, which can be created via File > New > Other... > Product Configuration. The product configuration editor manages all aspects of a product from basic definition to branding. You can create plug-in-based and feature-based products. The overview page provides hot links to test and export the product.
Eclipse product export wizard | You can export an Eclipse product as an archive or a directory structure in the Eclipse Product Export wizard. The wizard is invoked via File > Export > Eclipse Product or from the Overview page of the Product Configuration editor.
Cross-platform product export | If you have the RCP delta pack installed, you can now build and export your product for multiple platforms at the same time via the Eclipse Product export wizard (File > Export > Eclipse Product).
Create a plug-in from existing JAR | PDE now provides a wizard that creates a plug-in from existing JAR archives. This wizard is ideal if you would like to package third-party non-Eclipse JARs as an Eclipse plug-in. The wizard can be invoked via File > New > Project > Plug-in from existing JAR archives.
Manifest editor supports more OSGi bundle manifest headers | The PDE plug-in editor now exposes many interesting features of the runtime that are available only if your plug-in has a manifest.mf file. The Runtime page of the editor, for example, is the place where you can control access to your plug-in's code on a fine-grained level.
Manifest.mf validation | PDE now flags syntactic and semantic errors in the plug-in's manifest.mf file.
Improved plugin.xml validation | Attributes and elements defined in extension point schemas can now be marked as translatable. Also, obsolete attributes and elements can be marked as deprecated, in the same spirit as @deprecated tag in obsolete Java APIs. PDE uses this metadata to flag the usage of deprecated and non-externalized attributes and elements in the plug-in's manifest files.
Sharing plug-in manifest compiler settings | You can now set the PDE plug-in manifest compiler settings on a per-project basis and share these settings among team members.
Improved plug-in dependencies view | The PDE Plug-in Dependencies view now shows both tabular and tree visualizations of dependencies, as well as caller/callee relationships and cyclic dependencies. This view can be opened from the context menu of plug-in project via PDE Tools > Open Dependencies.
Validate plug-in set before launching | Prior to launching your Eclipse application, you can now validate the selected subset of plug-ins to find lurking launch startup problems such as unsatisfied plug-in dependencies, missing applications, etc.
No need to -clean | When self-hosting with PDE, you no longer need to launch a runtime Eclipse application with the `-clean` program argument. Leaving this argument off significantly improves startup time.
Improved feature and update site support | The PDE feature and update site manifest editors have been redesigned to provide a simpler and better workflow. Improvements include the ability to build and package features without having to import them into your workspace.
JNLP manifests and JAR signing | The feature export wizard now provides you with the option to create JNLP manifests and digitally sign your plug-in and feature archives for Java Web Start deployment.