Here are some of the more noteworthy things available in milestone build M5 (February 1, 2013) which is now available for download.
|Null annotations for fields||
The annotation-based null analysis — first released with Eclipse Indigo — has been extended
to apply also to fields. If enabled, this analysis will now detect the following problems
concerning any field annotated with
In return to these obligations, dereferencing a
If a field is marked as
As a compromise between safety and convenience, the compiler can be configured to apply
"syntactic null analysis for fields".
With this option enabled, the compiler syntactically recognizes
a narrow range of code patterns where a null-check of a field is directly followed by
a dereference or an assignment to a
In the following example, the check in line 12 properly protects the access in line 13, whereas
the knowledge that field
This is the option that enables the syntactic analysis (under the heading Java Compiler > Errors/Warnings):
|Support for package Javadoc in Javadoc hover and view||
The Javadoc hover and view now display package Javadoc from either the package-info.java or the package.html file.
|Quick Assist for unused type parameters||
The Java editor now provides a Quick Assist (Ctrl+1) to remove or document unused type parameters.
|Pre-filling package name in creation wizards||
All the type and package creation wizards now pre-fill the package name
if a suitable package name can be suggested for the selected project or source folder.
The suggested package name is the name of the project if the source folder does not contain any package and if the project name is a valid package name. In case of type creation wizards, if the source folder contains exactly one package then the name of that package is used as the suggested package name.
|Bundles in the category editor||
The category editor now supports putting individual bundles into categories.
The category editor creates a category.xml that can define categories that the contents of a p2 repository should be organized into. Previously only features could be specified as belonging to a category and be visible to users. Now individual bundles can be added to the category.xml.
|New API to contribute to the classpath of plug-in projects||
New API in PDE allows you to add additional classpath entries to a plug-in project. Contribute a
Plug-in Classpath Contributor via the org.eclipse.pde.core.pluginClasspathContributors
extension point. Whenever the PDE classpath is computed or a new plug-in dependency is added, your classpath
contributor will be queried for additional entries.
If you are using Equinox Adapter hooks to load additional libraries at runtime you can use this API to add the correct libraries to the classpath at build time.
|Updating the classpath requires a workspace lock||
When a change is made to a plug-in that forces a classpath update, an update job is created that
modifies the Plug-in Dependencies classpath container in the background. This job now acquires a workspace lock
to prevent other operations such as builders from running on a stale classpath.
This behaviour can be enabled in 4.2.2 by setting the system property pde.lockWorkspaceForClasspath to true.
|Problem filters apply to API Tools use scans||
Problem filter files (.api_filter) can be used to filter problems reported by the API Tools analysis
task and the workspace analysis builder. These filter files can now be applied to API Tools use scans.
Reference problems that are filtered out of the analysis results can be also filtered from the results
of use scans.
Filters are specified in the task using the same property as the analysis task. Set the filters attribute on the apitooling.apiuse task, specifying the root directory of API filter files. Each filter file must be in a folder with a filename matching the component name the filter file applies to.
|API Tools tasks warn about missing include or exclude files||
Many of the API Tools tasks, including Analysis, API Use, and API Freeze, provide includelist and
excludelist attributes which can be used to limit the reported problems. Previously,
if you set an include or exclude list, but the file wasn't found, the task would continue without warning
about the incorrect filtering. Now a missing include or exclude list will result in the task failing with
|Detection of shared install changes||
When Eclipse is running in a read-only folder (also known as shared install) and the read-only
installation has changed (e.g. new plugins installed, new version of Eclipse installed), Eclipse
will now detect this change and warn that your personal additional plugins have been uninstalled.
In the next milestone, this warning will be replaced by a migration dialog allowing you to
reinstall your plugins.
The above features are just the ones that are new since the previous milestone build. Summaries for earlier Kepler milestone builds: