Deprecated API removals

Often there is no sufficiently compelling reason to ever remove deprecated API, so the API may remain in place indefinitely after the release in which it was deprecated. However, there are situations where continuing to maintain the deprecated API creates too high a burden for both API developers and clients: the code bloat of keeping old implementations, the added complexity of multiple redundant APIs, etc. For this reason the Eclipse project has a policy to occasionally delete deprecated API after providing two years advance notice to clients. This section describes API removals that occurred in this release, and upcoming removals in future releases.

Note that the policy for removing API types is broken, so some of these plans are not implementable, see bug 482382.

Removed APIs in the Neon (4.6) release:

  1. Eclipse 2.0 runtime model and boot API

Planned API removals after June 2016:

  1. org.eclipse.jface.util.ListenerList
  2. TableTree and TableTreeViewer
  3. org.eclipse.ui.views.tasklist.TaskList
  4. Platform authorization API

Planned API removals after June 2017:

  1. IContextComputer
  2. org.eclipse.core.runtime.IPlatformRunnable

Planned API removals after June 2018:

  1. ImageAndMessageArea from JFace
  2. org.eclipse.ui.cocoa.fullscreenWindow

API removals in this release

1. Eclipse 2.0 runtime model and boot API

When the Eclipse runtime transitioned to use OSGi as its implementation, some existing APIs for interacting with the old runtime were deprecated and moved to a compatibility fragment (org.eclipse.core.runtime.compatibility). All API that was still valid was moved elsewhere. These APIs have been non-functional since Eclipse 3.0 and will therefore be removed in the future. The following packages will be removed:

The compatibility fragment, org.eclipse.core.runtime.compatibility will also be removed. As a consequence org.eclipse.ui.startup extensions will no longer work if they do not specify a class that implements org.eclipse.ui.IStartup.

For further details or to provide feedback on this change, see bug 370248.

API removals after June 2016

1. org.eclipse.jface.util.ListenerList

The org.eclipse.jface.util.ListenerList class is deprecated since 2005 and has been replaced by org.eclipse.core.runtime.ListenerList with org.eclipse.core.runtime.ListenerList.IDENTITY as argument. The org.eclipse.jface.util.ListenerList class is planned to get deleted.

For further details or to provide feedback on this change, see bug 436448.

2. TableTreeViewer

The org.eclipse.jface.viewers.TableTreeViewer class is deprecated since Eclipse 3.1 and has been replaced by TreeViewer. The org.eclipse.jface.viewers.TableTreeViewer, org.eclipse.swt.custom.TableTree and org.eclipse.swt.custome.TableTreeItem classes are planned to get deleted as well as methods using these types.

For further details or to provide feedback on this change, see bug 436505.

3. org.eclipse.ui.views.tasklist.TaskList

The org.eclipse.ui.views.tasklist.TaskList class is deprecated since Eclipse 3.4 and has been replaced by MarkerSupportView. The org.eclipse.ui.views.tasklist.TaskList class and related classes only used by this class are planned to get deleted.

For further details or to provide feedback on this change, see bug 436506.

4. Platform authorization API

Since Eclipse 1.0, the Eclipse Platform class provided API for storing and retrieving passwords in a keyring file. This API used an inherently insecure method for encrypting credentials, and used a custom encryption algorithm that made it difficult for some consumers to distribute and export Eclipse-based products. For these and other reasons, this API was deprecated and replaced in Eclipse 3.4 with a new Equinox secure storage API. In Eclipse 4.2 the implementation of the old authorization methods was removed, but the API left in place. This old API will be removed completely in a future release. The following API methods will be removed from org.eclipse.core.runtime.Platform:

For further details or to provide feedback on this change, see bug 476404.

API removals after June 2017

1. IContextComputer and related classes

The org.eclipse.ui.help.IContextComputer class and dependent classes, i.e., org.eclipse.ui.help.WorkbenchHelp, DialogPageContextComputer and ViewContextComputer are deprecated since 2002. These classes are planned to get deleted.

For further details or to provide feedback on this change, see bug 442961.

2. org.eclipse.core.runtime.IPlatformRunnable

The org.eclipse.core.runtime.IPlatformRunnable interface is planned to be removed.

For further details or to provide feedback on this change, see bug 370248.

API removals after June 2018

1. ImageAndMessageArea from JFace

The org.eclipse.jface.dialogs.ImageAndMessageArea class is planned to be removed.

For further details or to provide feedback on this change, see bug 475863.

2. org.eclipse.ui.cocoa.fullscreenWindow

Eclipse Platform 4.2 introduced a OS X-specific command to toggle full-screen called org.eclipse.ui.cocoa.fullscreenWindow (bug 376394), bound to Command-Ctrl-F. In 4.6 we introduced a cross-platform command to toggle full-screen called org.eclipse.ui.window.fullscreenmode (bug 489087 and bug 491572). As a result, we have two "Toggle Full Screen" commands on OS X, and both appear in the Quick Access. We will consolidate our code to use org.eclipse.ui.window.fullscreenmode, and plan to remove org.eclipse.ui.cocoa.fullscreenWindow.

For further details or to provide feedback on this change, see bug 493932.