Eclipse 3.8 and 4.2 M3 - New and Noteworthy

Queen Juno was a patron goddess of ancient Rome, and now assumes a tutelar role for the Eclipse Foundation's next simultaneous release. Here are some of the more noteworthy things available in milestone build M3 (October 28, 2011) which is now available for download. Unless otherwise indicated, all entries listed here are available in both the 3.8 and 4.2 development streams.

Equinox
New OSGi console This milestone includes a brand new OSGi console based on the Apache Felix Gogo project. In previous releases the Equinox framework contained a built-in OSGi console. This console allows you to interact with the OSGi framework and execute commands on the running instance of the framework. For example, it can be used to install bundles or to get a list of currently installed bundles. The built-in console is convenient because it is always available without needing to install extra bundles, but it is also limited because the framework itself must contain all the functionality of the built-in console.

The Apache Felix Gogo project has developed an advanced shell for interacting with OSGi frameworks. Instead of continually enhancing the built-in Equinox Framework console, a new external Equinox Console bundle has been created that uses the Apache Felix Gogo bundles. The new Equinox Console bundle continues to provide support for the Equinox Console APIs (package org.eclipse.osgi.framework.console). It also adds many new enhancements which are possible through the use of the Gogo shell. This includes features such as tab completion, command history, piping, grep, telnet and ssh connections, and more. Type help on the console to see a list of available commands, or help <command-name> for information on how to use each command.

Platform

Global debug toolbar To improve the presentation of the debug perspective, you can now move the toolbar out of the Debug view and into the global toolbar - or use it in the view and in the toolbar.

Global debug toolbar

The global toolbar contains the same commands as the view toolbar, but can be customized with Window > Customize Perspective... to add or remove debugging commands, or the entire debug toolbar. The visibility of the debug toolbar can be changed using Show Debug Toolbar in the Debug view's menu.

Debug view toolbar action

Use saturated colors in overview ruler The new Use saturated colors in overview ruler preference allows to show the annotations in the Overview ruler using saturated colors:

Screenshot with saturated colors   Screenshot without saturated colors   Screenshot of the 'Accessibility' preference page

This option is turned off by default and can be enabled on the General > Editors > Text Editors > Accessibility page.

Delete project dialog shows project location The Delete Resources dialog now shows the location of deleted projects on the file system:

Screenshot

Highlight TrayItem Image You can now provide a custom image for use as the hightlight image for a tray item on Cocoa. The highlight image is shown when the tray item is activated. The default tray item image will be restored when the tray item is deactivated.

Default Tray Item
Default Tray Item

Highlighted Tray Item
Highlighted Tray Item

Added support in StyledText to show the scrollbars only when needed In the past, when a StyledText was created with scrollbars it would show them all the time, even when the client area was big enough to show the entire content. By using setAlwaysShowScrollBars() this behaviour can now be configured so that instead of showing a disabled scrollbar, the StyledText will only display the scrollbar when needed.
Event type constants in StyledText are now public The following event type constants in StyledText have been made public:
  • ExtendedModify
  • LineGetBackground
  • LineGetStyle
  • TextChanging
  • TextSet
  • VerifyKey
  • TextChanged
  • LineGetSegments
  • PaintObject
  • WordNext
  • WordPrevious
  • CaretMoved
This allows these constants to be used with Widget#isListening() to verify if a listener handler was added for any event type in StyledText.
Default Browser renderer is now configurable The native renderer that is used for SWT.NONE-style browsers can now be configured by setting a Java property. This is particularly important for applications that create browsers with a specific native renderer style (eg.- SWT.MOZILLA), in order to avoid conflicts that can occur when multiple native renderers are loaded in the same process.

For more information on using this new property see How do I specify the default type of native renderer that is used by the Browser? .

FontDialog Effects New API has been added to FontDialog to prevent the user from selecting font effects, such as color, underline, strikethrough and shadow.

FontDialog on Windows without the Effects grouping

New Combo API Two new APIs have been added to Combo that allow users to get the caret information in a combo box. Combo.getCaretLocation returns the pixel coordinates of the caret. Combo.getCaretPosition returns the character position of the caret.

For an example of how to use this API see Snippet 359.

JDT

'*.class without source' file type The new *.class without source file type allows to associate an internal or external editor to class files that have no source attached. This e.g. allows to open the class file in a decompiler:

Screenshot of the 'File Associations' preference page

Quick assists to reorganize property keys If you use Eclipse-style externalized strings, the following new quick assists make it easier to reorganize keys inside the Properties File Editor:
  • Rename in workspace - renames the key in the properties file and updates all references
  • Create field in '...' - creates the corresponding field in the resource bundle accessor class
  • Remove property - deletes the property from the properties file and the field from the resource bundle accessor class
  • Remove properties - deletes the selected properties from the properties file and the fields from the resource bundle accessor class
New options to detect resource leaks The compiler can now detect leakage of resources i.e. local variables of type java.lang.AutoCloseable (compliance >= 1.7) and java.io.Closeable (compliance <= 1.6).

Configurable options on compiler errors/warnings preference page

When the Resource leak option on the Java > Compiler > Errors/Warnings preference page is enabled, the compiler will issue an error or a warning if the close() method is not invoked locally on a resource.

Resource leak example

When you enable the Potential resource leak option on the Java > Compiler > Errors/Warnings preference page, the compiler will issue an error or a warning if the close() method is not invoked locally on a resource on all the execution paths.

Potential resource leak example

New options to suggest use of try-with-resources statement The compiler can now suggest using try with resources statement for resources of type java.lang.AutoCloseable when such resources have been explicitly closed but not declared in try-with-resources statements. This only works in compliance 1.7 or above.

Compiler warning for a resource that should be managed with try-with-resource

New Batch compiler warning options Two new batch compiler options are now available to configure the compile time warnings:
  • -warn:all can be used to enable all compiler warnings
  • -warn:resource can be used to enable resource leak warnings
New build path option to warn when a source folder's output location overlaps another source folder JDT now shows a build path error when a source folder's output location overlaps another source folder. This error can be configured on the Java > Compiler > Building > Output location overlaps source location preference page.

Build path error when source folder's output location overlaps another source folder

The above features are just the ones that are new since the previous milestone build. Summaries for earlier Juno milestone builds: