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.

Removed APIs in the Mars (4.5) release:

  1. Workbench presentation API
  2. Eclipse 2.0 ICompatibleWorkbenchPage
  3. Composite Bundles
  4. Batch Bundle Event
  5. Remove deprecated CSS extension points
  6. Remove unimplemented interface org.eclipse.equinox.p2.ql

Planned API removals after June 2015:

  1. org.eclipse.jface.util.ListenerList
  2. TableTreeViewer
  3. org.eclipse.ui.views.tasklist.TaskList
  4. Eclipse 2.0 runtime model and boot API
  5. Platform authorization API

Planned API removals after June 2016:

Planned API removals after June 2017:

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

API removals in this release

1. Workbench presentation API

The workbench presentation API allowed plug-ins to override certain aspects of the workbench appearance, such as the shape of view and editor tabs. This mechanism is fundamentally incompatible with the pluggable rendering and declarative styling systems in Eclipse 4.2, which offer applications complete control over all aspects of the workbench layout and style. The following API will be removed:

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

2. Eclipse 2.0 ICompatibleWorkbenchPage

Eclipse 4.4 removed the support for Eclipse 2.0 plug-ins. We will therefore remove the ICompatibleWorkbenchPage interface and the org.eclipse.ui.workbench.compatibility plug-in after the Luna release.

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

3. Composite Bundles

In the Equinox 3.5 release an implementation of an OSGi provisional API was included for composite bundles. This API includes all classes from the org.osgi.service.framework package. This provisional OSGi API has never been considered API by Equinox and as such has always been marked as x-internal.

The OSGi Alliance has decided to reject this provisional API. It will never become a part of the official OSGi specification. Any users of the org.osgi.service.framework composite bundle API must migrate to using framework hooks to provide additional isolation within a single OSGi framework. See the sub-packages of org.osgi.framework.hooks for ways to control visibility and isolation for resolution, bundles and services. Equinox plans to remove the org.osgi.service.framework API and composite bundle implementation in the Summer of 2012 (after the 3.8 release).

Equinox also has a region digraph implementation that allows for the definition and configuration of regions that can be used to isolate bundles. The region digraph is built on top of the standard OSGi framework hooks. The specific API to be removed includes:

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

4. Batch Bundle Event

Since Eclipse 3.1, the Equinox Framework has provided API to allow bundle listeners to batch bundle events. This functionality never has been standardized with OSGi and the approach as several drawbacks that make the API difficult to use. For these and other reasons the API package org.eclipse.osgi.event will be removed.

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

5. Remove deprecated CSS extension points

Since Eclipse 4.0, the Eclipse platform allows styling based on external CSS files. During the implementation two experimental extension points have been created which have been replaced in the meantime. For this reason the extension points org.eclipse.e4.u.css.core.elementProvider and org.eclipse.e4.ui.css.swt.property.handler will be removed.

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

6. Removed unimplemented interface org.eclipse.equinox.p2.ql

This interface was never implemented, and never used, and "should never have been published" to quote from bug 453228.

API removals after June 2015

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 431981.

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 434575.

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 434615.

4. 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.

5. 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 370248.

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.boot.IPlatformRunnable

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

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