Platform Changes
|
|
Declarative services added to the platform | The Eclipse rich client platform now includes an implementation of OSGi declarative services (DS). This allows a lazy-starting plug-in to make OSGi services available to other plug-ins before it has been started. Finally the powerful OSGi dynamic service architecture can be fully exploited in the Eclipse world of lazy activation. DS also includes support for dependency injection, so services can be injected into plain old Java objects (POJOs), without adding a dependency on the OSGi framework into your application code. This new platform bundle is complemented by new tooling support in PDE for declarative services. |
Compare Core Plug-in | Some of the patching functionality provided
by the compare plug-in has been refactored into a separate org.eclipse.compare.core plug-in
that can be used by headless Eclipse applications |
Improved look for filtered tree | The button for clearing the filter field of filtered trees has
been moved into the text box, even for platforms that don't have a native search field with
this functionality.
For backwards compatibility reasons, existing subclasses of |
Multiple fonts in one cell | The existing owner draw support for JFace TableViewer and
TreeViewer has been extended to allow multiple fonts within cells. For example, this can be used to
highlight matching text in search results using a bold font.
|
Using sheets on Mac Cocoa | For general prompts and dialogs regarding editors, or
the current Workbench window, sheets are now used on Mac Cocoa. In addition to the
new style bit SWT.SHEET , new API has been added to MessageDialog
and MessageDialogWithToggle so that clients can set the appropriate style for their dialogs.
|
JFace dialog button order on GTK+ | JFace dialogs now respect the default button order on the GTK+ platform. Example: "Cancel" "OK". It is possible to revert the order used by SWT and JFace, see Alternate button order. |
New "check state" provider |
JFace now has a new type of provider, called ICheckStateProvider , that can be used to
manage the checked and gray states of elements in CheckboxTableViewer or CheckboxTreeViewer
objects. This is useful in situations where the viewer should come up with pre-checked
elements, or when the check state changes are not always triggered by the user.
|
Show welcome checkbox | A checkbox can be added to a welcome page that will cause the
welcome to show when Eclipse is restarted, even if it was closed previously. The
unextended Eclipse platform does not show this checkbox, but it can be added using
an intro extension that uses the class AlwaysWelcomeCheckbox as a content provider.
The example below shows this checkbox added to the What's New page.
|
Help content filter | A new extension point org.eclipse.help.webapp.contentFilter
allows for pre-processing of help content before it is delivered from the help server. |
Jetty version 6.1 | Version 6.1 of the Jetty Web server is now included in the platform,
replacing the 5.1 version in the previous release. This brings along an implementation
of version 2.5 of the javax.servlet API, replacing the 2.4 version in the Ganymede release.
|
New release of ICU4J | The platform has adopted a major new release of the ICU4J localization library: version 4.0. This release includes support for Unicode 5.1, and the Unicode standard Common Locale Data Repository (CLDR) 1.6 See the ICU4J 4.0 release notes for more details. |
Extensible installation details | The About Dialog now provides a mechanism for plug-ins to
contribute installation pages to the platform about dialog. The buttons for showing feature,
plug-in, and configuration details have been replaced by a single Installation Details button.
Pushing this button will launch a dialog that shows all of the installation pages contributed by plug-ins in a single Installation Details dialog. Plug-ins may contribute installation pages and define buttons that operate on the information in the installation page.
The new extension point is org.eclipse.platform.ui.installationPages. Example implementations can be found by browsing the hierarchy of org.eclipse.ui.about.InstallationPage. |
New intro theme | A new intro theme called "Slate" has been added.
Slate is not the default theme for Eclipse but can be specified using the
preference org.eclipse.ui.intro/INTRO_THEME=org.eclipse.ui.intro.universal.slate . The main differences in the root page between the new
theme and the two existing themes are:
Non root pages also have a label for each link.
|
Equinox Changes
|
|
New publisher bundle | p2 has introduced a new bundle called the publisher, which provides infrastructure for generating, packaging, and publishing metadata and artifacts into p2 repositories. The publisher provides an extensible API that clients can extend to perform customized publishing to repositories, and includes an advice mechanism for injecting additional metadata into the generation and packaging process. |
New Equinox concurrency API | This release includes a new provisional API for futures. Futures facilitate handling of concurrency and synchronization in multi-threaded and/or distributed systems. They serve as a proxy for a result that is not known, because the computation of the result is not yet complete. See the wiki documentation for more details on this new experimental concurrency API. |
Enhanced DebugOptions | The Equinox DebugOptions API has been enhanced
to support dynamic changes to option settings. Now debug option settings can be modified while
an application is running to facilitate problem determination and support. A new interface,
DebugOptionsListener , can be registered as a service to enable your plug-in to
respond to dynamic debug option changes.
|
New tracing API | A new debug tracing API, org.eclipse.osgi.service.debug.DebugTrace ,
has been added to enhance and simply writing of debug trace messages in your code.
The DebugTrace object will take care of writing additional trace information along
with your message, such as your bundle symbolic name, and the class, method, and line
in which the tracing message was written. This reduces clutter in the code being traced, while ensuring
that consistent and complete contextual information is recorded. The tracing data can
either be directed to a file, or written on stdout, depending on the setting of DebugOptions#setFile .
By default the Eclipse platform will write trace data to the file trace.log in the workspace
metadata location (next to the platform log file).
|
Security Manager enhancements | This release includes an implementation of the updated Conditional Permission Admin Specification included in the OSGi Service Platform Core Specification Release 4, Version 4.2. This version of the specification includes enhancements to the Conditional Permission Admin service which is used to manage the permissions assigned to bundles. The enhancements include adding the ability to grant or deny permissions based on conditions, and to manage conditions as an ordered list of rules. For more information see the OSGi Release 4 Version 4.2 specification. |
OSGi service registry enhancements |
This release includes an implementation of the new Service Hooks Specification
included in the OSGi Service Platform Core Specification Release 4, Version 4.2.
Certain specialized bundles need to be able to alter
output results of service layer's find and event delivery operations to
affect their purpose. The Service Hooks Specification enhances the service registry to allow
service registry hooks to affect the service registry's find and event
delivery operations.
The Service Hooks Specification is targeted at bundles which need to observe and react to selected service layer operations. In general these will be highly specialized bundles written by systems programmers. The is not intended to be used by so-called "normal" application bundles. For more information see the OSGi Release 4 Version 4.2 specification. |
OSGi framework launching |
The OSGi Service Platform Core Specification Release 4, Version 4.2 defines a standard
way to launch an OSGi framework implementation.
This release of Equinox includes an implementation the OSGi standard launching APIs.
A framework implementation must provide a factory class. A factory class is
an indirection to create a framework implementation object. The implementation factory
class must implement the FrameworkFactory interface. A launcher can use the following ways
to get this class name:
org.eclipse.osgi.launch.EquinoxFactory class is the public
class in Equinox which implements the new
org.osgi.framework.launch.FrameworkFactory interface.
This Release 4, Version 4.2 specification also defines standard configuration properties which all framework implementations must recognize. This allows for a generic framework launcher to be implemented that can launch any framework implementation. For more information see the OSGi Release 4 Version 4.2 specification. |
OSGi Declarative Services Changes |
This release includes an implementation of the updated Declarative Services
Specification included in the OSGi Service Platform Core Specification Release 4, Version 4.2.
The following list highlights the changes to Declarative Services for Version 4.2 of the
OSGi Specification:
For more information see the OSGi Release 4 Version 4.2 specification. |
New core framework API |
The OSGi Service Platform Core Specification Release 4, Version 4.2 is adding a number of small API additions
to the core Framework. The following is a list of API additions included in this release.
|
Composite bundles |
This release includes an implementation of the Composite Bundles specification.
The Composite Bundles specification is a proposed specification for the OSGi
Release 4, Version 4.2 specification. In a large system built upon a large number of modules,
sometimes it is necessary to provide a mechanism for isolating the various
modules from each other at runtime. Composite Bundles introduces a concept
to provide isolation for a group of bundles.
Conceptually a composite bundle is composed of
a set of bundles which are contained in another (nested) framework instance.
New API is introduced in the For more information see the OSGi Release 4 Version 4.2 specification.
Note: The API introduced in the |
SWT Changes
|
|
Cairo on AIX | Cairo support has been added to Eclipse on AIX. This enables advanced graphics support on AIX. |
JNI Generator | A new plug-in based tool has been added to simplify the process of generating the SWT JNI code. For more info click here. |
Block selection in StyledText | StyledText can be switched into block selection mode with new API StyledText.setBlockSelection(true) .
|
JavaScript-to-Java | JavaScript can now call out to Java in the Browser widget.
Supported types are numbers, booleans, strings, null, and arrays (example
snippet).
|
Improved Java-to-JavaScript | Java can now call into JavaScript. An expression is evaluated in the context of a Browser document and a value is returned. Supported types are numbers, booleans, strings, null's, and arrays (example snippet). |
New caret listener | New API has been added to StyledText to allow you to listen for changes in the caret offset.
See StyledText.addCaretListener() and StyledText.removeCaretListener() for more information.
|
New text editor demo | This new example makes extensive use of StyledText to demonstrate how it can be
used to create a multi-font rich text editor with bullets, links and embedded objects.
|
Improved search field | The SWT.SEARCH style is now supported on
all platforms, allowing the application to display a text message when
the control is awaiting input. The SWT.ICON_SEARCH and
SWT.ICON_CANCEL hints control the appearance of the search field (example
snippet).
|
Improved copy and paste support | Support has been added to the FileTransfer
class to allow for copy/paste operations between the Explorer and
the Nautilus file manager.
|
Links in StyledText | StyledText now allows users to add
hyperlinks to the text in the widget.
|
StyledText margin spacing and color |
New API has been added to StyledText to set margin spacing and color.
See Snippet316.
|
Disabling Javascript |
Javascript can be disabled from running in a Browser with the new API Browser.setJavascriptEnabled(boolean) .
|
Browser wants a cookie |
Cookies can be created and accessed in the Browser with new API Browser.setCookie() and Browser.getCookie() .
|
Authentication listener | Browser clients can now provide a listener that responds to basic authentication challenges. This is useful for enabling users to access sites without presenting them with a manual authentication prompter. See Snippet317. |
Shell modified state hint |
New API has been added to Shell to provide a user hint that the window is in a modified state.
See Snippet314.
|
DateTime DROP_DOWN | DateTime widgets created with SWT.DATE style can now also have SWT.DROP_DOWN style.
|
SWT.SHEET style for Shell and Dialog | Sheet windows are now supported on Mac OS X Cocoa. |
Mozilla browser support on Solaris x86 | Mozilla browser support has been added to the Solaris x86 platform. |
Improved DND feedback on Cocoa | Cocoa drag and drop in trees and tables is now fully supported. Aside from the visual feedback, other native features are supported, such as automatic collapse of tree items when the drag is finished. |
Paper orientation | Applications can now programmatically select portrait or landscape mode when printing, or when opening a PrintDialog. See Snippet318. |