Eclipse Project 4.5 M3 - New and Noteworthy

Here are some of the more noteworthy things available in the Mars milestone build M3 (2014-10-31) which is now available for download.
We also recommend to read the Tips and Tricks, either via Help > Tips and Tricks... or online for Platform, JDT, and PDE.

Platform
UI responsiveness monitoring You can enable automatic detection of periods when the Eclipse user interface is unresponsive:

UI freezes longer than the warning threshold are logged to the Eclipse error log as warnings. The logged messages include one or more stack traces of the display thread. Longer UI freezes are logged as errors and include stack traces of all threads. Please keep in mind that capturing stack traces of all threads involves extra overhead, so setting the error threshold below 1 second is not recommended.

A UI freeze is logged at the end of the freeze or after the deadlock threshold has expired, whichever comes first. The latter condition facilitates logging of indefinite UI freezes caused by deadlocks.

Please file bugs for the UI freezes you encounter, describe what you were doing at the time, and include the messages from the error log related to the freeze.

Perspective menu entries grouped The entries related to perspectives have been grouped into one menu entry to simplify the Window menu.

'Terminate/Disconnect All' in Console view You can invoke the Terminate/Disconnect All action from the Console view's context menu:

Ant 1.9.4 Eclipse has adopted Ant version 1.9.4.
The DateTime widget now uses GtkSpinButton on UNIX/Linux platforms The DateTime widget has been re-implemented to use the GtkSpinButton widget for SWT.DATE and SWT.TIME styles. The new look and feel is as illustrated below:

GTK+ 2:

GTK+ 3:

New monitoring events added in place of SWT.Sleep and SWT.Wakeup The SWT.Sleep and SWT.Wakeup events have been deprecated in favor of the more generic events SWT.PreExternalEventDispatch and SWT.PostExternalEventDispatch, respectively. Clients that were written using the old event names should be updated to refer to the new events.
Dropped support for GTK+ 2 versions older than 2.18 GTK+ 2.18.0 or later (and its dependencies) will be the pre-requisites necessary to run Eclipse successfully on all Linux/UNIX platforms as opposed to GTK+ 2.10.0 earlier. Support for all versions older than 2.18 has been dropped effective Mars M3 milestone release.

Note: As of now, Eclipse logs a warning and continues to run when a GTK+ version older than 2.18.0 is detected, but that behavior will soon be changed to not run Eclipse with unsupported versions.

Changed type of TranslationService.LOCALE The type of the LOCALE value in the application context was changed from String to Locale (for performance reasons).

If you are injecting org.eclipse.e4.core.services.translation.TranslationService.LOCALE in your code, you need to change the type from String to Locale.

JDT
Add inferred lambda parameter types You can explicitly add the inferred types of the parameters in a lambda expression by invoking the Quick Assist (Ctrl+1) - Add inferred lambda parameter types:

Convert method reference to lambda and back New Quick Assists (Ctrl+1) have been added to convert...
  • from method reference to lambda expression:

    Integer::toHexString

  • from lambda expression to method reference:

    t -> Integer.toHexString(t)

Add Watchpoint for final variables You can now add a Watchpoint for non-constant final variables:

This cannot be implemented for final variables with compile-time constant values because Java compiles the constant value into class files and leaves no trace of a field access at points where the final field is read.
PDE
Added wildcard support for selecting plug-ins Wildcard support and implicit prefix completion already worked in some plug-in selection dialogs. Now, it works in all such dialogs, e.g. in the product editor or in the target definition. Due to the implicit "*" at the beginning of the pattern, you can just type "platf" to find "org.eclipse.platform".

Equinox
Updated to Jetty version 9 Updated to the Jetty version 9.2.3 to provide the servlet container for the Equinox Http Service implementation. Jetty 9 implements the Servlet 3.1 specification. Both Jetty 9 and Servlet 3.1 require Java 7. Java 7 is now required in order to run the Equinox Http Service and the Eclipse Help system.
New Http Whiteboard implementation
  • New implementation of Http Whiteboard Draft specification. See Current Drafts.
  • Simplify your web development by using whiteboard pattern to create assemblies of servlets, filters, context listeners and grouping them logically in shared contexts.
  • The implementation is a near feature complete implementation of the draft specification.
  • In addition to the Http Whiteboard specification, the Equinox Http Service implementation provides a complete imperative API in order to support the traditional direct registration programming model.
  • Supports Servlet 3.0 features.
  • Ongoing work will continue to provide more tests, improve support for Servlet 3.1 features and to improve stability and performance.

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