Eclipse changed in incompatible ways between 4.3 and 4.4 in ways that affect plug-ins. The following entries describe the areas that changed and provide instructions for migrating 4.3 plug-ins to 4.4. Note that you only need to look here if you are experiencing problems running your 4.3 plug-in on 4.4.
See also the list of deprecated API removals for this release.
What is affected: Clients that directly reference WorkspaceLock API.
Description:
The WorkspaceLock
API allowed a special client (usually platform UI) to
hook into the locking protocols used by the workspace implementation. This hook
was used to mitigate deadlocks due to interaction with synchronous SWT events,
and was never intended to be used by other clients. In the 3.0 release this API
was deprecated in favor of a more general API provided by the org.eclipse.core.jobs
bundle. Invoking this API has had no effect since the 3.0 release. The specific API
being removed includes:
org.eclipse.core.resources.WorkspaceLock
class.org.eclipse.core.resources.IWorkspace#setWorkspaceLock
Action required: Clients that directly use API listed above should remove any references to it.
What is affected: Clients that directly call or implement IncrementalProjectBuilder#getRule() API.
Description:
The IncrementalProjectBuilder#getRule()
method returned a scheduling rule
that was required for building the project by the builder. This method was intended to be used by the builder framework only.
In the 3.6 release this method was deprecated in favor of a more general method IncrementalProjectBuilder#getRule(int, Map)
.
The specific API being removed includes:
org.eclipse.core.resources.IncrementalProjectBuilder#getRule()
Action required: Clients that directly call API listed above should remove any references to it
or replace with calls to IncrementalProjectBuilder#getRule(int, Map)
. Clients that implement API listed
above should implement IncrementalProjectBuilder#getRule(int, Map)
instead.
What is affected: Eclipse 2.0 plug-ins that have not migrated to an OSGi bundle.
Description: The 3.0 release migrated to a runtime based on the OSGi Framework specification. In order to support the migration to OSGi bundles the Equinox OSGi Framework implementation provided support for transforming Eclipse 2.0 style plug-ins into real OSGi bundles at runtime. This support is no longer provided by the Equinox Framework implementation.
Action required: Eclipse 2.0 plug-ins should be migrated to OSGi bundles. For cases where Eclipse 2.0 plug-ins must be supported there is a compatibility fragment that can be installed (org.eclipse.osgi.compatibility.plugins). This compatibility fragment must be installed in order to support the following:
What is affected: All Equinox Framework Hook implementations
Description: The Equinox Framework has a number of powerful framework specific hooks which framework fragments may implement in order to augment the behavior of the framework. These hooks are not considered API since they are closely tied to the internal implementation details of the framework. Attempts are made each release to support Equinox Framework hook implementations from previous releases.
Action required: The 4.4 release has changed much of the internal details of the Equinox Framework which required an overhaul of the Equinox implementation specific hooks. As a result all existing Equinox Framework hook implementations will need to migrate. In most cases it should be possible to migrate existing hook implementations over to the new interfaces. Keep in mind that most of the internal types representing bundle have changed.
What is affected: Usage of the built-in Equinox OSGi console
Description: Since the 3.0 release the Equinox Framework implementation has provided an OSGi console implementation. This console is useful for debugging the OSGi environment. The 4.2 release disabled the built-in OSGi console included in the Equinox Framework (see 4.2 incompatibilities). The 4.4 release has removed the built-in OSGi console completely from the Equinox Framework implementation.
Action required: In order to use the OSGi console, it is necessary to install
the console bundle itself - org.eclipse.equinox.console and
the three Gogo bundles - org.apache.felix.gogo.runtime,
org.apache.felix.gogo.command, org.apache.felix.gogo.shell.
Documentation for the Equinox console is available at
Console Shell. The configuration property
osgi.console.enable.builtin
no longer has any effect.