Welcome to Ganymede, this year's simultaneous Eclipse release, including content from twenty three Eclipse projects. Here are some of the more noteworthy things available in the eighth annual release of the Eclipse project SDK available for download from the Eclipse Project downloads page.
Platform |
|
New update UI |
The UI for performing installation and updates
is completely new in 3.4. The new UI is accessed using Help > Software Updates.
Unlike previous versions, you no longer have to find and select all prerequisites of the software you are trying to install. You can just select the single piece of software you want to install, and all prerequisites will be computed and installed automatically. The Installed Software tab only shows you the exact software items that you chose to install, rather than listing everything that is installed on your system. When you update software, all prerequisites of the software being updated will also be updated as needed. The new update dialog allows you to add update sites using drag and drop gestures in addition to using the dialogs. To make an update site available in Eclipse, you can drag and drop a site URL link from supported browsers (such as Firefox) into the Help > Software Updates > Available Software page.
|
Viewing available software |
You can now view the software that's available
for install or update in multiple ways. The Available Software tab
in the Help > Software Updates dialog provides a view
menu button that lets you view the software by site, category, or name.
You can also use the filter box in the dialog to filter the available software by name.
Checkboxes at the bottom allow you to further control what is shown in the view. |
Markers view |
A new Markers view has been added for users
who prefer to have their problems, bookmarks and tasks in the same view
(i.e., as it was back in the days before Eclipse 3.0).
It can be found by selecting Window > Show View > Other > Markers. |
New look for Problems, Bookmarks and Tasks views |
The Problems, Bookmarks and Tasks views now
have a new look, implementing many long-standing feature requests.
Highlights include:
|
System proxy settings |
The
General > Network Connections preference page
allows you to specify the proxy settings to be used when connecting
to the network. The new System proxy configuration option lets you
reuse OS proxy settings in Eclipse. Eclipse supports:
|
Eclipse for 64-bit Windows |
Windows x86_64/AMD64 and IA64 have joined the lineup of Eclipse platforms and SWT downloads. To use them you must be running on a 64-bit edition of Windows with a 64-bit JRE. (Note that the 32-bit versions of SWT and Eclipse can still be used on these configurations with a 32-bit JRE). |
Eclipse on HP-UX IA64 |
Eclipse will now run (in 32-bit mode) on HP-UX Itanium machines. |
Resource refactorings |
The move, delete and rename resource
actions now support refactoring in the same manner as the Java refactoring actions do.
These new actions are available in the Project Explorer. Here is an example of the resulting dialog when moving a resource in the Project Explorer: |
Accessibility for Mac OS X |
Eclipse is now accessible on Mac OS X Carbon. The Mac screen reader, VoiceOver, can be turned on and off with Command+F5. The snapshot below shows the VoiceOver cursor highlighting a tool item in Eclipse. |
New dropins folder |
There is a new "dropins" folder at the root of the Eclipse platform install that can be used to "drop in" additional plug-ins separate from the base application. This folder supports various layouts of plug-ins, features, and link files. On each startup, this directory is scanned, and any newly added content is automatically installed, and removed contents are uninstalled from the running application. |
Eclipse installer |
The Eclipse SDK now has a simple installer that can be used to install the SDK from eclipse.org or its mirrors. This leverages the transport capabilities of p2 to provide a faster, authenticated download. The installer also supports shared install so that multiple Eclipse applications on your system share the same data. The installer is available from the Equinox Download Page. |
Checking software trust |
When you install or upgrade using Help > Software Updates, the install process will now examine the signatures of the code being installed, and verify that you trust the provider of the software. This verification only occurs once in the install process, after all the new software has been downloaded. The dialog allows you to view the certificate trust chain, and examine the details of each certificate. |
Content type-specific file icons |
In the past, icons for files were chosen based
on the file's name and extension only. Workbench views now show more specific
file icons based on the file's content type. The IDE will initially show
a generic icon like it always has:
After determining content types in the background, icons will be replaced with more specific ones if available: This behavior can be turned off from the General > Appearance > Label Decorations preference page. |
Remote Help content enhancements |
Eclipse 3.4 now allows multiple remote infocenters to contribute content to the Help system. This can be specified using the Preferences > Help > Content preference page. |
Resize Table and Tree columns using the keyboard |
The column widths of certain Tables and Trees can now be changed in a keyboard-accessible way. This shows up in the list of plug-ins or features available from the About dialog, and as a new view menu item in all views displaying markers (Problems, Tasks, Bookmarks, and Markers). |
Print button in Help view |
The Help view now has a print button. |
New projects can now be added to working set |
New projects can now be added to working sets during their creation. Currently all major wizards make use of this feature and there is API available for plug-in developers to do so as well. |
Close tabs with middle click |
You can now close view and editor tabs by clicking
anywhere on the tab using the middle mouse button.
If your mouse doesn't have a middle button, try clicking on the mouse wheel if it has one of those. |
Improved text search |
The regular expressions support for text
search has been extended:
In the Containing text field, the new pattern \R matches any line delimiter (Windows \r\n, Unix \n, and Mac \r). Note that \R cannot be used in character groups ([]), since the Windows delimiter \r\n consists of two characters. Several new constructs are available when replacing text in files, including:
Content assist and the F1 help tell all the gory details. |
Line matches in result view |
The file search result now shows line matches.
When in the tree layout, line matches are shown below files:
|
Improved text search replace dialog |
Replacing text matches (Replace All or Replace Selected in the context menu of the text search result view) now uses the same dialog as refactorings do - including preview and undo: |
Direct interaction with text hovers |
Are you tired of pressing F2 to see
the full contents of a hover and to scroll down?
Now, you can just move your mouse into hovers that support this functionality and start scrolling. The Javadoc hovers in the Java editor now support links to other elements and have a toolbar at the bottom for navigating, moving to the Javadoc view and opening the corresponding declaration:
The behavior of hovers when the mouse is moved can be configured on the General > Editors > Text Editors preference page:
|
Presenting multiple hyperlinks |
If a location resolves to multiple hyperlinks,
text editors can now present all available hyperlinks in a drop down:
The behavior for hyperlinks can be configured on the General > Editors > Text Editors > Hyperlinking preference page. |
Improved regular expressions in Find/Replace dialog |
The regular expressions support in the Find/Replace
dialog (Ctrl+F) has been extended.
In the Find field, the new pattern \R matches any line delimiter (Windows \r\n, Unix \n, and Mac \r). Note that \R cannot be used in character groups ([]), since the Windows delimiter \r\n consists of two characters. In the Replace With field, several new constructs have been added, for example:
Content assist and Help tell all the gory details. |
Retain case of match when replacing |
There's a new regular expression that allows
the case of each match to be retained when using Find/Replace:
For example, replacing "test" with "\CFoo" in "Test test= TEST" results in "Foo foo= FOO". The same patterns can be used when replacing from the Search view: |
Various printing improvements |
The printing support for editors has been improved:
|
Line support in overview ruler |
Until now, the overview ruler was only helpful when it showed annotations. Henceforth, you can click on the ruler to go to the corresponding line and you can hover anywhere on the ruler to see the line number at that ruler location: |
Configure annotation preferences via overview ruler |
The overview ruler now has its own context
menu that allows you to open the preferences. If the context menu is opened
on an annotation, then it takes you directly to its annotation type on
the 'Annotations' preference page:
|
Select text via Shift+Click into line number ruler |
Text in the editor can now also be selected by shift-clicking in the line number ruler. |
New annotation text styles |
You can now choose from all available styles
for drawing an annotation inside the editor:
|
Share multiple projects simultaneously |
The Team > Share Project action now supports multi-select so multiple projects can be shared in a single operation. |
Correct spelling in CVS Commit wizard |
The comment area of the CVS Commit Wizard now presents you with suggested corrections for misspelled words. The options are available using quick assist (Ctrl+1) and are also shown in the context menu. |
File changes can be viewed in CVS Commit wizard |
File changes can now be viewed in the CVS Commit Wizard. You can view the changes for a file by double-clicking on the file in the Changes pane. |
Ignore resources by path |
The Team > Ignored Resources preference page now allows you to specify ignore path patterns as well as file name patterns. |
Apply Patch improvements |
Improvements have been made to the Apply Patch Wizard. The handling of unmatched patch segments has been modified to be more consistent with how the standard patch application works. Segments (or hunks) that do not match at the location indicated in the patch will be automatically tested at previous and later locations in the file to see if an exact match for the patch appears elsewhere. Also, the fuzz factor (i.e. the number of context lines to ignore when searching for a match) can be automatically calculated and applied, if an exact match cannot be found. The user will still have the ability to adjust the fuzz factor. |
Import Team Project Set improvements |
Improvements have been made to how the import of CVS projects using a Team Project Set is handled. In the past, a repository location was automatically created with the given connection method and without a user name when CVS projects were imported from a project set. Now, the import process allows the user to fully configure the repository location, enabling them to specify a user name and change the connection method if require. So, for instance, a project set file containing extssh connections could now be used by a non-comitter since they could reconfigure the repository location connection method on import to be pserver. |
Improved Apply Patch wizard |
The CVS Apply Patch wizard now lets you see and inspect the hunks that matched. Previously, only conflicting hunks were visible. |
Improved Share Project dialog |
There's a new option in the CVS Share Project dialog that lets you choose to use the project name as the module name and place it under the selected module. |
Line counter in Apply Patch wizard |
The Apply Patch wizard counts lines added and removed in the patch. The default mechanism simply sums all lines starting with '+' and '-'. To define custom patterns which can be used to exclude empty lines or comments, go to the General > Compare/Patch preference page. |
Import/Export launch configurations |
You can now import and export launch configurations in the local file system.
Select Launch Configurations from the Run/Debug category of the Export wizard.
The following page allows you to select configurations to export to a location
in the local file system.
Similarly, you can import launch configurations from a directory in the local file system. |
Default console and file encoding |
The console encoding used when running or debugging a program automatically
matches the encoding of the program being run or debugged. For example, your
Java program's (or Java project's) encoding will be used by the console and a
corresponding VM argument will be added to the command line (for example, "-Dfile.encoding=UTF-8 ").
This makes it simpler to run and debug code displaying console output.
|
Drag and drop watch expressions |
You can now drag text into the Expressions view to create expressions and you can reorder entries in the Expressions view with drag and drop. |
Remove launch history entries |
You can now remove items from the launch history menus. Use Control+Shift+Click to remove an item from a launch history (that is, select the menu item while pressing Control+Shift). The launch will be removed from your history but the configuration is not deleted. |
Java development tools |
|
Java Editor Breadcrumb |
The Java editor now offers a breadcrumb which shows the path to the element at the cursor position. The breadcrumb can be enabled via the Toggle Breadcrumb tool bar button or by pressing Alt+Shift+B: Each element in the breadcrumb can be selected and actions can be invoked through a context menu or keyboard short cuts.
Furthermore the breadcrumb lets you navigate to other elements via drop-downs.
|
Rich Javadoc Hover |
The Javadoc hover can now be used to navigate Javadoc.
The hover also shows the icon corresponding to the current Java element To enrich a hover either press F2 or move the mouse into the hover. You can configure how to enrich the hover on the General > Editors > Text Editors preference page. |
Rich Java problem hover |
The problem hover now offers all available quick fixes for a problem and shows a tool bar on F2 or when you move the mouse into it. Quick fixes can be executed by clicking on the links. The actions in the tool bar let you configure the annotation preferences and the problem severity. |
Content assist improvements |
Content Assist (Ctrl+Space) has been improved in several areas.
|
Quick assists |
New quick assists (Ctrl+1) have been added in this release:
|
SWT Templates |
A set of templates have been added to provide code building blocks for SWT widgets. To add, for example, an SWT button, type Button and press Ctrl+Space, select the Button SWT template, and press Enter.
To see all available templates go to the Java > Editor > Templates preference page or open the Templates view through Window > Show View > Other.... |
New Template Variables |
New template variables have been added and existing variables have been improved. Consult the Template Variables help page for a detailed overview. |
Specify location for templates |
It is now possible to specify the location where Java editor templates are applicable.
As a result, Content Assist (Ctrl+Space) will only show templates applicable at the current location. |
Format edited lines on save |
A new save action allows to format the edited lines on save. With this option enabled, format on save generates a minimal amount of changes, even on unformatted code. To enable this feature go to the Java > Editor > Save Actions preference page and select Format edited lines. |
'Fix Project Setup' quick fix |
If a type can not be resolved a new quick fix offers to fix the class path: For normal Java projects, the quick fix will search in other projects for the type and offer to add the JAR that contains that type to the build path. For PDE projects, information from the plug-in manifest is used to offer a new plugin dependency. Other project types can add their fix proposal through a new extension point. |
Highlighting numbers in Java code |
The Java editor can now show numbers with their own custom color.
The color can be configured on the Java > Editor > Syntax Coloring preference page. |
Javadoc shows constant value |
The Javadoc hover and the Javadoc view now show the constant value of static fields. |
Mark read and write occurrences |
Mark Occurrences (Alt+Shift+O) now marks read and write accesses with different colors. Mark Occurrences can be enabled in the tool bar. Annotation colors are configured on the General > Editors > Text Editors > Annotations preference page |
Occurrences in File improvements |
Several improvements have been added to Search > Occurrences in File:
|
Extract Class refactoring |
Extract Class replaces a set of fields with a new container object. All references to the fields are updated to access the new container object. This refactoring helps to group fields which logically belong together. The following example demonstrates how to extract the fields x,y,z to a new class Position: The refactoring results in the creation of a new To execute the Extract Class refactoring, select a type and invoke Refactor > Extract Class. |
New Clean Ups |
The following Clean Ups have been added:
Add unimplemented methods is most useful after adding a new method to an interface. Correct indentation is also available as save action. To clean up your code select a set of Java elements and invoke Source > Clean Up. |
Refactoring flags references in binaries |
Refactorings now flag references to the refactored element inside compiled class files. Such references cannot be updated and would lead to problems at run time. |
Undo format |
Formatting a set of Java elements, e.g. via Package Explorer, can now be undone using Edit > Undo Format (Ctrl+Z). |
Annotation formatting improvements |
The Java source code formatter now provides fine-grained options for line breaks after annotations. It is possible to specify for each type of annotation if it should be followed by a line break:
This can be configured on the Java > Code Style > Formatter preference page.
|
Java compiler on multi-CPU machines |
The Eclipse Compiler for Java is now taking advantage of the multi-threading capability of multi-CPU machines. Our measurements show improvements up to 30%. Results depend on the JRE and platform used. |
Support for external class folders |
Class folders located outside the workspace (external) can now be added to the build path. To add an external class folder use the Java Build Path page of the project properties, select the Libraries tab and push the Add External Class Folder button. |
New and improved compiler diagnostics |
Several improvements have been made to the problem detection in the compiler:
You can configure this settings on the Java > Compiler > Errors/Warnings preference page. |
CLDC 1.1 class file compatibility |
The Java compiler can now create CLDC 1.1 compatible class files. You can set this on the Java > Compiler preference page: |
Flexible ZIP archive extensions |
It is now possible to add ZIP archives to the build path with file
extensions other than It is now, for example, possible to add a |
JUnit view shows execution time |
The JUnit view now shows the elapsed time for test cases and test suites. |
Improved Javadoc view |
The Javadoc view has been improved with:
|
Rearrange content of files per drag and drop |
Unsorted views like the Outline view and the Members view in the Java browsing perspective can now be used to rearrange members by drag and drop. |
Call Hierarchy view works with fields and types |
The Call Hierarchy view in caller mode now works with more kinds of elements:
|
Runnable JAR export wizard |
The Runnable JAR File Export wizard can create a JAR file based on a launch configuration. The generated JAR file contains all class files from the project including class files from required JARs and projects. The generated JAR can be executed with the command:
or, on most operating systems, by double-clicking the file.
The export wizard can also create an ANT script which can be used to build the JAR. Invoke File > Export... and then select the Java > Runnable JAR file wizard to create such a JAR file. |
More Java search options |
Type reference search can now be limited to specific match locations in the code. For example, you can find references in cast expressions, or in field and local variable types. The following example shows how to search for all catch clauses in your code (search for references to '*' and limit to catch clauses):
|
Paste creates snippet for members and statements |
Paste (Ctrl+V) in the Package Explorer view now supports members and statements. Eclipse creates the required enclosing elements for you. For example, pasting: List<Number> numbers; numbers= Arrays.asList(1, 2, 42); into _pasted_code_ generates a Java class and main method to hold the statements: |
Enhanced debug hover |
When debugging, hovers for variables have been enhanced to display an object inspector. The inspector will display logical structures according to the toggle setting in the visible Variables or Expressions view. |
Execution environment description files |
An execution environment description file describes a JVM and the environment it represents (see Execution Environment Descriptions for detailed information on the file format). The file defines JVM properties such as boot path, endorsed directories, language level, executables, source attachments, and so on. You can now add JREs to your workspace using execution environment description files from the Installed JREs preference page. Press Add and select the Execution Environment Description JRE type. On the following page specify an .ee file. This will create a JRE with attributes from the description file. This example shows J9 configured for Foundation 1.1. |
Search for installed JREs on Mac |
You can now search for all installed JREs on Mac. Pressing the Search button on the Java > Installed JREs preference page will add definitions for all VMs installed in the operating system's default location ( |
Search results include launch configurations |
Launch configurations now appear when searching for references to a main type. Double-clicking on the search result opens the launch dialog on that configuration. |
Wait for remote debug connection |
A socket listening connector has been added to the Remote Java Application launch type. This allows you to start the Java debugger listening for connection on a specific socket. The program being debugged can then be started with command line options to connect back to the debugger. Select "Standard (Socket Listen)" in the connection type drop down. |
Default watchpoint suspend settings |
You can now control the suspend settings for newly created watchpoints. A watchpoint can suspend execution when a field is accessed, modified, or both. The new preference is available on the Java > Debug preference page. |
Platform API |
|
Equinox Provisioning Platform (p2) |
The Eclipse Platform now includes the Equinox
Provisioning Platform, dubbed p2, that provides a complete replacement
for the install/update functionality in previous releases of Eclipse. Some
of the notable underlying features of p2 include:
|
Individual Source Bundles in Eclipse SDK |
PDE now supports individual source
bundles. The Eclipse SDK is now shipping new source bundles
instead of the old source plugins. This makes shipping source simpler
and more flexible. See the wiki page for details on converting your build to use the new source format. |
Connecting with Java authentication |
If you wanted to use the Java authentication
service (JAAS) but were put off by the complexity of fitting it into the
Eclipse world, now is the time to revisit that decision.
The Equinox security API offers a way to describe your login configuration, login modules, and callback handlers via extension points. The class loading magic is done behind the scenes to ensure that your classes fit properly into JAAS. The |
Secure storage |
Equinox now provides a Preferences-like storage
for sensitive data such as passwords and login credentials. The information
is encrypted using Java encryption mechanisms.
The storage uses an extensible list of password providers to obtain the key ring password. In this version two password providers are supplied: the UI prompt and Windows login integration modules. While secure storage is mostly intended to be consumed by other bundles and hidden from the end user, a view of default secure storage and a preference page are provided for convenience. The secure preferences can be obtained using the |
New look for Problems, Bookmarks and Tasks views |
The Problems, Bookmarks and Tasks views are
now based on a new API viewer (the MarkerSupportView) that
has a new look, implements many long-standing feature requests, and is
reusable by RCP applications wishing to use their own custom marker view.
Some of the features for RCP application writers are:
|
Help feature |
The new feature, org.eclipse.help-feature, contains all of the plug-ins required by an RCP application in order to launch the help system. |
Infocenter as web archive |
The help infocenter can now be packaged as a web archive (WAR file) which can be deployed on a wide variety of servers. |
API for styled labels in trees and tables |
The API for styled text labels in table and
trees is now available in JFace. Each label in a tree and table viewer
can have text styles like foreground and background colors, underlines,
boxes, etc.
To enable or disable colored labels go to General > Appearance > Enable colored labels. The colors are defined on the colors and fonts preference page. |
New API in data binding plug-ins |
The data binding framework has been enhanced in the following ways:
|
New extension registry listener |
A new way to listen to the extension registry events has been added. Keeping up with the dynamic nature of the registry has never been this easy! For details, see org.eclipse.core.runtime.IRegistryEventListener. |
Enhanced launch API |
Extensions have been made to the debug platform's launch shortcut API to provide clients with more control over launching the active selection (or editor). The new API has been added to determine if specific attributes are present on a launch configuration and to remove them. API has been added to determine the encoding to use when launching a configuration. A launch configuration inherits its encoding from its associated resource(s), or can specify an explicit encoding. |
Other debug APIs
|
An optional extension interface ( A Modules View has been added to the platform, along with associated constants in An optional interface ( |
SWT Changes
|
|
SWT RTL support for Linux GTK |
SWT now provides support for mirroring on Linux GTK platforms. |
Accessibility for Mac OS X |
Eclipse is now accessible on Mac OS X Carbon. The Mac screen reader, VoiceOver, can be turned on and off with Command+F5. The snapshot below shows the VoiceOver cursor highlighting a tool item in Eclipse. |
SWT inline input method |
StyledText has added support for inline input method in Win32, GTK, and Carbon. |
Tristate buttons |
API was added to allow for tristate check buttons similar to the check buttons in a table or tree. This example snippet created the snapshot shown below. |
Progress bar (Vista) |
The SWT ProgressBar control now supports the native Windows Vista styles. |
New transfer types |
New API was added to support drag and drop and clipboard operations for images and URLs. For further details, see Snippet 284. |
Drag and drop on Mac |
Drag and drop was improved on the Mac. For example, when inserting an item into a tree, an indicator is now displayed to show where the item will end up. |
SWT full screen state |
API was added to put a Shell into a full screen state. Full screen should be used rather than creating an ON_TOP shell the size of the screen, which may not obscure the task bar or other desktop adornments under certain operating systems. |
Alpha on shells |
There is new SWT API that allows the setting of an alpha value on a shell. Note: some operating systems do not support this functionality. |
Region improvements |
You can now set a Region into a Control, which allows for the creation of non-rectangular controls. New API has been added to flatten a graphics path into line segments. Line segments can be used to create an arbitrary region. This snippet creates a circular shell from a path. This example snippet created the snapshot shown below, a non-rectangular button. |
Shear transform |
SWT has new API that allows for shearing of images. For more info, check out SWT Snippet 298. |
Print control to GC |
API was added to allow the printing of any Control to a GC. For more info, check out Snippet 292. |
SWT features in TextLayout and StyledText |
TextLayout and StyledText now allow different strikeout colors, underline colors, and different underline styles. |
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:
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):
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. |
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. |
Product editor enhancements |
The product editor was enhanced to allow for per-platform configuration files (config.ini) and the ability to version product definitions. |
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 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. |
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. |
Context help editor |
There is a new Context Help editor available to assist clients creating context-specific help for their applications. |
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. |
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. |
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 PDE Build has been enhanced to allow custom steps during the assembly and packaging phases of a headless build. A template |
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 operations |
The Plug-in Registry view now includes advanced bundle-related operations:
These advanced operations are disabled by default; toggle the Show Advanced Operations menu item to turn them on. |
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 |
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. 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. |
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:
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. An Externalized strings preference has been added to the Plug-in Development > Editors preference page to customize the highlight color: |
Cheat sheet editor enhancements |
The simple cheat sheet editor has been revamped to include the following enhancements:
|
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. |
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. |
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. |
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. |