The final milestone and feature-complete version of Eclipse 3.4M7 was released on Friday, with a number of improvements over the previous Eclipse 3.3 version. There will be a number of release candidates with an expected final release date of Eclipse 3.4 (Ganymede) in June.
SWT, the UI layer that underpins Eclipse, is now able to create full-screen windows for kiosk-mode applications, and windows with transparency for displaying pop-ups or other HUD-type windows. This allows windows to appear non-rectangular by having a path to create the opaque section. The same also applies to controls (such as Buttons), although practically the ability to have a three-state checkbox is likely to be more directly useful. Finally, SWT now runs on 64-bit windows when run with a 64-bit JVM; although it's still possible to run 32-bit SWT on a 32-bit JVM on a Windows 64-bit system.
The Java tooling has undergone some improvements, not the least of which is a multi-threaded compiler which should increase performance during builds on multi-core systems. Unfortunately, the projects aren't built in parallel - each one is built individually as before - but the actual compilation of each project will be able to use multiple threads. Other benefits, such as the ability to refactor expressions like a+b+c
into equivalents using StringBuilder
/StringBuffer
or MessageFormat
, will be useful in a number of places. Additional refactorings, such as the ability to refactor a set of variables into a containing class with accessors, have also been added; and you can now re-order elements by drag-and-drop from the Outline view. JUnit timings reporting how long each test case takes to run will give an idea of where any performance problems lie. Lastly, the automated proposals for methods can now be annotated with valid parameter values, so a number of new SWT templates (with known possible values for the 'flags' field) will help when writing code utilizing SWT.
For RCP developers, the good news is that the Log view has finally been moved into its own bundle, which means that you can deploy it with RCP applications without needing to bring in the workbench as a whole. The help system (aka Infocenter) has been redesigned so that it can be plugged into any existing application server (such as Jetty, Tomcat or even SSAP). Additional PDE enhancements can help with the construction of documentation for use in a help center or for articles on eclipse.org. Finally, a SecurePlatform
can now be used which integrates with JAAS.
PDE has made life easier by providing a number of enhancements to the formatting and refactoring of the plugin.xml and OSGi manifests, including additional refactorings which will help keep the manifest up-to-date (such as performing an import and adding the appropriate entries during code completion). The plug-in spy, which has been in the incubator for some time, is now shipped by default with 3.4 which makes it much easier to work with existing plug-ins. Finally, for those wishing to hack Eclipse, the source bundles are now shipped as individual units rather than one giant bundle, which should make it easier to acquire code that you're interested and ignore those that you're not. Enhancements to the plug-in registry view allow you to stop and start bundles (and their OSGi services), although not to dynamically install or remove them.
The platform has also undergone changes, the most notable being P2, the new provisioning platform for Eclipse. This is a general replacement for the ageing Update Manager, and allows both bundles and non-bundle components (such as configuration files, installers, graphic resources etc.) to be installed or updated. There are a number of new features, such as the ability to view and verify digital signatures for the artifacts, download from (or provide) mirrors, or select the best representation of the artefact (pack200
, gz
etc.) from multiple available. P2 also allows for a dropins
folder, which makes installing bundles that much easier; just copy in the bundle, and Eclipse will automatically install it and make it available (dependencies permitting, of course). It's also possible to configure Eclipse in a shared-bundles mode which will allow a repository of bundles to be made available and then host different applications using it. Those who use Eclipse for day-to-day usage might not find that beneficial, but if you're doing RCP application development (or support) where you have a number of RCP-based applications installed on the same computer (for example, an in-house suite of RCP applications), then the ability to share bundles between applications will be a real space-saver.
You can read the individual new and noteworthy pages (M1, M2, M3, M4, M5, M6 and M7) which describe the features in more detail. A number of release candidates addressing bug-fixes will be released between now and the end of June, which is when Ganymede is expected to be released.